<?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: Cedric Muuo</title>
    <description>The latest articles on Forem by Cedric Muuo (@damiansketch).</description>
    <link>https://forem.com/damiansketch</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%2F428299%2Fea2d32e0-55bc-4458-9850-567878de34ba.jpg</url>
      <title>Forem: Cedric Muuo</title>
      <link>https://forem.com/damiansketch</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/damiansketch"/>
    <language>en</language>
    <item>
      <title>An Iterative solution to Binary Tree Pre-Order Traversal in Python3</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Mon, 05 Sep 2022 22:55:52 +0000</pubDate>
      <link>https://forem.com/damiansketch/an-iterative-solution-to-binary-tree-pre-order-traversal-in-python3-2jdd</link>
      <guid>https://forem.com/damiansketch/an-iterative-solution-to-binary-tree-pre-order-traversal-in-python3-2jdd</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7wh49dX0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/564lzwehk7gveik2upoe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7wh49dX0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/564lzwehk7gveik2upoe.png" alt="Image description" width="221" height="228"&gt;&lt;/a&gt;Binary Trees are hierarchical data structures in which each parent node has at most 2 children nodes. In today's article, we will go over an important topic that shows up in plenty of technical coding interviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PROBLEM STATEMENT&lt;/strong&gt;: Given the root of a binary tree, return the preorder traversal of its nodes' values. &lt;strong&gt;Provide an iterative solution instead of a recursive one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOLUTION:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pre-Order Traversal in a Binary Tree happens in this order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visit the root first&lt;/li&gt;
&lt;li&gt;Traverse the left subtree&lt;/li&gt;
&lt;li&gt;Traverse the right subtree&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In order to solve this problem with an iterative solution, we will have to implement the &lt;strong&gt;Stack&lt;/strong&gt; data structure. This is a non-linear data structure in which the operations are carried out in a LIFO(Last In First Out) order. The approach to our answer is simple and will be as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We will initialize two lists i.e one to carry the output and another to act as our stack data structure. The stack will be initialized with the root value of the binary tree.&lt;/li&gt;
&lt;li&gt;We will then perform a while loop on our stack for as long as it has a value. In the loop, the following operations shall be carried out in order:&lt;/li&gt;
&lt;li&gt;Remove(pop) the top most value(the root node) in the stack and append it to the output list&lt;/li&gt;
&lt;li&gt;Push the right child of the popped value into the stack&lt;/li&gt;
&lt;li&gt;Push the left child of the popped value into the stack&lt;/li&gt;
&lt;li&gt;Return the output list at the end of the loop&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result of this process, the root value will be accessed first, then the left subtree, and then the right subtree values will be accessed last.&lt;/p&gt;

&lt;p&gt;It is important to note that the right child is pushed into the stack first then the left child. This is because of the LIFO nature of the stack. Doing so will allow us to access the left child first before the right child.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TALK IS CHEAP, SHOW ME THE CODE:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Definition of a Binary Tree node
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right
class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -&amp;gt; List[int]:
        output, nodestack = [], [root]
        while nodestack:
            node = nodestack.pop()
            if node:  # preorder: root -&amp;gt; left -&amp;gt; right
                output.append(node.val)
                nodestack.append(node.right)
                nodestack.append(node.left)
        return output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If this piece was helpful, please feel free to like and subscribe to my newsletter for more DSA content in Python.&lt;/p&gt;

</description>
      <category>python</category>
      <category>leetcode</category>
      <category>algorithms</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Checking for a Palindrome using Javascript built-in functions</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Fri, 23 Apr 2021 07:55:15 +0000</pubDate>
      <link>https://forem.com/damiansketch/checking-for-a-palindrome-using-javascript-built-in-functions-13h0</link>
      <guid>https://forem.com/damiansketch/checking-for-a-palindrome-using-javascript-built-in-functions-13h0</guid>
      <description>&lt;h1&gt;
  
  
  CHALLENGE
&lt;/h1&gt;

