<?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: Igahsamuel</title>
    <description>The latest articles on Forem by Igahsamuel (@igahsamuel).</description>
    <link>https://forem.com/igahsamuel</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%2F1285018%2F5836ba2b-f76c-4505-a795-9f72468f7a9c.jpg</url>
      <title>Forem: Igahsamuel</title>
      <link>https://forem.com/igahsamuel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/igahsamuel"/>
    <language>en</language>
    <item>
      <title>"Node.js: Understanding the Difference Between Current and LTS Versions"</title>
      <dc:creator>Igahsamuel</dc:creator>
      <pubDate>Thu, 27 Jun 2024 15:12:56 +0000</pubDate>
      <link>https://forem.com/igahsamuel/nodejs-understanding-the-difference-between-current-and-lts-versions-2dek</link>
      <guid>https://forem.com/igahsamuel/nodejs-understanding-the-difference-between-current-and-lts-versions-2dek</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
Node.js is a powerful runtime environment that allows developers to execute JavaScript on the server side. As with any software, Node.js receives regular updates to improve performance, add new features, and enhance security. Understanding the different versions of Node.js, particularly the Current and Long-Term Support (LTS) versions, is crucial for making informed decisions about which version to use for your projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Node.js?&lt;/strong&gt;&lt;br&gt;
Node.js is an open-source, cross-platform runtime environment that allows developers to build server-side applications using JavaScript. It is built on the V8 JavaScript engine and is widely used for developing scalable network applications.&lt;/p&gt;

&lt;p&gt;V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others. It implements ECMAScript and WebAssembly, and runs on Windows, macOS, and Linux systems that use x64, IA-32, or ARM processors. V8 can be embedded into any C++ application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The History of Node.js&lt;/strong&gt;&lt;br&gt;
Node.js was created by Ryan Dahl and first released in 2009, about 13 years after the introduction of the first server-side JavaScript environment, Netscape's LiveWire Pro Web. The initial release supported only Linux and Mac OS X. Its development and maintenance was led by Dahl and later sponsored by Joyent.&lt;/p&gt;

