<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ricahcyuzuzo</title>
    <description>The latest articles on DEV Community by ricahcyuzuzo (@ricahcyuzuzo).</description>
    <link>https://dev.to/ricahcyuzuzo</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%2F320721%2Fe8fa6664-e8e4-473d-a0ea-2d111e585ff9.png</url>
      <title>DEV Community: ricahcyuzuzo</title>
      <link>https://dev.to/ricahcyuzuzo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ricahcyuzuzo"/>
    <language>en</language>
    <item>
      <title>Evolution of MERN Stack </title>
      <dc:creator>ricahcyuzuzo</dc:creator>
      <pubDate>Sun, 01 Mar 2020 15:41:27 +0000</pubDate>
      <link>https://dev.to/ricahcyuzuzo/evolution-of-mern-stack-4i40</link>
      <guid>https://dev.to/ricahcyuzuzo/evolution-of-mern-stack-4i40</guid>
      <description>&lt;h1&gt;
  
  
  MERN Stack
&lt;/h1&gt;

&lt;p&gt;The MERN Stack is the javascript that is increasing more faster than any stack ever. This stack has a group of technologies that one takes its role and they are very important in their tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies
&lt;/h2&gt;

&lt;p&gt;There are 4 Different technologies in the stack which are MongoDB, Express, React and Node.&lt;/p&gt;

&lt;p&gt;React is a front-end Javascript library that is moving fast to the end line of developer's hearts, It was developed by Facebook. It came to existence in 2011 by a software engineer called Jordan Walke. At that time, The React crew and Facebook decided to make it an opensource in May 2013 at the JSConf US.&lt;/p&gt;

&lt;p&gt;In 2015 at the JSConf, They announced the React Native that helps to develop mobile apps on different Operating Systems such as Android and IOS.&lt;/p&gt;

&lt;p&gt;MongoDB is a NoSQL database that is fast in performance and it is also bringing more applications to life, and it very reliable.&lt;/p&gt;

&lt;p&gt;Express is also a library that works on the Backend and it is also becoming more popular.&lt;/p&gt;

&lt;p&gt;Nodejs is the technology that holds the Backend and it works well with Express.&lt;/p&gt;

&lt;p&gt;In my opinion, I would advise everyone who wants to go far with javascript, they could go with the MERN Stack because it is awesome.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                    -- Happy Coding --
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

</description>
      <category>react</category>
      <category>mongodb</category>
      <category>express</category>
      <category>node</category>
    </item>
    <item>
      <title>The challenges I faced and solutions of my remote work journey so far</title>
      <dc:creator>ricahcyuzuzo</dc:creator>
      <pubDate>Mon, 27 Jan 2020 15:37:06 +0000</pubDate>
      <link>https://dev.to/ricahcyuzuzo/the-challenges-i-faced-and-solutions-of-my-remote-work-journey-so-far-5me</link>
      <guid>https://dev.to/ricahcyuzuzo/the-challenges-i-faced-and-solutions-of-my-remote-work-journey-so-far-5me</guid>
      <description>&lt;p&gt;Hello There, I'm Richard NSHIMYUMUKIZA. For this blog post, I'm going to share with you my experience with the first remote work I've ever done, it was so interesting. Deeply I will talk about the challenges I personally faced and even the solutions. Keep reading...&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenges I faced!
&lt;/h2&gt;

&lt;p&gt;Most of the time, when we learn new things that we don't know, it becomes bored somehow, it becomes difficult when you start working in the way you were not familiar with. So, there are many challenges I faced!&lt;/p&gt;

&lt;h3&gt;
  
  
  The Internet
&lt;/h3&gt;

&lt;p&gt;This is the biggest challenge I faced, Normally internet is a service that is sold by many service providers. In Rwanda, the internet that can be used in remote work can be somehow expensive for those who don't have any source of income and (I am one of those!).&lt;/p&gt;

&lt;p&gt;It was very hard to find money for enough internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  The working Environment
&lt;/h3&gt;

&lt;p&gt;We all know that a good environment can affect your productivity and that is a principal.&lt;br&gt;
While I started working remotely I had a bad working environment and affected my work.&lt;/p&gt;

&lt;p&gt;In the first time of my remote work, I used work from my room at home but the desk setup and enough light didn't allow me to work convenience and be productive.&lt;/p&gt;

&lt;h3&gt;
  
  
  People around me.
&lt;/h3&gt;

