<?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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Integrated Development Environment   - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Integrated Development Environment   - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 30 May 2026 08:56:25 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/integrated-development-environment/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Install Neovim Using the nvchad Framework ]]>
                </title>
                <description>
                    <![CDATA[ Neovim is a popular IDE and is a solid alternative to VS Code. Neovim supports every major programming language and allows you to build anything, anywhere.  Neovim can be a bit problematic to start with, especially for newcomers. Writing a Neovim con... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/install-neovim-with-nvchad/</link>
                <guid isPermaLink="false">66d038bbdac44f94fd94e9d6</guid>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Rajdeep Singh ]]>
                </dc:creator>
                <pubDate>Thu, 14 Mar 2024 14:17:07 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/03/How-to-Install-Neovim-Using-the-nvchad-Framework.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a target="_blank" href="https://neovim.io/">Neovim</a> is a popular IDE and is a solid alternative to VS Code. Neovim supports every major programming language and allows you to build anything, anywhere. </p>
<p>Neovim can be a bit problematic to start with, especially for newcomers. Writing a Neovim configuration from scratch is often difficult. To resolve this issue, we will install Neovim using the Nvchad framework. </p>
<p><a target="_blank" href="https://nvchad.com/">Nvchad</a> is a Neovim framework/configuration provider that has a rich, beautiful UI interface, blazing-fast startup time, and helps you work productively with Neovim.</p>
<p>You don't need to configure everything from scratch, as most things come pre-configured. There are multiple themes, code snippets, syntax highlighting, LSP configuration, plugin management, key mapping, and other helpful features.</p>
<p>In this article, I'll give you step-by-step instructions on installing Neovim and nvchad from scratch in your Linux and Debian based distro.</p>
<h2 id="heading-how-to-set-up-the-project">How to Set Up the Project</h2>
<p>To download Neovim and nvchad in your distro, you'll need some additional command line tools. These will help you install the software:</p>
<ol>
<li><a class="post-section-overview" href="#heading-install-the-git-cli">Git CLI</a></li>
<li><a class="post-section-overview" href="#heading-install-the-curl-cli">Curl CLI</a></li>
<li><a class="post-section-overview" href="#heading-install-the-unzip-cli">Unzip CLI</a></li>
<li><a class="post-section-overview" href="#heading-install-the-fc-cache-font-config-cli">Fc cache (Font Config) CLI</a></li>
</ol>
<p>Let's go through installing these tools to make sure you have them:</p>
<h3 id="heading-install-the-git-cli">Install the Git CLI</h3>
<p>To install Git, run the following command:</p>
<pre><code class="lang-bash">sudo apt-get install git
</code></pre>
<h3 id="heading-install-the-curl-cli">Install the Curl CLI</h3>
<p>To install curl, run the following command:</p>
<pre><code class="lang-bash">sudo apt-get install curl
</code></pre>
<h3 id="heading-install-the-unzip-cli">Install the Unzip CLI</h3>
<p>To install Unzip, run the following command:</p>
<pre><code class="lang-bash">sudo apt-get install unzip
</code></pre>
<h3 id="heading-install-the-fc-cache-font-config-cli">Install the Fc cache (Font Config) CLI</h3>
<p>To install the Fc cache CLI, run the following command.</p>
<pre><code class="lang-bash">sudo apt install fontconfig
</code></pre>
<h2 id="heading-how-to-install-neovim-and-nvchad">How to Install Neovim and nvchad</h2>
<p>If you follow these steps, you can easily install Neovim and nvchad, even if you are a newcomer. It takes some time, but you don't need to have deep knowledge about Neovim and nvchad to get them set up.</p>
<h3 id="heading-install-neovim">Install Neovim</h3>
<p>The first step is to install Neovim on your machine. To do that, you'll need to run the following command depending on your distro:</p>
<pre><code class="lang-bash"><span class="hljs-comment"># Ubuntu ( Snap User)</span>
sudo snap install nvim --classic

<span class="hljs-comment"># NixOS</span>
nix-env -iA nixpkgs.neovim

<span class="hljs-comment"># MacOS</span>
brew install neovim

<span class="hljs-comment"># Arch Linux</span>
sudo pacman -S neovim
</code></pre>
<p>For other operating systems such as Windows, you can read the <a target="_blank" href="https://github.com/neovim/neovim/blob/master/INSTALL.md">installation documentation Page</a>. I've also written an article on <a target="_blank" href="https://medium.com/thelinux/the-correct-way-to-install-the-neovim-42f3076f9b88"><strong>the correct way to install Neovim</strong></a>, which you can also check out.</p>
<h2 id="heading-how-to-install-nerd-font">How to Install Nerd Font</h2>
<p>The next step is to install Nerd Font on your laptop or operating system. Nerd Font is a prerequisite for nvchad. If you cannot download Nerd Font, your nvchad UI will not work.</p>
<p>To install Nerd Font in Debian or Debian-based distros and macOS, you can run the following command:</p>
<pre><code class="lang-bash"><span class="hljs-comment"># Debain, Ubuntu, Linux Mint, Kali Linux, etc.</span>
bash -c  <span class="hljs-string">"<span class="hljs-subst">$(curl -fsSL https://raw.githubusercontent.com/officialrajdeepsingh/nerd-fonts-installer/main/install.sh)</span>"</span> 

<span class="hljs-comment"># MacOS</span>
brew tap homebrew/cask-fonts &amp;&amp; brew install --cask font-&lt;Nerd-FONT- NAME&gt;-nerd-font
</code></pre>
<p>Before running the <a target="_blank" href="https://github.com/officialrajdeepsingh/nerd-fonts-installer">nerd-fonts-installer</a>, make sure you've installed <strong>curl</strong>, <strong>unzip</strong>, and <strong>Fc cache</strong> CLI in your Debian distro, following the instructions above.</p>
<h2 id="heading-how-to-install-nvchad">How to Install nvchad</h2>
<p>The last and final step is to install the nvchad framework in Neovim. To do so, run the following command:</p>
<pre><code class="lang-bash"><span class="hljs-comment"># Linux &amp; macOS</span>
git <span class="hljs-built_in">clone</span> https://github.com/NvChad/starter ~/.config/nvim &amp;&amp; nvim
</code></pre>
<p>The following command takes some time, depending on your internet speed, and installs additional plugins required by nvchad from the internet. </p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>For a newcomer starting with Neovim, the nvchad framework is a great choice. Without nvchad, configuring Neovim from scratch is a hard task for a beginner. Choosing the Neovim framework (configuration) is the right choice for newcomers.</p>
<p>Before starting with Neovim, read up and make sure It is the right choice for you. I recently found a <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim">VS Code plugin</a> created and maintained by Neovim. You can get the same Neovim experience inside VS Code. After that, you can decide which you prefer.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is an IDE? IDE Meaning in Coding ]]>
                </title>
                <description>
                    <![CDATA[ When you're first learning to code, there are a few tools you'll typically want to decide on before getting started. You'll pick a tech stack and a programming language to learn and use, and you'll also choose an IDE, or integrated development enviro... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-an-ide-for-beginners/</link>
                <guid isPermaLink="false">66d4600a264384a65d5a9588</guid>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Visual Studio Code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Joel Olawanle ]]>
                </dc:creator>
                <pubDate>Thu, 01 Sep 2022 18:48:32 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/09/cover-template--4-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>When you're first learning to code, there are a few tools you'll typically want to decide on before getting started.</p>
<p>You'll pick a tech stack and a programming language to learn and use, and you'll also choose an IDE, or integrated development environment, where you'll write your code.</p>
<p>Many different types of IDEs are available today. Some work only online, while others work locally and possibly online. Some have specific features that help you write more precise and correct code, and so on.</p>
<p>In this article, you will learn what an IDE is, what features an IDE can have, and what factors to consider when selecting an IDE for coding.</p>
<h2 id="heading-what-is-an-ide">What is an IDE?</h2>
<p>Developers use an IDE, which stands for Integrated Development Environment, to write computer programs. You can write these computer programs in any language, including Python, Java, and many others.</p>
<p>There are always tools that you'll use to help you achieve your goals in life. For example, a writer uses text editors such as Microsoft Word and Google Docs. An accountant uses spreadsheets such as Microsoft Excel and Google Sheets. And a programmer uses IDEs.</p>
<p>These IDEs increase your productivity by making writing, editing, debugging, and testing code easier.</p>
<p><strong>Note:</strong> You can write code with text editors, but these text editors won't give you all the benefits an IDE can offer.</p>
<h2 id="heading-why-use-an-ide">Why Use an IDE?</h2>
<p>Before IDEs were introduced, programmers used text editors such as Notepad to write code. They then saved that code using programming language extensions such as .php for PHP files and many more.</p>
<p>However, these text editors were plain and lacked some features. This made writing, debugging, and running code difficult and time-consuming.</p>
<p>This resulted in the development of the IDE, which includes some core functionality that extends beyond text editing, such as:</p>
<h3 id="heading-syntax-highlighting">Syntax Highlighting</h3>
<p>An IDE detects the programming language and then applies specific colors, fonts, and styles to certain keywords, words, and text. This makes your code readable, clean, easier to detect syntax errors, and lots more.</p>
<pre><code class="lang-bash">// without syntax highlighting

const sayHello = () =&gt; {
  console.log(<span class="hljs-string">"Hello World"</span>);
}
</code></pre>
<pre><code class="lang-js"><span class="hljs-comment">// with syntax highlighting</span>

