<?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>Forem: Patrice Williams</title>
    <description>The latest articles on Forem by Patrice Williams (@pld208).</description>
    <link>https://forem.com/pld208</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%2F473422%2F6ffe0fb5-59f1-447d-8440-373df33f2b65.jpeg</url>
      <title>Forem: Patrice Williams</title>
      <link>https://forem.com/pld208</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pld208"/>
    <language>en</language>
    <item>
      <title>AngularJS  </title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 22 Mar 2021 13:59:39 +0000</pubDate>
      <link>https://forem.com/pld208/angularjs-4alf</link>
      <guid>https://forem.com/pld208/angularjs-4alf</guid>
      <description>&lt;p&gt;My coding bootcamp journey is coming to an end. This is my last blog as a coding student at Operation Spark. The journey was long, but definitely worth the many late nights. As I said in my last blog, I have begun searching for jobs and some of the front-end frameworks that companies want developers to know is AngularJS. AngularJS was developed in 2009 by Misko Hevery. It was created for building CRUD applications. AngularJS lets you use HTML as the template language and extends the HTML’s syntax to the application components. AngularJS is currently maintained by Google and the latest version is AngularJS 1.7.&lt;/p&gt;

&lt;h2&gt;
  
  
  Main Features
&lt;/h2&gt;

&lt;p&gt;The main features of AngularJS are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AngularJS can create Rich Internet Applications (RIA)&lt;/li&gt;
&lt;li&gt;Allows developers to write JavaScript code in the Model View Controller (MVC) way&lt;/li&gt;
&lt;li&gt;Applications written in AngularJS can be used across multiple platforms&lt;/li&gt;
&lt;li&gt;It is open source, free, and used by thousands of developers world-wide&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  Angular JS Directives
&lt;/h2&gt;

&lt;p&gt;The AngularJS framework can be put into three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ng-app: this directive defines and links the application to HTML&lt;/li&gt;
&lt;li&gt;Ng-model: this directive binds the values of AngularJS application data HTML inputs&lt;/li&gt;
&lt;li&gt;Ng-bind: this directive binds the AngularJS application data to HTML tags&lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;p&gt;In the following code, the ng-init directive initializes the application's data. It is utilized to assign values to the variables. An array of cities is first initialized. JSON syntax is used to define the cities array.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;ng&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt; &lt;span class="nx"&gt;ng&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;init&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cities = [{locale:'en-US',name:'United States'}, 
   {locale:'South',groupName:'Southern states'}, {locale:'West',groupName:'Western states'}]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the following code, the ng-model defines the model/variable that will be used in the application. Name is the model defined below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;ng&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt;  &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="err"&gt;  &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Enter&lt;/span&gt; &lt;span class="nx"&gt;your&lt;/span&gt; &lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;ng&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ng-repeat directive repeats elements in a collection. In the next example, we iterate over the array of cities.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;ng&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="p"&gt;...&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;List&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;Cities&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="nx"&gt;flower&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ol&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt; &lt;span class="nx"&gt;ng&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;repeat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cities in united states of america&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
         &lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;City: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;city&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;, Flower: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;city&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;flower&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/ol&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Positives of using AngularJS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Some positives of using AngularJS are:&lt;/li&gt;
&lt;li&gt;Single Page Applications can be created in a clean, maintainable way&lt;/li&gt;
&lt;li&gt;Allows data binding capability to HTML
Components are reusable&lt;/li&gt;
&lt;li&gt;More functionality can be achieved with shorter code&lt;/li&gt;
&lt;li&gt;Code is unit testable&lt;/li&gt;
&lt;li&gt;In AngularJS views are the html pages, and controllers process the JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Negatives of using AngularJS
&lt;/h2&gt;

&lt;p&gt;AngularJS is a pretty powerful framework, but there are some drawbacks. These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;not as secure: Because it is a JavaScript only framework, the application is not safe therefore server side authentication must occur to keep the app secure.&lt;/li&gt;
&lt;li&gt;Not degradable: if the user disables JavaScript, then nothing is visible except for the basic page.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Differences between Modern Angular and AngularJS
&lt;/h2&gt;

&lt;p&gt;AngularJS and modern Angular have different features which make modern Angular more popular. AngularJS uses the MVC architecture  while modern angular uses components and directives. AngularJS uses Javascript while modern Angular uses Typescript. AngularJS and modern Angular both use dependency injection (DI), but the method in which they use these is different. In AngularJS DI is injected into link functions, controller functions, and directive definitions. Modern Angular uses a hierarchical DI system that employs declarations, constructor functions, and providers. Modern Angular is more intuitive when it comes to data binding. In AngularJS, a coder has to remember which ng-directive to use for binding a property or event, while modern Angular uses () for event binding and [] for property binding. These are just some of the differences between the two frameworks. Ultimately it is easier and faster to learn AngularJS than Angular because TypeScript must be mastered in order to successfully build applications. I would recommend using Angular for building complex applications and AngularJS for building simple and straightforward applications.&lt;/p&gt;

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

&lt;p&gt;AngularJS looks like an interesting Framework to add to your tool-kit as a web developer. It is easy to learn and understand due to the documentation/ resources available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Source
&lt;/h3&gt;

&lt;p&gt;TutorialsPoint. Angularjs - overview. Retrieved March 22, 2021, from &lt;a href="https://www.tutorialspoint.com/angularjs/angularjs_overview.htm"&gt;https://www.tutorialspoint.com/angularjs/angularjs_overview.htm&lt;/a&gt;&lt;br&gt;
A, Shanal. Angular vs AngularJS - A Complete Comparison Guide 2019. July 24, 2019. Retrieved March 22, 2021, from &lt;a href="https://www.techaheadcorp.com/blog/angular-vs-angularjs/"&gt;https://www.techaheadcorp.com/blog/angular-vs-angularjs/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Quick Introduction to PHP</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 15 Mar 2021 02:51:44 +0000</pubDate>
      <link>https://forem.com/pld208/a-quick-introduction-to-php-52j</link>
      <guid>https://forem.com/pld208/a-quick-introduction-to-php-52j</guid>
      <description>&lt;h2&gt;
  
  
  What is PHP?
&lt;/h2&gt;

&lt;p&gt;PHP is an open source scripting language used on the backend of software development. PHP is an acronym for “PHP: Hypertext Preprocessor”. In 1994, the first version of PHP was created by Rasmus Lerdorf. PHP files can hold text, HTML, JavaScript, CSS and PHP code. PHP files have the extension “.php”. PHP can be used to create, open, read, write, delete, and close files on the server. Form data can be collected with PHP and cookies can be sent/received. PHP is used to add to, delete or modify your database. PHP is integrated with many popular databases like MYSQL, POSTgreSQL, Sybase, Informix, and Oracle. PHP is also used to control user access and encrypt data. 8.0.2 is the newest version of PHP released February 2021. It contains many new features and optimizations like named arguments, union types, nullsafe operator and constructor property promotion to name a few.&lt;br&gt;
 &lt;/p&gt;
&lt;h2&gt;
  
  
  Basic Syntax
&lt;/h2&gt;