&lt;p&gt;Return 'true' if a word is a palindrome and 'false' if not.&lt;/p&gt;

&lt;h1&gt;
  
  
  EXPLANATION
&lt;/h1&gt;

&lt;p&gt;What is a Palindrome? It is a word or a sentence that is spelled the same both forward and backward, ignoring the punctuation, casing, and spacing. An example is the word 'Racecar'. To check for a palindrome in Javascript, you will need to remove all non-alphanumeric characters(punctuations, symbols, and spaces)then turn all the letters into lowercase.&lt;/p&gt;

&lt;p&gt;In order to remove the non-alphanumeric letters, we shall use a Regular Expression(Regex). Regular Expressions are patterns used to match character combinations in strings. The Regex used to match any non-alpha-numeric characters is '[\W_]' which can be expounded to read '[^A-Za-z0–9]'.&lt;/p&gt;

&lt;h1&gt;
  
  
  SOLUTION
&lt;/h1&gt;

&lt;p&gt;For this solution, we will use several methods:&lt;br&gt;
a. toLowerCase() which will return all the characters in the string in lowercase.&lt;br&gt;
b. .replace() which will return the replaced string(only alpha-numeric characters) by the Regular Expression we just created.&lt;br&gt;
c. .split() which will split the returned string into and return an array of characters.&lt;br&gt;
d. .reverse() which will reverse the order of the characters in the array.&lt;br&gt;
e. .join() which will join the reversed characters into a string.&lt;/p&gt;

&lt;p&gt;Here is the complete code for this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const str = 'A man, a plan, a canal. Panama';

function palindrome(str) {

//Remove all the non-alphanumerics and turn the string to lowercase

var lowRegStr = str.replace(/[^0-9a-zA-Z]/g, '').toLowerCase();

// Split the returned string, reverse the characters ,join them, and return the reversed string.

var reverseStr = lowRegStr.split('').reverse().join('');
return reverseStr === lowRegStr;
}

console.log(palindrome(str));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will log 'true' if the string is a palindrome and 'false' if otherwise.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Designing a Testing Strategy using the Test Pyramid</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Mon, 19 Apr 2021 02:45:23 +0000</pubDate>
      <link>https://forem.com/damiansketch/designing-a-testing-strategy-using-the-test-pyramid-260d</link>
      <guid>https://forem.com/damiansketch/designing-a-testing-strategy-using-the-test-pyramid-260d</guid>
      <description>&lt;p&gt;If you are planning to kickstart or improve software testing in your system and are looking to venture more into automation rather than manual testing, then look no further. In this article, I will discuss the Test Pyramid in-depth and help you understand its core foundations and why they are valuable in automation testing.&lt;/p&gt;

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

&lt;p&gt;As displayed above, the Test Pyramid is simply a 3-layered pyramid that defines the types of tests to be included in your test plan, the sequence of the tests, and the frequency in which they will be run. The most outstanding benefit of using this test automation framework is the efficiency it introduces in the development eco-system. This is because it reduces the time required for developers to identify if a change introduced breaks the code as it looks to offer feedback as soon as possible in the system.&lt;/p&gt;

&lt;p&gt;The pyramid is divided into 3 levels:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unit Tests&lt;/li&gt;
&lt;li&gt;Integration Tests&lt;/li&gt;
&lt;li&gt;End-to-End Tests(UI Tests)&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Level 1 - Unit Tests
&lt;/h1&gt;

&lt;p&gt;They are used to test the individual components and functionalities to validate that they work as expected in isolated conditions. They form the largest subset of the pyramid and in that case, they should be designed to run as fast as possible. Every time a new feature is introduced, this suite is run(which will be quite often in any developing system). As a result, developers will receive immediate feedback on if the introduced change might have had an impact on existing individual components.&lt;/p&gt;