<span class="hljs-keyword">const</span> sayHello = <span class="hljs-function">() =&gt;</span> {
  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">"Hello World"</span>);
}
</code></pre>
<h3 id="heading-auto-completion">Auto Completion</h3>
<p>When we type code in an IDE, a dropdown of possible suggestions appears from which we can select what we want. These helpful suggestions appear without us having to write the entire code, which can be slow and may result in a syntax error.</p>
<p><img src="https://media2.giphy.com/media/8TB7KS8Q9vHIx1F9vC/giphy.gif?cid=790b761183e20bb773f96c56784399cc5608e9c3035aa750&amp;rid=giphy.gif&amp;ct=g" alt="Animated GIF" width="480" height="140" loading="lazy"></p>
<h3 id="heading-easier-debugging">Easier Debugging</h3>
<p>Because programmers are humans, we are prone to making mistakes (bugs) in our code. These can be challenging to detect with text editors but can be easier with IDEs.</p>
<p>When we run or test our code, an IDE will show us the errors, including the lines where they appear and potential solutions.</p>
<p>This makes debugging (the process of fixing any errors or bugs discovered during testing) much more straightforward.</p>
<p><img src="https://paper-attachments.dropbox.com/s_110D5189045A36DC79B67893295C6233E2BEE4B4A7634435CBB07595B3BC257C_1662065625612_image.png" alt="s_110D5189045A36DC79B67893295C6233E2BEE4B4A7634435CBB07595B3BC257C_1662065625612_image" width="600" height="400" loading="lazy"></p>
<p>There are many more reasons why you should use IDEs, such as the ability to easily compile your code and lots more.</p>
<h2 id="heading-how-to-choose-an-ide-for-coding">How to Choose an IDE for Coding</h2>
<p>Having read this article to this point, the next question on your mind is likely - how do I choose an IDE?</p>
<p>Don't worry, this doesn't have to be too complicated. But weighing some options before choosing an IDE is a good idea.</p>
<p>Here are some things to consider:</p>
<h3 id="heading-what-programming-language-youre-using">What programming language you're using</h3>
<p>There are many different types of IDEs, as mentioned above. Some are dedicated and only work with specific languages, while others are multi-language and support multiple languages.</p>
<p>The specialized IDEs include automation features tailored to the syntax of specific languages. This means that language is an important consideration when selecting an IDE.</p>
<p>Some examples of specialized IDEs include <a target="_blank" href="https://www.jetbrains.com/pycharm/">PyCharm</a> for Python, <a target="_blank" href="http://www.jetbrains.com/idea/">Intellij IDEA</a> for Java, <a target="_blank" href="http://www.codeblocks.org/">Code::Blocks</a> for C/C++, and <a target="_blank" href="http://www.jetbrains.com/ruby/">RubyMine</a> for Ruby/Rails.</p>
<p>If you're looking for a multi-language IDE, <a target="_blank" href="https://code.visualstudio.com/">Visual Studio Code</a> is a popular option. It's useful for web development and many other purposes.</p>
<h3 id="heading-what-operating-system-youre-using">What operating system you're using</h3>
<p>Another essential factor to consider is the operating system you're using.</p>
<p>Some IDEs work very well on one OS but not on another. On one operating system, an IDE may be slow or difficult to use, and vice versa on another. Some IDEs exist on one OS but not on another, even though most IDEs today have multiple versions for different operating systems.</p>
<p>For example, Xcode is the built-in IDE for macOS. It is not installed by default, but you can get it for free from Apple via the Terminal or Apple's website. However, this IDE is incompatible with Windows.</p>
<h3 id="heading-the-cost">The cost</h3>
<p>Even if most IDEs are free, the add-ons or customization features may not be. This means you must research the specific features you desire, the cost, and whether they are affordable.</p>
<p>For example, if you want an AI assistant that can suggest code and complete your code for you, saving you time, there are many extensions available, such as <a target="_blank" href="https://www.tabnine.com/">Tabnine</a> for VScode. This supports almost all programming languages, but it is paid and only offers a 14-day free trial.</p>
<p>Before selecting an IDE, you should compare as many extensions that offer what you want and the IDE they work with, their cost, the languages they support, and other factors as possible.</p>
<p>There are other details to consider, but this will get you started.</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>In this article, you have learned what an IDE is, why programmers use them, and how to choose one.</p>
<p>To summarize, there are some IDEs that are specific to specific programming languages, as we discussed above. But others, like VSCode, are more general-purpose and support many languages.</p>
<p>Before selecting an IDE, research your preferred language, operating system, financial capabilities, and customization features.You can read more on <a target="_blank" href="https://www.freecodecamp.org/news/what-is-an-ide-in-programming-an-ide-definition-for-developers/">What is an IDE in Programming?</a> on our previous areticle by <a target="_blank" href="https://www.freecodecamp.org/news/author/larymak/">Hillary</a>.</p>
<p>Have fun coding!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Best Colorful VSCode Extensions – How to Personalize Your Editor ]]>
                </title>
                <description>
                    <![CDATA[ Engineers spend a good portion of their day writing code in their integrated development environment, or IDE for short. And Visual Studio Code is one of the best free IDE's on the market.  I find that personalizing my IDE helps me enjoy the time I sp... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/best-colorful-vscode-extensions-for-productivity/</link>
                <guid isPermaLink="false">66bc4ca273c9920bb20c0dff</guid>
                
                    <category>
                        <![CDATA[ editor ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Productivity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Visual Studio Code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Natalie Pina ]]>
                </dc:creator>
                <pubDate>Tue, 12 Apr 2022 18:19:17 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/Cover.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Engineers spend a good portion of their day writing code in their integrated development environment, or IDE for short. And <a target="_blank" href="https://code.visualstudio.com/">Visual Studio Code</a> is one of the best free IDE's on the market. </p>
<p>I find that personalizing my IDE helps me enjoy the time I spend using it more. I want to share that same spark of joy with you all, and have been searching for and testing out the best extensions to download. And many of these will help you be more productive.</p>
<p>This article goes beyond theming extensions, so I suggest picking out a theme first. Or try out my current favorite theme, <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=mathcale.theme-dracula-refined">Dracula Refined</a>. </p>
<h2 id="heading-indent-rainbow">Indent Rainbow</h2>
<p><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow">Indent Rainbow</a> is a great tool to add color and productivity to your setup. It can also help serve as an alignment check for your indentation. Each indentation is given an alternating rainbow color.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screen-Shot-2022-03-25-at-4.26.13-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Indent Rainbow</em></p>
<h3 id="heading-bonus-indent-rainbow-palettes">Bonus: Indent Rainbow Palettes</h3>
<p>Want custom colors in your Indent Rainbow? Check out <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=evondev.indent-rainbow-palettes">Indent Rainbow Palettes</a> by Evondev.</p>
<p>After installing Indent Rainbow, install this extension and follow the outlined steps to select a new gradient palette.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screen-Shot-2022-03-25-at-4.32.34-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Indent Palettes1</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screen-Shot-2022-03-25-at-4.34.17-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Indent Palettes2</em></p>
<h2 id="heading-bracket-pair-colorizer">Bracket Pair Colorizer</h2>
<p>This will add rainbow colors to brackets, and matching brackets will have the same color. This extension has saved me a number of times when looking for a missing or extra bracket. </p>
<p>The <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2">Bracket Pair Colorizer</a> is another popular extension with over 4 million installs.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screen-Shot-2022-03-25-at-5.15.51-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-depreciation-notice-for-2022">Depreciation Notice for 2022</h4>
<p>This extension has recently become depreciated. This is because of upgrades to VSCode allowing for a bracket pair colorization setting. This can be toggled on with <code>"editor.bracketPairColorization.enabled": true</code> in your user settings. </p>
<p>The improved performance of this feature makes it a better choice, but if you'd prefer to not edit your user settings, I'd suggest looking for extensions that handle this for you such as Bracket Pair Colorizer or <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight">Rainbow Brackets</a>.</p>
<h2 id="heading-colorize">Colorize</h2>
<p><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=kamikillerto.vscode-colorize">Colorize</a> visualizes color variables by highlighting them with their color value. This is a handy timesaver for translating hex codes and variable names.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/demo_variables.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Photo Credit: Colorize</em></p>
<h2 id="heading-peacock">Peacock</h2>
<p><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=johnpapa.vscode-peacock">Peacock</a> provides optional window colors. It is great for managing multiple workspaces. It can be easy to forget which workspace you are in when jumping between similar windows, but not with the bright colors provided by Peacock. You can even <a target="_blank" href="https://papapeacockstorage.z13.web.core.windows.net/guide/#favorite-colors">customize workspace colors</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/hero.png" alt="Image" width="600" height="400" loading="lazy">
<em>Photo Credit: Peacock</em></p>
<h2 id="heading-vscode-icons">VSCode Icons</h2>
<p>Adding icons can help when navigating through your folders. <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons">VSCode Icons</a> has an extensive library of icons matching a variety of file types. </p>
<p>For example, you can easily see if you are selecting a TypeScript file or a JavaScript file based on the icon. It also adds an extra touch of color and detail to folder structures.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/screenshot.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Photo Credit: vscode-icons</em></p>
<h2 id="heading-todo-highlight">TODO Highlight</h2>
<p><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight">TODO Highlight</a> will customize your list of TODO comments and make them pop with color. It can be easy to overlook commented out code, but not with this extension, as it is difficult to overlook text that is bright orange. </p>
<p><code>TODO</code> and <code>FIXME</code> are built in keywords. You'll have the option to customize the color of these and add additional keywords.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/material-night-eighties.png" alt="Image" width="600" height="400" loading="lazy">
<em>Photo Credit: TODO Highlight</em></p>
<h2 id="heading-tldr">TL;DR</h2>
<p>Here is a condensed list of the extensions mentioned in this article.</p>
<ul>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow">Indent Rainbow</a></li>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2">Bracket Pair Colorizer</a></li>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=kamikillerto.vscode-colorize">Colorize</a></li>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=johnpapa.vscode-peacock">Peacock</a></li>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons">VSCode Icons</a></li>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight">TODO Highlight</a></li>
<li><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=mathcale.theme-dracula-refined">Dracula Refined Theme</a></li>
</ul>
<p>I hope these extensions will bring a rainbow of colors to your VSCode, too.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The 5 Best Code Editors for Mac – MacOS Text Editor Guide ]]>
                </title>
                <description>
                    <![CDATA[ By Dillion Megida When you're coding, you're writing various text that can be executed by different language compilers. And what makes this text fun and easy to write are the editors that we use. Different editors have different features. But they ha... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-5-best-code-editors-for-mac-macos-text-editor-guide/</link>
                <guid isPermaLink="false">66d84f6063d2055c664a1a5d</guid>
                
                    <category>
                        <![CDATA[ editor ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ macOS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ vim ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Visual Studio Code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 28 Feb 2022 14:46:44 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/02/pexels-negative-space-169573.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Dillion Megida</p>
<p>When you're coding, you're writing various text that can be executed by different language compilers. And what makes this text fun and easy to write are the editors that we use.</p>
<p>Different editors have different features. But they have a common goal: making writing code easier – easier to compose, debug, and read.</p>
<p>In this article, we'll look at five code editors that can improve development on your Mac device.</p>
<h2 id="heading-1-sublime-text">1. Sublime Text</h2>
<p><a target="_blank" href="https://www.sublimetext.com/">Sublime Text</a> is a lightweight editor with many features for improving your code-writing experience. Here are some of its features:</p>
<h3 id="heading-multiple-view-panes">Multiple view panes</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-92.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://forum.sublimetext.com/t/follow-mode-for-sublime/5100/4">Multiple view panes</a></em></p>
<p>Sublime Text offers multiple view panes for writing code. This way, you can view multiple files at once. </p>
<p>What's more fun is you can open the same file in two panes. This feature can be helpful when you're writing code in a file with long lines of code, as you'll be able to scroll to the top in one pane and then write in the bottom of the other.</p>
<h3 id="heading-side-by-side-view-for-type-definitions">Side-by-side view for Type Definitions</h3>
<p>Instead of just viewing type definitions in a small popup or opening the definition file that overrides the current view, Sublime Text provides a side-by-side view of a definition file for the types in the current file.</p>
<h3 id="heading-multiple-selections">Multiple Selections</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-93.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://medium.com/sweetmeat/multi-line-selection-text-entry-with-sublime-text-77f226812324">Multi-Line Selection Text Entry with Sublime Text</a></em></p>
<p>There are two forms of multi-selections: multi-selecting the same characters or different characters.</p>
<h4 id="heading-same-character-selection">Same character selection</h4>
<p>Say you want to rename a literal (variable, function, and so on) in multiple places. Sublime Text allows you to highlight the literal, and using <code>Ctrl/Cmd D</code> you can select other occurrences of that literal and edit, replace, or do what you want.</p>
<h4 id="heading-different-characters-selection">Different characters selection</h4>
<p>Maybe some literals are spelled differently, but you want to highlight them together. Sublime allows you to use your mouse to highlight many things at once and operate on them as you choose.</p>
<h2 id="heading-2-vscode">2. VSCode</h2>
<p>The <a target="_blank" href="https://code.visualstudio.com/">VSCode</a> editor offers syntax light, <a target="_blank" href="https://code.visualstudio.com/docs/editor/intellisense#:~:text=IntelliSense%20is%20a%20general%20term,%2C%20and%20%22code%20hinting.%22">IntelliSense</a> features (autocompletes, code hinting, and more), custom configurations, and room for different plugins. VSCode also allows multiple selections and multiple view panes.</p>
<p>Here are more features of VSCode:</p>
<h3 id="heading-code-debugging">Code Debugging</h3>
<p>With VSCode, you do not need to debug on your browser or other tools.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-94.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://code.visualstudio.com/docs/editor/debugging">Debugging in Visual Studio Code</a></em></p>
<p>VSCode allows you to debug right from your editor using breakpoints, the call stack, and even an interactive console.</p>
<h3 id="heading-many-extensions-for-different-things">Many extensions for different things</h3>
<p>VSCode has a <a target="_blank" href="https://www.freecodecamp.org/news/p/fbff585a-bfcd-44e5-8a3a-024bb1eb2774/Extensions%20for%20Visual%20Studio%20family%20of%20products%20|%20Visual%20Studio%20Marketplace">large marketplace</a> for different languages, frameworks, and even your editor. You have extensions that beautify your editor's appearance and experience and tools that help with autocompletion when writing code.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-95.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://code.visualstudio.com/docs/editor/extension-marketplace">Managing Extensions in Visual Studio Code</a></em></p>
<h3 id="heading-built-in-terminal">Built-in Terminal</h3>
<p>With VSCode, you have a a built-in shell terminal where you can execute commands without leaving your editor to go to a different terminal app. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-97.png" alt="Image" width="600" height="400" loading="lazy">
<em>The terminal view of VSCode</em></p>
<p>A small screen may make your editing view small and a bit inconvenient, but with a large monitor, for example, the view is just okay.</p>
<p>VSCode also has multiple view panes, character selection, and multiple character replacements.</p>
<h2 id="heading-3-atom">3. Atom</h2>
<p><a target="_blank" href="https://atom.io/">Atom</a> is a highly customizable code editor. This is why the team calls it a "hackable text editor". From the appearance and colors on the editor to the key combinations for commands and many other things, you can customize Atom as much as you wish and make it very personalized.</p>
<p>Here are some features:</p>
<h3 id="heading-real-time-code-collaboration">Real-time Code Collaboration</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-98.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://teletype.atom.io/">Teletype for Atom</a></em></p>
<p>Atom has a <a target="_blank" href="https://teletype.atom.io/">Teletyping</a> feature that allows multiple people to work on a codebase in real-time. This feature improves collaboration in a team workspace on projects. For VSCode, you'll usually need an extension for this.</p>
<h3 id="heading-git-integration">Git Integration</h3>
<p>With Atom, you never have to go to your terminal for your Git operations.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-99.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://github.atom.io/">GitHub for Atom</a></em></p>
<p>Git actions are integrated into Atom using the GitHub package, and this creates a smooth version control experience while you write code.</p>
<h3 id="heading-smart-autocompletion">Smart Autocompletion</h3>
<p>With many languages and syntaxes integrated into Atom, you also get a nice auto-completion feature while writing code.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-100.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://flight-manual.atom.io/using-atom/sections/autocomplete/">Autocomplete (atom.io)</a></em></p>
<p>You don't have to type out those long method and variable names anymore. Atom's smart enough to help you avoid that 😉.</p>
<p>In Atom, you also have search and replace features, view panes, and more.</p>
<h2 id="heading-4-webstorm">4. WebStorm</h2>
<p><a target="_blank" href="https://www.jetbrains.com/webstorm/">WebStorm</a> calls itself "The Smartest JavaScript IDE". It takes a lot of confidence to call itself that, and WebStorm actually delivers. WebStorm makes writing JavaScript and its related technologies not just convenient but more enjoyable.</p>
<p>Some features include:</p>
<h3 id="heading-built-in-developer-tools">Built-in developer tools</h3>
<p>WebStorm takes the name "development editor" quite literally. From running scripts to breakpoints and general debugging, WebStorm provides developer tools that allow you to write, execute and debug your code.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-101.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://www.jetbrains.com/webstorm/features/#integrated-developer-tools">WebStorm: Integrated Developer Tools</a></em></p>
<h3 id="heading-smart-features">Smart features</h3>
<p>This editor allows you to move files between folders seamlessly. It also helps you refactor your code and suggest fixes for errors. </p>
<p>And the most brilliant feature I love about it is that you can easily rename a specific variable across your application. Say you have a variable you've imported in many files – you can easily rename that variable from one of the files.</p>
<h3 id="heading-fast-search-and-navigation">Fast search and navigation</h3>
<p>Another fantastic feature of WebStorm, which people generally praise it for, is the fast file or folder search and navigation.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-102.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://www.jetbrains.com/webstorm/features/#navigation-and-search">WebStorm: Navigation and Search</a></em></p>
<p>From searching file names, class names, function names within files, and special selectors, you can easily find a file you're looking for.</p>
<p>There's also collaboration, view panes, search and replace in WebStorm.</p>
<h2 id="heading-5-vim">5. Vim</h2>
<p>And there's <a target="_blank" href="https://www.vim.org/">Vim</a>. It's worth noting that Vim is not for everyone, as it arguably has a steep learning curve – but Vim has many features that make it worth trying out. I have a friend who's never letting go of Vim and keeps advocating that people are missing out.</p>
<p>Here are some features:</p>
<h3 id="heading-high-customizability">High Customizability</h3>
<p>I mentioned earlier that Atom is highly customizable, but I don't think it's as flexible as Vim.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/02/image-103.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://github.com/fatih/subvim">Vim customized to be like SublimeText</a></em></p>
<p>Down to the low-level commands and feel of the editor, you can configure many things that makes using another editor very strange for you. You can also create scripts that automate things for you.</p>
<h3 id="heading-support-for-many-languages-and-file-formats">Support for Many Languages and File Formats</h3>
<p>Vim has support for many languages and files of different kinds. It also integrates with many tools.</p>
<h3 id="heading-powerful-search-feature">Powerful search feature</h3>
<p>With powerful selectors and regex, you can do multi-level file searches and replacements. With Vim's scripts, you can also get plugins that take the search features to another level.</p>
<p>Agreed, it's not very easy to learn. But it's pretty powerful and consumes less memory, surprisingly. It also has an extensive <a target="_blank" href="https://www.vim.org/scripts/script_search_results.php">script system</a> that gives you much power while writing code.</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>There you have it - five code editors you can use to write cleaner, more readable code. I hope you find the one that best fits your needs!</p>
<p>Thanks for reading :)</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use Replit – A Beginner's Guide ]]>
                </title>
                <description>
                    <![CDATA[ Replit is a popular free online IDE that you can use to create your projects with very little setup. This editor supports over 50 languages and many programming courses use it, including freeCodeCamp.  In this article, I will show you how to get star... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-replit/</link>
                <guid isPermaLink="false">66b8d9b798b552b8a8592b2b</guid>
                
                    <category>
                        <![CDATA[ beginners guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ editor ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Thu, 04 Nov 2021 15:08:02 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.30.00-AM.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a target="_blank" href="https://replit.com/">Replit</a> is a popular free online IDE that you can use to create your projects with very little setup. This editor supports over 50 languages and many programming courses use it, including <a target="_blank" href="https://www.freecodecamp.org/learn">freeCodeCamp</a>. </p>
<p>In this article, I will show you how to get started with Replit and show you how to use a lot of the basic features. </p>
<p>Here is a list of topics discussed in the article:</p>
<ul>
<li><a class="post-section-overview" href="#heading-how-to-create-a-free-replit-account">How to create a free Replit account</a></li>
<li><a class="post-section-overview" href="#heading-what-is-a-repl-and-how-do-you-create-one">What is a Repl and how do you create one?</a></li>
<li><a class="post-section-overview" href="#heading-basic-features-of-the-replit-editor">Basic features of the Replit edito</a>r</li>
<li><a class="post-section-overview" href="#heading-replit-files-and-folders">Replit files and folders</a></li>
<li><a class="post-section-overview" href="#heading-version-control-in-replit">Version control in Replit</a></li>
<li><a class="post-section-overview" href="#heading-replit-debugger">Replit Debugger</a></li>
<li><a class="post-section-overview" href="#heading-how-to-install-packages-in-replit">How to install packages in Replit</a></li>
<li><a class="post-section-overview" href="#heading-secrets-environment-variables-in-replit">Secrets(Environment Variables) in Replit</a></li>
<li><a class="post-section-overview" href="#heading-how-to-customize-replit-settings">How to customize Replit settings</a></li>
<li><a class="post-section-overview" href="#heading-replit-database">Replit Database</a></li>
<li><a class="post-section-overview" href="#heading-how-to-add-unit-tests-in-replit">How to add Unit Tests in Replit</a></li>
<li><a class="post-section-overview" href="#heading-how-to-use-the-run-button-in-replit">How to use the run button in Replit</a></li>
<li><a class="post-section-overview" href="#heading-how-to-clear-the-console-in-replit">How to clear the console in Replit</a></li>
<li><a class="post-section-overview" href="#heading-what-is-the-replit-shell-console">What is the Replit shell console?</a></li>
<li><a class="post-section-overview" href="#heading-how-to-add-a-custom-domain-in-replit">How to add a custom domain in Replit</a></li>
<li><a class="post-section-overview" href="#heading-how-to-publish-your-project-in-replit">How to publish your project in Replit</a></li>
<li><a class="post-section-overview" href="#heading-how-to-share-replit-project-urls">How to share Replit project URLs</a></li>
<li><a class="post-section-overview" href="#heading-how-to-invite-others-to-edit-your-repls">How to invite others to edit your repls</a></li>
<li><a class="post-section-overview" href="#heading-what-is-included-with-the-replit-paid-subscription">What is included with the Replit paid subscription?</a></li>
</ul>
<h2 id="heading-how-to-create-a-free-replit-account">How to create a free Replit account</h2>
<p>To get started, you will first need to go to the <a target="_blank" href="https://replit.com/">Replit homepage</a>. In the top right hand corner, click on <a target="_blank" href="https://replit.com/signup?from=landing">Sign Up</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.37.09-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can create an account with your own username, email, and password. Or you can create an account using your Google, Facebook, or GitHub account.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.38.16-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Once you are logged in, then it should take you to your account homepage.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.39.37-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-what-is-a-repl-and-how-do-you-create-one">What is a Repl and how do you create one?</h2>
<p>Repl stands for read-eval-print loop and it is an interactive programming environment for developers to create small projects.</p>
<p>In Replit, there are three places where you can create a new repl.</p>
<p>One way is to click on the <code>Create Repl</code> button located at the top left hand corner of the homepage.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.55.53-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can also create a repl by clicking on the <code>+</code> icon under the Create section.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.12.35-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The last option is the click on the <code>+</code> icon located at the upper right hand corner.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.19.31-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then you can choose from one of Replit's many templates including Python, Node, Java, HTML &amp; CSS, Ruby, and more. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.58.45-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Once you choose your language, pick a name for your project.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-11.59.58-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>For the free version of Replit, you are not allowed to create private projects. If you want a private repl, then you will need to upgrade to the paid subscription.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.01.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Once you are done naming your repl, click on the blue <code>Create Repl</code> button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.02.50-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then you should be taken to the editor.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.03.49-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-basic-features-of-the-replit-editor">Basic features of the Replit editor</h2>
<p>In this section, I will go over some of the basic features you can use in the Replit editor. These features include a debugger, files and folders, version control, unit tests, and more. </p>
<h3 id="heading-replit-files-and-folders">Replit Files and Folders</h3>
<p>In the upper left hand corner, you can click on the file icon to add files and folders to your project.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.20.09-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>To add a file, click on the Add file icon.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.21.17-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>To add a folder, click on the Add folder icon.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.22.01-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to upload files or folders from your computer, click on the three vertical dots icon.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.23.15-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.23.41-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you need to delete files or folders, then click on the three dots icon located next to the file you want to delete. Then from there, choose the delete option.</p>
<p>You can also right click on the file and you should see the list of options.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.07.43-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-version-control-in-replit">Version control in Replit</h3>
<p>You also have the ability to connect to your GitHub account and create a repository for this project. At the time of this writing, this feature is currently in beta. </p>
<p>First click on the version control icon on the left hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.27.30-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You should then see an option to connect to your GitHub account.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.28.20-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You will be prompted to grant Replit permission to create new repositories on GitHub.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.29.18-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Enter in your login information for GitHub.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.30.32-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you have multiple accounts linked to your profile, choose the account where you want to install Replit.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.31.44-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You will then need to authorize Replit to install.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.33.12-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After you Install and Authorize Replit, you should be directed back to the Replit editor.</p>
<p>Now all of our changes will be tracked and we can push those changes to GitHub. Write a short commit message and click on the <code>Commit &amp; push button</code>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.37.15-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You should see all of your commit messages in the version control panel.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.38.12-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then click on the <code>Connect to GitHub</code> button so you can create a new repository.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.39.59-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can add a description for the repo and then click on the <code>Create GitHub repository</code> button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.41.02-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Once it is created, you should see the name of the repository in the version control panel.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.42.00-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can also see your new repository in GitHub.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.42.39-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-replit-debugger">Replit Debugger</h3>
<p>The Replit editor has a debugger tool, where you can walk through your code step by step to see what is happening and fix errors. This is also a Beta feature. </p>
<p>You can find this feature on the left hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.47.14-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.47.37-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-install-packages-in-replit">How to install packages in Replit</h3>
<p>You can also install different packages into your projects like <code>morgan</code>, <code>express</code> or <code>cors</code> using the Packages panel on the left hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.51.02-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Search for the package that you want to use and click on the <code>+</code> icon to install it into your project.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.52.16-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Inside the console, which is located on the right hand side of the screen, you should see the package being installed. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.53.14-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-secrets-environment-variables-in-replit">Secrets (Environment variables) in Replit</h3>
<p>Replit no longer supports creating <code>.env</code> files.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.57.28-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Instead, you will have to use the Secrets tab to store your environment variables. You can find this Secrets icon on the left hand side of the editor page. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-12.59.07-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You will write the name of your key in the Key input field and write the value in the value input field. Then click on Add new secret.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.02.36-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p> Then you should see your newly created environment variable in the Secrets tab.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.03.59-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you need to edit that variable, hover your mouse over the variable name and click on the pencil icon. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.05.12-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.05.41-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Now you should be able to use that environment variable inside your code.</p>
<h3 id="heading-how-to-customize-replit-settings">How to customize Replit settings</h3>
<p>If you need to customize the editor settings for your project, click on the settings icon on the left hand side of the editor page..</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.07.56-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.08.24-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-replit-database">Replit Database</h3>
<p>If you want to use Replit's key-value storage, then click on the Database icon on the left hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.10.38-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.13.40-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>To learn more about how to use the Replit Database, please visit the <a target="_blank" href="https://docs.replit.com/hosting/database-faq">documentation</a>.</p>
<h3 id="heading-how-to-add-unit-tests-in-replit">How to add unit tests in Replit</h3>
<p>If you need to add Unit tests to your project, click on the Unit tests icon on the left hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.15.35-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then click on the Add test button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.17.24-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then you can create your Unit tests by providing a name, the code, and a failure message. Click save when you are done.</p>
<p>This is a screenshot using the Replit example unit tests for adding two numbers:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.19.47-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then click on the Run tests button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.46.37-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Inside the console, you will see the tests running with the results.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.47.41-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-use-the-run-button-in-replit">How to use the Run button in Replit</h3>
<p>If you want to start the server for your project, then click on the green Run button located at the top of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.53.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>When you click on the Run button then you should see the results of your code in the preview window and console located on the right hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.57.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-clear-the-console-in-replit">How to clear the console in Replit</h3>
<p>If you need to clear out the console, then click on the <code>x</code> icon located at the right hand side of the console window. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.59.38-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-what-is-the-replit-shell-console">What is the Replit Shell console?</h3>
<p>If you need to type in commands, such as removing or adding folders, then you can use the Shell console.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.05.23-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-add-a-custom-domain-in-replit">How to add a custom domain in Replit</h3>
<p>In the preview editor, you can add a custom domain for your project. Click on the pencil icon next to the preview URL.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.21.46-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then you can add your custom domain and CNAME information:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.23.42-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-publish-your-project-in-replit">How to publish your project in Replit</h3>
<p>Once you are finished creating your project, then you can publish it and have it displayed in the collection of Replit Apps.</p>
<p>First click on the name of the project, which is located in the top left hand corner.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.24.52-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then you can provide a short description of the project and click on Publish.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.26.19-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You will then have the option to provide a description, cover image, and tag information. When you are finished, click on the publish button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.28.01-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.28.58-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to publish an update, then you can click on your project and then click on Publish update.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.24.52-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.33.18-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you need to unpublish your project, click on the three dots icon to the right of the publish page and choose the unpublish option.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.34.14-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.34.41-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.34.53-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-how-to-share-replit-project-urls">How to share Replit project URLs</h2>
<p>If you want to share your project URL, you will first need to click on green Run button followed by the Open in new tab button located in the preview window.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-1.53.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.38.24-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then you should see your page in a new tab.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.39.09-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to share your URL which contains the editor and preview window, use the link found in the top of the browser.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.40.21-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you visit the link, you should see this result:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-2.41.44-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you need help on a project and want other developers to see your code and files, then you share that browser link. Others won't be able to see your environment variables when you share your project. </p>
<h2 id="heading-how-to-invite-others-to-edit-your-repls">How to invite others to edit your repls</h2>
<p>Replit has a feature where you can invite other developers to join your project and edit the code. </p>
<p>First, click on the Invite button located at the top right hand side of the editor page.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.08.24-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In the search field, you can add users from replit or add the email addresses of those you want to invite.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.10.39-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Then click on the blue Invite button to send invites for users.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.11.16-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You will see that their invitation is pending.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.13.20-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can also send out a join link to the user you want to add to the project. Click on the <code>Generate a join link</code> button located at the bottom.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.13.56-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.16.06-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you need to remove invited users, then click on the <code>x</code> icon located next to their name.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.16.50-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-what-is-included-with-the-replit-paid-subscription">What is included with the Replit paid subscription?</h2>
<p>The Hacker paid subscription level comes with more memory, storage, speed and private repls.</p>
<p>The Teams paid subscription level comes with educational projects for students and teachers to work with.</p>
<p>To learn more, please visit <a target="_blank" href="https://replit.com/site/pricing">Replit's pricing page</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/11/Screen-Shot-2021-11-03-at-3.50.22-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>I hope you enjoyed this Replit starter guide and best of luck on your developer journey.  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ JavaScript Online – HTML, CSS, and JS Code Editor List [Browser IDE Tools] ]]>
                </title>
                <description>
                    <![CDATA[ There are many benefits to coding in an online IDE or code editor. With these tools you don't need to set anything up locally, you can easily share your work, and they are often free to use. In this article, you'll learn what a code editor and an IDE... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/javascript-online-html-css-js-code-editor-list-browser-ide-tools/</link>
                <guid isPermaLink="false">66b8d9dbe2451f91d8154425</guid>
                
                    <category>
                        <![CDATA[ editor ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Thu, 12 Aug 2021 19:31:16 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/08/nubelson-fernandes-CO6r5hbt1jg-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>There are many benefits to coding in an online IDE or code editor. With these tools you don't need to set anything up locally, you can easily share your work, and they are often free to use.</p>
<p>In this article, you'll learn what a code editor and an IDE are. Then I will also share 7 online editors and IDE's that work best with HTML, CSS, and JavaScript. </p>
<h2 id="heading-what-is-a-code-editor">What is a Code Editor?</h2>
<p>A code editor is a tool that is designed to write and edit code. Popular offline code editors include Visual Studio Code, Atom, Brackets, and Sublime Text. </p>
<p>Code editors make it possible for web developers to write programs that will run on the web. Code editors are helpful especially because they highlight syntax errors and provide automatic code indentation, code completion, and other useful features. </p>
<h2 id="heading-what-is-an-ide">What is an IDE?</h2>
<p>IDE stands for integrated development environment. You can use this tool as a compiler, editor, and debugger – so it's much more involved than a basic code editor.</p>
<p>A compiler is a program that takes the code you write and translates it into something machines can read. A debugger is a tool that allows you to step through your code line by line and identify issues (bugs) so you can fix them. </p>
<h2 id="heading-why-choose-an-online-editor-over-a-local-editor">Why Choose an Online Editor Over a Local Editor?</h2>
<p>When is it a good time to choose an online editor over your local environment like Visual Studio Code?</p>
<p>There may be times where you just want to share a quick working example on Stack Overflow and using a free online editor is a quicker solution than building it locally. </p>
<p>Or maybe you want to share a small working example of a new feature for documentation? It would be easier to place your code into an online editor and share the URL than go through the trouble of deploying the project from your local device. </p>
<p>Now that you know what code editors and IDEs are, let's discuss some of the most popular ones out there at the moment.</p>
<h2 id="heading-codesandbox">CodeSandbox</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-10.27.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://codesandbox.io/">CodeSandbox</a> is an online IDE and code editor that makes it easy for developers to create and share their projects.  </p>
<p>Once you create a free account, you can start coding by choosing one of the templates that comes with all the starter files and boilerplate code.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-10.35.08-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can add any files and dependencies you need to on the left hand side and see your results in the preview window on the right. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-10.37.29-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to share your work, you can copy the URL address or deploy your production app to <a target="_blank" href="https://www.netlify.com/">Netlify</a> or <a target="_blank" href="https://vercel.com/">Vercel</a>. </p>
<p>If you are interested in additional features like private NPM packages, sandboxes and GitHub repositories, then you will need to signup for the paid membership. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.47.16-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-replit">Replit</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-10.57.30-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://replit.com/">Replit</a> is an online IDE that makes it easy to start building and sharing your web creations. Once you login into your free account, you can choose your language and create a new repl. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.00.36-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Replit gives you the option to add files, packages, and unit tests to your projects. If you want to share your projects, then copy the link right above the preview window on the right hand side.  </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.04.44-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to collaborate with other developers, you can invite them into your repl and code synchronously. You can also chat in real time with the other developers through the chat function on the bottom left hand corner of the screen. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.08.39-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you are interested in features like private repls and additional storage, then you will need to sign up for the paid membership. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.45.36-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-stackblitz">StackBlitz</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.13.05-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://stackblitz.com/">StackBlitz</a> is an online code editor that makes it easy for developers to create and deploy front end, back end and full stack applications. Login using your GitHub account, and choose from one of the templates. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.15.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>StackBlitz allows you to create dozens of files, add packages, and connect to your exiting GitHub repositories. You can also share your project using the URL located above the preview window on the right hand side. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.21.02-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to deploy a production version of your application, you can deploy it using <a target="_blank" href="https://firebase.google.com/">Firebase</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.20.46-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you are interested in additional features like unlimited private projects and file uploads, then you will need to sign up for one of the paid accounts. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.44.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-codepen">Codepen</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.23.35-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://codepen.io/">Codepen</a> is an online editor where you can create and share small frontend creations. With a free account, you can create unlimited pens and one project. </p>
<p>Pens are small creations that contain one HTML editor, one CSS editor, and one JavaScript editor. Pens do not support multiple files. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.32.50-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Pens come with formatting and analyzing tools to check for syntax errors. You can also use CSS and JavaScript preprocessors, add packages, and add external scripts. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.35.37-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The free account allows you to create one project with a limit of ten files. If you want to create more projects, then you will need to sign up for Codepen PRO. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-10-at-11.42.14-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-jsfiddle">JSFiddle</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.07.52-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://jsfiddle.net/">JSFiddle</a> is an online IDE that allows you to build and share your front end code snippets. This tool supports over a dozen JavaScript libraries and frameworks as well as CSS preprocessors like Sass. </p>
<p>You can also build projects with other developers and correspond over chat by choosing the collaborate option. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.15.08-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>JSFiddle is great to use when you need to provide code snippets for Stack Overflow answers, or to use as a demo for documentation. </p>
<h2 id="heading-glitch">Glitch</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.24.08-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://glitch.com/">Glitch</a> is an online code editor that makes it easy to create and share your front end, back end and full stack applications. You can signup for free and get started with one of the templates. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.26.48-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Glitch provides many helpful tools including a formatting tool, a terminal, an option to export your projects to GitHub, and an option to add custom domains. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.31.13-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You also have the option to share your work or invite other developers to build alongside you by clicking the share option located at the top left hand corner. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.33.45-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you are interested in additional features like private projects, then you will need to signup for the paid membership. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-12.34.56-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-playcode">PLAYCODE</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-1.00.31-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://playcode.io/">PLAYCODE</a> is an online code editor that makes it easy to create and share front end projects. PLAYCODE supports TypeScript, React, CoffeeScript, jQuery, Sass, Less, and more.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-1.06.09-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you want to share your project, then you can find the shareable links in the top left hand corner of the editor. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-1.12.21-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you are interested in additional features including private projects and custom URLs then you can signup for a paid membership. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-11-at-1.14.13-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>There are many benefits for choosing an online IDE or code editor. You don't have to worry about downloading any software and you can share your project very easily in a matter of minutes.</p>
<p>A lot of developers will use these tools if they need to share code snippets for Stack Overflow answers, create a demo project for documentation, or share ideas with other developers. </p>
<p>I hope you enjoyed this article. </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is an IDE in Programming? An IDE Definition for Developers ]]>
                </title>
                <description>
                    <![CDATA[ Every developer needs a good development enviroment, whether you're into mobile development or web apps or even if you're just learning your first programming language. Just like any beginning developer, when I began to learn coding I needed some gui... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-an-ide-in-programming-an-ide-definition-for-developers/</link>
                <guid isPermaLink="false">66b8dc14f88daef58d10eef2</guid>
                
                    <category>
                        <![CDATA[ beginners guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ editor ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Productivity ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hillary Nyakundi ]]>
                </dc:creator>
                <pubDate>Mon, 28 Jun 2021 20:04:28 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/06/uide-to-writting-a-good-readme-file-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Every developer needs a good development enviroment, whether you're into mobile development or web apps or even if you're just learning your first programming language.</p>
<p>Just like any beginning developer, when I began to learn coding I needed some guidance on how to get started. And one of the most important things that I had problems choosing was an application to help me write my code. </p>
<p>There were plenty of options to choose from, and every tutorial I followed used a different one. But eventually I was able to find one and stick to it.</p>
<p>Now if you happen to work in web development or any programming related field, then there is an application you'll use to write code. It's called an Integrated Development Environment, or IDE for short. But, what exactly is an IDE and how does it help you out?</p>
<p>In this article we are going to focus on what an IDE is, the different types of IDEs out there, and how you can utilize them to make your work flow easier. We will also look at some of the top IDEs out there today. </p>
<p>Let's get started!</p>
<h2 id="heading-what-is-an-ide">What is an IDE?</h2>
<p>In simple words, an IDE is a handy piece of software that acts as a text editor, debugger, and compiler all in one. IDEs are designed to make coding easier for developers. </p>
<p>So basically, an IDE is an application that facilitates application development, and gives you a central interface featuring all the tools you'll need like:</p>
<ul>
<li>A code editor that's designed to help you write and edit your code. It also helps you make it more readabile and clean.</li>
<li>A compiler that transforms code written by a human into machine-readable form.</li>
<li>A debugger that helps you eliminate errors from your programs so that your code executes and performs the way it should. This feature provides tools to help you examine your code.</li>
</ul>
<p>Some IDEs also allow plugins to be installed in them to give you even more features.</p>
<p>Just like any other piece of tech, there is a history behind it. Have you ever wondered how developers back in the days used to work? Let's learn a little of the IDE's history.</p>
<h2 id="heading-history-of-the-ide">History of the IDE</h2>
<p>Back in the day, you could say that coding was "text-only". It may sound boring but I suppose professional developers back then liked it a lot (or didn't have any other options). </p>
<p>Developers used to write code in a text editor (like Notepad, Emacs, and others). They would write and save applications in the editors with various extensions like <code>.java</code>, and then later run the compiler, note the errors, and go back and fix them until the code worked.</p>
<p>Over time, these various activities started to get baked into coding enviroments and became more automated by just the click of a few buttons.  Microsoft's Visual Basic was the first real IDE, and later many companies developed different IDEs for different languages <em>(as we will discuss below)</em>.</p>
<p>So how did this work – with different companies developing different development environments? You'd think they should adhere to consistent rules of work, right? For example an IDE should support one or more languages, and should be either web development or mobile development based. </p>
<p>Well, let's see the different types of IDEs we have today.</p>
<h2 id="heading-types-of-ides">Types of IDEs</h2>
<p>We have a variety of different IDEs today, depending on how you work and the kind of code you are working on. </p>
<p>We have IDEs designed for specific languages, and there are multi-language IDEs. Some are customized for the development of mobile apps, and others for web apps. There are also have cloud-based IDEs. </p>
<p>Let's look at each one in turn.</p>
<h3 id="heading-multi-language-ides">Multi-Language IDEs</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/06/Gray-Marble-Professional-Business-Style-LinkedIn-Banners--1-.gif" alt="Gray-Marble-Professional-Business-Style-LinkedIn-Banners--1-" width="600" height="400" loading="lazy"></p>
<p>Just like the name says, these are IDEs that support more than one language. As a beginner starting out (and planning to advance on your knowledge later) you might want to consider learning to use a multi-language IDE. </p>
<p>Here are some examples of multi-lang IDEs and their supported languages:</p>
<ul>
<li><p><mark><a target="_blank" href="https://www.eclipse.org/">Eclipse</a></mark> – A free and open source editor. It's highly recommended by many professional developers. Eclipse began as a Java-based enviroment but has recently been updated to support languages like: C, C++, Python, PHP, Ruby, Perl, and Java just to mention a few.</p>
</li>
<li><p><mark><a target="_blank" href="https://visualstudio.microsoft.com/">Visual Studio</a></mark> – One of the most widely used IDEs, Visual Studio is known for its amazing features and continuous support for extensions and updates. And it can easily support a new language by adding an extension.</p>
</li>
</ul>
<p>Devs use Visual Studio to develop web applications, games, mobile apps, web APIs, and more. Some of the built-in language support includes: C, C++, C#, JavaScript, Typesript, HTML, CSS, XML and many more.</p>
<ul>
<li><mark><a target="_blank" href="https://www.oracle.com/ke/tools/technologies/netbeans-ide.html">NetBeans</a></mark> – Just like Eclipse, NetBeans is an open source, free, and a cross platform IDE. Developers mostly use it to develop mobile apps, desktop apps, and web applications. </li>
</ul>
<p>It provides simple features like drag and drop, making it easir to work with. And just like Eclipse you can also extend it via plugins. </p>
<p>Some of the supported langs include: Java, PHP, C, C++, HTML, JavaScript, CSS and more.</p>
<ul>
<li><mark><a target="_blank" href="https://www.activestate.com/products/komodo-ide/">Komodo</a></mark> – A cross platform IDE that has a premium option. You can enhance its features by adding packages and other addons. </li>
</ul>
<p>It supports a number of languages like Python, PHP, Perl, GoLang, Ruby, C#, C, C++, HTML, CSS, JavaScript, TypeScript and more.</p>
<h4 id="heading-common-features-of-multi-lang-ides">Common Features of Multi-lang IDEs</h4>
<p>Most multi-language IDEs have certain features in common that prove very useful when you're coding.</p>
<ul>
<li>Intellisence – IDEs with this feature can provide code completion, quick info, and member lists on a project.</li>
<li>Smart code editing – your IDE can indent code lines, match words and brackets, and also highlight keywords.</li>
<li>Debugger – most IDEs provide powerful debugging features and along with a graphical debugger and breakpoints.</li>
<li>Extension/plugin manager – you can add new extensions/plugins to extend your IDE's functionality.</li>
<li>Version Control – IDEs offer support for various version control systems like Git, Subversion, Mercurial, CVS and so on.</li>
</ul>
<h3 id="heading-mobile-development-ides">Mobile Development IDEs</h3>
<p>Mobile app development is one of the most compelling and exciting fields of development today, and it's a common reason that people learn how to code. </p>
<p>Not only that, but almost every organization from governmental bodies to individuals are building mobile apps. </p>
<p>As the mobile app development industry grows, there are lots of new tools to help out. In order to develop good and resourceful apps, mobile app devs need a platform that's focused on that type of development. </p>
<p>For example if you're building an app for Android, iOS, and web, you'll need a cross-platform IDE that supports all that tech. </p>
<p>Some of the multi-language IDEs also fall in this category, like Visual Studio, Eclipse, Visual Studio Code, and others. But now let's look at some specifically mobile development-focused IDEs.</p>
<p>Here are some examples of mobile dev IDEs:</p>
<ul>
<li><mark>Android Studio</mark> – the official Android IDE, created to help developers build high quality Android apps for Android devices. It supports Java and Kotlin.</li>
<li><mark>Intellij</mark> – Mostly known to support Java (Java Centric), but with plugins it can support other languages as well. It was created with intelligent coding and ergonomic design. Using it is like a treat.</li>
<li><mark>Xamarin</mark> – a cross-platform app that is completely free and open source. Used to develop apps for both Android and iOS. It supports .NET and C#.</li>
<li><mark>Xcode</mark> – Apple's very own IDE, which is used only to develop Apple products. It allows you to manage your entire workflow from start to finish. Support langs like: Swift, Objective-C and C++.</li>
</ul>
<h3 id="heading-webcloud-based-ides">Web/Cloud-Based IDEs</h3>
<p>Recently, cloud-based IDEs have started growing in popularity. This is because they give you access to your code from anywhere compared to offline IDEs. No matter the language you use, there is a cloud-based IDE for almost every usecase.</p>
<p>Here are some examples of cloud-based IDEs:</p>
<ul>
<li><mark>Cloud9</mark> – the most powerful and extendable online development platform available because of its integration with AWS. It combines a code editor with a terminal and also has powerful debugging tools. Also allows collaborative programming with teams.</li>
<li><mark>CodeTasty</mark> – a quick and simple to set up IDE. It supports all the major langs we have. It also has its own terminal and an output window. Although it's free, to get other functionalities like collaborations with team members you have to use the paid version.</li>
</ul>
<p>The above are the most commonly known multi-lang cloud based IDE, but there are a number of others that just don't have the same capabilities as these I listed. They include: <a target="_blank" href="https://codepen.io/">Codepen</a>, <a target="_blank" href="https://repl.it/">Replit</a>, <a target="_blank" href="https://codenvy.io/">Codevny</a>, <a target="_blank" href="https://www.codecademy.com/">Codeacademy</a>, and <a target="_blank" href="https://coderun.in/">CodeRun</a>. </p>
<p>Many of these more limited IDEs are capable of doing everything you might need them to do. Although they may have some limitations, like you need an internet connection to use them or you may also have to subscribe to others.</p>
<p>If you haven't yet encountered your favorite IDE, then it probably falls into our 4th type. In fact, my favourite IDE is a single-language IDE, which we'll talk about below.</p>
<h3 id="heading-specific-language-ides">Specific language IDEs</h3>
<p>I think most developeres have a favorite language they would choose over the rest. If that is the case, chances are there is an IDE designed specifically for that language. And it probably has more features to help you out compared to the other enviroments. Let's have a look:</p>
<ul>
<li>For <mark>Python</mark> – <a target="_blank" href="https://www.jetbrains.com/pycharm/">PyCharm</a>, <a target="_blank" href="https://github.com/spyder-ide/spyder">Spyder</a>, <a target="_blank" href="http://thonny.org/">Thonny</a>, <a target="_blank" href="https://docs.python.org/3/library/idle.html">IDLE</a>, <a target="_blank" href="https://www.pydev.org/">PyDev</a>.</li>
<li>For <mark>Java</mark> – <a target="_blank" href="http://www.jetbrains.com/idea/">Intellij IDEA</a>, <a target="_blank" href="http://jikes.sourceforge.net/">Jikes</a>, <a target="_blank" href="http://www.jcreator.com/">Jcreator</a>.</li>
<li>For <mark>C/C++</mark> – <a target="_blank" href="http://www.codeblocks.org/">Code::Blocks</a>, <a target="_blank" href="http://www.programarts.com/cfree_en/buy.htm">C-Free</a>, <a target="_blank" href="http://www.bloodshed.net/devcpp.html">Dev-C++</a></li>
<li>For <mark>Ruby/Rails</mark> – <a target="_blank" href="http://www.jetbrains.com/ruby/">RubyMine</a>, <a target="_blank" href="http://redcareditor.com/">Redcar</a>, <a target="_blank" href="http://www.aptana.com/products/radrails">RadRails</a>.</li>
</ul>
<p>Alright, we've now learned what IDEs are, the different types we have, and what their main functionality/capabilities are. Now, on to the next step. </p>
<p>Why do you think developers use IDEs? Or rather, what are the advantages of IDEs (as well as their disadvantages)? Let's break that down to understand the why.</p>
<h2 id="heading-why-should-you-use-an-ide-when-you-code">Why Should You Use an IDE When You Code?</h2>
<p>Here are some of the main advantages of using an IDE:</p>
<ul>
<li><strong>IDEs save you time and effort</strong> – the entire purpose of using an IDE is to make development faster and easier. IDEs do this by providing you many helpful resources, shortcuts, and error recognition, and more.</li>
<li><strong>They're Easy to Setup</strong> – An IDE brings different capabilities together in one place, and therefore reduces the struggle of constantly switching between tools. If you're having trouble setting up your IDE, check out this article <a target="_blank" href="https://www.freecodecamp.org/news/how-to-set-up-an-integrated-development-environment-ide/">Here</a> for guidance.</li>
<li><strong>They support collaboration</strong> – most IDEs support groups working together and so can help speed up production.</li>
<li>IDEs can <strong>correct syntax</strong>, give warnings, and help you write quality code.</li>
<li>You can also use them to create drivers and utilities.</li>
</ul>
<h3 id="heading-disadvantages-of-ides">Disadvantages of IDEs</h3>
<p>There are a few tricky parts to using an IDE, so let's see what they are:</p>
<ul>
<li>It's hard to keep up with constant updates including new samples, templates, and newly added features.</li>
<li>IDEs can't automatically fix errors – you still need knowledge to write clean code.</li>
<li>Some IDES are complex for beginners to understand.</li>
</ul>
<h3 id="heading-how-to-choose-an-ide">How to Choose an IDE</h3>
<p>Is there something like the perfect IDE? In my opinion, I don't think there is. Usually it depends on the job at hand.</p>
<p>But here are some of the things to consider when you're choosing an IDE:</p>
<ul>
<li>The cost – although most IDEs are free, the addons may not be. Most of the paid IDEs comes with premium features and also support, so just choose according to your project's needs.</li>
<li>Ease of use, packages, and libraries – IDEs that contain plenty of packages and libraries can become harder to use. But this depends on how those libraries and packages are implemented. Choose wisely depending on your needs.</li>
<li>Server connection – check to see if you're able to deploy your code to the server from your IDE.</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Choosing an IDE usually depends on the type of the project you're working on, along with various environmental requirements like platform, programming language, version control system, and more. And of course you also have to take into account budget and personal preferences. </p>
<p>But now that we've gone through these examples above, hopefully you will find the one that's best for you. If you have a favourite, do share which one. Personally I switch between PyCharm while writing Python code and VS Code in other situations.</p>
<p>Enjoy Coding!💻❤</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Set Up a Python Virtual Environment on Ubuntu 20.04 ]]>
                </title>
                <description>
                    <![CDATA[ By Goran Aviani I recently got myself a “new” laptop – a Lenovo x270 (yay)! And once again I needed to set up a Python virtual environment. So of course I Googled for a solution, just to find my previously written article on the same topic! So in thi... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-set-up-python-virtual-environment-on-ubuntu-20-04/</link>
                <guid isPermaLink="false">66d45ee1b3016bf139028d3b</guid>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                    <category>
                        <![CDATA[ virtualenv ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 12 Jun 2020 14:36:40 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/06/prateek-katyal-6jYnKXVxOjc-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Goran Aviani</p>
<p>I recently got myself a “new” laptop – a Lenovo x270 (yay)! And once again I needed to set up a Python virtual environment. So of course I Googled for a solution, just to find my <a target="_blank" href="https://www.freecodecamp.org/news/virtualenv-with-virtualenvwrapper-on-ubuntu-18-04/">previously written article on the same topic</a>!</p>
<p>So in this article, I'll update the instructions based on my newly acquired knowledge.</p>
<p>And let me tell you, it’s easier than before because we are going to do only two things:</p>
<ul>
<li>Install virtualenvwrapper</li>
<li>Edit the .bashrc file</li>
</ul>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>In this article I will show you how to set up virtualenvwrapper with pip3 (pip for Python 3). We are not going to use Python 2 because <a target="_blank" href="https://www.python.org/doc/sunset-python-2/">it's no longer supported</a>.</p>
<p>To complete this tutorial, you will need a computer with Ubuntu 20.04 installed and an internet connection. Also, some knowledge of the terminal and Vim editor would be useful.</p>
<h2 id="heading-setting-up-a-virtual-environment">Setting up a Virtual Environment</h2>
<p>Now open your terminal in the home directory by right clicking and choosing the option “Open in Terminal”. You can also press the CTRL, ALT, and T keys on your keyboard at the same time to open the Terminal application automatically.</p>
<p>You first need to create a special directory that will hold all of your virtual environments. So go ahead and create a new hidden directory called virtualenv:</p>
<pre><code class="lang-bash">mkdir .virtualenv
</code></pre>
<h2 id="heading-pip3">pip3</h2>
<p>Now you should install pip for Python3:</p>
<pre><code class="lang-bash">sudo apt install python3-pip
</code></pre>
<p>Confirm the pip3 installation:</p>
<pre><code class="lang-bash">pip3 -V
</code></pre>
<h2 id="heading-virtualenvwrapper">virtualenvwrapper</h2>
<p>virtualenvwrapper is a set of extensions for virtualenv. It provides commands like mkvirtualenv, lssitepackages, and especially workon for switching between different virtualenv environments.</p>
<p>Install virtualenvwrapper via pip3:</p>
<pre><code class="lang-bash">pip3 install virtualenvwrapper
</code></pre>
<h2 id="heading-bashrc-file">bashrc file</h2>
<p>We are going to modify your .bashrc file by adding a row that will adjust every new virtual environment to use Python 3. We will point virtual environments to the directory we created above (.virtualenv) and we will also point to the locations of the virtualenv and virtualenvwrapper.</p>
<p>Now open the .bashrc file using the Vim editor:</p>
<pre><code class="lang-bash">vim .bashrc
</code></pre>
<p>If you still haven’t used Vim before or you don’t have it installed on your computer, you should install it now. It is one of the most widely used Linux editors and for good reason.</p>
<pre><code class="lang-bash">sudo apt install vim
</code></pre>
<p>After you've installed Vim open the .bashrc file by typing in the <code>vim .bashrc</code> command in your terminal. Navigate to the bottom of the .bashrc file, press the letter <strong><em>i</em></strong> to enter insert mode in Vim, and add these rows:</p>
<pre><code class="lang-bash"><span class="hljs-comment">#Virtualenvwrapper settings:</span>
<span class="hljs-built_in">export</span> WORKON_HOME=<span class="hljs-variable">$HOME</span>/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
. /usr/<span class="hljs-built_in">local</span>/bin/virtualenvwrapper.sh
</code></pre>
<p>After you are done, press the <em><strong>esc</strong></em> key, then type <strong>:<em>wq</em></strong> and press enter. This command will save the file and exit Vim.</p>
<p>Now you need to reload the bashrc script. There are two ways to do it – close and reopen your terminal, or execute this command in the terminal:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">source</span> ~/.bashrc
</code></pre>
<p>To create a virtual environment in Python3 and activate it immediately use this command in your terminal:</p>
<pre><code class="lang-bash">mkvirtualenv name_of_your_env
</code></pre>
<p>To deactivate the environment use the deactivate command.</p>
<p>To list all available virtual environments use the command <em>workon</em> or <em>lsvirtualenv</em> (lsvirtualenv will show the same result as workon but in a fancier way) in your terminal:</p>
<pre><code class="lang-bash">workon
</code></pre>
<pre><code class="lang-bash">lsvirtualenv
</code></pre>
<p>To activate one specific environment use workon + name of your environment:</p>
<pre><code class="lang-bash">workon name_of_your_env
</code></pre>
<p>There are several useful command you might need to use someday:</p>
<p><em>Rmvirtualenv</em> will remove a specific virtual environment located in your .virtualenv directory.</p>
<pre><code class="lang-bash">rmvirtualenv name_of_your_env
</code></pre>
<p><em>Cpvirtualenv</em> will copy the existing virtual environment to a new virtual environment and activate it.</p>
<pre><code class="lang-bash">cpvirtualenv old_virtual_env new_virtual_env
</code></pre>
<p>Well done! You have now created your first isolated Python 3 environment.</p>
<p>Thank you for reading! </p>
<p>Check out more articles like this on my <a target="_blank" href="https://www.freecodecamp.org/news/author/goran/">freeCodeCamp profile</a>, <a target="_blank" href="https://medium.com/@goranaviani">Medium profile</a>, and other fun stuff I build on my <a target="_blank" href="https://github.com/GoranAviani">GitHub page</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Set Up Virtualenv with Virtualenvwrapper on Ubuntu 18.04 ]]>
                </title>
                <description>
                    <![CDATA[ By Goran Aviani Let me tell you a story. Recently, I realized that I needed to review how to set up virtualenvwrapper on top of virtualenv in Ubuntu 18.04. I have completed this process several of times on different computers, and every time it seems... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/virtualenv-with-virtualenvwrapper-on-ubuntu-18-04/</link>
                <guid isPermaLink="false">66d45eff4a7504b7409c33e7</guid>
                
                    <category>
                        <![CDATA[ Developer ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                    <category>
                        <![CDATA[ virtualenv ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 01 Apr 2020 10:34:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/06/1-aMYnl2Ctt9Y-RZ5bodNF2g.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Goran Aviani</p>
<p>Let me tell you a story. Recently, I realized that I needed to review how to set up virtualenvwrapper on top of virtualenv in Ubuntu 18.04. I have completed this process several of times on different computers, and every time it seems to be just a little bit different than before.</p>
<p>I just got a new laptop and on the way home I read several tutorials on “How to set up virtualenvwrapper on Ubuntu 18.04”. And let me tell you – it seemed really easy because all of those tutorials were pretty straight forward and basically explained how to do these three 3 things:</p>
<ul>
<li>Install virtualenv</li>
<li>Install virtualenvwrapper</li>
<li>Edit .bashrc/.bash_profile or both</li>
</ul>
<p>But even though I read all those tutorials none of them really worked for me.</p>
<p>I had several errors while trying to figure out what went wrong while following the tutorials. </p>
<p>First I got some of “<em>mkvirtualenv: command not found</em>”, then a little of “<em>-bash: /usr/bin/virtualenvwrapper.sh: No such file or directory</em>”, and then a touch of “<em>ERROR: virtualenvwrapper could not find virtualenv in your path</em>”.</p>
<p>After some research I realized that all virtualenvwrapper Ubuntu 18.04 tutorials are copies an old text written before April 2016 (the release date of Ubuntu 16.04).  </p>
<p>I know this because from Ubuntu 16.04 and onward the location of vritualenvwrapper’s pip installation changed from <code>/usr/local/bin/virtualenvwrapper.sh</code> to <code>~/.local/bin/virtualenvwrapper.sh.</code> Note that the local directory is hidden.</p>
<p>So I'll start by writing a tutorial that will show you how to avoid all those issues mentioned above.</p>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>In this article I will show you how to set up virtualenvwrapper with pip3 (pip for Python 3). I chosen this version of pip instead of a Python 2 because Pythons 2's end of life was January 1. 2020.</p>
<blockquote>
<p>Python 2 will retire in… <a target="_blank" href="https://pythonclock.org/">https://pythonclock.org/</a></p>
</blockquote>
<p>To complete this tutorial you will need a computer with Ubuntu 18.04 installed and an internet connection :). Also some knowledge about terminals and the Vim editor would be useful. I will assume you already updated and upgraded your system.</p>
<h2 id="heading-setting-up-a-virtual-environment">Setting up a Virtual Environment</h2>
<p>Now open your terminal in the home directory by right clicking and choosing the option “Open in Terminal”. You can also press the <code>CTRL</code>, <code>ALT</code>, and <code>T</code> keys on your keyboard at the same time to open the Terminal application automatically.</p>
<p>You first need to create a special directory that will hold all of your virtual environments. So proceed with creating a new hidden directory called virtualenv.</p>
<pre><code>mkdir .virtualenv
</code></pre><p>Now you should install pip for Python3.</p>
<pre><code>sudo apt install python3-pip
</code></pre><p>Confirm the pip3 installation.</p>
<pre><code>pip3 --version
</code></pre><p>Now install virtualenv via pip3.</p>
<pre><code>pip3 install virtualenv
</code></pre><p>To find where your virtualenv was installed, type:</p>
<pre><code>which virtualenv
</code></pre><p>Install virtualenvwrapper via pip3:</p>
<pre><code>pip3 install virtualenvwrapper
</code></pre><p>We are going to modify your .bashrc file by adding a row that will adjust every new virtual environment to use Python 3. We will point virtual environments to the directory we created above (.virtualenv) and we will also point to the locations of the virtualenv and virtualenvwrapper.</p>
<p>Now open the .bashrc file using Vim editor.</p>
<pre><code>vim .bashrc
</code></pre><p>If you still haven’t used the Vim editor or you don’t have it installed on your computer you should install it now. It is a widely used Linux editor, and for good reason.</p>
<pre><code>sudo apt install vim
</code></pre><p>After you've installed Vim open the file .bashrc file by typing the <em>vim .bashrc</em> command in your terminal. Navigate to the bottom of the .bashrc file, press the letter <em>i</em> to enter the insert mode of Vim, and add these rows:</p>
<pre><code>#Virtualenvwrapper settings:
<span class="hljs-keyword">export</span> VIRTUALENVWRAPPER_PYTHON=<span class="hljs-regexp">/usr/</span>bin/python3
<span class="hljs-keyword">export</span> WORKON_HOME=$HOME/.virtualenvs
<span class="hljs-keyword">export</span> VIRTUALENVWRAPPER_VIRTUALENV=<span class="hljs-regexp">/home/g</span>oran/.local/bin/virtualenv
source ~<span class="hljs-regexp">/.local/</span>bin/virtualenvwrapper.sh
</code></pre><p>After you are done, press the <em>esc</em> key. Then type <code>:wq</code> and press enter. This command will save and exit the Vim editor. Close and reopen your terminal when you’re done.</p>
<p>To create a virtual environment in Python3 and activate it immediately, use this command in your terminal:</p>
<pre><code>mkvirtualenv name_of_your_env
</code></pre><p>You should confirm that this environment is set up for Python3:</p>
<pre><code>Python -V
</code></pre><p>To deactivate the environment use the deactivate command.</p>
<pre><code>deactivate
</code></pre><p>To list all available virtual environments use the command <em>workon</em> or <em>lsvirtualenv</em> (same result as workon but shown in a fancy way) in your terminal:</p>
<pre><code>workon

lsvirtualenv
</code></pre><p>To activate one specific environment use workon + name of your environment:</p>
<pre><code>workon name_of_your_env
</code></pre><p>There are several useful command you might need to use someday:</p>
<p><em>Rmvirtualenv</em> will remove a specific virtual environment located in your .virtualenv directory.</p>
<pre><code>rmvirtualenv name_of_your_env
</code></pre><p><em>Cpvirtualenv</em> will copy the existing virtual environment to a new virtual environment and activate it.</p>
<pre><code>cpvirtualenv old_virtual_env new_virtual_env
</code></pre><p>Well done! You have now created your first isolated Python 3 environment.</p>
<p>Thank you for reading! Check out more articles like this on <a target="_blank" href="https://www.freecodecamp.org/news/author/goran/">my freeCodeCamp profile</a> and other fun stuff I build on <a target="_blank" href="https://github.com/GoranAviani">my GitHub page</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Move from Coding Tutorials to Building Projects as a Developer ]]>
                </title>
                <description>
                    <![CDATA[ By M. S. Farzan Learning to code by following tutorials works for many people. And yet there tends to be a separate learning curve when you're trying to move out of the tutorial ecosystem and into creating your own projects. I've written elsewhere ab... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/five-tips-for-moving-from-coding-tutorials-to-making-progress-as-a-developer/</link>
                <guid isPermaLink="false">66d851e2bdc56847ac959f48</guid>
                
                    <category>
                        <![CDATA[ beginner ]]>
                    </category>
                
                    <category>
                        <![CDATA[ C ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tips ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tutorial purgatory ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 19 Dec 2019 17:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/12/jefferson-santos-V9sv7QrDUgc-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By M. S. Farzan</p>
<p>Learning to code by following tutorials works for many people. And yet there tends to be a separate learning curve when you're trying to move out of the tutorial ecosystem and into creating your own projects.</p>
<p>I've <a target="_blank" href="https://www.freecodecamp.org/news/how-to-choose-a-programming-language-and-escape-tutorial-purgatory/">written elsewhere</a> about how to escape tutorial purgatory and make progress as a programmer. But to summarize here, it's a necessary step in your growth as a developer to venture out into the wild west of programming and build something. This will expose you to the ins and outs of your chosen coding ecosystem.</p>
<p>Here are five tips to help you move out of those tutorials and into making real progress as a developer by building projects.</p>
<h2 id="heading-1-choose-a-project">1. Choose a Project</h2>
<p>Whether you're coding from a book or working through online tutorials, your first step upon leaving the safety of your nest is to choose a project that is specific to your field of interest.</p>
<p>If you're an aspiring front end developer, that might mean creating a basic website. If you're learning Python, that could look like a simple web scraper. Find something that interests you, and research examples to get an idea of what your project might look like when it's complete.</p>
<h2 id="heading-2-set-up-an-ide">2. Set Up an IDE</h2>
<p>If you've been learning from online tutorials which provide a console that handles all of the back end work for you, take some time to set up an <a target="_blank" href="https://www.freecodecamp.org/news/how-to-set-up-an-integrated-development-environment-ide/">integrated development environment</a> (IDE) that is specific to your intended project and ecosystem.</p>
<p>The actual form of your IDE will vary greatly depending on your project. You could be cobbling together a workflow that includes a code editor, command line interface, version control system, and package manager. Or, on the other hand, you might install a game engine that has all of the stuff that you need built-in for you.</p>
<p>The important component of this step is to become comfortable coding in an environment that is standard for the type of work you want to do. This helps you move away from only coding in a browser or following a book.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/f-JWTicIOwI" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-3-get-comfortable-with-documentation">3. Get Comfortable with Documentation</h2>
<p>Here's a glimpse of a familiar workflow when you're beginning a new project:</p>
<ol>
<li>Set up your IDE</li>
<li>Code</li>
<li>Get stuck or forget the syntax for something</li>
<li>Google some half-formed question about the issue</li>
<li>Find the official documentation and a handful of Stack Overflow posts</li>
<li>Check social media for no reason</li>
<li>Return to the documentation and Stack Overflow to find your answer</li>
<li>Return to step 2</li>
</ol>
<p>Unless you're a super expert in your field, chances are that you'll get stuck trying to figure out a solution to some aspect of your project. The official documentation for the library or framework that you're using will likely have some sort of answer - even if it's an obscure one - for whatever's puzzling you. But if it doesn't, someone has probably asked a similar question on Stack Overflow or elsewhere.</p>
<p>Even if there are no answers out there for your specific question, there will be a breadcrumb somewhere that'll lead you to an approach for how to solve your problem.  </p>
<p>If you're trying to use ES6 classes in some obscure JavaScript framework, for example, you might not find the <em>exact</em> answer you're looking for. But there will be plenty of similar resources out there that can help you come up with a solution yourself.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/z9xz-R4iuaU" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-4-ask-for-help">4. Ask for Help</h2>
<p>One of the best things you can do for yourself as an aspiring developer is to make friends with other developers in your field. They can look at your code and provide feedback about how to make it better.</p>
<p>For some people, the idea of sharing their work and having it critiqued is an anxiety-inducing experience. I recommend working as diligently as you can to overcome this emotion as it will stagnate your growth as a programmer.</p>
<p>When you're starting out with your own projects, it can be <em>extremely</em> helpful to have someone who's already walked the path to look at your work and offer constructive criticism. Even if doing so requires you to rewrite whole sections of code.  In many cases, you might be trying to recreate the wheel while other options already exist. There, you'll benefit greatly from learning best practices from experts that have experience in the field.</p>
<h2 id="heading-5-identify-other-areas-for-growth">5. Identify Other Areas for Growth</h2>
<p>One project usually leads to another, and you'll quickly identify areas in which you're able to grow as a developer.  This might mean that you'll move from front end development to back end, or vice versa, or hop from 2D game programming into 3D.</p>
<p>It might also mean that you need to keep building your skill set just to complete the initial project that you've chosen. There's no shame in learning C#, for example, then deciding to build the back end of a web app, and having to learn all about <a target="_blank" href="https://docs.microsoft.com/en-us/aspnet/?view=aspnetcore-3.1">ASP.NET</a> and <a target="_blank" href="https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-3.1&amp;tabs=visual-studio">Razor Pages</a> before actually making any progress!</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/0-dUB52eEMk" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>Happy coding!</p>
<p>If you enjoyed this article, please consider <a target="_blank" href="https://www.nightpathpub.com/">checking out my games and books</a>, <a target="_blank" href="https://www.youtube.com/msfarzan?sub_confirmation=1">subscribing to my YouTube channel</a>, or <a target="_blank" href="https://discord.gg/RF6k3nB">joining the <em>Entromancy</em> Discord</a>.</p>
<p>M. S. Farzan, Ph.D. has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like <em>Dungeons &amp; Dragons Neverwinter</em> and <em>Mass Effect: Andromeda</em>. He is the Creative Director and Lead Game Designer of <em><a target="_blank" href="https://www.nightpathpub.com/rpg">Entromancy: A Cyberpunk Fantasy RPG</a></em> and author of <em><a target="_blank" href="http://nightpathpub.com/books">The Nightpath Trilogy</a></em>. Find M. S. Farzan on Twitter <a target="_blank" href="https://twitter.com/sominator">@sominator</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use GitHub and ES6 Features to Create and Structure Your Code ]]>
                </title>
                <description>
                    <![CDATA[ By M. S. Farzan If you're moving from coding tutorials into creating your own JavaScript projects, you'll want to become familiar with using a version control system like GitHub and benefiting from ES6 features to clean up your code and streamline yo... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-github-and-es6-features-to-create-and-structure-your-code/</link>
                <guid isPermaLink="false">66d851f32c0761b6f5a251f3</guid>
                
                    <category>
                        <![CDATA[ beginner ]]>
                    </category>
                
                    <category>
                        <![CDATA[ C ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ES6 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ GitHub ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tutorial ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tutorial purgatory ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 19 Dec 2019 17:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9e9b740569d1a4ca3e11.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By M. S. Farzan</p>
<p>If you're moving from coding tutorials into creating your own JavaScript projects, you'll want to become familiar with using a version control system like <a target="_blank" href="https://github.com/">GitHub</a> and benefiting from <a target="_blank" href="https://www.w3schools.com/js/js_es6.asp">ES6 features</a> to clean up your code and streamline your development process.</p>
<p>In this new video, we'll walk through cloning an existing repository from GitHub, creating your own local and remote repositories, utilizing node package manager (NPM) to install dependencies, creating a streamlined code base using ES6 classes, import/export modules, and arrow functions, and adding, committing, and pushing changes to GitHub.</p>
<p>Plus, we'll talk through the basic file structure for a <a target="_blank" href="https://phaser.io/">Phaser 3</a> project!</p>
<p>Check it out (50 minute watch):</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/z9xz-R4iuaU" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>Happy coding!</p>
<p>If you enjoyed this article, please consider <a target="_blank" href="https://www.nightpathpub.com/">checking out my games and books</a>, <a target="_blank" href="https://www.youtube.com/msfarzan?sub_confirmation=1">subscribing to my YouTube channel</a>, or <a target="_blank" href="https://discord.gg/RF6k3nB">joining the <em>Entromancy</em> Discord</a>.</p>
<p>M. S. Farzan, Ph.D. has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like <em>Dungeons &amp; Dragons Neverwinter</em> and <em>Mass Effect: Andromeda</em>. He is the Creative Director and Lead Game Designer of <em><a target="_blank" href="https://www.nightpathpub.com/rpg">Entromancy: A Cyberpunk Fantasy RPG</a></em> and author of <em><a target="_blank" href="http://nightpathpub.com/books">The Nightpath Trilogy</a></em>. Find M. S. Farzan on Twitter <a target="_blank" href="https://twitter.com/sominator">@sominator</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Develop Kubernetes Applications with Joy ]]>
                </title>
                <description>
                    <![CDATA[ By Sven Efftinge Let’s face it: Developing distributed applications is painful. Microservice architectures might be great for decoupling and scalability but they are intimidatingly complex when it comes to development.  Local Kubernetes clusters (Min... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/developing-kubernetes-applications-with-joy/</link>
                <guid isPermaLink="false">66d4614ba326133d12440a8a</guid>
                
                    <category>
                        <![CDATA[ Cloud Computing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Continuous Integration ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Kubernetes ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Visual Studio Code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 20 Nov 2019 08:55:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/11/ships-wheel.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Sven Efftinge</p>
<p><strong>Let’s face it: Developing distributed applications is painful.</strong></p>
<p>Microservice architectures might be great for decoupling and scalability but they are intimidatingly complex when it comes to development. </p>
<p>Local Kubernetes clusters (Minikube), long build times (Docker), and awkward or even nonexistent solutions to debugging is how we started. Two years in, we have automated everything: nothing runs on my local machine anymore and I can start coding and debugging individual components on any branch in just 15 seconds. ?</p>
<p>I now enjoy working on our project so much and believe this is one of the most streamlined setups out there. In the following I want to share that experience.</p>
<h2 id="heading-starting-with-a-preview-environment">Starting with a Preview Environment</h2>
<p>To get started on a bugfix or feature, I just need to create a new branch on GitHub. This will immediately trigger our CI servers (we use Jenkins) which then deploys a preview application to a GKE cluster. The application lives in a namespace corresponding to the branch name and, using the preview URL, I can access and use the application.</p>
<p>Since I only branched off and didn't push any changes, the build artifacts are cached and the deployment takes only a few seconds. But even once I push changes, the build will run quickly as it only rebuilds what is really necessary.</p>
<h2 id="heading-starting-to-code">Starting to Code</h2>
<p>Next up I spin up a development environment to work on my task. We use <a target="_blank" href="https://www.gitpod.io">Gitpod</a>, which similarly to a CI server prebuilds dev environments for any branch. A click on a button from any of our project’s GitHub pages starts a fresh dev environment for exactly that branch and opens it in my browser.</p>
<p>The dev environment is up after ~15secs and awaits me with a fresh clone of our repo and the correct branch checked out. Furthermore, the project is fully built and even all dependencies are downloaded already. The terminal welcomes me with the following message:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot-2019-11-19-at-13.19.06.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The IDE is preconfigured with all the VS Code extensions we need, in our case Kubernetes, Docker, MySQL, Go and TypeScript. It is also already connected to the Kubernetes cluster running the preview environment as well as the corresponding database. So I can, for example, type '<em>kubectl get all'</em> in my terminal and see all the deployed kube objects.</p>
<p>The connection is based on a secret token that every developer has to put into their user account once and which is injected when starting a dev environment.</p>
<p>Although these ephemeral dev environments run in my browser, they provide all the state-of-the-art tools, allowing me to code, compile, run and debug code as well as interact with the database and the cluster.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot-2019-11-19-at-13.23.33-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Of course, I can now push any of my code changes to GitHub and wait for the CI to update my preview environment accordingly. Since the build is caching heavily, small changes are deployed in a minute or so. Most of the time, however, a minute is way too long. We need an instant, hot-reloading experience that allows to debug any service in the context of the full application. Enter <em>Telepresence</em>.</p>
<h2 id="heading-debugging-with-telepresence">Debugging with Telepresence</h2>
<p>I want to be able to debug any individual service in the context of the full application. Instead of waiting for redeploys, our components have proper launch configs to debug them using <a target="_blank" href="https://telepresence.io">Telepresence</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/bird-on-bricks.svg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Telepresence replaces a Kubernetes deployment with a proxy that forwards all communication to a locally running process. So in short I can start a local debug session and have it working in the context of my preview environment.</p>
<p>This works fantastically and is the best way I’ve seen so far for debugging Kubernetes services. It allows me to reuse all the existing debugging tools available.</p>
<h2 id="heading-pushing-and-review">Pushing and Review</h2>
<p>Once I’m happy with my changes, I push to my branch and create a Pull Request. I can do that from within Gitpod which is quite convenient.</p>
<p>Jenkins will now update the preview environment and Gitpod prebuilds a new dev environment. So when a colleague wants to start reviewing my changes, they can try them out immediately and quickly launch a dev environment for deeper inspection. From within Gitpod they can add comments to the code and even approve (or reject) the PR.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot-2019-11-19-at-11.54.50.png" alt="Image" width="600" height="400" loading="lazy">
<em>Our Toolchain</em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Achieving fast turnarounds and automated setups for distributed applications is hard but an absolute necessity for getting into a productive flow. Any friction in this will have a bad effect on the productivity of your team.</p>
<p>A fast build with preview environments and the slick Telepresence-based debugging experience have been an enjoyable productivity boost for us. If Gitpod didn’t exist we’d have to build it ;).</p>
<p>Do you have questions? <a target="_blank" href="https://www.typefox.io/contact/">Reach out</a>, we are happy to help.</p>
<hr>
<blockquote>
<p>Note: Some of the features in Telepresence require system calls that are currently only allowed in Gitpod self-hosted.</p>
</blockquote>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Set Up an Integrated Development Environment (IDE) ]]>
                </title>
                <description>
                    <![CDATA[ By M. S. Farzan If you're moving from online tutorials to building your own projects, you might be overwhelmed by the idea of setting up your own integrated development environment (IDE), or wonder why you even need one to get your work done. In this... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-set-up-an-integrated-development-environment-ide/</link>
                <guid isPermaLink="false">66d851f1afbaabf7a144aefe</guid>
                
                    <category>
                        <![CDATA[ beginner ]]>
                    </category>
                
                    <category>
                        <![CDATA[ C ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Integrated Development Environment   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tutorial ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tutorial purgatory ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 17 Nov 2019 21:25:59 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9f42740569d1a4ca41a5.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By M. S. Farzan</p>
<p>If you're <a target="_blank" href="https://www.freecodecamp.org/news/how-to-choose-a-programming-language-and-escape-tutorial-purgatory/">moving from online tutorials to building your own projects</a>, you might be overwhelmed by the idea of setting up your own integrated development environment (IDE), or wonder why you even need one to get your work done.</p>
<p>In this article, I'll discuss what an IDE <em>is</em> and give you some ideas about what yours might look like, particularly if you're working in JavaScript, although the information will be applicable irrespective of language or project type.</p>
<p>Here's a video version of this post if you'd prefer (28 minute watch):</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/f-JWTicIOwI" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-what-is-an-integrated-development-environment">What is an Integrated Development Environment?</h2>
<p>An integrated development environment, put simply, is everything a programmer needs to get their work done.  The actual makeup of an IDE will vary between programming languages, types of projects, and even between programmers, but there are some things that are common among a lot of IDEs, which I'll cover below.</p>
<p>The simplest way to understand an IDE is to consider an "all-in-one" solution like <a target="_blank" href="https://unity.com/">Unity</a>. As a fully-featured game engine, Unity has everything you'll need to create a 2D or 3D game: a GUI that allows you to build your game world, a code editor (Visual Studio) where you can write scripts, a way to download dependencies and assets, and even GitHub integration so that you can keep track of build versions and collaborate on projects.  For smaller projects, Unity can be thought of as a fully functional integrated development environment, where everything is already set up for you after downloading the game engine.</p>
<p>Other IDEs can vary greatly in complexity, particularly if you're coming from an online tutorial that allows you to code right in the browser.  One of my gripes with common answers to the question, "what programming language should I learn?" is the notion that learning JavaScript is easier because "it just runs in your browser."</p>
<p>Tell that to anyone who's attempted to set up an IDE for Create React App, which requires several components to get up and running - none of which are apparent when you're working through online tutorials.  To actually do work as a developer, you'll need four main things to set up your integrated development environment: a code editor, command line interface (CLI), version control system, and package manager.</p>
<p>Major caveat: your IDE may vary greatly depending on programming language or type of project, but you'll likely need one or more of the following in any case!</p>
<h2 id="heading-ide-tool-1-code-editor-and-compiler">IDE Tool #1: Code Editor (and Compiler)</h2>
<p>A whole bunch of online tutorials allow you to just code in the browser, which is great for understanding basic programming concepts, but in the long run, you'll need an editor that allows you to save your code (and compile it, if you're using a language like C# or C++).</p>
<p>There are a lot of code editors out there, such as <a target="_blank" href="https://atom.io/">Atom</a> (lightweight, free, and open source), <a target="_blank" href="https://www.sublimetext.com/">Sublime</a> (super popular with tons of integrations), and <a target="_blank" href="https://visualstudio.microsoft.com/">Visual Studio / Visual Studio Code</a> (supported by Microsoft and wonderful to work with).  It would be reductive to say that they're "all the same thing," as each one provides a different approach to supporting your coding workflow, so you might try one or two before deciding which one you like best.</p>
<h2 id="heading-ide-tool-2-command-line-interface-cli">IDE Tool #2: Command Line Interface (CLI)</h2>
<p>If you have a computer, you've undoubtedly used your file explorer or some other navigational GUI to access the file system, create folders, delete files, and so on.</p>
<p>The command line interface (CLI) allows you to do the same thing...in plain text.  Which might seem super archaic or annoying at first, but once you wrap your head around chaining commands together and integrating them into your workflow, you'll begin to see the power of the CLI and how essential it is to most development environments.</p>
<p>On Mac, you might be using the Terminal.  Because I've installed GitHub for Windows (more on GitHub below) on my machine, I use Git Bash for my work.  There are several options here for you, and it might do to check out a few command line tutorials to understand some of the basic principles so that you feel comfortable using it in your IDE.</p>
<h2 id="heading-ide-tool-3-version-control-system">IDE Tool #3: Version Control System</h2>
<p>There are several <a target="_blank" href="https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control">resources</a> out there that provide overviews of what is version control and why you should use it. Suffice it to say that when you're building anything other than a simple project, you'll need a way to back up your work, share your code with collaborators, and keep track of the different build versions so that you can muck with parts of the code base and not others.</p>
<p><a target="_blank" href="https://github.com/">GitHub</a> isn't the only version control system out there, but it is the gold standard at the moment, and it would be worth your while to look up a few tutorials to learn how to take advantage of its features, even if you just wind up using it as a remote backup method.</p>
<p>Additionally, while there are several addons to integrate GitHub right into your code editor (or game engine), the standard practice for doing Git-related tasks is by using the command line interface, which provides another reason for becoming proficient with your CLI of choice.</p>
<h2 id="heading-ide-tool-4-package-manager">IDE Tool #4: Package Manager</h2>
<p>For some IDEs, like with our Unity example above, all you need to do is download and install software to get started with building your projects.  Most of the dependencies that you'll need will be included with your initial download, and if not, there will be a way to access them from within the game engine (e.g. Unity's <a target="_blank" href="https://assetstore.unity.com/">Asset Store</a>).</p>
<p>For other, more choose-your-own-adventure IDEs, you'll need to piece things together yourself, and one of the essential components will be a package manager like <a target="_blank" href="https://www.npmjs.com/">NPM</a> or <a target="_blank" href="https://docs.conda.io/en/latest/">Conda</a>.</p>
<p>Package managers do a lot of things, and at their most basic functionality, they'll help you to install all the dependencies you'll need to get your work done.  If you want to get started on a React project, for example, you'll navigate to a folder through your CLI, and, after installing NPM (which is bundled with <a target="_blank" href="https://nodejs.org/en/">Node.js</a>) type:</p>
<pre><code>npx create-react-app my-app 
cd my-app 
npm start
</code></pre><p>The first line basically says: "Hey, NPM! Download all the dependencies for Create React App, and put them in a folder called 'my-app.'"</p>
<p>The second line then tells your CLI: "Navigate to the new directory called 'my-app.'"</p>
<p>The third line gets the action going: "NPM, it's me again. Start a development server that displays my project in a browser and updates it whenever I make changes to the code."</p>
<p>Once you've installed all of the necessary dependencies using your package manager, you'll begin working in your code editor and using the command line interface to make pull requests or push code to a remote repository using your version control system.</p>
<p>In summary, an integrated development environment comprises all of the things you need to get your work done, and varies based on language, project type, and your personal preference.  Ordinarily, IDEs include a code editor (and compiler), command line interface, version control system, and package manager, but your integrated development environment might have different requirements or a combination thereof.</p>
<p>You can do it!</p>
<p>If you enjoyed this article, please consider <a target="_blank" href="https://www.nightpathpub.com/">checking out my games and books</a>, <a target="_blank" href="https://www.youtube.com/msfarzan?sub_confirmation=1">subscribing to my YouTube channel</a>, or <a target="_blank" href="https://discord.gg/RF6k3nB">joining the <em>Entromancy</em> Discord</a>.</p>
<p><strong>M. S. Farzan, Ph.D.</strong> has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like <em>Dungeons &amp; Dragons Neverwinter</em> and <em>Mass Effect: Andromeda</em>. He is the Creative Director and Lead Game Designer of <em><a target="_blank" href="https://www.entromancy.com/rpg">Entromancy: A Cyberpunk Fantasy RPG</a></em> and author of <em><a target="_blank" href="http://nightpathpub.com/books">The Nightpath Trilogy</a></em>. Find M. S. Farzan on Twitter <a target="_blank" href="http://www.twitter.com/sominator">@sominator</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
