<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Dheeraj Kumar Rao on Medium]]></title>
        <description><![CDATA[Stories by Dheeraj Kumar Rao on Medium]]></description>
        <link>https://medium.com/@rao123dk?source=rss-acfe7f69e46a------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*qTmlz6kAR29Yf4IKfk3nfA.jpeg</url>
            <title>Stories by Dheeraj Kumar Rao on Medium</title>
            <link>https://medium.com/@rao123dk?source=rss-acfe7f69e46a------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 10 Apr 2026 14:26:58 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@rao123dk/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[An Introduction to Nx: The Ultimate Tool for Monorepos(One tool for almost everything)]]></title>
            <link>https://medium.com/javascript-kingdom/an-introduction-to-nx-the-ultimate-tool-for-monorepos-one-tool-for-almost-everything-44bd23b203f5?source=rss-acfe7f69e46a------2</link>
            <guid isPermaLink="false">https://medium.com/p/44bd23b203f5</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[monorepo]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[nx]]></category>
            <dc:creator><![CDATA[Dheeraj Kumar Rao]]></dc:creator>
            <pubDate>Sat, 28 Oct 2023 09:44:20 GMT</pubDate>
            <atom:updated>2023-10-28T09:44:20.551Z</atom:updated>
            <content:encoded><![CDATA[<p>In the ever-evolving world of software development, developers are continually seeking ways to streamline their workflows and improve the maintainability of their projects. One such tool that has gained significant attention in recent years is Nx. If you’re not yet familiar with Nx, you’re in for a treat. In this blog post, I will introduce you to Nx and explore why it has become the go-to solution for managing monorepos.</p><h3>What is Nx?</h3><p>Nx is a powerful open-source build system that provides tools and techniques for enhancing developer productivity, optimizing CI performance, and maintaining code quality.</p><p>Nx, short for “Nrwl Extensions,” is an open-source development toolkit designed to help teams manage monorepos more efficiently. Nx can be used with various front-end and back-end frameworks, including React, Angular, VueJS( in v17), NestJS, and more.</p><p>At its core, Nx enables developers to build and manage multiple related projects within a single repository. Whether you’re working on a large-scale enterprise application or a collection of microservices, Nx provides a unified solution to handle complex codebases with ease.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fkUF5HN5FncAGQYo1O_o0A.jpeg" /></figure><h3>Key Features of Nx</h3><p>Let’s dive into some of the key features that make Nx a powerful choice for managing monorepos:</p><h3>1. Code Sharing</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/222/1*SB4bF1V2oXlziqb1EWWn-A.jpeg" /></figure><p>Nx simplifies code sharing between projects within your monorepo. Instead of duplicating code or creating shared libraries, you can easily reference and reuse code across your various projects. This promotes code consistency and reduces redundancy.</p><pre># Generate a shared library in React<br>nx generate @nrwl/react:library my-shared-lib</pre><h3>2. Dependency Management</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fk7Miv_q8VhZPOIM95kamQ.jpeg" /></figure><p>Nx automatically handles dependencies and ensures that the correct versions of packages are used across all projects. This eliminates compatibility issues and makes it easier to keep your projects up to date.</p><pre># Running tests for a specific project<br>nx test my-react-app</pre><h3>3. Smart Build System</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/498/1*162BqF6t2GdzQQMNSOItYg.gif" /></figure><p>Nx comes with a smart build system that optimizes build times. By only building what has changed, it significantly speeds up the development cycle, allowing for faster iteration and testing.</p><pre># Building a project<br>nx build my-react-app</pre><h3>4. Powerful Scaffolding</h3><p>With Nx, you can quickly generate code templates for different types of projects, components, and more. This reduces the overhead of setting up new projects and enforces best practices from the beginning.</p><pre># Create a new React application<br>nx generate @nrwl/react:application my-react-app</pre><h3>5. Caching for Speed</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kXoErbUtneKvdK37nooBNg.jpeg" /></figure><p>One of the standout features of Nx is its caching system. It intelligently caches build artifacts and dependencies, significantly reducing build times. Nx ensures that only the necessary parts of your monorepo are rebuilt, saving time and resources.</p><pre># Using cached artifacts for faster builds<br>nx build my-react-app</pre><p>Caching is another critical feature of Nx that contributes to a more efficient development process. Nx leverages both <strong>local and remote caching</strong> mechanisms to save you valuable development time.</p><p><strong>A. Local caching </strong>involves storing build artifacts, dependencies, and other essential data on your local machine. When you re-run a task, Nx checks if the required data is already available in your local cache. If it is, the task can be completed without rebuilding or re-downloading dependencies, resulting in significantly faster task execution.</p><p><strong>B. Remote caching</strong> takes efficiency a step further. Nx allows you to store your build artifacts and dependencies remotely, often in a shared cache for your team or organization. When you run tasks, Nx checks the remote cache first. If the required data is available, Nx retrieves it from the remote cache, eliminating the need to rebuild or re-download. This feature is especially valuable in a collaborative development environment, as it ensures consistent, efficient task execution across team members.</p><p>Caching is a game-changer for monorepos, making Nx a valuable tool for projects of all sizes.</p><h3>6. Automatic Dependency Updates</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/525/1*X5cLD0W83rNLLK6jfdR0JA.png" /></figure><p>Staying up to date with dependencies and keeping your codebase compatible with the latest libraries and tools is a common challenge in software development. Nx offers a solution to this problem through its extensive set of plugins and tools. When you leverage Nx plugins, you gain the ability to automate dependency updates and code generation.</p><pre>// run the migrate command to migrate <br>nx migrate latest // same as nx migrate nx@latest</pre><p>This fetches the specified version of the nx package, analyzes the dependencies, and fetches all the dependent packages. The process keeps going until all the dependencies are resolved. This results in:</p><ul><li>The package.json being updated</li><li>A migrations.json being generated if there are pending migrations.</li></ul><p>At this point, no packages have been installed, and no other files have been touched.</p><p>Link:- <a href="https://nx.dev/core-features/automate-updating-dependencies">https://nx.dev/core-features/automate-updating-dependencies</a></p><h3>7. Make It Your Own</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/340/1*qt_9lsL7Vp73fHGzJ_DM9w.jpeg" /></figure><p>Nx’s extensibility is one of its most compelling features. Nx is designed to be highly customizable and extendable, allowing you to fine-tune it to meet the unique needs of your projects and team.</p><p><strong>A. Create Your Own Plugins</strong>:- Nx provides the tools and capabilities to create your own plugins. Whether you need custom schematics, generators, or additional functionality, you can build plugins to integrate seamlessly with Nx.</p><p><strong>B. Share Your Plugins:- </strong>If you develop a plugin that you believe could benefit the broader development community, you have the option to share it. Contributing your plugins to the Nx ecosystem can be a great way to give back to the community and improve the toolkit for everyone.</p><p>Whether you’re extending Nx with your own plugins or leveraging the existing set of plugins from the community, Nx’s flexibility and extensibility allow you to make it your own and adapt it to your specific project requirements.</p><h3>Getting Started with Nx</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/275/1*VvNSYXHseN3ECAxfzJr3JQ.jpeg" /></figure><p>To get started with Nx, you can follow these steps:</p><ol><li>Install Nx globally with npm, yarn, pnmp, or …..</li><li>Create a new Nx workspace using the provided CLI command.</li><li>Begin adding your projects, libraries, and code to your workspace.</li></ol><h3>Nx Installation</h3><pre>npm install -g create-nx-workspace</pre><p>Or if you prefer using yarn:</p><pre>yarn global add create-nx-workspace</pre><h3>Creating a New Nx Workspace</h3><pre>nx create-nx-workspace my-nx-workspace<br>## Replace my-nx-workspace with your desired project name.</pre><h3>Creating Application</h3><pre>nx g @nx/react:application my-app<br>## Replace my-app with your desired project name.</pre><p><a href="https://nx.dev/nx-api/react/generators/application">https://nx.dev/nx-api/react/generators/application</a><br><a href="https://nx.dev/nx-api">https://nx.dev/nx-api</a></p><h3>Start the app</h3><pre> # nx run [host app name/ your main app]:serve<br><br>nx run my-app:serve</pre><h3>Useful commands</h3><pre>nx run my-app:serve # start the app<br>nx run my-app:test # run the unit test<br>nx run my-app:lint #run lint on the app<br>nx run my-app:build #make build for your app<br>nx --help # Nx Documentation and Help</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/723/1*q1QytwXlIus1WzCHE0GmhA.png" /></figure><p>I appreciate your time and attention in reading this post on Nx, the powerful toolkit for monorepos. I hope you found the information valuable and insightful. Nx is truly a game-changer in the world of software development, and we’re excited to share its benefits with you.</p><p>If you have any questions, want to learn more, or are considering integrating Nx into your development workflow, feel free to reach out. I am here to support your journey in making development more efficient and enjoyable.</p><p>Thank you for being a part of our community, and we look forward to sharing more insights and knowledge with you in the future. Happy coding!</p><p><strong>Find me here:-</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5TMcx0k_cLYYqxR-H4EmCQ.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=44bd23b203f5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/javascript-kingdom/an-introduction-to-nx-the-ultimate-tool-for-monorepos-one-tool-for-almost-everything-44bd23b203f5">An Introduction to Nx: The Ultimate Tool for Monorepos(One tool for almost everything)</a> was originally published in <a href="https://medium.com/javascript-kingdom">JavaScript Kingdom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[New Browser APIs That Every Web Developer Should Know]]></title>
            <link>https://medium.com/javascript-kingdom/new-browser-apis-that-every-web-developer-should-know-42e6210432dd?source=rss-acfe7f69e46a------2</link>
            <guid isPermaLink="false">https://medium.com/p/42e6210432dd</guid>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[reactjs]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[webapi]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Dheeraj Kumar Rao]]></dc:creator>
            <pubDate>Sat, 26 Aug 2023 13:45:21 GMT</pubDate>
            <atom:updated>2023-08-26T13:45:21.137Z</atom:updated>
            <content:encoded><![CDATA[<p>Here are some newer browser APIs that web developers should be aware of. Keep in mind that the web development landscape is constantly evolving, so it’s a good idea to check for the latest updates and changes in the APIs.</p><ol><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API"><strong>Web Authentication API </strong></a><strong>:</strong> It allows websites to offer strong authentication mechanisms using biometrics, USB tokens, or other methods, replacing traditional password-based authentication. It helps improve security and user experience.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API"><strong>Web Bluetooth API</strong></a><strong>:</strong> The Web Bluetooth API enables websites to communicate with Bluetooth Low Energy (BLE) devices, such as IoT devices, directly from a browser. This can be used for applications like connecting to fitness trackers, home automation devices, and more.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_API"><strong>Web Share API</strong></a><strong>:</strong> The Web Share API allows websites to trigger the native sharing capabilities of a user’s device. It provides a consistent way to share content from a web app to various social media platforms or other apps on the device.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API"><strong>Web Speech API</strong></a><strong>: </strong>The Web Speech API provides speech recognition and synthesis capabilities in browsers. This can be used to build voice-controlled interfaces or to add speech output to your applications.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API"><strong>Payment Request API</strong></a><strong>:</strong> The Payment Request API simplifies the checkout process by providing a standardized way to request payment and shipping information. It integrates with various payment providers and streamlines the payment process for users.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices"><strong>Media Devices API</strong></a><strong>:</strong> The Media Devices API allows web applications to access media input and output devices, such as cameras and microphones. This API can be used for tasks like selecting cameras for video recording or choosing microphones for audio input.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components"><strong>Web Components</strong></a><strong>:</strong> Web Components is a collection of standards that enables you to create reusable custom HTML elements. It consists of Shadow DOM, Custom Elements, and HTML Templates. Web Components allow you to encapsulate and extend existing HTML elements, creating your own components that can be reused across projects.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API"><strong>Service Workers</strong></a><strong>:</strong> Service Workers are scripts that run in the background of a web page, independent of the web page itself. They enable features like offline caching, push notifications, and background synchronization. Service Workers can enhance the user experience by providing faster loading times and offline access to web applications.</li><li><a href="https://developer.chrome.com/articles/file-system-access/"><strong>Native File System API</strong></a><strong>:</strong> The Native File System API enables web applications to read and write files on a user’s device using a user-friendly file picker interface. This API enhances the capabilities of web applications for working with local files.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Background_Fetch_API"><strong>Background Fetch API</strong></a><strong>:</strong> The Background Fetch API allows developers to schedule background tasks for fetching and processing data even when the web app is not open. This is useful for scenarios like content updates or syncing data in the background.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Idle_Detection_API"><strong>Idle Detection API</strong></a><strong>: </strong>The Idle Detection API allows websites to detect when a user’s device is idle or actively in use. This can be useful for optimizing the timing of certain tasks or interactions based on the user’s engagement with the device.</li></ol><p>Remember that browser support for these APIs may vary, and you should always check compatibility tables and usage guides for the latest information. Additionally, stay updated with the latest developments in the web ecosystem to discover new APIs and features that can enhance your web development projects.</p><p>Use <a href="https://caniuse.com/">https://caniuse.com/</a> to check web API browser support.</p><p>Connect here<br><a href="https://twitter.com/rao123dk">https://twitter.com/rao123dk</a><br><a href="https://www.linkedin.com/in/rao123dk">https://www.linkedin.com/in/rao123dk</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=42e6210432dd" width="1" height="1" alt=""><hr><p><a href="https://medium.com/javascript-kingdom/new-browser-apis-that-every-web-developer-should-know-42e6210432dd">New Browser APIs That Every Web Developer Should Know</a> was originally published in <a href="https://medium.com/javascript-kingdom">JavaScript Kingdom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Catastrophic Backtracking in Regular Expressions]]></title>
            <link>https://medium.com/javascript-kingdom/catastrophic-backtracking-in-regular-expressions-df717661da18?source=rss-acfe7f69e46a------2</link>
            <guid isPermaLink="false">https://medium.com/p/df717661da18</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[regex]]></category>
            <dc:creator><![CDATA[Dheeraj Kumar Rao]]></dc:creator>
            <pubDate>Thu, 26 Jan 2023 14:27:21 GMT</pubDate>
            <atom:updated>2023-01-26T14:27:21.026Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Regular expressions</strong> are a powerful tool for matching patterns in text, but they can also be a source of performance issues if not used carefully. One such issue is “<strong>catastrophic backtracking</strong>” which occurs when a regular expression engine spends an excessive amount of time trying to match a string that doesn’t match the pattern.</p><p>Some regular expressions are looking simple, but can execute a very long time, and even “hang” the JavaScript engine.</p><p>Sooner or later most developers occasionally face such behavior. The typical symptom — a regular expression works fine sometimes, but for certain strings it “hangs”, <strong>consuming 100% of CPU</strong>.</p><p>In such case a web-browser suggests to kill the script and reload the page. Not a good thing for sure.</p><p>For server-side JavaScript such a regex may hang the server process, that’s even worse. So we definitely should take a look at it.</p><p>Catastrophic backtracking can also occur in JavaScript, which uses regular expressions in its built-in String.prototype.match() and RegExp.prototype.exec() methods.</p><p>Here’s an example of a regular expression in JavaScript that can cause catastrophic backtracking:</p><pre>let pattern = /^(a+)*b/;<br>let input = &quot;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab&quot;;<br>let match = input.match(pattern);</pre><p>The regular expression ^(a+)*b is trying to match the string &quot;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab&quot; but it will cause the engine to explore an exponential number of possible match paths because of the use of unbounded repetition (*) which causes the engine to backtrack through each character one by one to find a &quot;b&quot; at the end.</p><p>To avoid catastrophic backtracking in JavaScript, you can use the same solutions as mentioned above, such as using bounded repetitions, avoiding nested quantifiers and use possessive quantifiers.</p><p>For example, instead of using ^(a+)*b use ^(a{1,10})*b. This limits the number of a&#39;s that can be matched and it will not cause catastrophic backtracking.</p><p>It’s important to keep in mind that when working with large inputs or when using regular expressions with complex patterns, it’s essential to keep an eye on performance and to test the regular expressions using different inputs to ensure that they’re not causing any issues.</p><p>For more details <a href="https://www.regular-expressions.info/catastrophic.html">visit</a>.</p><p>Happy Coding….</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=df717661da18" width="1" height="1" alt=""><hr><p><a href="https://medium.com/javascript-kingdom/catastrophic-backtracking-in-regular-expressions-df717661da18">Catastrophic Backtracking in Regular Expressions</a> was originally published in <a href="https://medium.com/javascript-kingdom">JavaScript Kingdom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Host locally running app on the internet (free) without any web server]]></title>
            <link>https://medium.com/javascript-kingdom/put-a-locally-running-http-https-or-tls-app-on-the-internet-free-135e1ef54bdc?source=rss-acfe7f69e46a------2</link>
            <guid isPermaLink="false">https://medium.com/p/135e1ef54bdc</guid>
            <category><![CDATA[localhost]]></category>
            <category><![CDATA[npm]]></category>
            <category><![CDATA[servers]]></category>
            <category><![CDATA[https]]></category>
            <category><![CDATA[web]]></category>
            <dc:creator><![CDATA[Dheeraj Kumar Rao]]></dc:creator>
            <pubDate>Fri, 03 Sep 2021 18:04:11 GMT</pubDate>
            <atom:updated>2021-09-06T10:59:32.968Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H7xLXeW0Q-3cQ1siG_8CuQ.jpeg" /><figcaption><a href="http://localhost:3000">http://localhost:3000</a> to Public URL</figcaption></figure><p>Lets talk about free tunneling solution, to host your local web applications over the cloud and access the app from the publicly accessible web url. No server is required.</p><h3><strong>1. Ngrok</strong></h3><p><strong>Authorization</strong> — User is required to sign up in order to generate auth token.</p><p><strong>Support(HTTP / HTTPS, SSH)</strong> — Supports all 3 protocols.</p><p><strong>Usage</strong> — Usage is through ngrok executable (or through node js based library).</p><p><strong>Free Or Paid </strong>— Offers both free and paid version. Free version has limited but rich functionalities.</p><p><strong>Subdomain Support </strong>— Subdomains are supported in the paid version.</p><h4><strong>How to setup Ngrok in your system</strong></h4><ol><li>Visit <a href="https://dashboard.ngrok.com/signup">https://dashboard.ngrok.com/signup</a></li><li>Download and install Ngrok. Ref:- <a href="https://dashboard.ngrok.com/get-started/setup">https://dashboard.ngrok.com/get-started/setup</a></li><li>Get Authtoken visit <a href="https://dashboard.ngrok.com/get-started/your-authtoken">https://dashboard.ngrok.com/get-started/your-authtoken</a></li><li>Add Authtokn in your system by command</li></ol><pre>./ngrok authtoken 1UawrhXGOPp53533ftC_49AXASfWj5vwmoshrbwpFB8M9</pre><p>5. Run the command ./ngrok http YOUR_APP_PORT</p><p>Example:- ./ngrok http 3000</p><p>You will get public url something like this http://d4f9-47-31-222-247.ngrok.io/</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ugpr57fJhaqk_iNS_qluhA.png" /></figure><p>2. <a href="https://localtunnel.github.io/www/"><strong>Localtunnel</strong></a></p><p><strong>Authorization —</strong> No auth token is required. You can simply install the node package and start using it.</p><p><strong>Support(HTTP / HTTPS, SSH) —</strong> Supports http/https.</p><p><strong>Usage — </strong>Can be simply used through nodejs executable.</p><p><strong>Free vs Paid — </strong>Is Free.</p><p><strong>Subdomain Support — </strong>Free version supports subdomain too. If available it starts subdomain with the given value.</p><h4>How to setup <a href="https://localtunnel.github.io/www/"><strong>Localtunnel</strong></a> in your system</h4><ol><li>Install localtunnel by NPM (npm install -g localtunnel ) add sudo if you are linux user sudo npm install -g localtunnel</li><li>Run lt --port YOUR_APP_POST</li></ol><p>Example :- lt --port 3000</p><p>your url is: <a href="https://tidy-catfish-70.loca.lt">https://tidy-catfish-70.loca.lt</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VRvNNhGyhKlJ7qg0ou30mw.png" /></figure><p>3. <a href="https://localhost.run/"><strong>localhost.run</strong></a></p><p><strong>Authorization — </strong>No download or signup</p><p><strong>Support(HTTP / HTTPS, SSH) — </strong>Supports http/https.</p><p><strong>Usage —</strong> Show clients work running on your computer.</p><p><strong>Free vs Paid —</strong> Forever free tier(Only paid for custom subdomain)</p><p><strong>Subdomain Support — </strong>yes but paid for custom subdomain</p><h4>How to setup <a href="https://localhost.run/"><strong>localhost.run</strong></a><strong> </strong>in your system</h4><ol><li>No download or signup</li><li>Run below command</li></ol><pre>ssh -R 80:localhost:YOUR_APP_PORT ssh.localhost.run</pre><pre>Example:- </pre><pre>ssh -R 80:localhost:3000 ssh.localhost.run</pre><p>Your Public URL :- <a href="https://ef3d1418fa2ef3.localhost.run">https://ef3d1418fa2ef3.localhost.run</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RL7RhLZ9ekb4gHhgTIll7A.png" /></figure><p>Thanks for Reading and Happy Coding !!</p><p>Please share your suggestion and feedback in comment or DM me on my twitter(<a href="http://twitter.com/rao123dk">@rao123dk</a>). Mots welcome to your Suggestions and Feedback.</p><p><a href="https://twitter.com/rao123dk">https://twitter.com/rao123dk</a><br><a href="https://www.linkedin.com/in/rao123dk">https://www.linkedin.com/in/rao123dk</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=135e1ef54bdc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/javascript-kingdom/put-a-locally-running-http-https-or-tls-app-on-the-internet-free-135e1ef54bdc">Host locally running app on the internet (free) without any web server</a> was originally published in <a href="https://medium.com/javascript-kingdom">JavaScript Kingdom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Comparisons and sameness Between == , === and Object.is]]></title>
            <link>https://medium.com/javascript-kingdom/comparisons-and-sameness-between-and-object-is-9ed0acc08597?source=rss-acfe7f69e46a------2</link>
            <guid isPermaLink="false">https://medium.com/p/9ed0acc08597</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Dheeraj Kumar Rao]]></dc:creator>
            <pubDate>Sat, 23 Feb 2019 18:51:32 GMT</pubDate>
            <atom:updated>2019-02-23T19:18:14.503Z</atom:updated>
            <content:encoded><![CDATA[<h3>Comparisons and sameness Between == , === and Object.is</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*ENWG-v2OrtWrQww-5m9U9w.jpeg" /><figcaption>Picture credit :- <a href="https://www.rvcj.com">https://www.rvcj.com</a></figcaption></figure><p>Here,we are going to discuss about comparison and equality between == , === and object.is().</p><blockquote>First of all, I want to share about when the first time I saw Object.is() and where. I was writing the first time test case for React component in (Enzyme+jest). Then I got the first error in my terminal like this <strong>expected(received).toBe(expected) //object.is equality</strong>. After that, I have explored and now here we are. Thanks.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/754/1*vkYEMjZJBwtkt1Prd7WWAA.png" /></figure><p><strong>There are four equality algorithms</strong></p><ol><li>Abstract Equality Comparison (==)</li><li>Strict Equality Comparison (===): used by Array.prototype.indexOf, Array.prototype.lastIndexOf, and case-matching</li><li>SameValueZero: used by TypedArray and ArrayBuffer constructors, as well as Map and Set operations, and also String.prototype.includes and Array.prototype.includes since ES2016</li><li>SameValue: used in all other places</li></ol><p><strong>JavaScript provides three different value-comparison operations</strong></p><ol><li>Double equals (==) will perform a type conversion when comparing two things, and will handle NaN, -0, and +0 specially to conform to IEEE Standard for Floating-Point Arithmetic (IEEE 754) (so NaN != NaN, and -0 == +0);</li><li>Triple equals (===) will do the same comparison as double equals (including the special handling for NaN, -0, and +0) but without type conversion; if the types differ, false is returned.</li><li><strong>Object.is</strong> does no type conversion and no special handling for NaN, -0, and +0 (giving it the same behavior as === except on those special numeric values).</li></ol><h3>Why do we need Object.is ?</h3><p>You might think, we already have strict equality (checks type + value) checking in JavaScript with the === operator, why do we need this function? Well strict equality isn&#39;t sufficient in some cases and they are the following:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8d8c071788a991cc253117228a34cd5a/href">https://medium.com/media/8d8c071788a991cc253117228a34cd5a/href</a></iframe><p><strong>Object.is()</strong> helps us by being able to compare these values to see if they are similar, something the strict equality operator cannot do.</p><p><strong>Conclusion &amp; Feedback</strong></p><p>Triple equals(===) is called strict comparison operator in JavaScript. Object.is and strict comparison operator behave exactly the same except for NaN and +0/-0.</p><p>Please share your suggestion and feedback to me in comment box or DM me on my twitter(rao123dk). Your Suggestions and Feedback is Welcome.</p><p>Thanks for reading.</p><p>Happy Coding! Special thanks to MDN web docs for awesome explanations.</p><p><a href="https://twitter.com/rao123dk"></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9ed0acc08597" width="1" height="1" alt=""><hr><p><a href="https://medium.com/javascript-kingdom/comparisons-and-sameness-between-and-object-is-9ed0acc08597">Comparisons and sameness Between == , === and Object.is</a> was originally published in <a href="https://medium.com/javascript-kingdom">JavaScript Kingdom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[{… Many ways in JavaScript }]]></title>
            <link>https://medium.com/javascript-kingdom/many-ways-in-javascript-274974170611?source=rss-acfe7f69e46a------2</link>
            <guid isPermaLink="false">https://medium.com/p/274974170611</guid>
            <category><![CDATA[vuejs]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[angular]]></category>
            <dc:creator><![CDATA[Dheeraj Kumar Rao]]></dc:creator>
            <pubDate>Sat, 26 Jan 2019 13:36:15 GMT</pubDate>
            <atom:updated>2019-01-26T13:36:15.859Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MpXkTPX5My77sJZa" /><figcaption>Photo by <a href="https://unsplash.com/@markusspiske?utm_source=medium&amp;utm_medium=referral">Markus Spiske</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><blockquote>Right knowledge is the ultimate solution to all our problems. —<a href="https://en.wikipedia.org/wiki/Bhagavad_Gita"> <strong>Bhagavad Gita</strong></a></blockquote><blockquote>Every Problem contains within itself the seed of its own solution. — <strong>Stanley Arnold</strong></blockquote><p>In this Post, we are going to learn, How to solve the same problem by multiple ways in JavaScript.</p><ol><li><strong>IIFE(Immediately Invoked Function Expression)</strong></li></ol><p>An IIFE (Immediately Invoked Function Expression) is a JavaScript function that runs as soon as it is defined.</p><p>Here we can write IIFE by 12 ways.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/2a90900ca8f155c20cac5a2de328cbef/href">https://medium.com/media/2a90900ca8f155c20cac5a2de328cbef/href</a></iframe><p><em>2.</em><strong><em> </em>Creating Arrays</strong></p><p>The JavaScript Array object is a global object that is used in the construction of arrays; which are high-level, list-like objects. For this topic I would like to say thanks to <a href="http://2ality.com">2ality.com</a> .</p><p>Here we can create array by 10 ways.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1b96ec91a2537ceff0a296629fa59c93/href">https://medium.com/media/1b96ec91a2537ceff0a296629fa59c93/href</a></iframe><p><em>3. </em><strong>Function</strong></p><p>Functions are one of the fundamental building blocks in JavaScript. A function is a JavaScript procedure — a set of statements that performs a task or calculates a value. To use a function, you must define it somewhere in the scope from which you wish to call it.</p><p>Here we can write function by 6+ ways.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/ed83a4bf04b7a702f4e698cc9bf5d812/href">https://medium.com/media/ed83a4bf04b7a702f4e698cc9bf5d812/href</a></iframe><p>4. <strong>Covert to Number</strong></p><p>The Number JavaScript object is a wrapper object allowing you to work with numerical values. A Number object is created using the Number() constructor. A primitive type object number created using the Number() function.</p><p>Here we can convert string to Number by 9 ways.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/be6e1c1c0040cfe10ade8de7fa4a98b7/href">https://medium.com/media/be6e1c1c0040cfe10ade8de7fa4a98b7/href</a></iframe><p>Thanks for Reading!</p><p>If you found any mistake please post in comments. I would like to hear your suggestions and comments. This is my first post.</p><p>My twitter handle :-</p><p><a href="https://twitter.com/rao123dk"></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=274974170611" width="1" height="1" alt=""><hr><p><a href="https://medium.com/javascript-kingdom/many-ways-in-javascript-274974170611">{… Many ways in JavaScript }</a> was originally published in <a href="https://medium.com/javascript-kingdom">JavaScript Kingdom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>