&lt;p&gt;In order to build a sturdy unit test suite, it is recommended to use the Test-Driven Development methodology which in summary requires tests to be written before any code hence promoting cleaner, simpler and bug-free code. To read more on TDD and other testing approaches, consider this article &lt;a href="https://www.browserstack.com/guide/tdd-vs-bdd-vs-atdd"&gt;TDD vs BDD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It is important to ensure you build a potent unit test suite as this will be the foundation of the pyramid and is the key to seamless communication in a testing system.&lt;/p&gt;

&lt;h1&gt;
  
  
  Level 2 - Integration Tests
&lt;/h1&gt;

&lt;p&gt;These tests are used to verify that the individual units can integrate properly with external components or other pieces of code from the software. They also test how a feature communicates with external dependencies such as databases and APIs.&lt;/p&gt;

&lt;p&gt;Integration tests are slower to run as compared to unit tests. They should therefore not be run as often as unit tests as you have more features to cover and more testing types to conduct. Note that these tests are run in a production environment.&lt;/p&gt;

&lt;h1&gt;
  
  
  Level 3 - End-to-End tests(E2E tests)
&lt;/h1&gt;

&lt;p&gt;As the name suggests, these tests ensure that the application is running flawlessly from start to finish. These sit at the top of the pyramid and the most important thing to consider when writing these tests is the user's perspective. How would an actual user interact with the application? How can these tests then be written to replicate this interaction? A good approach to consider when writing these tests is Behavior-Driven Development which in summary describes behaviors in a single notation that is directly accessible to domain experts, testers, and developers consequently improving communication.&lt;/p&gt;

&lt;p&gt;Also known as UI tests, these are the most fragile in the pyramid as they test a large variety of scenarios and take the longest to run. In that case, it is advised to run E2E tests only for high-level flows in the application. Like Integration tests, these tests may require the app to communicate with external dependencies resulting in possible bottlenecks in the system&lt;/p&gt;

&lt;p&gt;In conclusion, the Testing Pyramid is an effective framework to consider for any QA team due to its array of benefits. The most significant of these being:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Using the Test pyramid introduces a clear progression and sense of logic in the system and this directly improves the speed and efficiency of the process. Time management and communication issues become a thing of the past.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The pyramid gives the testers the right priorities when writing the scripts. Testers will have to verify the unit tests run flawlessly before moving on to the other tests. This will ensure that the back-end functionalities are stable and will save you a lot of time as the features increase.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>testing</category>
      <category>qa</category>
    </item>
    <item>
      <title>The Power of 'Deep work' in Remote settings.</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Fri, 21 Aug 2020 05:23:47 +0000</pubDate>
      <link>https://forem.com/damiansketch/the-power-of-deep-work-in-remote-settings-2hhc</link>
      <guid>https://forem.com/damiansketch/the-power-of-deep-work-in-remote-settings-2hhc</guid>
      <description>&lt;p&gt;Recent circumstances have seen the majority of companies and potential job seekers turn to remote working. Carrying your laptop in your bag and heading out to the beach with a Daiquiri in hand ready to write code and change the world, right?&lt;/p&gt;

&lt;p&gt;WRONG!!!&lt;/p&gt;

&lt;p&gt;Working remotely is not a hobby that you can do from simply anywhere with an internet connection and still expect quality output of work. Well, at least not for Software Developers. &lt;/p&gt;

&lt;p&gt;Working in a remote setting relies heavily on Asynchronous communication which is basically communication with team members via platforms such as Slack and Google Meet. For quality output to be achieved in this setting, team members have to be effective in communication so as to deliver a fully understandable message whilst saving time. &lt;/p&gt;

&lt;p&gt;So, What is Deep Work?&lt;/p&gt;

&lt;p&gt;Deep work is the state of development/working that is distraction-free and enables a developer to focus only on the task at hand delivering quality output in a short time.&lt;br&gt;
Whether you agree or not, you will achieve more productivity when you are in a quiet office-like environment focussing only on one task as compared to working at the beach with people playing and being noisy all over the place.&lt;/p&gt;