&lt;p&gt;The PHP script is first implemented on the server, and then the HTML result is sent back to the browser. The PHP script can be located anywhere in the document. The PHP script begins with &amp;lt;?php and ends with ?&amp;gt;. A PHP file generally contains HTML tags and PHP scripting code. In the following code, the function “echo” is a built- in PHP function that is used to output “Welcome to my World!”&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="na"&gt;DOCTYPE&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;html&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="k"&gt;ECHO&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Welcome to my World!&amp;lt;br&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;echo&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Welcome to my World!&amp;lt;br&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;EcHo&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Welcome to my World!&amp;lt;br&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PHP is not case sensitive. So when using keywords (ex. If, else, while, echo, etc.), functions, classes, and user-defined functions they are not case-sensitive. In the code below, the three different echo statements are all equal and legal in PHP.&lt;br&gt;
Code written in PHP must be included inside one of the following markup tags that are recognized by the PHP Parser.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="no"&gt;PHP&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="n"&gt;goes&lt;/span&gt; &lt;span class="n"&gt;here&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="no"&gt;PHP&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="n"&gt;goes&lt;/span&gt; &lt;span class="n"&gt;here&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;language = &lt;/span&gt;&lt;span class="s"&gt;"php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;PHP&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="nx"&gt;goes&lt;/span&gt; &lt;span class="nx"&gt;here&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why use PHP?
&lt;/h2&gt;

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

&lt;p&gt;PHP can be run across many different platform applications like Windows, Linux, Unix, Mac OS X and a number of other operating systems. PHP is compatible with almost all servers. It is open-source and free for all to use at &lt;a href="https://php.net"&gt;https://php.net&lt;/a&gt;. This allows for a large and active international community that uses PHP. PHP was partially developed as an object-oriented language, so the code is reusable as possible. PHP was created to program web applications through built-in GET and POST functions, in addition to URL and HTML script functionality. PHP’s server side offers great versatility. PHP supports backend servers including Netscape, Apache, Microsoft IIS, iPlanet, Caudium, Xitami, and Tornado. PHP is also supported by 20 databases. PHP’s fast performance enables quick turnaround times with the database. Since PHP was initially developed for creating dynamic websites, PHP’s scripts are easily embedded into HTML files. This makes it easier for developers to convert static website code into dynamic websites. Websites that use PHP are Facebook, Wikipedia, Tumblr, Slack, MailChimp and Etsy.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Works Cited
&lt;/h3&gt;

&lt;p&gt;W3Schools. (n.d.). Php introduction. Retrieved March 15, 2021, from &lt;a href="https://www.w3schools.com/php/php_intro.asp"&gt;https://www.w3schools.com/php/php_intro.asp&lt;/a&gt;&lt;br&gt;
PHP - Introduction. (n.d.). Retrieved March 15, 2021, from &lt;a href="https://www.tutorialspoint.com/php/php_introduction.htm"&gt;https://www.tutorialspoint.com/php/php_introduction.htm&lt;/a&gt;&lt;br&gt;
7 global websites that use PHP in 2021. (n.d.). Retrieved March 15, 2021, from &lt;a href="https://trio.dev/blog/companies-using-php"&gt;https://trio.dev/blog/companies-using-php&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
    </item>
    <item>
      <title>C++ Language -- should I learn it?</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 08 Mar 2021 04:42:17 +0000</pubDate>
      <link>https://forem.com/pld208/c-language-should-i-learn-it-2j7e</link>
      <guid>https://forem.com/pld208/c-language-should-i-learn-it-2j7e</guid>
      <description>&lt;h2&gt;
  
  
  What is C++?
&lt;/h2&gt;

