<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Phillip A. Wessels</title>
    <description>The latest articles on DEV Community by Phillip A. Wessels (@pawper).</description>
    <link>https://dev.to/pawper</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F742648%2F9b26128e-5643-495a-a4e5-ffc67b18ca8c.jpeg</url>
      <title>DEV Community: Phillip A. Wessels</title>
      <link>https://dev.to/pawper</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pawper"/>
    <language>en</language>
    <item>
      <title>FAQ: Editors, IDEs &amp; VS Code</title>
      <dc:creator>Phillip A. Wessels</dc:creator>
      <pubDate>Fri, 04 Feb 2022 04:39:25 +0000</pubDate>
      <link>https://dev.to/pawper/faq-editors-ides-vs-code-3fp0</link>
      <guid>https://dev.to/pawper/faq-editors-ides-vs-code-3fp0</guid>
      <description>&lt;p&gt;Everything you need to know to get started with VS Code: useful context to the world's most popular code editor, a simple install guide, and some useful keyboard shortcuts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's a code editor?
&lt;/h2&gt;

&lt;p&gt;At its most basic level, a code editor could be a text editor such as Notepad. While it is possible to use such an application, there are dedicated applications for writing code with features such as syntax highlighting. Visual Studio Code (VS Code) is one of them, but you may also encounter others such as Notepad++, Sublime, and Atom. Many editors are extensible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's an Integrated Development Environment (IDE)?
&lt;/h2&gt;

&lt;p&gt;An IDE is an application that comes with a comprehensive set of features for software development, including a code editor. Standalone editors are distinct from full IDEs, but the distinction is blurred once an editor is sufficiently extended.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the difference between Visual Studio Code and Visual Studio IDE?
&lt;/h2&gt;

&lt;p&gt;Visual Studio Code is a code editor for a quick code-build-debug cycle with debugging, task running, and version control. Visual Studio IDE is for more complex workflows. While VS Code is free, Visual Studio IDE is premium software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use VS Code?
&lt;/h2&gt;

&lt;p&gt;VS Code is the most popular editor and has many features, including syntax highlighting, IntelliSense code completion, snippets, an integrated terminal, git support out of the box, and the ability to install extensions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sources / additional material:&lt;br&gt;
The official VS Code documentation: &lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs"&gt;https://code.visualstudio.com/docs&lt;/a&gt; &lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs/editor/whyvscode"&gt;https://code.visualstudio.com/docs/editor/whyvscode&lt;/a&gt;&lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs/getstarted/userinterface"&gt;https://code.visualstudio.com/docs/getstarted/userinterface&lt;/a&gt; &lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs/editor/codebasics"&gt;https://code.visualstudio.com/docs/editor/codebasics&lt;/a&gt; &lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs/editor/extension-marketplace"&gt;https://code.visualstudio.com/docs/editor/extension-marketplace&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💻 Set Up VS Code
&lt;/h2&gt;

&lt;p&gt;These instructions are for Windows.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the Visual Studio Code installer for Windows. &lt;a href="https://code.visualstudio.com/download"&gt;https://code.visualstudio.com/download&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;The Insiders edition is a nightly build with the latest features, but it is not a stable release and you may encounter issues. That said, you can have both versions installed. &lt;a href="https://code.visualstudio.com/insiders/"&gt;https://code.visualstudio.com/insiders/&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once it is downloaded, run the installer (VSCodeUserSetup-{version}.exe). This will only take a minute.&lt;/li&gt;
&lt;li&gt;By default, VS Code is installed under &lt;code&gt;C:\users\{username}\AppData\Local\Programs\Microsoft VS Code&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you want to use Windows Subsystem for Linux (WSL) - which I highly recommend - install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl"&gt;Remote - WSL extension&lt;/a&gt;.

&lt;ul&gt;
&lt;li&gt;Restart VS Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Sources / additional material:&lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs/setup/windows"&gt;https://code.visualstudio.com/docs/setup/windows&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Let's talk extensions
&lt;/h2&gt;

&lt;p&gt;Extensions are key to the VS Code developer experience. You absolutely should explore extensions; often times you will do so to find the best &amp;amp; laziest way to do things. Extensions help make development more accessible.&lt;/p&gt;

&lt;p&gt;Here are some of my personal recommendations for beginners:&lt;/p&gt;

&lt;h3&gt;
  
  
  vscode-icons
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons"&gt;https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons&lt;/a&gt;&lt;br&gt;
I find this extension just makes it easier to identify my files at a glance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Path IntelliSense
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense"&gt;https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense&lt;/a&gt;&lt;br&gt;
When you're typing in a relative file path, this extension helps by displaying IntelliSense suggestions for directories and files. It will save you from typos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Live Server
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer"&gt;https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&lt;/a&gt;&lt;br&gt;
Launch a live preview of your current HTML project in your web browser. It updates as you save changes to your work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prettier - Code Formatter
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"&gt;https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode&lt;/a&gt;&lt;br&gt;
Prettier cleans up your code's formatting on save. Formatting your code doesn't make it &lt;em&gt;fully&lt;/em&gt; clean code, but it gets you one step closer. Formatted code is important for readability. You will have to read your code, and others you share it won't want to if it's a mess.&lt;/p&gt;