&lt;p&gt;Dahl's goal was to create a more efficient way to build scalable network programs, leveraging the asynchronous, event-driven programming model. Since its inception, Node.js has grown in popularity and become a cornerstone for many modern web development projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Node.js Versioning&lt;/strong&gt;&lt;br&gt;
Node.js follows a predictable release cycle with two main types of versions: the Current version and the Long-Term Support (LTS) version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Available Node.js Versions&lt;/strong&gt;&lt;br&gt;
As of now till 2028, this are the available versions of Node.js:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Release&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Code Name&lt;/th&gt;
&lt;th&gt;Release Date&lt;/th&gt;
&lt;th&gt;Maintenance End&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0.10.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2013-03-11&lt;/td&gt;
&lt;td&gt;2016-10-31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.12.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2015-02-06&lt;/td&gt;
&lt;td&gt;2016-12-31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Argon&lt;/td&gt;
&lt;td&gt;2015-09-08&lt;/td&gt;
&lt;td&gt;2018-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2015-10-29&lt;/td&gt;
&lt;td&gt;2016-06-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Boron&lt;/td&gt;
&lt;td&gt;2016-04-26&lt;/td&gt;
&lt;td&gt;2019-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2016-10-25&lt;/td&gt;
&lt;td&gt;2017-06-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Carbon&lt;/td&gt;
&lt;td&gt;2017-05-30&lt;/td&gt;
&lt;td&gt;2019-12-31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2017-10-01&lt;/td&gt;
&lt;td&gt;2018-06-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Dubnium&lt;/td&gt;
&lt;td&gt;2018-04-24&lt;/td&gt;
&lt;td&gt;2021-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2018-10-23&lt;/td&gt;
&lt;td&gt;2019-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Erbium&lt;/td&gt;
&lt;td&gt;2019-04-23&lt;/td&gt;
&lt;td&gt;2022-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2019-10-22&lt;/td&gt;
&lt;td&gt;2020-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Fermium&lt;/td&gt;
&lt;td&gt;2020-04-21&lt;/td&gt;
&lt;td&gt;2023-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2020-10-20&lt;/td&gt;
&lt;td&gt;2021-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;Gallium&lt;/td&gt;
&lt;td&gt;2021-04-20&lt;/td&gt;
&lt;td&gt;2023-09-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2021-10-19&lt;/td&gt;
&lt;td&gt;2022-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18.x&lt;/td&gt;
&lt;td&gt;Maintenance LTS&lt;/td&gt;
&lt;td&gt;Hydrogen&lt;/td&gt;
&lt;td&gt;2022-04-19&lt;/td&gt;
&lt;td&gt;2025-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19.x&lt;/td&gt;
&lt;td&gt;End-of-Life&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2022-10-18&lt;/td&gt;
&lt;td&gt;2023-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20.x&lt;/td&gt;
&lt;td&gt;Active LTS&lt;/td&gt;
&lt;td&gt;Iron&lt;/td&gt;
&lt;td&gt;2023-04-18&lt;/td&gt;
&lt;td&gt;2026-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;21.x&lt;/td&gt;
&lt;td&gt;Maintenance&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2023-10-17&lt;/td&gt;
&lt;td&gt;2024-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;22.x&lt;/td&gt;
&lt;td&gt;Current&lt;/td&gt;
&lt;td&gt;Jod&lt;/td&gt;
&lt;td&gt;2024-04-24&lt;/td&gt;
&lt;td&gt;2027-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23.x&lt;/td&gt;
&lt;td&gt;Planned&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;2024-10-14&lt;/td&gt;
&lt;td&gt;2025-06-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24.x&lt;/td&gt;
&lt;td&gt;Planned&lt;/td&gt;
&lt;td&gt;Krypton&lt;/td&gt;
&lt;td&gt;2025-04-22&lt;/td&gt;
&lt;td&gt;2028-04-30&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Current Version: Node.js 22.x&lt;br&gt;
The latest release with new features and improvements.&lt;br&gt;
LTS Versions:&lt;br&gt;
Node.js 20.x (Active LTS)&lt;br&gt;
Node.js 18.x (Maintenance LTS)&lt;br&gt;
Node.js 16.x (End-of-Life)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Version of Node.js&lt;/strong&gt;&lt;br&gt;
The Current version of Node.js is the latest release that includes the newest features, improvements, and updates. These versions are released approximately every six months, in April and October. Initially, a version is designated as "Current" and receives active feature updates for six months. After this period, it is either transitioned to LTS status or replaced by a new Current version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of the Current Version:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Access to the latest features and improvements.&lt;br&gt;
Ideal for development environments where early adoption of new features is important.&lt;br&gt;
When to Use the Current Version:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you want to leverage the latest advancements in Node.js.&lt;br&gt;
For testing and development purposes, where stability is less critical.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Long-Term Support (LTS) Version of Node.js&lt;/strong&gt;&lt;br&gt;
The LTS version of Node.js is a stable release that is maintained and supported for a longer period, ensuring stability and reliability. A Current version transitions to LTS status one year after its initial release. LTS versions have two phases: Active LTS and Maintenance LTS. Active LTS lasts for 18 months and includes regular updates, while Maintenance LTS lasts for 12 months and includes only critical fixes and security updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of the LTS Version:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Stability and long-term support.&lt;br&gt;
Suitable for production environments where stability is crucial.&lt;br&gt;
When to Use the LTS Version:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For production deployments to ensure stability and reliability.&lt;br&gt;
When long-term support is needed for enterprise projects.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;key differences between Current and LTS versions&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpzsexx5x2d6r9ptorgzs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpzsexx5x2d6r9ptorgzs.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Aspect&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Current Version&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;LTS Version&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Stability vs. New Features&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Focuses on introducing new features and improvements, which may sometimes introduce breaking changes.&lt;/td&gt;
&lt;td&gt;Prioritizes stability and long-term support, making it ideal for production use.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Support Duration and Update Frequency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Supported for six months, with frequent updates and improvements.&lt;/td&gt;
&lt;td&gt;Supported for 30 months, with regular updates in the Active LTS phase and critical fixes during Maintenance LTS.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Suitable for development environments and early adopters.&lt;/td&gt;
&lt;td&gt;Preferred for production environments and enterprises requiring stable and reliable software.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Practical Example: npx create-react-app vs. npm create vite@latest&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkkbzt87no0odt468uk5o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkkbzt87no0odt468uk5o.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When creating a new React application using npx create-react-app, you might encounter compatibility issues with the latest Node.js Current version. On the other hand, npm create vite@latest, a command for initializing a project using Vite, tends to be more up-to-date with the latest Node.js versions. Therefore, if you face issues with create-react-app, it might be safer to use the LTS version of Node.js, which ensures compatibility and stability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understanding the differences between the Current and LTS versions of Node.js helps you make informed decisions about which version to use for your projects. While the Current version offers the latest features, the LTS version provides stability and long-term support, making it ideal for production environments.&lt;/p&gt;

