<?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: Ruhamah Eti</title>
    <description>The latest articles on Forem by Ruhamah Eti (@ruhamah_eti_019fd45414326).</description>
    <link>https://forem.com/ruhamah_eti_019fd45414326</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%2F2978360%2F404e2bc8-e53f-407a-85b7-1bafa8f9340f.png</url>
      <title>Forem: Ruhamah Eti</title>
      <link>https://forem.com/ruhamah_eti_019fd45414326</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ruhamah_eti_019fd45414326"/>
    <language>en</language>
    <item>
      <title>How JavaScript works behind the scene</title>
      <dc:creator>Ruhamah Eti</dc:creator>
      <pubDate>Mon, 05 May 2025 01:14:54 +0000</pubDate>
      <link>https://forem.com/ruhamah_eti_019fd45414326/how-javascript-works-behind-the-scene-3jhl</link>
      <guid>https://forem.com/ruhamah_eti_019fd45414326/how-javascript-works-behind-the-scene-3jhl</guid>
      <description>&lt;p&gt;The JavaScript engine interprets the JavaScript code and executes it. The JavaScript engine contains a Call Stack and a Heap. The Call Stack is where the code is executed, while the Heap is an unstructured memory space that stores all the objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Just-in-Time Compilation&lt;/strong&gt;&lt;br&gt;
Because computers understand only binary, JavaScript code must be translated into binary. JavaScript uses Just-In-Time (JIT) Compilation, where the source code is compiled and immediately executed. This approach helps improve performance by combining the benefits of both interpretation and compilation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Execution Context&lt;/strong&gt;&lt;br&gt;
The execution context contains the code that is currently running and everything that aids in its execution. There are two types of execution context. We have the Global Execution Context (GEC) and the Function Execution Context (FEC).&lt;br&gt;
The Global Execution Context is the default execution context where all JavaScript code that is not inside a function is executed. For every JavaScript file, there can only be one GEC.&lt;br&gt;
Whenever a function is called, the JavaScript engine creates a different type of execution context — the Function Execution Context — within the GEC to execute the code inside that function.&lt;br&gt;
Each execution context contains:&lt;br&gt;
. The current code being executed&lt;br&gt;
. Variable and function references&lt;br&gt;
. The scope chain&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Call Stack&lt;/strong&gt;&lt;br&gt;
The Call Stack is a data structure that keeps track of where in the code we are. It records, in Last-In, First-Out (LIFO) order, which function is currently being executed.&lt;br&gt;
Whenever a function is invoked, it is pushed onto the call stack. When the function finishes executing, it is popped off the call stack.&lt;br&gt;
This allows the JavaScript engine to keep track of nested function calls and resume execution in the right place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Callback Queue&lt;/strong&gt;&lt;br&gt;
The Callback Queue is a FIFO (First-In, First-Out) data structure that stores all callback functions — such as those from asynchronous tasks like setTimeout, DOM events, or HTTP requests. These callbacks wait for the Call Stack to be empty before they can be executed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Event Loop&lt;/strong&gt;&lt;br&gt;
The Event Loop continuously checks the Call Stack and the Callback Queue.&lt;br&gt;
If the call stack is empty (i.e., no function is currently running), the event loop takes the oldest callback from the queue and pushes it into the call stack, where it gets executed.&lt;br&gt;
This mechanism enables JavaScript, which is single-threaded, to handle asynchronous behavior such as events, timers, and API calls without blocking the main thread.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ruhamah Eti</dc:creator>
      <pubDate>Mon, 28 Apr 2025 14:14:15 +0000</pubDate>
      <link>https://forem.com/ruhamah_eti_019fd45414326/-4bpg</link>
      <guid>https://forem.com/ruhamah_eti_019fd45414326/-4bpg</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h" class="crayons-story__hidden-navigation-link"&gt;Form validation and responsive web design&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ruhamah_eti_019fd45414326" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2978360%2F404e2bc8-e53f-407a-85b7-1bafa8f9340f.png" alt="ruhamah_eti_019fd45414326 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ruhamah_eti_019fd45414326" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ruhamah Eti
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ruhamah Eti
                
              
              &lt;div id="story-author-preview-content-2441985" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ruhamah_eti_019fd45414326" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2978360%2F404e2bc8-e53f-407a-85b7-1bafa8f9340f.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ruhamah Eti&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 28 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h" id="article-link-2441985"&gt;
          Form validation and responsive web design
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/frontend"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;frontend&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Form validation and responsive web design</title>
      <dc:creator>Ruhamah Eti</dc:creator>
      <pubDate>Mon, 28 Apr 2025 12:56:43 +0000</pubDate>
      <link>https://forem.com/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h</link>
      <guid>https://forem.com/ruhamah_eti_019fd45414326/form-validation-and-responsive-web-design-2g0h</guid>
      <description>&lt;p&gt;What I Learned from This Project&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Responsive Web Design&lt;/strong&gt;:&lt;br&gt;