&lt;p&gt;To achieve this state of deep work, I recommend you have access to a quiet, distraction-free room where you can set up your work equipment such as a table and a chair. Once the perfect working environment is established, you need to actually train your mind to achieve this state of deep work.&lt;/p&gt;

&lt;p&gt;Keep your phone on silent mode and put it away from you. I then suggest using the &lt;a href="https://lifehacker.com/tomighty-is-a-simple-elegant-pomodoro-timer-for-boosti-5818856"&gt;Pomodoro Technique&lt;/a&gt;.&lt;br&gt;
Basically, group your tasks in order of priority then take 25-45 minute sessions of purely focussing on a task until it is complete. After every session, take a 5-10 minute break, grab water or a cup of coffee then do another session of Deep Work. &lt;/p&gt;

&lt;p&gt;At the end of the day, I think we can all agree that 4 hours of Deep work sessions will achieve more productivity than 8 filled with distractions from team members and checking your social media feed every 10 minutes.&lt;/p&gt;

</description>
      <category>remote</category>
    </item>
    <item>
      <title>Installation and setup of Node.js on your Linux machine</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Thu, 13 Aug 2020 12:31:32 +0000</pubDate>
      <link>https://forem.com/damiansketch/installation-and-setup-of-node-js-on-your-linux-machine-3nmj</link>
      <guid>https://forem.com/damiansketch/installation-and-setup-of-node-js-on-your-linux-machine-3nmj</guid>
      <description>&lt;p&gt;Node.js is an open-source JavaScript runtime built on Chrome's V JavaScript engine and it is used to run JavaScript on the server.&lt;/p&gt;

&lt;p&gt;In today's post I will show you a step by step guide on how to install Nodejs on your Ubuntu system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First things first, fire up your Terminal using Ctrl + Alt + T.&lt;/li&gt;
&lt;li&gt;To install Nodejs use the following command;
&lt;code&gt;sudo apt install nodejs&lt;/code&gt;
easy-peasy. Once that is done, check the version of node you are using by typing in;
&lt;code&gt;node -v or node –version&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: It is recommended to install Node Package Manager(NPM) with Node.js. NPM is an open-source library of Node.js packages.&lt;br&gt;
To install NPM, use the following commands:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install npm&lt;br&gt;
npm -v or npm –version&lt;/code&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to create a dropdown menu on hover using jQuery</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Sat, 25 Jul 2020 15:10:20 +0000</pubDate>
      <link>https://forem.com/damiansketch/how-to-create-a-dropdown-menu-on-hover-using-jquery-8p5</link>
      <guid>https://forem.com/damiansketch/how-to-create-a-dropdown-menu-on-hover-using-jquery-8p5</guid>
      <description>&lt;p&gt;Hello fellas, in today's post I want to show you guys a cool jQuery trick I learned recently. &lt;/p&gt;

&lt;p&gt;When you are creating interactive web pages it is very likely you will need to have a navigation bar that has buttons or links which direct users to other webpages. In some scenarios, you need to display a couple of options for the user to choose from and an easy to use choice for this would be using a bit of jQuery to show a dropdown menu with links on hover.&lt;/p&gt;

&lt;p&gt;For this you will need to have jQuery installed at the base of your project and linked to your HTML file as so;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ok so let's hop right into adding the flesh of the project. First, let us create a wrapper that will hold all of our content. Then create a button or just a link that will drop down our options. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;div class="wrapper"&amp;gt;&lt;br&gt;
      &amp;lt;div class="button"&amp;gt;&lt;br&gt;
        &amp;lt;button value="Hover on me!" id="hover"&amp;gt;Hover On Me! &lt;br&gt;
        &amp;lt;/button&amp;gt;&lt;br&gt;
      &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The next step is to add the list of options you want to be displayed on hover. In this case, we will create links to other pages.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;div class="dropdown"&amp;gt;&lt;br&gt;
        &amp;lt;ul&amp;gt;&lt;br&gt;
          &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;JavaScript Page&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br&gt;
          &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;HTML Page&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br&gt;
          &amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;CSS Page&amp;lt;/li&amp;gt;&amp;lt;/a&amp;gt;&lt;br&gt;
        &amp;lt;/ul&amp;gt;&lt;br&gt;
      &amp;lt;/div&amp;gt;&lt;br&gt;
 &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now we have our HTML all set up. The next step is to set the display of the dropdown options to 'none'. This is because we only want this list of options to appear when we hover over the button and disappear when the mouse moves away. &lt;/p&gt;

