<?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: Mavvyy</title>
    <description>The latest articles on DEV Community by Mavvyy (@mavvyy3).</description>
    <link>https://dev.to/mavvyy3</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%2F1064927%2F77ec23c9-c3f6-4535-93a7-727c93b17444.jpg</url>
      <title>DEV Community: Mavvyy</title>
      <link>https://dev.to/mavvyy3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mavvyy3"/>
    <language>en</language>
    <item>
      <title>Postmortem: Outage Incident on Thavmasios Online Store</title>
      <dc:creator>Mavvyy</dc:creator>
      <pubDate>Sun, 15 Oct 2023 22:51:00 +0000</pubDate>
      <link>https://dev.to/mavvyy3/postmortem-outage-incident-on-thavmasios-online-store-5168</link>
      <guid>https://dev.to/mavvyy3/postmortem-outage-incident-on-thavmasios-online-store-5168</guid>
      <description>&lt;p&gt;The Slightly Inconvenient Flash Sale Day&lt;br&gt;
Duration: June 20, 2023, 10:30 AM - June 20, 2023, 1:45 PM (UTC)&lt;/p&gt;

&lt;p&gt;Impact: Imagine Black Friday, but on a random Tuesday. Thavmasios Online Store experienced a partial outage, leaving around 35% of our dear customers experiencing service hiccups. It was like Black Friday decided to sneak up on us incognito.&lt;/p&gt;

&lt;p&gt;Root Cause: Our store couldn't handle the rush of shoppers during an unexpected flash sale. In simple words, it's like your kitchen sink getting clogged because someone decided to wash a whole watermelon down it.&lt;/p&gt;

&lt;p&gt;Timeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10:30 AM (UTC): Oh, the horror begins! Our monitoring dashboard showed errors and latencies rising like your electricity bill in winter.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;10:35 AM: Bam! An automated alert woke up our sleepy engineers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;10:45 AM: Our tech superheroes grabbed their capes (or in this case, laptops) and began investigating.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;11:00 AM: Our initial suspect? The database, feeling a bit overwhelmed by all the attention. We thought, "Maybe it needs some more friends," so we scaled it up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;11:30 AM: Despite our efforts, our database didn't seem satisfied. It was a real diva, still causing trouble.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;12:00 PM: With a raised eyebrow, we turned our gaze towards the load balancer. Was it lost in a maze? We thought, "Maybe it's routing everyone to Narnia?" So, it was reconfigured.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;1:00 PM: The load balancer looked innocent, so we sent our distress signal to the infrastructure team.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resolution:&lt;br&gt;
Root Cause: Our lovely website, unprepared for stardom, couldn't handle the sudden rush. It was like trying to fit an elephant through your front door.&lt;/p&gt;

&lt;p&gt;Resolution: Finally, we got our act together. We optimized the database, introduced caching like it's a treasure hunt, and upgraded the load balancer to work faster than a caffeine-loaded squirrel.&lt;/p&gt;

&lt;p&gt;Corrective and Preventative Measures:&lt;br&gt;
Improvements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We're introducing auto-scaling, like an all-you-can-eat buffet, for critical systems to handle traffic bursts.&lt;/li&gt;
&lt;li&gt;Our monitoring is getting an upgrade, so we can spot traffic storms on the horizon and batten down the hatches.&lt;/li&gt;
&lt;li&gt;Database queries are going on a diet and hitting the gym. They need to be lean and mean.&lt;/li&gt;
&lt;li&gt;We're giving our servers a superhero sidekick in the form of a failover mechanism.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-scaling solutions are being rolled out for our infrastructure components.&lt;/li&gt;
&lt;li&gt;We're boosting monitoring and alerting for swift responses during traffic spikes.&lt;/li&gt;
&lt;li&gt;A database performance review is underway, along with query optimizations.&lt;/li&gt;
&lt;li&gt;A failover mechanism is being documented and put in place, just in case things get a bit too exciting again.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
This incident was a wake-up call, like coffee spilled on your favorite book. We're taking steps to ensure our store can handle even the wildest shopping sprees. &lt;/p&gt;

&lt;p&gt;So, fear not, dear shoppers! The Thavmasios Online Store is evolving to provide a smoother shopping experience, even during the most unexpected shopping extravaganzas.&lt;/p&gt;

