<?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: Rakshit Nayak</title>
    <description>The latest articles on DEV Community by Rakshit Nayak (@rakshitnayak).</description>
    <link>https://dev.to/rakshitnayak</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%2F505917%2Fe8aee1ab-9eee-4000-82be-e6511f74bf3b.jpg</url>
      <title>DEV Community: Rakshit Nayak</title>
      <link>https://dev.to/rakshitnayak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rakshitnayak"/>
    <language>en</language>
    <item>
      <title>How to Install NVM on macOS</title>
      <dc:creator>Rakshit Nayak</dc:creator>
      <pubDate>Wed, 25 Jun 2025 01:41:37 +0000</pubDate>
      <link>https://dev.to/rakshitnayak/how-to-install-nvm-on-macos-gbf</link>
      <guid>https://dev.to/rakshitnayak/how-to-install-nvm-on-macos-gbf</guid>
      <description>&lt;h2&gt;
  
  
  Setting Up NVM on macOS (One-Time Setup)
&lt;/h2&gt;

&lt;p&gt;If you're a developer working with Node.js, managing multiple versions of Node across different projects can get messy. That's where &lt;strong&gt;NVM (Node Version Manager)&lt;/strong&gt; comes in a handy tool that lets you &lt;strong&gt;easily install, switch, and manage multiple versions of Node.js&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll walk you through a &lt;strong&gt;one-time setup&lt;/strong&gt; of NVM on your macOS system.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Open Your Terminal
&lt;/h2&gt;

&lt;p&gt;By default, macOS uses the &lt;strong&gt;Zsh shell&lt;/strong&gt;, so we’ll work with that.&lt;/p&gt;

&lt;p&gt;Open the &lt;strong&gt;Terminal&lt;/strong&gt; app. You can find it via Spotlight (&lt;code&gt;Cmd + Space&lt;/code&gt;, then type &lt;strong&gt;Terminal&lt;/strong&gt;).&lt;/p&gt;

&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%2Fxz05sbawgftjnq1zr4e8.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%2Fxz05sbawgftjnq1zr4e8.png" alt="Open Terminal" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Go to Your Home Directory
&lt;/h2&gt;

&lt;p&gt;Make sure you're in your user’s home directory:&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%2Ffasawa91nyu9w9mrpw4d.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%2Ffasawa91nyu9w9mrpw4d.png" alt="pwd" width="698" height="194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;List all files (including hidden ones) to check if .zshrc already exists:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ls -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 3: Create .zshrc If It Doesn’t Exist
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch .zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This file is where you'll store shell configurations, including NVM-related settings.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Install NVM
&lt;/h2&gt;

&lt;p&gt;Use the official installation script from the NVM GitHub repository:&lt;br&gt;
&lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;https://github.com/nvm-sh/nvm&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 5: Apply the Configuration
&lt;/h2&gt;

&lt;p&gt;Once installed, you need to reload your shell configuration so NVM is available in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To confirm everything went smoothly, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>programming</category>
      <category>nvm</category>
      <category>node</category>
    </item>
    <item>
      <title>How to implement Server Side Rendering for Material UI's media queries in NextJs to avoid flash?</title>
      <dc:creator>Rakshit Nayak</dc:creator>
      <pubDate>Sat, 29 Oct 2022 18:02:04 +0000</pubDate>
      <link>https://dev.to/rakshitnayak/how-to-implement-server-side-rendering-for-material-uis-media-queries-in-nextjs-to-avoid-flash-jpi</link>
      <guid>https://dev.to/rakshitnayak/how-to-implement-server-side-rendering-for-material-uis-media-queries-in-nextjs-to-avoid-flash-jpi</guid>
      <description>&lt;h2&gt;
  
  
  What is this post about?
&lt;/h2&gt;

&lt;p&gt;This post will help you to implement server side rendering(SSR) for Material UI's media queries if you are using NextJs with MUI(formerly Material-UI). If you implement useMediaQuery using SSR you will avoid the flash of desktop view in the mobile width devices during initial second of the render when you load a page. This post will explain each step to you to make it much more clear.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do you see the flash of desktop view during initial render in mobile ?
&lt;/h2&gt;