&lt;h2&gt;
  
  
  Settings
&lt;/h2&gt;

&lt;p&gt;VS Code's settings are stored in &lt;code&gt;settings.json&lt;/code&gt;. You can access this by opening the command palette and entering "Preferences: Open Settings (JSON)". &lt;code&gt;.json&lt;/code&gt; files are in JSON - JavaScript Object Notation. This means settings have to be entered in a specific way.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The entire settings object is in a single pair of curly brackets (&lt;code&gt;{}&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Keys - the names of different settings - need to be in quotation marks. E.g., &lt;code&gt;"editor.tabSize"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Values can be strings (in quotation marks), numbers (without quotation marks), boolean (&lt;code&gt;true&lt;/code&gt;/&lt;code&gt;false&lt;/code&gt;), arrays (comma-separated elements in square brackets &lt;code&gt;[]&lt;/code&gt;), or objects (comma-separated key: value pairs in curly brackets &lt;code&gt;{}&lt;/code&gt;). It's out of our scope here to cover data types, but you can be mindful of the indicated syntax.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here are some settings that I recommend:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set the editor to update closing tags when opening tags are updated. Useful for HTML.&lt;/li&gt;
&lt;li&gt;Set the default tab size to 2 spaces. I find that a minimal tab size makes it easier to share blocks of code.&lt;/li&gt;
&lt;li&gt;Set the word wrap as on by default. I don't like scrolling left &amp;amp; right to read a long line of code.&lt;/li&gt;
&lt;li&gt;Set the editor to format the document on save, and to use Prettier as the formatter.&lt;/li&gt;
&lt;li&gt;Set Prettier to not create line breaks after a certain number of characters by giving it a large print width.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.linkedEditing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.tabSize"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.wordWrap"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"on"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.formatOnSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.defaultFormatter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"esbenp.prettier-vscode"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prettier.printWidth"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9999&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can create settings specific to a certain project as well. Just create a &lt;code&gt;.vscode&lt;/code&gt; directory at the top level, and inside it create a &lt;code&gt;settings.json&lt;/code&gt; file. Any specific settings here will override those settings within VS Code's main settings.json.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qaLh6-sw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rjor2xf2ui82ffch7m98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qaLh6-sw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rjor2xf2ui82ffch7m98.png" alt="Image description" width="716" height="585"&gt;&lt;/a&gt;&lt;br&gt;
Here you can see that since this is a React project, I am setting all JavaScript files (&lt;code&gt;.js&lt;/code&gt;) to be associated with the JavaScript React language mode (&lt;code&gt;"javascriptreact"&lt;/code&gt;). The icons update as well to the React icon.&lt;/p&gt;




&lt;h2&gt;
  
  
  📜Key Bindings: VS Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Ctrl+Shift+P Show Command Palette&lt;/li&gt;