</description>
      <category>postmortem</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title># What Happens When You Type "https://www.google.com" in Your Browser: Understanding the Journey of a URL</title>
      <dc:creator>Mavvyy</dc:creator>
      <pubDate>Thu, 14 Sep 2023 19:44:29 +0000</pubDate>
      <link>https://dev.to/mavvyy3/-what-happens-when-you-type-httpswwwgooglecom-in-your-browser-understanding-the-journey-of-a-url-ba3</link>
      <guid>https://dev.to/mavvyy3/-what-happens-when-you-type-httpswwwgooglecom-in-your-browser-understanding-the-journey-of-a-url-ba3</guid>
      <description>&lt;p&gt;Have you ever wondered what happens when you type a website address into your browser's address bar and press Enter, such as "&lt;a href="https://www.google.com"&gt;https://www.google.com&lt;/a&gt;"? Although loading a web page may appear to be a straightforward process, it involves an intricate interplay of many different technologies and systems. We'll walk you through the processes involved in requesting a web page from the internet in this blog post.&lt;/p&gt;

&lt;h2&gt;
  
  
  DNS Resolution in Step 1
&lt;/h2&gt;

&lt;p&gt;The moment you press Enter, the procedure starts. The browser must identify the IP address connected to the domain "&lt;a href="http://www.google.com."&gt;www.google.com.&lt;/a&gt;" This undertaking is completed by the DNS, or domain name system. This is how it goes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Check the local cache: If an IP address for the same domain has already been resolved, your browser looks in its local cache. If a match is made, it utilises that IP address rather than continuing with DNS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operating System Verification: The browser sends the request to the operating system of your computer if the IP address is not present in the local cache. Additionally, the operating system checks the DNS cache for a cached IP address. If it does, it sends it back to the browser.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;(3) DNS Resolution The operating system sends a DNS query to a DNS resolver if the IP address is still unable to be located. This resolver could be made available by a third-party service like Google's Public DNS or your ISP (Internet Service Provider).&lt;/p&gt;

&lt;p&gt;Recursive DNS Query #4 A recursive search is done by the DNS resolver. To determine the authoritative name servers for the top-level domain (in this case, ".com"), it makes contact with the root DNS servers. After that, it makes a query to those reliable name servers to discover the IP address for "google.com."&lt;/p&gt;

&lt;p&gt;Five. Caching Your operating system receives the IP address after the resolver locates it and caches it for later use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Establishing a Connection in Step 2
&lt;/h2&gt;

&lt;p&gt;The browser can now establish a connection to the web server hosting the webpage once it has the IP address in its possession. Utilising the Hypertext Transfer Protocol (HTTP) or HTTPS (HTTP Secure) is required for this.&lt;/p&gt;

&lt;p&gt;Here is what transpires:&lt;/p&gt;

&lt;p&gt;First, the HTTP/HTTPS handshake: A secure connection is made if the website employs HTTPS, which the majority of websites do for security. In order to secure encrypted communication, this involves a handshake.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The TCP Handshake Your computer and the web server establish a Transmission Control Protocol (TCP) connection. Data transmission using this connection is dependable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Request Sent:&lt;/strong&gt; The browser transmits an HTTP request to the web server, asking for a certain web page or resource (in this case, the Google homepage).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Server processing in Step 3
&lt;/h2&gt;

&lt;p&gt;The web server now processes the request and gets ready to respond after receiving it. What takes place on the server side is as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Routing: Which online page or resource matches the URL you requested is decided by the web server.
Secondly, &lt;strong&gt;Server-Side Processing:&lt;/strong&gt; The server generates the HTML content when a web page is dynamic (e.g., when it is dependent on a database) by executing server-side scripts (e.g., PHP, Python, or Node.js) and making database queries.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Response Generation: 3. The web page's HTML is assembled on the server together with any additional resources it need for proper rendering, such as images, CSS, or JavaScript files.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Response:&lt;/strong&gt; The server then sends your browser an HTTP response including all of this information.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Rendering the Page in Step 4
&lt;/h2&gt;

&lt;p&gt;The web server sends the HTTP response back to your browser. Following is how the browser interprets it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTML Parsing&lt;/strong&gt;: The browser starts by analysing the HTML code to create a Document Object Model (DOM) model of the structure of the web page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;(2) Rendering The browser gradually produces the page as the DOM is built, obtaining external resources like pictures and stylesheets as necessary.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Execution of JavaScript:&lt;/strong&gt; The browser runs JavaScript if it is present on the web page. JavaScript has the ability to dynamically change the page's behaviour and content.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Displaying: 4. Finally, your browser displays the complete rendered web page so you may interact with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Typing a site address and pressing Enter may seem like a straightforward move, but there are actually many different procedures and technologies involved. Each step is essential to providing the web information you requested, from DNS resolution to server processing and browser display. Understanding this procedure can help you better appreciate the complexity of the internet and the functions that each component performs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Writing about Arrays in JavaScript</title>
      <dc:creator>Mavvyy</dc:creator>
      <pubDate>Mon, 01 May 2023 09:32:29 +0000</pubDate>
      <link>https://dev.to/mavvyy3/writing-about-arrays-in-javascript-cc0</link>
      <guid>https://dev.to/mavvyy3/writing-about-arrays-in-javascript-cc0</guid>
      <description>&lt;p&gt;Arrays are an essential data structure in JavaScript, allowing you to store and manipulate multiple values in a single variable. In this blog post, we'll cover some of the basics of arrays in JavaScript.&lt;br&gt;