&lt;p&gt;Since useMediaQuery Defaults to false. In order to perform the server-side rendering reconciliation, it needs to render twice. A first time with nothing and a second time with the children. This double pass rendering cycle comes with a drawback. If your code contains lines something like below then majorly you will see the flash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const xs = useMediaQuery(theme.breakpoints.down('sm'))
...
return(
  {xs ?
     &amp;lt;p&amp;gt;Small device&amp;lt;/p&amp;gt;
  :
     &amp;lt;p&amp;gt;Regular size device&amp;lt;/p&amp;gt;
  }
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  More context of flash
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you load the page in mobile, initial second during render will return "Regular size device" and then to "small device" but the case it should render is "Small device" during initial render itself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This happens due to not using correct method of useMediaQuery during ssR&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the &lt;a href="https://mui.com/material-ui/react-use-media-query/#server-side-rendering" rel="noopener noreferrer"&gt;useMediaquery mui&lt;/a&gt;  documentation but its really confusing how to implement in your code, so below are the steps&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Get device type from server side App.getInitialProps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;I assume your _app.js looks like below,
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// _app.js
import NextApp from 'next/app';
import { createTheme } from '@mui/material';


const App = ({ Component, pageProps }) =&amp;gt; {

  const theme = createTheme({
    // your MUI theme configuration goes here
    components: {
      //your default component styling goes here
    }
  });

  return (
    &amp;lt;ThemeProvider theme={theme}&amp;gt;
      &amp;lt;Component {...pageProps} /&amp;gt;
    &amp;lt;/ThemeProvider&amp;gt;
  ); 
};

App.getInitialProps = async (context) =&amp;gt; {
  return {
    ...NextApp.getInitialProps(context),
  };
};

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Edit App.getInitialProps to get deviceType, for this you require &lt;a href="https://www.npmjs.com/package/ua-parser-js" rel="noopener noreferrer"&gt;ua-parser-js&lt;/a&gt;. install this package and Parse the user agent string of the client to extract device type
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;App.getInitialProps = async (context) =&amp;gt; {
  let deviceType;

  if (context.ctx.req) {
    deviceType = parser(context.ctx.req.headers['user-agent']).device.type || 'desktop';
  }

  return {
    ...NextApp.getInitialProps(context),
    deviceType,
  };
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Provide an implementation of ssr matchMedia
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Pass deviceType as prop and the following code in the function&lt;/li&gt;
&lt;li&gt;The recommended way for emulating match media is Using &lt;a href="https://github.com/ericf/css-mediaquery" rel="noopener noreferrer"&gt;css-mediaquery&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const App = ({ Component, pageProps, deviceType }) =&amp;gt; {
  const ssrMatchMedia = (query) =&amp;gt; ({
    matches: mediaQuery.match(query, {
      // The estimated CSS width of the browser.
      width: deviceType === 'mobile' ? '0px' : '1024px',
    }),
  });
 ........
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3: Override MuiUseMediaQuery default props in theme
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The useMediaQuery is set to false as default. In order to detect the device width in server side you need to change the default props as the ssrMatchMedia defined above.So Add a following lines of code
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  const theme = createTheme({
    // your MUI theme configuration goes here
    components: {
      MuiUseMediaQuery: {
        defaultProps: {
          ssrMatchMedia,
        },
      },
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This will set the deviceType during server side rendering and apply the mediaQuery before loading the page.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  so final code looks something like below and you can use useMediaQuery in any component to avoid the flash
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// _app.js
import NextApp from 'next/app';
import parser from 'ua-parser-js';
import mediaQuery from 'css-mediaquery';

import { createTheme } from '@mui/material';


const App = ({ Component, pageProps, deviceType }) =&amp;gt; {
  const ssrMatchMedia = (query) =&amp;gt; ({
    matches: mediaQuery.match(query, {
      // The estimated CSS width of the browser.
      width: deviceType === 'mobile' ? '0px' : '1024px',
    }),
  });

  const theme = createTheme({
    // your MUI theme configuration goes here
    components: {
      MuiUseMediaQuery: {
        defaultProps: {
          ssrMatchMedia,
        },
      },
    }
  });


  return (
    &amp;lt;ThemeProvider theme={theme}&amp;gt;
      &amp;lt;Component {...pageProps} /&amp;gt;
    &amp;lt;/ThemeProvider&amp;gt;
  ); 
};

App.getInitialProps = async (context) =&amp;gt; {
  let deviceType;

  if (context.ctx.req) {
    deviceType = parser(context.ctx.req.headers['user-agent']).device.type || 'desktop';
  }

  return {
    ...NextApp.getInitialProps(context),
    deviceType,
  };
};

export default App;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;If you follow the above steps you will avoid the flash and the case explained in context of flash works smooth.&lt;/p&gt;

&lt;p&gt;That's it guys thank you :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
      <category>mui</category>
      <category>react</category>
    </item>
    <item>
      <title>Understanding GCP in short</title>
      <dc:creator>Rakshit Nayak</dc:creator>
      <pubDate>Mon, 08 Nov 2021 14:56:36 +0000</pubDate>
      <link>https://dev.to/rakshitnayak/what-is-google-cloud-platform-3oh4</link>
      <guid>https://dev.to/rakshitnayak/what-is-google-cloud-platform-3oh4</guid>
      <description>&lt;p&gt;Google Cloud (also known as Google Cloud Platform or GCP) is a provider of computing resources for developing, deploying, and operating applications on the Web.&lt;/p&gt;

&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%2Foc6tl3xco0igfarep662.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%2Foc6tl3xco0igfarep662.png" alt="Image description" width="336" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GCP is mainly a service for building and maintaining original applications, which may then be published via the Web from its hyperscale data center facilities&lt;/p&gt;

&lt;p&gt;When you run a Web site, an application, or a service on GCP, Google keeps track of all of the resources it uses specifically, how much processing power, data storage, database queries, and network connectivity it consumes. you pay for each of these resources on a per-minute or even per-second basis, with discounts that apply when your services are used heavily by your customers on the Web.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Google Cloud services
&lt;/h3&gt;

&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%2Fw14rmirck38t62f75nce.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%2Fw14rmirck38t62f75nce.png" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Google Compute Engine
&lt;/h4&gt;

&lt;p&gt;Google Compute Engine is Google’s Infrastructure-as-a-Service virtual machine offering.  It allows customers to use virtual machines in the cloud as server resources instead of acquiring and managing server hardware. Google Compute Engine offers virtual machines running in Google’s data centers connected to the worldwide fibre network. The tooling and workflow offered by compute engine enable scaling from single instances to global, load-balanced cloud computing.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Google Cloud Storage
&lt;/h4&gt;

&lt;p&gt;GCP's Cloud Storage (GCS) is an object storage system, which is to say, its records maintain both the identity and the structure of any class of data given to it. Unlike a typical storage volume's file system, where each file or document is rendered as a string of digits whose location is registered in a file allocation table, object storage is an all-purpose block that's leased to consumers like space in a park-and-lock. It can hold entire organized databases, raw video streams, or matrices for machine learning models.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Google Big Data
&lt;/h4&gt;

&lt;p&gt;Big data systems store and process massive amounts of data. It is natural to host a big data infrastructure in the cloud, because it provides unlimited data storage and easy options for highly parallelized big data processing and analysis.&lt;br&gt;
The Google Cloud Platform provides multiple services that support big data storage and analysis. Possibly the most important is BigQuery, a high performance SQL-compatible engine that can perform analysis on very large data volumes in seconds. GCP provides several other services, including Dataflow, Dataproc and Data Fusion, to help you create a complete cloud-based big data infrastructure.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Google Cloud AI
&lt;/h4&gt;

&lt;p&gt;Cloud AI offers various services that are needed to add Artificial Intelligence to our applications. Cloud-based machine learning, Cloud Vision API, and Cloud Speech API are some of these services.&lt;/p&gt;

&lt;p&gt;There are more services that GCP provides click the below link to know more about &lt;strong&gt;&lt;a href="https://cloud.google.com/" rel="noopener noreferrer"&gt;Google Cloud Platform&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>gcp</category>
    </item>
    <item>
      <title>DOM (Document object model) in less than 500 words!</title>
      <dc:creator>Rakshit Nayak</dc:creator>
      <pubDate>Sun, 17 Oct 2021 17:28:38 +0000</pubDate>
      <link>https://dev.to/rakshitnayak/dom-document-object-model-4dmp</link>
      <guid>https://dev.to/rakshitnayak/dom-document-object-model-4dmp</guid>
      <description>&lt;p&gt;Hello 🙋‍♂️,in this article we will talk about &lt;strong&gt;DOM&lt;/strong&gt; in less than 500 words&lt;/p&gt;

&lt;p&gt;DOM(Document Object Model) is a software interface for HTML, XML and SVG documents. It provides a structured view of the document(tree) as a group of nodes and objects that have properties and methods, and defines the way in which the structure can be accessed by the program.&lt;br&gt;
DOM binds web pages to scripts or programming languages.&lt;/p&gt;

&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%2Fewcikyduk50wdyxbshp4.gif" 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%2Fewcikyduk50wdyxbshp4.gif" alt="Image description" width="486" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The basis of an HTML document is tags.&lt;br&gt;
According to the DOM, an HTML tag is an object and nested tags are its "children".&lt;br&gt;
All objects are available with JavaScript, we can use them to modify the page.&lt;br&gt;
For example, &lt;code&gt;document.body&lt;/code&gt; is an object for the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag.&lt;/p&gt;

&lt;h4&gt;
  
  
  DOM EXAMPLE
&lt;/h4&gt;

&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%2Fshktjienlnm7su9vu13t.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%2Fshktjienlnm7su9vu13t.png" alt="Image description" width="331" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And this is a view of an HTML document as a tag tree:&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%2Fyuv28ony3gmw33th8s3t.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%2Fyuv28ony3gmw33th8s3t.png" alt="Image description" width="337" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tags are node elements(elements). They form the structure of the tree: &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; is the root node, &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; its child nodes, etc. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text&lt;/strong&gt; inside the elements forms &lt;strong&gt;text nodes&lt;/strong&gt; named #text. The text node contains only a string of text. It cannot have descendants (it is always at the lowest level).&lt;br&gt;
Spaces and line breaks are also symbols. Like letters and numbers, they form text nodes and become part of the DOM tree.&lt;/p&gt;

&lt;p&gt;Here you can see &lt;a href="http://software.hixie.ch/utilities/js/live-dom-viewer/#" rel="noopener noreferrer"&gt;Dom in real time&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>dom</category>
      <category>html</category>
      <category>websites</category>
    </item>
  </channel>
</rss>