&lt;p&gt;In your CSS file;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.dropdown{&lt;br&gt;
  display: none;&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Looking pretty great so far, so let us proceed to the final step and this will be creating the actual hover effect using JavaScript.&lt;/p&gt;

&lt;p&gt;In your JS file add these five lines of code;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$(document).ready(function(){&lt;br&gt;
  $(".button").hover(function(){&lt;br&gt;
    $(".dropdown").slideToggle();&lt;br&gt;
  });&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;What we are simply telling jQuery here is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check if the document is done loading using .ready()&lt;/li&gt;
&lt;li&gt;'Listen' to the element with the class "button" and 
  check if the user hovers on it using .hover()&lt;/li&gt;
&lt;li&gt;If the user hovers on the element, slide down the 
 dropdown menu using slideToggle()&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: "slideToggle()" toggles between "slideDown()" and "slideUp()" depending on the element method which in this case is "hover()", hence the dropdown menu will slide down when the user hovers above the button and slide up when the user moves away from the button. &lt;/p&gt;

&lt;p&gt;Happy coding and feel free to leave comments down below&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>Customizing your webpage with cool Google Fonts</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Sun, 12 Jul 2020 18:54:25 +0000</pubDate>
      <link>https://forem.com/damiansketch/customizing-your-webpage-with-cool-google-fonts-3220</link>
      <guid>https://forem.com/damiansketch/customizing-your-webpage-with-cool-google-fonts-3220</guid>
      <description>&lt;p&gt;You probably have written a couple of HTML and CSS files by now. The font applied to your text is not as appealing to your eyes and you want to play around with a couple of options till you find the right one. You're in the right place then.&lt;/p&gt;

&lt;p&gt;Google Fonts is a rich library of fonts where you can pick from almost one thousand Font Families and even more font styles. To get started with Google Fonts, simply add this line at the top of your CSS file that you will use to style your text;&lt;br&gt;
 @import url("&lt;a href="https://fonts.googleapis.com/css?family=%22Family+name%22&amp;amp;display=swap%22"&gt;https://fonts.googleapis.com/css?family="Family+name"&amp;amp;display=swap"&lt;/a&gt;);&lt;br&gt;
where "Family name" is the name of the font family you have chosen after browsing through &lt;a href="https://fonts.google.com/"&gt;Google Fonts'&lt;/a&gt; list.&lt;/p&gt;

&lt;p&gt;Note that whenever a font has a Family name made up of more than one word, the words are separated by a + sign.&lt;/p&gt;

&lt;p&gt;To apply the font to your content add the "font-family" property to your selector like this:&lt;/p&gt;

&lt;p&gt;.text{&lt;br&gt;
  font-family: "Family name";&lt;br&gt;
}&lt;br&gt;
where "Family name" is the family name of the chosen Font.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An important thing to note is that while writing the family name on the link at the top of the file we do not use quotation around the name but while applying it to the CSS selector, we use quotation marks.&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>VS Code Customization For Front End Developers.</title>
      <dc:creator>Cedric Muuo</dc:creator>
      <pubDate>Fri, 10 Jul 2020 12:14:34 +0000</pubDate>
      <link>https://forem.com/damiansketch/vs-code-customization-for-front-end-developers-5f81</link>
      <guid>https://forem.com/damiansketch/vs-code-customization-for-front-end-developers-5f81</guid>
      <description>&lt;p&gt;Hey guys, Cedric here.I'm a Front End Developer based in Nairobi, Kenya. I'm constantly working on my &lt;em&gt;Design game&lt;/em&gt; with web development. I love the concept of Integrating photography and web design and therefore in the meantime if there is any photographer out there that feels they need a web developer to grow their brand, feel free to reach out to me. Sooner, I'll get a camera and create my own content. One day at a time. &lt;/p&gt;

&lt;p&gt;Anyway, enough of me ... Today I'll show you how some few tips and tricks I have learned so far on customizing your Interface especially for beginner devs who are trying to find their way around VS Code.&lt;/p&gt;

&lt;h1&gt;
  
  
  THEMES
&lt;/h1&gt;

&lt;p&gt;The first thing you will need to customize is definitely the theme. Every dev needs to pick the right theme and colors for their tags and syntax. This is important to get you to enjoy what you do. I have to admit, opening up my editor really excites me just by how it looks and feels.&lt;br&gt;
To get your terminal looking right and in the right mood for development, go to settings and search for 'Themes'. Here you will find a list of themes that you can choose from. If these still are not enough to choose from, here is a link that will help you find more options for your editor; &lt;a href="https://medium.com/@haxzie/curated-list-of-best-vscode-dark-themes-855337f77e19"&gt;VS Code Themes&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  GITHUB SETUP
&lt;/h1&gt;

&lt;p&gt;Working with code every day and more importantly with other developers will require you to put up your code on Github for ease of access and collaboration by other devs. Github is an open-source version control system that lets developers share code with others and also allows them to make changes to the code. VS Code allows you to fetch, edit, commit and push code back to Github with a few easy steps. To set it up, go to settings, search for Github and scroll down to "Git Authentification". Click on the option and authorize Github. Once this is done, you will be able to access Github functionality from the navigation bar on the left end of your screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  GITLENS
&lt;/h3&gt;

&lt;p&gt;An additional tool to help with your source control is GitLens.GitLens supercharges the Git capabilities built into Visual Studio Code. It helps you to visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more. To learn more about GitLens have a look at &lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens"&gt;GitLens&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  EXTENSIONS
&lt;/h1&gt;

&lt;p&gt;VS Code Extensions let you add tools such as "HTML Snippets" which autocomplete HTML tags once you start typing, languages such as Python and JavaScript, and debuggers such as "Debugger for Firefox".These extensions will help you a great deal with your development workflow. To add Extensions to your interface, click the 'Manage' icon at the left bottom corner and head to Extensions. Here, you can search for any Extensions that will suit your development environment and another cool feature about VS Code is that they will recommend to you a whole load of Extensions that will make your work much simpler and organized.  &lt;/p&gt;

&lt;h1&gt;
  
  
  FIND AND REPLACE
&lt;/h1&gt;

&lt;p&gt;Another really cool feature that has helped me a lot is the 'Find And Replace' feature. Take a scenario where you are working on a project and as you begin, you name your main file, 'home.html'. As you keep developing the project, you obviously link this file to other files hence there are a couple of 'home.html's in different files. Now, say you want to host your project on &lt;a href="https://pages.github.com/"&gt;Github Pages&lt;/a&gt;. As per custom GitHub pages rules, your project has to have an 'index.html' file at the base of the repository for your site to go live. This means you have to replace all the 'home.html's with 'index.html' including the name of the file itself. &lt;/p&gt;

&lt;p&gt;Here is where our tool comes in handy. By using this tool, you can simply find 'home.html' across every file and replace that instance with 'index.html'. I know, it saves you a lot of time that would have gone into making the changes individually on each file.&lt;/p&gt;

&lt;h1&gt;
  
  
  SPLIT EDITOR
&lt;/h1&gt;

&lt;p&gt;Just as the name goes, enabling this will split your editor's workspace vertically giving you the power to simultaneously work on more than one file. The future is now, isn't it?&lt;/p&gt;

&lt;p&gt;I have come to the end of my list, for now. I hope this helps you in simplifying your workflow as you get to work with VS Code. As I also keep developing, I will occasionally update this article with it's I find helpful.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