&lt;p&gt;if you are a newcomer to Node.js, I strongly recommend starting with the LTS version. This will provide you with a stable and reliable environment, allowing you to build a solid foundation. Once you become well-versed in Node.js, you can explore the Current version to take advantage of the latest features and improvements. Choose the version that best fits your project's needs and development stage.&lt;/p&gt;

&lt;p&gt;if this article was helpful please share and comment your thoughts on it.&lt;/p&gt;

&lt;p&gt;Reference from Wikipedia (&lt;a href="https://en.wikipedia.org/wiki/Node.js#:%7E:text=since%20February%202024-,Node.,and%20later%20sponsored%20by%20Joyent" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Node.js#:~:text=since%20February%202024-,Node.,and%20later%20sponsored%20by%20Joyent&lt;/a&gt;.), Node documentation (&lt;a href="https://nodejs.org/en/download/package-manager" rel="noopener noreferrer"&gt;https://nodejs.org/en/download/package-manager&lt;/a&gt;), V8 Dev(&lt;a href="https://v8.dev/" rel="noopener noreferrer"&gt;https://v8.dev/&lt;/a&gt;) and lastly my favourite AI(ChatGPT(&lt;a href="https://chatgpt.com/)" rel="noopener noreferrer"&gt;https://chatgpt.com/)&lt;/a&gt;)&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cypress vs. Selenium: Choosing the Right Automation Tool</title>
      <dc:creator>Igahsamuel</dc:creator>
      <pubDate>Wed, 20 Mar 2024 20:02:55 +0000</pubDate>
      <link>https://forem.com/igahsamuel/cypress-vs-selenium-choosing-the-right-automation-tool-3omd</link>
      <guid>https://forem.com/igahsamuel/cypress-vs-selenium-choosing-the-right-automation-tool-3omd</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is Testing?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Testing is the process of executing a program to find errors. To make our software perform well it should be error-free. If testing is done successfully it will remove all the errors from the software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Principles of Testing&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start testing with small parts and extend it to large parts. &lt;/li&gt;
&lt;li&gt;All the tests should meet the customer’s requirements.&lt;/li&gt;
&lt;li&gt;It follows the Pareto rule(80/20 rule)  which states that 80% of errors come from 20% of program components.
&lt;a href="https://www.getclockwise.com/blog/pareto-principle-software-development"&gt;https://www.getclockwise.com/blog/pareto-principle-software-development&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;All the tests to be conducted should be planned before implementing it &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Types of Testing &lt;br&gt;
Basically there are two major types of testing which are :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manual testing &lt;/li&gt;
&lt;li&gt;Automation testing &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Manual testing&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Manual testing&lt;/strong&gt;is a technique to test the software that is carried out using the functions and features of an application. In manual software testing, a tester carries out tests on the software by following a set of predefined test cases. In this testing, testers make test cases for the codes, test the software, and give the final report about that software. Manual testing is time-consuming because it is done by humans, and there is a chance of human errors.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Automation testing&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Automated Testing&lt;/strong&gt; is a technique where the Tester writes scripts on their own and uses suitable Software or Automation Tool to test the software. It is an Automation Process of a Manual Process. It allows for executing repetitive tasks without the intervention of a Manual Tester.&lt;/p&gt;

&lt;p&gt;Hurry!!! We are finally in automation testing lets dive deep down &lt;br&gt;
Automation testing is divided into three forms &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Types of testing &lt;/li&gt;
&lt;li&gt;Type of tests&lt;/li&gt;
&lt;li&gt;Phase of testing &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Under types of testing we have:&lt;br&gt;
&lt;strong&gt;functional and Non-functional&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;under type of test we have :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Smoke test&lt;/li&gt;
&lt;li&gt;Regression test&lt;/li&gt;
&lt;li&gt;Integration test&lt;/li&gt;
&lt;li&gt;Security test&lt;/li&gt;
&lt;li&gt;Performance test&lt;/li&gt;
&lt;li&gt;Acceptance test&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;under phase testing we have :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unit test&lt;/li&gt;
&lt;li&gt;API testing&lt;/li&gt;
&lt;li&gt;Ul testing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tools to Use for Your Automated Tests&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;li&gt;katalon studios&lt;/li&gt;
&lt;li&gt;Ranorex&lt;/li&gt;
&lt;li&gt;Apache jmeter&lt;/li&gt;
&lt;li&gt;Cypress&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Finally lets go into the differences between cypress and selenium, but first we have to know them properly&lt;br&gt;
&lt;strong&gt;What is Selenium Framework?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40rqkx86pm9qty0cp7bs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40rqkx86pm9qty0cp7bs.jpg" alt="Image description" width="311" height="162"&gt;&lt;/a&gt;&lt;br&gt;
 Selenium is a testing automation tool that enables developers to automate web browser testing.&lt;/p&gt;

&lt;p&gt;The Selenium WebDriver protocol enables sending commands in various development languages — like Java, Java Script, C#, Python, and others — from the test environment (IDEs) to a selected desktop browser (Chrome, Firefox, Edge, Safari).&lt;/p&gt;

&lt;p&gt;Selenium is now on version 4.18.1 with great features like :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Full World Wide Web Consortium (W3C) compliance. &lt;/li&gt;
&lt;li&gt;Relative locators for more reliable and stable test scripts. &lt;/li&gt;
&lt;li&gt;A new integration with CDP (chrome debugging protocol) to extend your test coverage. &lt;/li&gt;
&lt;li&gt;New Selenium Grid for robust parallel testing &lt;/li&gt;
&lt;li&gt;New Selenium IDE with plugins for Chrome and Firefox browsers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is cypress Framework?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82uprazqqkvr1oaqdu3a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82uprazqqkvr1oaqdu3a.png" alt="Image description" width="299" height="168"&gt;&lt;/a&gt;&lt;br&gt;
Cypress a JavaScript-based testing automation solution used for modern web automation that enables teams to create web test automation scripts. The Cypress frameworks also enables frontend developers and test automation engineers to write web JavaScript  (the de-facto web language) tests in for web test automation.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cypress is currently on version 13.7.00 with the following features:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Time travel for real-time debugging of web apps.
&lt;/li&gt;
&lt;li&gt;Cypress network control. &lt;/li&gt;
&lt;li&gt;API testing capabilities. &lt;/li&gt;
&lt;li&gt;Innovative component testing capabilities. &lt;/li&gt;
&lt;li&gt;A beta version of Cypress Studio as a record and playback solution. &lt;/li&gt;
&lt;li&gt;Mocking and stubbing capabilities. &lt;/li&gt;
&lt;li&gt;A rich set of plugins to advance test automation coverage, such as AXE for accessibility, test coverage measurements (Istanbul), visual testing, and more.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When considering which tool to use, it’s important to evaluate factors such as the skill level of your development team, the complexity of the web application being tested, the need for cross-browser or mobile testing, and the available budget and resources. Ultimately, the right tool will depend on your specific testing goals and requirements. Here are some general guidelines on Selenium vs Cypress that can help you decide which tool is best for your project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Choose Cypress if&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your application is a single-page application (SPA)&lt;/li&gt;
&lt;li&gt;You prefer a tool that is easy to set up and use&lt;/li&gt;
&lt;li&gt;You want a tool that provides real-time reloading and time-travel debugging&lt;/li&gt;
&lt;li&gt;You prioritize stable and reliable tests, and value automatic waiting and retrying&lt;/li&gt;
&lt;li&gt;You are comfortable with JavaScript and do not require support for multiple programming languages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Choose Selenium if&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your application requires cross-browser testing or mobile device testing&lt;/li&gt;
&lt;li&gt;You prefer a more traditional web testing framework that has been around for a long time&lt;/li&gt;
&lt;li&gt;You require support for multiple programming languages, such as Java, Python, or C#&lt;/li&gt;
&lt;li&gt;You require a more customizable testing tool or want to create and manage tests that are tailored to specific project requirements&lt;/li&gt;
&lt;li&gt;You are comfortable with a more complex and feature-rich testing tool and have the resources and expertise to manage and maintain it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Test Framework&lt;/strong&gt;: Selenium WebDriver&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs0biw76lxl551e9qvmz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs0biw76lxl551e9qvmz.jpg" alt="Image description" width="318" height="159"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Supported Dev Languages&lt;/strong&gt;: Java, C#, JavaScript, Python, Ruby, Objective-C&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Browsers&lt;/strong&gt;: Chrome, Safari, Firefox, Edge, IE&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Test Frameworks&lt;/strong&gt;: Mocha JS, Jest, Other super set on top of Selenium (Protractor, WebDriverIO, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup and Execution&lt;/strong&gt;: Download relevant driver, set up a grid, network and location impacts execution speed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integrations&lt;/strong&gt;: Plenty of integrations (CI, CD, reporting, visual testing, cloud vendors)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breadth of Testing Options&lt;/strong&gt;: End-to-end, security, unit&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maturity, Documentation, Support&lt;/strong&gt;: Robust community, multiple bindings, best practices&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Framework&lt;/strong&gt;: Cypress.io&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrqqn5h3k5rt33ozzw49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrqqn5h3k5rt33ozzw49.png" alt="Image description" width="301" height="168"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Supported Dev Languages&lt;/strong&gt;: JavaScript, Typescript&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Browsers&lt;/strong&gt;: Chrome, Electron, Edge, Firefox&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Test Frameworks&lt;/strong&gt;: Mocha JS&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup and Execution&lt;/strong&gt;: Comes with bundled Chrome browser, no complex environment setup&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integrations&lt;/strong&gt;: Limited integrations, but many plugins&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breadth of Testing Options&lt;/strong&gt;: End-to-end&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maturity, Documentation, Support&lt;/strong&gt;: Good documentation and code sample, growing community&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
While it is difficult to predict the future of automation, Cypress has gained popularity in recent years due to its modern architecture and comprehensive features. It offers efficient and reliable testing, making it a preferred choice for many developers. However, other frameworks may also continue to evolve and gain popularity, so it is important to keep an eye on the industry and stay up to date with the latest tools and technologies&lt;/p&gt;

&lt;p&gt;&lt;em&gt;With all being said we have come to the end of this post. Please like, share and follow and most importantly comment on which testing framework you use and what you think about the post&lt;/em&gt; &lt;strong&gt;Bye for now see you in the next post&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt;&lt;br&gt;
Cypress vs Selenium- Which Framework is Best Fit for You? by  &lt;strong&gt;Shanika Wickramasinghe&lt;/strong&gt;&lt;br&gt;
Cypress vs. Selenium: What’s the Right Cross-Browser Testing Solution for You? by  &lt;strong&gt;Eran Kinsbruner&lt;/strong&gt;&lt;br&gt;
Types of software testing from &lt;strong&gt;geeksforgeeks&lt;/strong&gt;&lt;br&gt;
The Pareto Principle for Software Developers by &lt;strong&gt;Alyssa Towns&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>testing</category>
      <category>coding</category>
    </item>
    <item>
      <title>HOW TO MANAGE MULTIPLE GITHUB ACCOUNTS USING GIT BASH AND SSH</title>
      <dc:creator>Igahsamuel</dc:creator>
      <pubDate>Wed, 21 Feb 2024 20:00:19 +0000</pubDate>
      <link>https://forem.com/igahsamuel/how-to-manage-multiple-github-accounts-using-git-bash-and-ssh-1fd1</link>
      <guid>https://forem.com/igahsamuel/how-to-manage-multiple-github-accounts-using-git-bash-and-ssh-1fd1</guid>
      <description>&lt;p&gt;&lt;strong&gt;INSTALL GIT ON YOUR SYSTEM&lt;/strong&gt;&lt;br&gt;
Go to your web browser and then install git using the link below and follow the process.&lt;br&gt;
On installing it will also install git bash&lt;br&gt;
&lt;a href="https://gitforwindows.org/"&gt;https://gitforwindows.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fwupu2fmhmwc00ui3ui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fwupu2fmhmwc00ui3ui.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
Go to your command for those using Macbook and the windows key for those using windows and type git bash and then open it &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generating the SSH Keys&lt;/strong&gt;&lt;br&gt;
so before you generate a new SSH keys, you have to check if there is an already available SSH keys which you may have installed a long time ago by running this line of code &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ls -al ~/.ssh&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After running the command it will show the list of available private and public keys as shown in the image below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83g4huzwf8ql98xof3hp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83g4huzwf8ql98xof3hp.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if not available, then you can run this command &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ssh-keygen -t rsa&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;when asked for the location to save the keys accept the default location by pressing the enter key.&lt;/p&gt;

&lt;p&gt;By default the git bash recognizes your personal Github account, you can check that by running the command &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;git config user.name&lt;br&gt;&lt;br&gt;
git config user.email , to check the username and email .&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After generating the SSH keys for your personal github account, you can do the same for the work account or any other account using the command line below&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ssh-keygen -t rsa -C "&lt;a href="mailto:email@work_mail.com"&gt;email@work_mail.com&lt;/a&gt;" -f "id_rsa_work_user1"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;so the "&lt;a href="mailto:email@work_mail.com"&gt;email@work_mail.com&lt;/a&gt;" is your work email, the one you used to create the work github account or whatever email you used.&lt;br&gt;
and "id_rsa_work_user1" is your username on github, so it distinguishes between the personal and the work SSH keys&lt;/p&gt;

&lt;p&gt;So by now we have two different SSH keys&lt;br&gt;
~/.ssh/id_rsa&lt;br&gt;
~/.ssh/id_rsa_work_user1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adding the new corresponding SSH key to your Github account&lt;br&gt;
Copy the public key pbcopy &amp;lt; ~/.ssh/id_rsa.pub and then log in to your personal GitHub account:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To see the key on git bash, enter this command &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;cat ~/.ssh/id_rsa.pub&lt;br&gt;
cat ~/.ssh/id_rsa_work_user1.pub&lt;br&gt;
N/B: id_rsa.pub is the name for your personal SSH key and &amp;gt;id_rsa_work_user1  is name for your work SSH key or the name you used to save it, if it is your username, that's how it will appear&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;a. Go to Settings&lt;br&gt;
b. Select SSH and GPG keys from the menu to the left.&lt;br&gt;
c. Click on New SSH key, provide a suitable title, and paste the key in the box below&lt;br&gt;
d. Click Add key — and you’re done!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlipfxvx69h1hc6ms7cs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlipfxvx69h1hc6ms7cs.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then do the same thing for your work Github account, if successful github will show a prompt message that you have successfully added your SSH key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Registering the new SSH Keys with the ssh-agent&lt;/strong&gt;&lt;br&gt;
Ensure the ssh-agent is running by inputting this command&lt;br&gt;
eval "$(ssh-agent -s)", and will show something like this "Agent pid 1280"&lt;/p&gt;

&lt;p&gt;Then add the ssh-agent like this : &lt;br&gt;
ssh-add ~/.ssh/id_rsa&lt;br&gt;
ssh-add ~/.ssh/id_rsa_work_user1&lt;/p&gt;

&lt;p&gt;if successfully added it will show something like &lt;br&gt;
identity added : path to where it was added &lt;/p&gt;

&lt;p&gt;To check the list of SSH keys in your computer, you can run the command &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ssh-add -l&lt;br&gt;
And it will show the list of keys&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Creating the SSH config File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;$ cd ~/.ssh/&lt;br&gt;
$ touch config           // Creates the file if not exists&lt;br&gt;
$ code config            // Opens the file in VS code, use any editor&lt;/p&gt;

&lt;p&gt;so this creates a mark down file in vs code then you input this values &lt;br&gt;
N/B: make sure that there is no comment else there will be an error&lt;/p&gt;

&lt;p&gt;Host &lt;a href="mailto:personalemail@gmail.com"&gt;personalemail@gmail.com&lt;/a&gt;&lt;br&gt;
HostName &lt;a href="mailto:personalemail@gmail.com"&gt;personalemail@gmail.com&lt;/a&gt;&lt;br&gt;
User github username&lt;br&gt;
IdentityFile ~/.ssh/id_rsa&lt;/p&gt;

&lt;p&gt;Host &lt;a href="mailto:workemail@gmail.com"&gt;workemail@gmail.com&lt;/a&gt;&lt;br&gt;
HostName &lt;a href="mailto:workemail@gmail.com"&gt;workemail@gmail.com&lt;/a&gt;&lt;br&gt;
User github username&lt;br&gt;
IdentityFIle ~/.ssh/id_rsa_work_user1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One active SSH key in the SSH agent at a time **&lt;br&gt;
so as I mentioned above you can use **ssh-add -l&lt;/strong&gt; to see the list of SSH key in your system or computer. Then you can use &lt;strong&gt;ssh-add -D&lt;/strong&gt; to delete all the keys, then you can add them one by one by using this command in accordance with the github account you want to use at the moment be it personal or work &lt;br&gt;
for personal &lt;strong&gt;ssh-add ~/.ssh/id_rsa&lt;/strong&gt;&lt;br&gt;
for work &lt;strong&gt;ssh-add ~/.ssh/id_rsa_work_user1&lt;/strong&gt;&lt;br&gt;
N/B: "~/.ssh/id_rsa" this is the path it was stored in your computer&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9nsxkpdi4qduakv3hdt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9nsxkpdi4qduakv3hdt5.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ssh-agent now has the key mapped with the personal GitHub account, and we can do a Git push to the personal repository.&lt;/p&gt;

&lt;p&gt;To push to your work GitHub account, change the SSH key mapped with the ssh-agent by removing the existing key and adding the SSH key mapped with the GitHub work account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting the git remote Url for the local repositories&lt;/strong&gt;&lt;br&gt;
Once we have local Git repositories cloned /created, ensure the Git config user name and email is exactly what you want. GitHub identifies the author of any commit from the email id attached with the commit description.&lt;/p&gt;

&lt;p&gt;To list the config name and email in the local Git directory, do git config user.name and git config user.email. If it’s not found, update accordingly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;git config user.name "User 1"   // Updates git config user name&lt;br&gt;
git config user.email "&lt;a href="mailto:user1@workMail.com"&gt;user1@workMail.com&lt;/a&gt;"&lt;br&gt;
git config --globe user.name "User1"&lt;br&gt;
git config --globe user.email "&lt;a href="mailto:user1@workMail.com"&gt;user1@workMail.com&lt;/a&gt;"&lt;br&gt;
N/B: This will add the username and email to the globe&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;While Cloning Repositories&lt;/strong&gt;&lt;br&gt;
Note: The next step will help, if we have the repository already available on local.&lt;/p&gt;

&lt;p&gt;Now that the configurations are in place, we can go ahead and clone the corresponding repositories. On cloning, make a note that we use the host names that we used in the SSH config.&lt;/p&gt;

&lt;p&gt;Repositories can be cloned using the clone command Git provides:&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;:personal_account_name/repo_name.git&lt;br&gt;
The work repository will require a change to be made with this command:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9uth7sapztrcuow1xu0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9uth7sapztrcuow1xu0.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="mailto:git@github.com-work_user1"&gt;git@github.com-work_user1&lt;/a&gt;:work_user1/repo_name.git&lt;br&gt;
This change is made depending on the host name defined in the SSH config. The string between @ and : should match what we have given in the SSH config file.&lt;/p&gt;

&lt;p&gt;so for an example I was able to clone the repo of one of my favorite developers &lt;strong&gt;JONAS SCHMEDTMANN&lt;/strong&gt; by using the steps stated above &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkoq5c5yaegghiq938ixk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkoq5c5yaegghiq938ixk.png" alt="Image description" width="800" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Locally Existing Repositories&lt;/strong&gt;&lt;br&gt;
If we have the repository already cloned:&lt;/p&gt;

&lt;p&gt;List the Git remote of the repository, git remote -v&lt;/p&gt;

&lt;p&gt;Check whether the URL matches our GitHub host to be used, or else update the remote origin URL.&lt;/p&gt;

&lt;p&gt;git remote set-url origin &lt;a href="mailto:git@github.com-worker_user1"&gt;git@github.com-worker_user1&lt;/a&gt;:worker_user1/repo_name.git&lt;br&gt;
Ensure the string between @ and : matches the Host we have given in the SSH config.&lt;/p&gt;

&lt;p&gt;If you are creating a new repository on local:&lt;/p&gt;

&lt;p&gt;Initialize Git in the project folder git init.&lt;/p&gt;

&lt;p&gt;Create the new repository in the GitHub account and then add it as the Git remote to the local repository.&lt;/p&gt;

&lt;p&gt;git remote add origin &lt;a href="mailto:git@github.com-work_user1"&gt;git@github.com-work_user1&lt;/a&gt;:work_user1/repo_name.git &lt;br&gt;
Ensure the string between @ and : matches the Host we have given in the SSH config.&lt;/p&gt;

&lt;p&gt;Push the initial commit to the GitHub repository:&lt;/p&gt;

&lt;p&gt;git add .&lt;br&gt;
git commit -m "Initial commit"&lt;br&gt;
git push -u origin master&lt;/p&gt;

&lt;p&gt;if this article was helpful please share and comment your thoughts on it.&lt;/p&gt;

&lt;p&gt;Reference from &lt;strong&gt;Bivil M Jacob&lt;/strong&gt; from his freecodecamp post, and  &lt;strong&gt;Jonas Schmedtmann&lt;/strong&gt; from his complete javascript repo&lt;/p&gt;

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