&lt;p&gt;My journey to becoming a full stack web-developer is coming to an end. I am in the last month of my Coding Boot Camp and have started to browse job postings and kept coming across experience wanted in C++. This led me to do a little digging and discover what exactly C++ programming language is. C++, an object-oriented language was designed in 1979 by Bjarne Stroustrup to be an extension of the C language. C++ is similar to C, like having classes, inheritance, and default function arguments. C++ is used in various capacities such as operating systems, web browsers, and databases. It is also critical in areas related to performance due to its speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benefits of C++?
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;C++ is an extremely popular programming language worldwide. C++ is utilized by over 4.4 million developers. The average base pay for a C++ programmer is $103,035 per year.&lt;/li&gt;
&lt;li&gt;C++ has a great library, the Standard Template Library (STL), which helps to write compact code quickly. There are four components in the library: algorithms, containers, functions, and iterators. The algorithms contain different types, like sorting and searching etc. The containers hold classes to apply various data structures (stacks, queues, hash tables, vectors, sets, lists, maps etc. The functor class acts like a function and allows for customization after parameters are passed in. Lastly, the iterators are used when you’ve got a sequence of values&lt;/li&gt;
&lt;li&gt;C++ has a vast online community with experts willing to give advice/support. There’s a multitude of resources available on the internet, like StackOverflow, GeeksforGeeks, Standard C++ etc.&lt;/li&gt;
&lt;li&gt;MySQL, MongoDB and MemSQL are just a few of the databases that are written in C++. This is because C++ supports features like exceptions, lambda expressions etc. Many databases that are written in C++ are used in Enterprises like WordPress, Twitter, and Facebook&lt;/li&gt;
&lt;li&gt;Windows, Linux, Android, Ubuntu, iOS and other major operating systems are written in a combination of C and C++. C and C++ are used in operating systems due to their “speed and the strongly typed nature of these languages” (GeeksforGeeks).&lt;/li&gt;
&lt;li&gt;C++ is utilized in many compilers as a backend programming language. This is because C++ is more so on the level of hardware and is considered a low-level language. For example, the GNU Compiler Collection (GCC) is written in mostly C++ along with C.&lt;/li&gt;
&lt;li&gt;C++ high speed makes it a great choice for applications that require graphics, like digital imaging processing, computer vision, and screen recording programs&lt;/li&gt;
&lt;li&gt;C++ is beneficial for embedded systems because it can be used as the software and hardware. Some of these embedded systems that employ C++ include smart watches, MP3 players, GPS systems etc.&lt;/li&gt;
&lt;li&gt;C++ is portable, it can be moved across platforms. This makes it attractive for applications requiring multi-device development.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  C++ Hello World App
&lt;/h2&gt;

&lt;p&gt;In C++, the file should be saved with the name of the file and end with “.cpp”&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include &amp;lt;iostream&amp;gt;
&lt;/span&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt;  &lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;  &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first line of code “#include ” is a header file library that allows you to work with input and output objects, like cout. The second line, “using namespace std” means that names for objects and variables are free to use from the standard library. These two lines will almost always appear in your program. C++ ignores white space for the third line. “Int main()” is a function and any code between the curly brackets {} will be executed. “Cout” is an object that is used with the insertion operator (&amp;lt;&amp;lt;) to output text. In this example, the output is “Hello World!” The return 0 ends the main function. Do not forget the ending semicolon “;” and “}” to end the main function.&lt;br&gt;
 &lt;br&gt;
C++ is a popular programming language that can be found in many of today’s operating systems. C++ gives structure to programs and allows code to be reused, which lowers development costs. C++’s portability and great support/resources make it a language that you should consider learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Works Cited
&lt;/h3&gt;

&lt;p&gt;W3 Schools. (n.d.). C++ getting started. Retrieved March 08, 2021, from &lt;a href="https://www.w3schools.com/cpp/cpp_getstarted.asp"&gt;https://www.w3schools.com/cpp/cpp_getstarted.asp&lt;/a&gt;&lt;br&gt;
Geeksforgeeks. (2019, May 22). Top 10 reasons to learn C++. Retrieved March 08, 2021, from &lt;a href="https://www.geeksforgeeks.org/top-10-reasons-to-learn-c-plus-plus/"&gt;https://www.geeksforgeeks.org/top-10-reasons-to-learn-c-plus-plus/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
    </item>
    <item>
      <title>Should I learn Vue.js?</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 01 Mar 2021 01:31:53 +0000</pubDate>
      <link>https://forem.com/pld208/should-i-learn-vue-js-1doc</link>
      <guid>https://forem.com/pld208/should-i-learn-vue-js-1doc</guid>
      <description>&lt;h1&gt;
  
  
  What is Vue.js?
&lt;/h1&gt;

&lt;p&gt;Vue (pronounced “view”) is a JavaScript framework created for building user interfaces. Vue was officially released in 2014 by Evan You, a Google employee. Vue is developed for desktop and mobile applications with an Electron framework. Electron framework is used to build cross-platform desktop apps. Evan You said he created Vue to capture the best of Angular while building a custom tool that was lighter weight: “For me, Angular offered something cool which is data binding and a data driven way of dealing with a DOM, so you don’t have to touch the DOM yourself.” The name Vue refers to the Model-View-Controller (MVC) architecture. Vue focuses on the UI of an app/website.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Declaratively Render Data
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Html file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h4&gt;
  
  
  Js file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;el&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Vue application to the rescue!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A new Vue application has been created, the data and the DOM are linked and everything on the page is now reactive. The Vue app attaches itself to a DOM element (#App) and then controls it. The entry point is the HTML, but everything actually happens&lt;/p&gt;

&lt;h3&gt;
  
  
  Binding Data
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Html file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;app-2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt; &lt;span class="nx"&gt;v&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;Hover&lt;/span&gt; &lt;span class="nx"&gt;your&lt;/span&gt; &lt;span class="nx"&gt;mouse&lt;/span&gt; &lt;span class="nx"&gt;over&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;see&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="nx"&gt;dynamically&lt;/span&gt; &lt;span class="nx"&gt;change&lt;/span&gt;&lt;span class="o"&gt;!!&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/span&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Js file
&lt;/h4&gt;

&lt;p&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;app2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;el&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#app-2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;You hovered and loaded the page on &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;toLocaleString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is our first introduction to directives. The v-bind attribute is called a directive, indicating that they are special attributes crafted by Vue. The v-bind applies a special reactive behavior to the rendered DOM. If you open your console and enter &lt;code&gt;app2.message = ‘we’ve got a new message.’&lt;/code&gt; The bound HTML title attribute will be updated.&lt;/p&gt;

&lt;h3&gt;
  
  
  Toggle Data
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Html file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;app-3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt; &lt;span class="nx"&gt;v&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;seen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Do&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt; &lt;span class="nx"&gt;see&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;muffin&lt;/span&gt; &lt;span class="nx"&gt;man&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;YES&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/span&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Js file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;app3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;el&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#app-3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="na"&gt;seen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you enter &lt;code&gt;javascript app3.seen = false;&lt;/code&gt; in the console, the message disappears. This shows that data can be bound to attributes and text, but in general, data can be bound to the structure of the DOM. &lt;/p&gt;

&lt;p&gt;Vue also has a great transition effect system. Below is code showing a single transitioning element. Vue specifies a transition wrapper component, which allows you to add entering/leaving transitions for elements and components. V-if is used for conditional rendering and v-show is used for conditional display.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbjdom4xff42s94r5xgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbjdom4xff42s94r5xgo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Html file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;effects&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;v&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;click&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;show = !show&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;Toggle&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
 &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;transition&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fade&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="nx"&gt;v&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;show&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;MostValuableProgrammers&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
 &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/transition&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Js file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;el&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#effects&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt;   &lt;/span&gt;&lt;span class="na"&gt;show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  CSS file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fade&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;enter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;active&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fade&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;leave&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;active&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="nx"&gt;transition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;opacity&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fade&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;enter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fade&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;leave&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt;&lt;span class="nx"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;V-enter-active is the active state for enter. It is applied during the entire entering phase. This class defines the duration, delay and easing curve for the entire transition. V-leave-active is the active state for leave. It is applied during the entire leaving phase. V-enter is the starting state for enter whole v-leave-to is the ending state for leave (only available in versions 2.1.8+).&lt;/p&gt;

&lt;h2&gt;
  
  
  Positives of using Vue
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vue’s small size (entire framework is 18 KB) makes the library fast to download and install&lt;/li&gt;
&lt;li&gt;Uses the virtual DOM to render elements, which speeds up performance. Normally when a user interacts with a page, the whole DOM is updated. Vue instead uses virtual DOM (essentially a copy of an original DOM that “figures out what elements to update, without rendering the whole DOM.” This method improves application performance by making elements render to the page faster.&lt;/li&gt;
&lt;li&gt;Two-way data binding, a feature inherited by Vue from Angular is a great benefit. Two-way data binding refers to the link between model data updates and the view (UI). It is now simpler to update and track related components.&lt;/li&gt;
&lt;li&gt;Single-file components allow for component reusability, increased code readability and in turn better unit-testing.&lt;/li&gt;
&lt;li&gt;Vue is easily integrated with existing applications due to its singular reliance on JavaScript.&lt;/li&gt;
&lt;li&gt;With the release of Vue CLI 3, it maintains a great set of tools, like Vue’s browser debugging tools, server renderer, state manager, and the many unit-testing/testing tools&lt;/li&gt;
&lt;li&gt;Vue is easy to learn, especially with the clear and concise documentation provided and there’s a growing Vue community (over 41 thousand Stack Overflow tags&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Negatives of using Vue
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The reactivity in Vue is complex. Sometimes components do not react correctly when a user triggers the component and mistakes are made during data reading. Data must be flattened in order for reactivity to be fixed.
*Because Vue is popular with businesses like Alibaba and Xiaomi, when searching for Vue content, instructions and descriptions may be written in a language other than English.&lt;/li&gt;
&lt;li&gt;There is a lack of support for larger projects because the framework is so new. In order for the framework to be adopted in large-scale projects, the tech needs to be strongly supported and have stability so that issues can be swiftly resolved.&lt;/li&gt;
&lt;li&gt;Limited resources (in terms of plugins available) and a lack of experienced developers are areas where Vue can improve greatly&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Vue is a fairly new framework that should be learned for its ease of use with building user interfaces. Vue may not be as widespread, like  Facebook(React) and Google(Angular), companies with huge financial support. Vue still has a good following on Github and with other larger companies, like Alibaba and BMW. Vue has good documentation filled with a plethora of information. It is easy to learn and has a nice, supportive community that can aid you in learning it. &lt;/p&gt;

&lt;h4&gt;
  
  
  Sources
&lt;/h4&gt;

&lt;p&gt;AltexSoft. (2020, February 27). The good and the bad of vue.js framework programming. Retrieved February 28, 2021, from &lt;a href="https://www.altexsoft.com/blog/engineering/pros-and-cons-of-vue-js/" rel="noopener noreferrer"&gt;https://www.altexsoft.com/blog/engineering/pros-and-cons-of-vue-js/&lt;/a&gt;&lt;br&gt;
Vue. (n.d.). Introduction - vue.js. Retrieved February 28, 2021, from &lt;a href="https://vuejs.org/v2/guide/" rel="noopener noreferrer"&gt;https://vuejs.org/v2/guide/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vue</category>
    </item>
    <item>
      <title>What is Java Programming Language?</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 22 Feb 2021 03:03:36 +0000</pubDate>
      <link>https://forem.com/pld208/what-is-java-programming-language-12ka</link>
      <guid>https://forem.com/pld208/what-is-java-programming-language-12ka</guid>
      <description>&lt;h2&gt;
  
  
  What is Java and why should I use it?
&lt;/h2&gt;

&lt;p&gt;Java is a programming language that was created by Sun Microsystems in 1995. Java was first initiated in June 1991 for a project created by James Gosling. The language was first called “Oak” after an oak tree that lived outside Gosling’s office.  It was eventually named Java from a list of random words. By May 2007 Sun made Java’s core code free and available to the public Java was crafted because the main programming languages around in the early 90s that were used had too many steps to perform simple tasks. The programming language C was too low-level and was not portable, meaning the code that was written in C could not be easily used to run on minicomputers and mainframes, but worked with PC. So developers came out with more programming languages like JavaScript, Ruby,  and PHP. Java became very popular as soon as it was released due to its portability and the large built-in libraries. 2020 marked 25 years since it has been created.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Java's main features
&lt;/h2&gt;

&lt;p&gt;The latest version of Java is version 15, with version 16 due to come out in about 1 month. Since 2017, Java has published a new version roughly twice a year. Because it is so popular, there are many different configurations, like the J2EE for Enterprise Applications, and J2ME for Mobile Applications. The point of the Java language is to write your code once and have it be able to run anywhere. Java is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object Oriented&lt;/strong&gt; – everything is an object in Java and can be extended since it is based on the Object model&lt;br&gt;
&lt;strong&gt;Platform Independent&lt;/strong&gt; – when Java is compiled it is not compiled into a platform based on the specific machine, but in an independent byte code. Then a Virtual Machine (JVM) interprets the byte code on whichever platform that is running the code.&lt;br&gt;
&lt;strong&gt;Secure&lt;/strong&gt; – Java is a secure language due to its secure feature, which allows it to develop virus-free, protected programs. Public-key encryption is used for authentication procedures.&lt;br&gt;
&lt;strong&gt;Portable&lt;/strong&gt; – because Java has no specific architecture and “having no implementation dependent aspects of the specification makes Java portable” (Java - 2021).&lt;br&gt;
&lt;strong&gt;Multithreaded&lt;/strong&gt; – developers can create smooth running interactive applications because with Java you can write programs that perform a lot of tasks simultaneously.   &lt;br&gt;
&lt;strong&gt;Easy to learn&lt;/strong&gt; – it is a simple language to learn if you are familiar with Object Oriented Programming (OOP).&lt;br&gt;
&lt;strong&gt;High Performance&lt;/strong&gt; – Java’s Just-In-Time compilers enables Java’s high performance.&lt;br&gt;
&lt;strong&gt;Dynamic&lt;/strong&gt; – Java is designed to be adaptable depending on the environment. Java programs contain a vast amount of run-time information that can be utilized to confirm and resolve accesses to objects on run-time.&lt;/p&gt;
&lt;h2&gt;
  
  
  Java syntax
&lt;/h2&gt;

&lt;p&gt;Java is a language influenced by C++ and C. It is an object-oriented language using classes. Every piece of data is an object, except for primitive data types like integers, floating-point numbers, Boolean values, and characters. Java does not support multiple inheritance for classes, but through interfaces, multiple inheritance is supported. Java does use comments just like JavaScript, but there are three types: a single line comment ‘//’, a multi-line comment ‘/&lt;em&gt;   &lt;/em&gt;/’ and the Javadoc commenting style opened with ‘/*&lt;em&gt;’ and closed with  ‘&lt;/em&gt;/’.&lt;/p&gt;

&lt;p&gt;The following is a code example of a “Hello World” application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloWorldApp&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="err"&gt;                       &lt;/span&gt;&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nc"&gt;Hello&lt;/span&gt; &lt;span class="nc"&gt;World&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Prints the string “Hello World App!” to the console.&lt;/span&gt;
&lt;span class="err"&gt;           &lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source files are named after the public class they contain, ending with the suffix .java, for example, HelloWorldApp.java. The keyword public refers to a method that can be called from code in other classes or that a class can be used by classes outside the class hierarchy. That hierarchy deals with the name of the directory that the .java file is located. The keyword static in front of a method shows that it’s a static method, which is associated only with the class and not a specific instance of that class. Only static methods can be invoked without an actual reference to an object. The keyword void designates that the main method does not return any value to the caller. The method name main is not a keyword, but just the name of the method the Java launcher uses to pass control to the program. When Java classes are run in managed environments like applets and Enterprise JavaBeans(a Java API) do not need a main() method. The main method has to accept an array of String objects. Printing is a part of Java’s standard library. The System class defines a public static field named out. The out object is an instance of a class of printing methods used to print data. This includes println(String), which also adds a new line to the passed in string. The string “Hello World App!” is converted to a String object by the compiler.&lt;/p&gt;

&lt;p&gt;Java is a dynamic language made popular in the 90s. Java is a vital aspect in Android, a mobile operating system and is one of the fastest programming languages due to it being able to be scaled to programs that can process a large amount of resources. It is definitely a language that should be learned to widen your programming horizon.&lt;/p&gt;

&lt;h4&gt;
  
  
  Sources
&lt;/h4&gt;

&lt;p&gt;Binstock, A. (2015, May 20). Oracle BrandVoice: JAVA'S 20 years of innovation. Retrieved February 22, 2021, from &lt;a href="https://www.forbes.com/sites/oracle/2015/05/20/javas-20-years-of-innovation/?sh=1dec7f1111d7"&gt;https://www.forbes.com/sites/oracle/2015/05/20/javas-20-years-of-innovation/?sh=1dec7f1111d7&lt;/a&gt;&lt;br&gt;
Java (programming language). (2021, February 19). Retrieved February 22, 2021, from &lt;a href="https://en.wikipedia.org/wiki/Java_(programming_language)"&gt;https://en.wikipedia.org/wiki/Java_(programming_language)&lt;/a&gt;&lt;br&gt;
Java - Overview. (n.d.). Retrieved February 22, 2021, from &lt;a href="https://www.tutorialspoint.com/java/java_overview.htm"&gt;https://www.tutorialspoint.com/java/java_overview.htm&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
    </item>
    <item>
      <title>Event Delegation - Bubbling and Capturing</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 11 Jan 2021 13:25:41 +0000</pubDate>
      <link>https://forem.com/pld208/event-delegation-bubbling-and-capturing-34d</link>
      <guid>https://forem.com/pld208/event-delegation-bubbling-and-capturing-34d</guid>
      <description>&lt;p&gt;Events and event delegation are paramount to the functionality of the system or webpage you are programming. Making sure you have a proper understanding of how events work, and when is crucial. I will be discussing event delegation and the facts of it including event bubbling and event capturing. &lt;/p&gt;

&lt;h2&gt;
  
  
  What are events?
&lt;/h2&gt;

&lt;p&gt;Events are actions that happen in the system you are currently programming in. The system will  create a signal once the event occurs, that will provide a mechanism by which actions can automatically be taken when the specific event occurs.  So for example, when you are going swimming with a friend, maybe your friend does not want to get into the pool just yet. So you stick your toes in the water to test the temperature. You give the thumbs up signal and you and your friend jump in the pool. The signal was communicated to your friend and now you and your friend can jump in the pool. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KJdL8tuO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4lyux4bqgt4y1o524yes.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KJdL8tuO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4lyux4bqgt4y1o524yes.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So when describing events occurring in a browser window, events are usually attached to a specific item that the window holds (this could be a single element, set of elements, the HTML document that is loaded in the tab you have open, or the whole browser window). Various different events could occur, like an error, the user resizes or closes the browser window, a button is clicked, or the user hovers the cursor over a specific element. Every event that is available has an event handler. An event handler is a block of code (like a JavaScript function that you create) that runs when the event is triggered. Event handlers are sometimes called event listeners, but the two actually work in conjunction. The listener will listen for the event to occur and the handler is the actual code that runs in response to the event happening. &lt;/p&gt;
&lt;h2&gt;
  
  
  Event Delegation
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Bubbling
&lt;/h3&gt;

&lt;p&gt;Event bubbling and capturing are types of event delegation that work together. &lt;br&gt;
Bubbling is when an event occurs on an element, it triggers the handlers first, then its parents are triggered, and all the way up on to the other ancestors. In the following example, we have 3 nested elements with a handler attached to each of them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt; &lt;span class="nx"&gt;onclick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;alert('Click this FORM!')&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;FORM&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;onclick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;alert('Click this DIV!')&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;DIV&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="nx"&gt;onclick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;alert('click this P tag')&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;P&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/form&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you click the inner 'p-tag' , it first runs onclick: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 'p' &lt;/li&gt;
&lt;li&gt;Then the outer 'div' runs&lt;/li&gt;
&lt;li&gt;Then the outer 'form' runs&lt;/li&gt;
&lt;li&gt;And so on upwards until you have reached the document object.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;h3&gt;
  
  
  Stop Bubbling
&lt;/h3&gt;

&lt;p&gt;Most event bubbles, but there are some exceptions (like a focus event). In order to stop a bubbling event, you need to use the method event.stopPropagation(). In the following code example, the body.onclick does not work when clicking the button.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onclick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;event.stopPropagation()&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Click&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bubbling can be very convenient, so make sure you really need to stop it before using this method. &lt;/p&gt;

&lt;h3&gt;
  
  
  Capturing
&lt;/h3&gt;

&lt;p&gt;The last event propagation type that will be discussed is “capturing.” Capturing is generally not used in real code, but can be useful. The standard order of DOM events includes the capturing phase (event happens down to the starting element), target phase (“event reached the target element” (Javascript.info, 2020)), and bubbling phase (event bubbles up from the element). The below picture shows what happens when you click on a &lt;/p&gt;
&lt;td&gt; inside a table beginning at the window. 

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

&lt;p&gt;So when 'td' is clicked, the event goes down the ancestors chain to the element (capture phase), then once the target is reached, the event triggers there, and then goes up back up (bubbling phase) and calls handlers along the way. &lt;/p&gt;

&lt;p&gt;The below code is an example of capturing and bubbling working together.&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Issa&lt;/span&gt; &lt;span class="nx"&gt;FORM&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;DIV&lt;/span&gt; &lt;span class="nx"&gt;tag&lt;/span&gt; &lt;span class="nx"&gt;HOLLER&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;P&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt; &lt;span class="nx"&gt;already&lt;/span&gt; &lt;span class="nx"&gt;KNOW&lt;/span&gt;&lt;span class="o"&gt;!&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/form&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;

    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelectorAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Capturer this coolCat: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tagName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Bubbling is for coolCats: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tagName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
      &lt;span class="p"&gt;};&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/script&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;When you click on the 'p' the following occurs: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;HTML then BODY then FORM then DIV (the elements are captured in the following order)&lt;/li&gt;
&lt;li&gt;P is triggered because, now in the target phase, P is triggered two times since we have two listeners: capturing and bubbling &lt;/li&gt;
&lt;li&gt;DIV then FORM then BODY then HTML
The code attaches click handlers to every element in the document in order to see which handlers are working. The addEventListener function will run in the same order that they are created. &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Event delegation is fundamental to working in JavaScript. It is important to note that when an event occurs, the target element (event.target) is defined as the most nested element when the event happened. As the event moves down the document root to the event.target, calling handlers are assigned. Event bubbling occurs next and the event bubbles up from event.target to the root. In order to stop the event handler, call event.stopPropagation(), but this is not recommended. Make sure you understand event propagation and what bubbling and capturing is so that you can use them successfully in your code. &lt;/p&gt;

&lt;h3&gt;
  
  
  Sources
&lt;/h3&gt;

&lt;p&gt;MDN. Introduction to Events. Retrieved January 11, 2021, from &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events"&gt;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events&lt;/a&gt;&lt;br&gt;
Javascript.info.Bubbling and capturing. (2020, October 19). Retrieved January 11, 2021, from &lt;a href="https://javascript.info/bubbling-and-capturing"&gt;https://javascript.info/bubbling-and-capturing&lt;/a&gt;&lt;br&gt;
Mainardi, G. (2017, May 23). Event Bubbling in JavaScript? Event Propagation Explained. Retrieved January 11, 2021, from &lt;a href="https://www.sitepoint.com/event-bubbling-javascript"&gt;https://www.sitepoint.com/event-bubbling-javascript&lt;/a&gt;&lt;/p&gt;


&lt;/td&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Heroku -- an Application Deployment Service</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 04 Jan 2021 02:54:35 +0000</pubDate>
      <link>https://forem.com/pld208/heroku-an-application-deployment-service-301b</link>
      <guid>https://forem.com/pld208/heroku-an-application-deployment-service-301b</guid>
      <description>&lt;h2&gt;
  
  
  What is Heroku?
&lt;/h2&gt;

&lt;p&gt;Heroku is a container-based cloud Platform as a Service (PaaS). It “lets companies build, deliver, monitor and scale apps” (Heroku). Heroku manages the infrastructure, hardware and maintains the servers for the application. This enables engineers to focus on the development of their app. Heroku handles roughly 26 billion requests every day (more than 300,000 requests per second) and users have created over 9 million apps. &lt;br&gt;
Heroku was created by Salesforce and is hosted on Amazon Web Services. Its main purpose is to be a fast application deployment service. The supported platforms include running environments for Ruby, Python, PHY, Clojure, Go, Java, Scala, and Node.js apps. It is only available though in the United States and Europe. &lt;/p&gt;

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

&lt;h2&gt;
  
  
  What is a Platform as a Service?
&lt;/h2&gt;

&lt;p&gt;Platform as a Service (PaaS) is a service that includes the full development and cloud deployment environment of your application. There are add-on services and pay-as-you-go options to deploy your application. PaaS is designed to cover the complete infrastructure of the application, that is the servers’ storage and networking. PaaS also incorporates “middleware, development tools, business intelligence (BI) services, database management systems, and more” (azure). PaaS is designed to build, test, manage, deploy, and update the web application while you, the user only has to develop and manage the services you create. The PaaS will manage software licenses, the application organization and middleware, container orchestrators, like Kubernetes, or dev tools and other properties. &lt;/p&gt;

&lt;h2&gt;
  
  
  What are Kubernates or ‘k-eights’?
&lt;/h2&gt;

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

&lt;p&gt;Kubernetes is open-source software used to manage and deploy application containers. So what that means is that most applications currently are container-based, which utilize microservices packaged with their dependencies and configurations. There may be numerous containers deployed across many different servers. Operating the many moving components can become more and more complex. Kubernates manage this complexity by delivering an open source API that dictates how and where the containers will run. Kubernates do this by controlling a number of virtual machines. The containers are then scheduled to run on these virtual machines depending on their available computation resources. Kubernates are extremely helpful because they allow containerized apps to maintain their efficiency by providing a way to schedule and deploy their containers and scale those containers to the user’s desired state.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of using PaaS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cuts coding time due to the built in app components, like workflow, directory services, security features etc.&lt;/li&gt;
&lt;li&gt;Adds development capabilities without having to search for/hire additional staff &lt;/li&gt;
&lt;li&gt;Application can be utilized over multiple platforms, including mobile, more fluidly&lt;/li&gt;
&lt;li&gt;Supports team members who are in remote locations because the development environment can be accessed over the Internet &lt;/li&gt;
&lt;li&gt;Successfully manage full application development (building, testing, deploying, and updating/managing within same integrated environment) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, Heroku is a great cloud PaaS to utilize for application deployment. Heroku allows the user to build extensible (designed to allow for added functionality) applications. By offering Heroku in a pay-as-you-go model, developers can pay for exactly what they need their application to do (to build a personal application or MVP is free). When building your next application, consider Heroku if you have never used this service. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Sources&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A, S. (2020, January 6). Heroku or Amazon Web Services – Which is Best for Your Startup? Retrieved December 29, 2020, from &lt;a href="https://rubygarage.org/blog/heroku-vs-amazon-web-services"&gt;https://rubygarage.org/blog/heroku-vs-amazon-web-services&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Heroku. (2020). What is Heroku. Retrieved December 29, 2020, from &lt;a href="https://www.heroku.com/what"&gt;https://www.heroku.com/what&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Microsoft. (2020). What is PaaS? Platform as a Service: Microsoft Azure. Retrieved December 29, 2020, from &lt;a href="https://azure.microsoft.com/en-us/overview/what-is-paas/"&gt;https://azure.microsoft.com/en-us/overview/what-is-paas/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Steele, C. (Director). (2020, November). The Web Developer BootCamp 2020 [Video file]. Retrieved December 29, 2020, from &lt;a href="https://www.udemy.com/course/the-web-developer-bootcamp/learn/lecture/22361220#overview"&gt;https://www.udemy.com/course/the-web-developer-bootcamp/learn/lecture/22361220#overview&lt;/a&gt;&lt;/p&gt;

</description>
      <category>heroku</category>
      <category>javascript</category>
    </item>
    <item>
      <title>ES6 Reflections</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Sun, 20 Dec 2020 22:39:51 +0000</pubDate>
      <link>https://forem.com/pld208/es6-reflections-5bdo</link>
      <guid>https://forem.com/pld208/es6-reflections-5bdo</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;JavaScript added some great new features in 2015 (ECMAScript 2015- ES6), one of those being a global method called reflect. Reflect is a built-in object that provides unchanging properties and methods, which have the same names as “the proxy handler methods” (MDN, 2020). Before ES6 was introduced, JavaScript did contain features that were similar to reflections. These features were not called reflections, but had similar usage, like Object.keys(), Object.getOwnPropertyDescriptor(), and Array.isArray(). The Reflect API allows you to "call methods, construct objects, get and set properties, manipulate and extend properties" (Javascript tutorial). &lt;/p&gt;

&lt;p&gt;The Reflect API is a global object, but it is slightly different than other global objects. Reflect is not a function object, so you are unable to construct it. This means you cannot use the new operator or call Reflect as a function. This is similar to the Math and JSON objects. Methods on the Reflect object are static. The Reflect object contains the same methods as the prototypical methods on Object, but there are slight differences. Let’s explore some reflect methods.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reflect Methods
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reflect.apply(target, thisArgument, argumentsList)&lt;/strong&gt; – used to call a target function with arguments specified by the argumentsList parameter. It is similar to Function.prototype.apply().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.construct(target, argumentsList[, newTarget]&lt;/strong&gt; – acts like the new operator, but as a function. It is the same as calling new target(…arguments). You can also specify a different prototype if needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.defineProperty(target, propertyKey, attributes)&lt;/strong&gt; – returns a Boolean that is true if the property was defined successfully. It is similar to Object.defineProperty().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.deleteProperty(target, propertyKey)&lt;/strong&gt; – this is the delete operator as a function. It is the same as calling delete target[propertyKey].&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.get)target, propertyKey[, receiver])&lt;/strong&gt; – returns the value of the property. It is the same as getting a property from an object target[propertyKey] as a function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.getOwnPropertyDescriptor(target, propertyKey)&lt;/strong&gt; – returns a property descriptor of the given property if it exists on the object and returns undefined otherwise. It is similar to Object.getOwnPropertyDescriptor(). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.getPropertyOf(target)&lt;/strong&gt; – same as Object.getPrototypeOf().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.has(target, propertyKey)&lt;/strong&gt; – returns a Boolean depending on whether the target has the property or not. The target can have the property as its own or inherited. This method works like the ‘in operator’ as a function. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.isExtensible(target)&lt;/strong&gt; – returns a Boolean that is true if the target is extensible. This works the same as Object.isExtensible().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.ownKeys(target)&lt;/strong&gt; – returns an array of the target object’s own property keys. The property keys cannot be inherited.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.preventExtensions(target)&lt;/strong&gt; – returns a Boolean that is true if the update was successful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.set(target, propertyKey, value[, receiver]&lt;/strong&gt; – a function that assigns values to properties and returns a Boolean that is true if the update was successful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflect.setPrototypeOf(target, prototype)&lt;/strong&gt; – a function that sets the prototype of an object and returns a Boolean that is true if the update was successful.&lt;br&gt;
(MDN Reflect, 2020)&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;Let’s look at some examples to show all of the many features of the Reflect API. Below, we have a dog object. Lets check to see if we have a specific key. &lt;/p&gt;

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

&lt;p&gt;Using the same object, we will also return the object's own keys and add a new property.&lt;/p&gt;

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

&lt;p&gt;Lastly, we will construct an object using Reflect.&lt;/p&gt;

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

&lt;p&gt;As stated above, the Reflect.construct() returns the new instance of the target or newTarget (whichever one is specified), “initialized by the target as a constructor with the given array-like object args” (JavaScript 2020). In this example, we created a new instance of the Highschool class using the Reflect.construct() method. The bestSchool object is an instance of the HighSchool class so it has the nameLocation property.&lt;/p&gt;

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

&lt;p&gt;The Reflect API is a valuable addition to JavaScript. Reflect allows you to create programs and frameworks that can handle dynamic code. After reading my brief introduction to Reflect, I hope that you will utilize its features. &lt;/p&gt;

&lt;h3&gt;
  
  
  Sources
&lt;/h3&gt;

&lt;p&gt;MDN. Reflect. Retrieved December 20, 2020, from &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect&lt;/a&gt;&lt;br&gt;
JavaScript Reflection and Reflect API in ES6 By Practical Examples. (2020, January 30). Retrieved December 20, 2020, from &lt;a href="https://www.javascripttutorial.net/es6/javascript-reflection/"&gt;https://www.javascripttutorial.net/es6/javascript-reflection/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>es6</category>
    </item>
    <item>
      <title>What is Vim and why you should use it!</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Mon, 14 Dec 2020 04:38:17 +0000</pubDate>
      <link>https://forem.com/pld208/what-is-vim-and-why-you-should-use-it-m02</link>
      <guid>https://forem.com/pld208/what-is-vim-and-why-you-should-use-it-m02</guid>
      <description>&lt;p&gt;Recently, I began an immersive coding program and we are tasked with writing blogs on various subjects. I decided to delve deeper into text-editing. I will be exploring Vim and its importance in the world of programming. &lt;/p&gt;

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

&lt;p&gt;Vim is a text editor based on the first vi text editor created. VI text editor was originally created by Bill Joy for the Unix operating system in 1976. One of the great features of Vim is that it is a &lt;em&gt;modal&lt;/em&gt; text editor. So what exactly does modal mean? Modal refers to the mode that the text editor is in will determine whether inputting alphanumeric keys outputs alphanumeric characters or will instead ‘move the cursor through the document’ (Brockmeier, 2009). For example, when you would like to save a file, in most text editors, you will need to use Ctrl-s hotkey combination, in order to save the file. By using Vim, you no longer need to use any hotkey combinations. You can simply save a file without your fingertips ever leaving the keyboard. Vim offers a multitude of features that make working with ‘structured markup languages like HTML…’ a lot easier. If you are like me, a beginner programing student, then it would behoove you to learn some Vim commands to better utilize the text-editor. &lt;/p&gt;

&lt;h2&gt;
  
  
  The modes of Vim
&lt;/h2&gt;

&lt;p&gt;When using Vim, there are three key modes: insert-mode, command mode, and last-line mode. The mode that Vim starts in is command mode. When you first open a file, by running vim &lt;em&gt;filename&lt;/em&gt;, you are able to edit that file. Alphanumeric keys are tied to the commands, therefore the alphanumeric keys you input will not be inserted (If you type ‘dd’, the entire line will be deleted, instead of simply inserting ‘dd’). You can solve this problem by switching to &lt;em&gt;insert&lt;/em&gt; mode (type ‘I’). Now the keys will be inserted. To exit insert mode, hit the esc key. The last mode that will be discussed is last-line mode. Now that we’ve entered keys into the text-editor, we need to save our work. We do this by pressing ‘:’ and Vim switches to last-line mode. To save the file, enter ‘:wq’, the w writes the file and q exits the editor. Now lets discuss some important Vim commands that will make moving around Vim and editing files much easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vim commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Moving files in Vim
&lt;/h3&gt;

&lt;p&gt;When in command mode, you can move your files around to where you need them to go. Here’s some commands to start out using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;b moves backward one word&lt;/li&gt;
&lt;li&gt;w moves forward one word&lt;/li&gt;
&lt;li&gt;j moves cursor down a line&lt;/li&gt;
&lt;li&gt;k moves cursor up a line&lt;/li&gt;
&lt;li&gt;h moves cursor one character to the left
&lt;/li&gt;
&lt;li&gt;0 moves cursor &lt;/li&gt;
&lt;li&gt;$ moves cursor to end of the line&lt;/li&gt;
&lt;li&gt;G moves to the end of the file&lt;/li&gt;
&lt;li&gt;gg moves to the beginning of the file&lt;/li&gt;
&lt;li&gt;`. moves to last edit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you need to use any of these move commands a certain number of times, you can put a number before the command. For instance, if you enter 6h, the cursor will move 6 characters to the left. If you enter 4j, the cursor will move down 4 lines. Once you feel comfortable, start playing around with this cool trick. (Zonker, 2009)&lt;/p&gt;

&lt;h3&gt;
  
  
  How to edit things in Vim
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vFfm4DK_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j2d6g7br75o0k3tme2he.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vFfm4DK_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j2d6g7br75o0k3tme2he.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Editing text in Vim has never been easier, especially now that you know how to move around your file. Lets try deleting some text. Move the cursor to the end of the word and type x. By doing so, you should have deleted the letter the cursor was on. If this is not what you meant to do, no worries, we can simply undo the command by typing u. Now, if you would like to undo your undo, input Ctrl-r. This will redo your last command entered. If you want to delete to the end of the file, hit dG. The following are more editing commands that you will want to be familiar with: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dw deletes a word&lt;/li&gt;
&lt;li&gt;d0 will delete to the beginning of a line&lt;/li&gt;
&lt;li&gt;d$ deletes to the end of a line&lt;/li&gt;
&lt;li&gt;dgg deletes to the beginning of a file&lt;/li&gt;
&lt;li&gt;dG deletes to the end of the file&lt;/li&gt;
&lt;li&gt;u undos the last action&lt;/li&gt;
&lt;li&gt;Ctrl-r redos the last action&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Searching/Replacing text
&lt;/h3&gt;

&lt;p&gt;We now know how to move around our text and edit our text, but what about if we need to search or replace text? Searching the document is best accomplished from command mode. Use ‘/’ and then the text you want to search for. So if I was searching for “puppy” I would type /puppy and then hit enter. A few more commands: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/text to search for text in the document&lt;/li&gt;
&lt;li&gt;n move cursor to next instance of the text from the last search&lt;/li&gt;
&lt;li&gt;N moves the cursor to the previous instance of the text from the last search&lt;/li&gt;
&lt;li&gt;?text searches for text in the document, going backwards&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Copying and Pasting
&lt;/h3&gt;

&lt;p&gt;Copying and pasting text is important when trying to edit the document. If you are trying to select text, in the command mode, hit V and you will be able to highlight the text by using your cursor. Some commands that will help to get you started are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;v highlights one character at a time&lt;/li&gt;
&lt;li&gt;V highlights one line at a time&lt;/li&gt;
&lt;li&gt;Ctrl-v highlight by columns&lt;/li&gt;
&lt;li&gt;p paste text after current line&lt;/li&gt;
&lt;li&gt;P paste text on the current line&lt;/li&gt;
&lt;li&gt;y yank text into the copy buffer&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Saving and Quitting
&lt;/h3&gt;

&lt;p&gt;Now that we have edited our document, we must save the work we have just created. If you are in insert mode, make sure you hit esc. Then enter :, and you should see a line at the bottom of the screen. This means that your cursor is ready for your input. In order to write the file you are currently editing, enter w. (w) writes the file to the existing filename. When you are finished, hit :q to quit. You can couple the commands and add a ! to quit the program with no warning, :wq!. Here’s some great exit commands: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;:wq writes file to disk and quits the editor&lt;/li&gt;
&lt;li&gt;:q! quits file with no warning&lt;/li&gt;
&lt;li&gt;:q quits file with warning&lt;/li&gt;
&lt;li&gt;ZZ save workspace and quits editor (same as :wq)&lt;/li&gt;
&lt;li&gt;: 10, 15 w temp (writes lines 10 through 15 into file named temp) Other line numbers can be used &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, Vim is a great text-editor to use because it makes working with structured markup languages easier. Your fingers never have to leave the keyboard, so you can do-away with using your mouse altogether. You should become familiar with using the above Vim commands in order to cutdown on the time it takes to edit your documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;&lt;br&gt;
Arsenault, C. (2020, July 13). Popular Vim Commands - Comprehensive Vim Cheat Sheet. Retrieved December 14, 2020, from &lt;a href="https://www.keycdn.com/blog/vim-commands"&gt;https://www.keycdn.com/blog/vim-commands&lt;/a&gt;&lt;br&gt;
Brockmeier, Joe. (2009, November 21). Vim 101: A Beginner's Guide to Vim. Retrieved December 14, 2020, from &lt;a href="https://www.linux.com/training-tutorials/vim-101-beginners-guide-vim/"&gt;https://www.linux.com/training-tutorials/vim-101-beginners-guide-vim/&lt;/a&gt;&lt;br&gt;
R. (n.d.). Vim Editor Commands. Retrieved December 14, 2020, from &lt;a href="https://www.radford.edu/%7Emhtay/CPSC120/VIM_Editor_Commands.htm"&gt;https://www.radford.edu/~mhtay/CPSC120/VIM_Editor_Commands.htm&lt;/a&gt;&lt;br&gt;
Vi. (2020, December 13). Retrieved December 14, 2020, from &lt;a href="https://en.wikipedia.org/wiki/Vi"&gt;https://en.wikipedia.org/wiki/Vi&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vim</category>
      <category>texteditor</category>
      <category>html</category>
      <category>javascript</category>
    </item>
    <item>
      <title>An Introduction to Scopes and Closures</title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Tue, 17 Nov 2020 23:03:54 +0000</pubDate>
      <link>https://forem.com/pld208/an-introduction-to-scopes-and-closures-4jpb</link>
      <guid>https://forem.com/pld208/an-introduction-to-scopes-and-closures-4jpb</guid>
      <description>&lt;p&gt;Scopes and closures, one of the most iconic duos of JavaScript are vital to implementing your code in both functional and object-oriented programming styles. But what exactly do scopes and closures have to do with each other? Let’s start simple with scopes. The scope tells you what is visible and where in your code. We start with the two most basic scopes: global and local. The global scope refers to anything outside of the Function, and local scopes refer to the scope that is local to a function. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; &lt;/p&gt;

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

&lt;p&gt;The variable firstName is in the global scope, whereas the variable a is local to the function addStuff and is therefore in the local scope. &lt;/p&gt;

&lt;h3&gt;
  
  
  Local Scope
&lt;/h3&gt;

&lt;p&gt;The local scope refers to variables that are declared within the body of a Function. Variables declared in the local scope are only available within the Function itself and any other functions declared within it. &lt;/p&gt;

&lt;h3&gt;
  
  
  Nested Scope
&lt;/h3&gt;

&lt;p&gt;Functions can be declared or defined within other Functions, which creates nested scopes. In the below example feeling is declared within happyDays(), but is accessible within the child scope of sadDays(). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;But if I try to invoke happyDays(), we will get a ReferenceError because parent scopes do not have access to variables defined within children scopes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nHjGWL1v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tbpwuyn9noluc3pu5hdb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nHjGWL1v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tbpwuyn9noluc3pu5hdb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Nesting functions inside of other functions allows us to create privacy, meaning we will have variables declared that are not accessible in other parts of the application. &lt;/p&gt;

&lt;h3&gt;
  
  
  What is a closure?
&lt;/h3&gt;

&lt;p&gt;According to MDN web docs, “a closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment)” (MDN, ‘Closures’). To put it simply, a closure occurs when a Function definition contains references to variables in its parent scope. In ‘lexical scoping’, an inner function has access to the outer function’s scope. Lexical scoping refers to where variables can be accessed. This accessibility is determined by the position of the variables in the source code. Closures are created every time a function is created in JavaScript. Review the following example:&lt;/p&gt;

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

&lt;p&gt;The function healthyPerson creates a local variable named healthyFoods and a function healthy. The healthy function is an inner function that is defined inside of healthyPerson and is only available within the body of healthyPerson function. Because inner functions have access to variables of outer functions, healthy() can access the variable fullName declared in the parent function, healthyPerson(). The function healthy(), maintains a reference to its lexical environment, which is where the variable fullName exists. So when healthyDude() is invoked, the variable fullName is still available for use. &lt;/p&gt;

&lt;h3&gt;
  
  
  So, why should you use closures?
&lt;/h3&gt;

&lt;p&gt;Closures are vital to computer programming because they allow us to create private data. When using closures for data privacy, variables within the closures (inner functions) are only in scope within the outer function. So if you have some form of private user data located within an inner function, you cannot access the data from an outside scope, except through “the object’s privileged methods. In JavaScript, any exposed method defined within the closure scope is privileged” (Elliott, 2020).&lt;/p&gt;

&lt;p&gt;I hope you enjoyed my introduction to scopes and closures! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br&gt;
Elliott, E. (2020, August 26). Master the JavaScript Interview: What is a Closure? Retrieved November 17, 2020, from &lt;a href="https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-closure-b2f0d2152b36"&gt;https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-closure-b2f0d2152b36&lt;/a&gt;&lt;br&gt;
MDN. (2020). Closures. Retrieved November 17, 2020, from &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Pure Functions-- What's all the craze about? </title>
      <dc:creator>Patrice Williams</dc:creator>
      <pubDate>Wed, 23 Sep 2020 14:08:12 +0000</pubDate>
      <link>https://forem.com/pld208/pure-functions-what-s-all-the-craze-about-3ne5</link>
      <guid>https://forem.com/pld208/pure-functions-what-s-all-the-craze-about-3ne5</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JRHO_5fX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wovjg1o2fsaekxx48ca6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JRHO_5fX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wovjg1o2fsaekxx48ca6.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Pure Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let’s talk about pure functions and what exactly makes them “so pure.” In order to do this we need to take a deeper look at functions in general. Functions can be divided into two groups: functions “that are called for their side effects” and “those that are called for their return value” (Haverbeke, Eloquent Javascript). A side effect occurs when there is a change in the application that “is observable outside the called function other than its return value" (Elliot, Master the Javascript). &lt;/p&gt;

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

&lt;p&gt;Delving deeper into the land of side effects and functions, some functions create values while other functions are called for their side effects. It is best code practice to use functions that create values  rather than functions that perform the side effects. Functions that do not have side effects are easier to combine. Some examples of side effects include: “modifying any external variable or object property (e.g., a global variable, or a variable in the parent function scope chain) logging values to the console, writing to the screen, writing to a file, writing to the network, triggering any external process etc” (Elliot, Master the Javascript). Ultimately, the less side effects we have in our code, the easier our software will be to debug, test and maintain. This leads us to further discuss pure functions. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pure Function Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Pure functions are functions that always return the same value for the same inputs and pure functions produce values in which there are no side effects. &lt;/p&gt;

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

&lt;p&gt;The above function is &lt;em&gt;pure&lt;/em&gt;. The function produces &lt;strong&gt;no&lt;/strong&gt; side effects.&lt;/p&gt;

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

&lt;p&gt;ImpureFunc is an impure function. Its output is not dependent on the input value. We can change the above function and make it pure. &lt;/p&gt;

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

&lt;p&gt;The above function is now pure because it did not produce any side effects. It also returned an output based on the input value.&lt;/p&gt;

&lt;p&gt;To recap, pure functions always return the same value for the same inputs and do not rely on side effects from other codes. A pure function will not alter any input or value in the global scope. Never alter a variable in the global scope when ensuring functional purity. Thank you for reading my quick review of pure functions. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Sources&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Haverbeke, Marijn. “Chapter 3Functions.” Functions : Eloquent JavaScript, eloquentjavascript.net/03_functions.html. &lt;/p&gt;

&lt;p&gt;Elliott, Eric. “Master the JavaScript Interview: What Is Functional Programming?” Medium, JavaScript Scene, 2 July 2019, medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0. &lt;/p&gt;

&lt;p&gt;Chidume Nnamdi. “Understanding Javascript Mutation and Pure Functions.” Medium, Bits and Pieces, 20 Aug. 2019, blog.bitsrc.io/understanding-javascript-mutation-and-pure-functions-7231cc2180d3. &lt;/p&gt;

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