I learned about responsive web design — making web pages adapt to all screen sizes, from mobile to desktop. For my project, I used a mobile-first approach, where I initially designed the layout to stack content vertically for smaller screens, as shown below:&lt;br&gt;
&lt;a href="https://media2.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%2Fjlj2ics5g4u999mqso2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fjlj2ics5g4u999mqso2r.png" alt="Image description" width="415" height="607"&gt;&lt;/a&gt; &lt;br&gt;
Then, using media queries with min-width, I adjusted the layout for desktop screens to match the cover picture design. Here’s a screenshot showing part of the code:&lt;br&gt;
&lt;a href="https://media2.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%2Fq6d1qzdczv2h0r14ap9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fq6d1qzdczv2h0r14ap9j.png" alt="Image description" width="411" height="624"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTML Constraint APIs for Forms&lt;/strong&gt;:&lt;br&gt;
I learned about HTML Constraint Validation APIs, which include attributes like , , minlength, maxlength, required, and more. These attributes define rules and guidelines for user input in form fields, helping prevent invalid data submission.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Form Validation Using JavaScript&lt;/strong&gt;:&lt;br&gt;
I learned how to perform form validation using JavaScript to ensure that the data collected from users is accurate and complete. JavaScript validation offers more control over the validation process and allows for custom error handling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regular Expressions (Regex)&lt;/strong&gt;:&lt;br&gt;
I learned about regular expressions (regex), which are sequences of characters that define a search pattern. Regex is especially useful for form validation — for example, checking if an email input matches the correct format.&lt;br&gt;
&lt;a href="https://media2.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%2F9bbv33h6rn2fxnll37vt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F9bbv33h6rn2fxnll37vt.png" alt="Image description" width="800" height="337"&gt;&lt;/a&gt;&lt;br&gt;
Using JavaScript form validation along with regex, I was able to achieve the result shown in the image above.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Semantic HTML and responsive web design</title>
      <dc:creator>Ruhamah Eti</dc:creator>
      <pubDate>Wed, 26 Mar 2025 14:17:15 +0000</pubDate>
      <link>https://forem.com/ruhamah_eti_019fd45414326/semantic-html-and-responsive-web-design-56jn</link>
      <guid>https://forem.com/ruhamah_eti_019fd45414326/semantic-html-and-responsive-web-design-56jn</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.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%2F05y2uj7ih7cw78m8ekts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F05y2uj7ih7cw78m8ekts.png" alt="the HTML code" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things I learned today while working on this design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding font size using Google Fonts: I discovered two methods for adding font to my project through Google Fonts: one by using a link, and the other by importing it with CSS.&lt;/li&gt;
&lt;li&gt;CSS Variables: CSS variables are helpful for avoiding repetition in code. For example, if you have six article tags with different IDs but want to apply the same text color (black) to all, instead of writing 'color: black;' multiple times, you can create a CSS variable and reference it wherever needed.&lt;/li&gt;
&lt;li&gt;Semantic HTML: Semantic HTML involves using tags that clearly define the content they contain, making the code easier to understand for both developers and search engines. It also improves website accessibility for users with disabilities, as screen readers and other assistive tools can better interpret the content's meaning. Examples of semantic tags include &lt;code&gt;header&lt;/code&gt;, &lt;code&gt;nav&lt;/code&gt;, &lt;code&gt;figure&lt;/code&gt;, &lt;code&gt;article&lt;/code&gt;, and others.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
  </channel>
</rss>