&lt;li&gt;
Ctrl+P Quick Open, Go to File...&lt;/li&gt;
&lt;li&gt;
Ctrl+` Show Integrated Terminal&lt;/li&gt;
&lt;li&gt;
Alt+Click Insert additional cursors.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Sources / additional material:  &lt;a href="https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf"&gt;https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  📜Key Bindings: Navigating &amp;amp; Selecting Text
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Ctrl+→ Move the cursor one word to the right&lt;/li&gt;
&lt;li&gt;
Ctrl+← Move the cursor one word to the left&lt;/li&gt;
&lt;li&gt;
Shift+→ Select text to the right&lt;/li&gt;
&lt;li&gt;
Shift+← Select text to the left&lt;/li&gt;
&lt;li&gt;
Ctrl+Shift+← Select the word to the left.&lt;/li&gt;
&lt;li&gt;
Ctrl+Shift+→ Select the word to the right.&lt;/li&gt;
&lt;li&gt;
Shift+Home Select from the current position to the beginning of the current line.&lt;/li&gt;
&lt;li&gt;
Shift+End Select from the current position to the end of the current line.&lt;/li&gt;
&lt;li&gt;
Ctrl+Shift+Home Select from the current position to the beginning of the document.&lt;/li&gt;
&lt;li&gt;
Ctrl+Shift+End Select from the current position to the end of the document.&lt;/li&gt;
&lt;li&gt;
Ctrl+A Select all document content.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;More here specific to VS Code: &lt;a href="https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf"&gt;https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>vscode</category>
      <category>faq</category>
    </item>
    <item>
      <title>FAQ: Operating Systems, Terminals &amp; Shells</title>
      <dc:creator>Phillip A. Wessels</dc:creator>
      <pubDate>Wed, 02 Feb 2022 02:02:36 +0000</pubDate>
      <link>https://dev.to/pawper/intro-to-operating-systems-terminals-shells-faq-4agm</link>
      <guid>https://dev.to/pawper/intro-to-operating-systems-terminals-shells-faq-4agm</guid>
      <description>&lt;p&gt;Hello! This is the first in a series of FAQ posts for beginner web developers. I hope this format is helpful!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is UNIX?
&lt;/h2&gt;

&lt;p&gt;UNIX is the ancestor of many modern operating systems (OSs). In 1969 at Bell Laboraties, Ken Thompson starting developing UNIX OS in PDP-7 computer assembly language. Dennis Ritchie joined Thompson and invented the C programming language. Then they rewrote UNIX in C, allowing different computers to run the code. UNIX also included user management and hierarchical file systems. Bell Labs released the first version of UNIX, Version 6 (V6), in 1976. Its design philosophy emphasizes small modular programs that can be used in combination for complex tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write programs that do one thing and do it well.&lt;/li&gt;
&lt;li&gt;Write programs to work together.&lt;/li&gt;
&lt;li&gt;Write programs to handle text streams, because that is a universal interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Linux?
&lt;/h2&gt;

&lt;p&gt;The open-source GNU/Linux (commonly referred to as Linux) is the most famous Unix-like operating system (OS). Released in 1993, it spawned from the Free Software movement of the 1980s. Richard Stallman started the GNU Project of free software which needed a kernel. Fortunately, Linus Torvalds released the Linux kernel in 1991, which the GNU Project was able to combine with for a full OS that was released in 1993. Countless distributions have derived from GNU/Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why aren't all Unix-like operating systems called UNIX? Why do Mac OS X and Linux use the same commands?
&lt;/h2&gt;

&lt;p&gt;The UNIX brand is trademarked and "True UNIX" operating systems like Mac OS X paid to be certified by The Open Group. While not officially UNIX, Unix-like OSs like Linux do fully or mostly meet the UNIX specification but are not certified; therefore, they do not use the UNIX name. The command line works the same, whether True UNIX or Unix-like. While not officially licensed, Unix-like OSs like Linux are designed to meet the UNIX specification.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the history of the modern Windows OS?
&lt;/h2&gt;

&lt;p&gt;Windows NT, upon which the modern Windows and Xbox OSs derive from, started in 1977 with Digital Equipment's release of VMS 1.0 (one year after the release of the first version of UNIX). Many of the developers left Digital in 1988 to join Microsoft, which released Windows NT 3.1 in 1993 (the same year as the release of GNU/Linux).&lt;/p&gt;

&lt;h2&gt;
  
  
  How do Windows and UNIX-based OSs differ?
&lt;/h2&gt;

&lt;p&gt;Both Windows NT and UNIX have roots in the mid-1970s and both were influenced by many identical theoretical OS concepts and principles. However, Windows and UNIX-based systems have different kernels engaging the hardware with different software built on top of those kernels, all based on different specifications. The software differs in many ways.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Windows Subsystem for Linux (WSL)?
&lt;/h2&gt;

&lt;p&gt;Windows Subsystem for Linux lets developers run a GNU/Linux environment—including most command-line tools, utilities, and applications—directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup. WSL 2 introduced an entirely new architecture that benefits from running a real Linux kernel. It runs in a lightweight virtual machine environment through a subset of Microsoft's Hyper-V features.&lt;/p&gt;

&lt;h2&gt;
  
  
  On Windows, why not use a virtual machine (VM) for Linux?
&lt;/h2&gt;

&lt;p&gt;You can, but WSL requires fewer resources (CPU, memory, and storage) than a full VM. You can't easily work between the VM and Windows software.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a terminal?
&lt;/h2&gt;

&lt;p&gt;A terminal is a program that runs a shell. There are many terminal applications, one being the Windows Terminal, another the integrated terminal in VS Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a shell?
&lt;/h2&gt;

&lt;p&gt;A shell is an interpreter for command line language. The most common is Bash for UNIX-based operating systems, and PowerShell for Windows. Note: You cannot run UNIX-based commands through PowerShell, but there are many aliases matching UNIX-based commands which map to PowerShell cmdlets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are Bash and PowerShell just shells?
&lt;/h2&gt;

&lt;p&gt;The same names are used to refer to the shells' scripting languages as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why are Bash and PowerShell both useful?
&lt;/h2&gt;

&lt;p&gt;Bash is the scripting language of the Bash shell and its various packages, while PowerShell adds advanced efficiency as an object-oriented scripting language.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is PowerShell Core?
&lt;/h2&gt;

&lt;p&gt;PowerShell Core is an open-source cross-platform (Windows, Linux, and macOS) fork of PowerShell. It is essentially the new version of PowerShell.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sources / additional material:&lt;br&gt;
&lt;a href="https://www.itprotoday.com/windows-78/nt-vsunix-one-substantially-better"&gt;https://www.itprotoday.com/windows-78/nt-vsunix-one-substantially-better&lt;/a&gt; &lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/windows/wsl/about"&gt;https://docs.microsoft.com/en-us/windows/wsl/about&lt;/a&gt; &lt;br&gt;
&lt;a href="https://www.udemy.com/course/the-linux-command-line-bootcamp/"&gt;https://www.udemy.com/course/the-linux-command-line-bootcamp/&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Read the next FAQ: &lt;a href="https://dev.to/pawper/faq-editors-ides-vs-code-3fp0"&gt;Editors, IDEs &amp;amp; VS Code&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>linux</category>
      <category>beginners</category>
      <category>faq</category>
    </item>
  </channel>
</rss>