&lt;p&gt;It was so hard to tell people around me that I am doing my work. most of them used to know that when you have a job or any certain work you have to go to the office and there are hours to start and others for leaving the office, In my neighborhood there are few people know that someone can work at home.  &lt;/p&gt;

&lt;h2&gt;
  
  
  The solutions!
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Internet
&lt;/h3&gt;

&lt;p&gt;This is how I solved the problem of the Internet, I went to a place that has fast free internet. In Kigali city, there is a place called Klab, and that place is good for those who want to learn and work remotely so if you are in Kigali city I recommend you to join that place, it is so good.&lt;/p&gt;

&lt;h3&gt;
  
  
  The working Environment.
&lt;/h3&gt;

&lt;p&gt;To get the working environment, it took me also to get the Klab I told you above and there is a good place and it has a good working environment, there is a small cafeteria and also it is a quiet place, so to me it was a good environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  People around me.
&lt;/h3&gt;

&lt;p&gt;It took me time to convince people about what kind of work I do, and how I do that work, Something that helped is to tell them how the remote work is like how you can accomplish your work and reach out a message on a phone or send the work on WhatsApp in order to let them Understand that kind of job, which you can do wherever you are.&lt;/p&gt;

&lt;p&gt;It was a pleasure to share with you how my first remote work. &lt;/p&gt;

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

</description>
    </item>
    <item>
      <title>My Understanding of Event loop in Nodejs</title>
      <dc:creator>ricahcyuzuzo</dc:creator>
      <pubDate>Wed, 22 Jan 2020 08:54:55 +0000</pubDate>
      <link>https://dev.to/ricahcyuzuzo/my-understanding-of-event-loop-in-nodejs-370d</link>
      <guid>https://dev.to/ricahcyuzuzo/my-understanding-of-event-loop-in-nodejs-370d</guid>
      <description>&lt;p&gt;The understanding of event loop in Nodejs will first have to start with Knowing about the Threads, The thread can be seen as the a unit of operations the CPU has to do for us. One single program process can contain many Threads. &lt;/p&gt;

&lt;p&gt;Using the below image to get an idea about the threads.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  The Event Loop
&lt;/h2&gt;

&lt;p&gt;When you run a node program, automatically the thread is created, That thread is the place where the codebase is going to be executed, In that thread, the &lt;strong&gt;Event loop&lt;/strong&gt; is generated, The role of this loop is to schedule which operations our only thread should be performing at any given point in time.&lt;/p&gt;

&lt;p&gt;Note This: the event loop does not get generated instantly as soon as we run our program. It only runs once the whole program has been executed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let me explain in details&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I will just have to assume that I have a program file to run in Nodejs 'programFile.js'.&lt;/p&gt;

&lt;p&gt;We can run 'node programFile.js'.&lt;/p&gt;

&lt;p&gt;The This is, in order to understand what is being done by the event loop, the picture below is showing how things are going during the event loop tick.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Step1: PerformChecks
&lt;/h2&gt;

&lt;p&gt;has a specific condition that will determine if the loop needs to iterate again or not. Every iteration of the event loop is called a tick.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conditions for Event loop to do a tick.
&lt;/h3&gt;

&lt;p&gt;we execute our program, we will have a series of operations that need to be performed. These operations can be split into three main types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pending timer operations (setTimeout(), setInterval(), setImmediate())&lt;/li&gt;
&lt;li&gt;Pending operating system tasks&lt;/li&gt;
&lt;li&gt;Pending execution of long running operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, whenever one of those are pending the event loop will perform a new tick!&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Performing a tick
&lt;/h3&gt;

&lt;p&gt;For every loop iteration, we can distinguish the following phases:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1:&lt;/strong&gt; Node looks at its inner collection of pending timers and checks which callback functions passed to setTimeout() and setInterval() are ready to be called in case of an expired timer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2:&lt;/strong&gt; Node looks at its inner collection of pending OS tasks and checks which callback functions are ready to be called. An example of this could be the completed retrieval of a file from our machine’s hard drive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3:&lt;/strong&gt; Node pauses its execution waiting for new events to occur. With new events, we include: a new timer completion, a new OS task completion, a new pending operation completion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 4:&lt;/strong&gt; Node checks if any function related to pending timers related to the setImmediate() function are ready to be called.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 5:&lt;/strong&gt; Manage close events, used to clean the state of our application. &lt;/p&gt;

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

</description>
      <category>node</category>
    </item>
  </channel>
</rss>