There are different functions we can execute with arrays and I will be taking the commonly used functions and explain with examples. for the purpose of this lesson we will be using TypeScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The sort function:&lt;/strong&gt;&lt;br&gt;
it is used to sort elements of an array in ascending or descending manner&lt;br&gt;
look at the pics below...&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_snArKgH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0l9jnibb5fk1g3o07h6g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_snArKgH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0l9jnibb5fk1g3o07h6g.png" alt="Image description" width="800" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The filter function&lt;/strong&gt;&lt;br&gt;
Iterative methods include the filter() method. For each element in an array, it makes a single call to the given callbackFn function, which creates a new array containing all the values for which callbackFn returns a truthy result. None of the array members that fail the callbackFn test are added to the new array.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eXT-qXxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a84ifetvoo74n6sua9yh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eXT-qXxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a84ifetvoo74n6sua9yh.png" alt="Image description" width="800" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The map Function&lt;/strong&gt;&lt;br&gt;
For each element of an array, map() calls a function to generate a new array. For empty elements, the function is not run by map(). The initial array is unaffected by map().&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HQhgPVXT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25ao2hopjgtnfofeommh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HQhgPVXT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25ao2hopjgtnfofeommh.png" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The find Function&lt;/strong&gt;&lt;br&gt;
The first element in the given array that fulfills the testing function is returned by the find() method. Undefined is returned if no values satisfy the testing function. Use findIndex() if you require the array's found element's index. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wUkPm40t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yf5wxj53i4hhczcf9c3y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wUkPm40t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yf5wxj53i4hhczcf9c3y.png" alt="Image description" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sharing Your Programming Experiences: Why it's Beneficial and How to Get Started</title>
      <dc:creator>Mavvyy</dc:creator>
      <pubDate>Sun, 30 Apr 2023 15:25:16 +0000</pubDate>
      <link>https://dev.to/mavvyy3/sharing-your-programming-experiences-why-its-beneficial-and-how-to-get-started-54md</link>
      <guid>https://dev.to/mavvyy3/sharing-your-programming-experiences-why-its-beneficial-and-how-to-get-started-54md</guid>
      <description>&lt;p&gt;If you're someone who spends a lot of time coding, you know that encountering bugs and errors is inevitable. While it can be frustrating to encounter these issues, it can also be a valuable learning experience. One way to learn more about programming is by documenting the problems you encounter and how you solved them. &lt;/p&gt;

&lt;p&gt;Writing about the programs you use can also be helpful for others who may be struggling with similar issues. By sharing your experiences and solutions, you can save others time and frustration. Additionally, writing about your programming experiences can help you solidify your own understanding of the languages and tools you use. &lt;/p&gt;

&lt;p&gt;In this blog post, I want to encourage you to start documenting your programming experiences. Whether you're a beginner or an experienced programmer, writing about the programs you use can be beneficial for both yourself and others. &lt;/p&gt;

&lt;p&gt;I personally use a variety of programming languages, including JavaScript, TypeScript, Python, and NodeJS. These languages all have their unique strengths and weaknesses, and I've encountered various issues while working with them. By writing about these issues and how I solved them, I hope to help others who may encounter similar problems. &lt;/p&gt;

&lt;p&gt;However, I don't want this to be just my blog. I encourage you to contribute to it as well. If you've encountered a problem while working with any of these languages or other programming tools, feel free to share it in the comments section. If you've found a solution to a problem that others may find helpful, please share that too. Together, we can build a valuable resource for anyone working with these programming languages and tools. &lt;/p&gt;

&lt;p&gt;In conclusion, documenting your programming experiences can be beneficial for both yourself and others. By sharing your experiences and solutions, you can help others who may be struggling with similar issues. I encourage you to start writing about the programs you use, and I look forward to reading your contributions.&lt;/p&gt;

&lt;h1&gt;
  
  
  coding #Typescript #javascript #writing
&lt;/h1&gt;

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