<?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: TaylorMorini</title>
    <description>The latest articles on DEV Community by TaylorMorini (@taylormorini).</description>
    <link>https://dev.to/taylormorini</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%2F795057%2F6a9d27f6-8751-4b7d-84e2-dab2b93d7bd0.png</url>
      <title>DEV Community: TaylorMorini</title>
      <link>https://dev.to/taylormorini</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/taylormorini"/>
    <language>en</language>
    <item>
      <title>Vercel Site Deployment</title>
      <dc:creator>TaylorMorini</dc:creator>
      <pubDate>Mon, 14 Mar 2022 00:18:29 +0000</pubDate>
      <link>https://dev.to/taylormorini/vercel-based-development-workflows-4efl</link>
      <guid>https://dev.to/taylormorini/vercel-based-development-workflows-4efl</guid>
      <description>&lt;h4&gt;
  
  
  &lt;strong&gt;Vercel&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Vercel is a tool used to deploy and test static sites.  It allows developers to complete these actions in a quick manner.  Users can link GitHub accounts to Vercel and import their projects.  After importing, these projects can be deployed automatically.  This means that Vercel will update the deployment as changes come in. &lt;/p&gt;

&lt;p&gt;To learn more about how this happens, check out the article and documentation listed in the Sources section. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;How to get Started with Vercel&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://vercel.com/cli"&gt;Vercel Installation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first thing you are going to want to do is install Vercel via your command line.  To do so, follow the "Vercel Installation" link. &lt;/p&gt;

&lt;p&gt;Once you have successfully installed Vercel, you should link your GitHub account to deploy an existing project. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qkQ6w-cA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9605ap1oi7z1qr4c8lqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qkQ6w-cA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9605ap1oi7z1qr4c8lqj.png" alt="github link" width="880" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Importing a repository is simple: just search for the one you want to deploy and click &lt;code&gt;import&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For the sake of an example, I used this &lt;a href="https://github.com/btopro/ist-vercel-demo"&gt;source&lt;/a&gt; to get set up with Vercel. In my terminal, I ran a &lt;code&gt;cd&lt;/code&gt; to get into the directory where the code was housed.  Then, I ran &lt;code&gt;npm install&lt;/code&gt; and &lt;code&gt;vercel dev&lt;/code&gt;.  I pushed this code to GitHub, and was able to successfully use Vercel to generate the site. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uQ1j93Ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qpkmxvmpl861t23z55yf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uQ1j93Ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qpkmxvmpl861t23z55yf.png" alt="vercel" width="880" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Publishing 11ty Sites via Vercel&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The process of publishing 11ty sites with Vercel is rather simple.  As before, simply import the desired repos and deploy.  Below are some photos of this working for me!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y6RMTEgU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0cwdppsb4a2xw6x57khm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y6RMTEgU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0cwdppsb4a2xw6x57khm.png" alt="11ty deploy" width="880" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kTwdYjva--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dsi7yos4ff5gk6sdioy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kTwdYjva--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dsi7yos4ff5gk6sdioy8.png" alt="deploy2" width="880" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OEcipnwZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2j7qzmte16cz458qlqh4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OEcipnwZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2j7qzmte16cz458qlqh4.png" alt="deploy3" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kyYPuFZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygghzqhcqwo2qggdfjgk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kyYPuFZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygghzqhcqwo2qggdfjgk.png" alt="deploy4" width="880" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Vercel vs Other CI/CD Pipeline Approaches&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;For myself, Vercel has been the simplest tool to use so far.  In my opinion, it is easier to understand and use than other approaches.  Vercel has the advantage of automatically updating as code is pushed out (with the help of GitHub).  In addition, the simplicity of this site allows for anyone with a basic understanding to use it for development!&lt;/p&gt;

&lt;p&gt;In short, Vercel seems to be the most versatile tool used so far.  It has presented an easy development experience and it appears to be a very powerful site. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Sources&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.redhat.com/architect/micro-frontend-architecture"&gt;Article&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vercel.com/docs?redirected=1"&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TaylorMorini/ist-vercel-demo"&gt;Sample Repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Getting Started with 11ty</title>
      <dc:creator>TaylorMorini</dc:creator>
      <pubDate>Mon, 28 Feb 2022 01:36:25 +0000</pubDate>
      <link>https://dev.to/taylormorini/getting-started-with-11ty-4gc9</link>
      <guid>https://dev.to/taylormorini/getting-started-with-11ty-4gc9</guid>
      <description>&lt;h2&gt;
  
  
  What is 11ty?
&lt;/h2&gt;

&lt;p&gt;11ty is a static site generator.  It is capable of rendering sites from many different language. Notably, it can use markdown.  In this posting, I will be demonstrating 3 methods of creating an 11ty blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  11ty Setup + Hello World Blog
&lt;/h3&gt;

&lt;p&gt;In your terminal, run &lt;code&gt;npm install @11ty/eleventy-plugin-syntaxhighlight --save-dev&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once this is successful, in the terminal run a &lt;code&gt;mkdir "filename"&lt;/code&gt;.  For the sake of this example, I named mine "11ty Work".  After the creation of this folder, run &lt;code&gt;cd filename&lt;/code&gt; in the terminal.  From there, run &lt;code&gt;echo '# Page header' &amp;gt; README.md&lt;br&gt;
npx @11ty/eleventy&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once this has been done, it can be run by running this command: &lt;code&gt;npx @11ty/eleventy --serve&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m5jyPpZ---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5efc40v0fwjkos1g4ow0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m5jyPpZ---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5efc40v0fwjkos1g4ow0.png" alt="11ty Setup" width="880" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have successfully opened the "Page Header" screen shown below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8qLGDPbI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e02w6tbogqmpxf7twkll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8qLGDPbI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e02w6tbogqmpxf7twkll.png" alt="page hearder" width="880" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you can open the file via VS Code and make changes. &lt;br&gt;
Here is an example of what can be rendered when changes are made: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4q08pNgZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wnv2scdssitzha5u5vp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4q08pNgZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wnv2scdssitzha5u5vp.png" alt="hello world blog" width="880" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using &lt;a href="https://github.com/11ty/eleventy-base-blog"&gt;Template 1&lt;/a&gt; for a Template Blog
&lt;/h3&gt;

&lt;p&gt;The first thing you are going to want to do is use the linked template.  This will give you the basic information you need to start building your site. &lt;/p&gt;

&lt;p&gt;You can clone the repository that the template makes onto your machine.  This will allow you to make any edits.&lt;/p&gt;

&lt;p&gt;Run a &lt;code&gt;npm install&lt;/code&gt; &lt;br&gt;
Once cloning is complete, you should &lt;code&gt;cd&lt;/code&gt; into the file that the code exists in.  From there, run a &lt;br&gt;
&lt;code&gt;npx @11ty/eleventy --serve&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In your browser, go to &lt;strong&gt;localhost8080&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l7AL7Pfp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1759zqeyslznqfnfw5cz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l7AL7Pfp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1759zqeyslznqfnfw5cz.png" alt="11ty basic work" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If everything has been successful, you should open something similar to the image above.&lt;/p&gt;

&lt;p&gt;To edit to your liking follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the terminal, close the site by entering "control c"&lt;/li&gt;
&lt;li&gt;Open the file in Visual Studio Code by typing &lt;code&gt;code .&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to the drop down labelled "posts"&lt;/li&gt;
&lt;li&gt;Edit the information in the .md files to your liking &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VF0yBdnJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0i7i1xvpxza9ql36ssc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VF0yBdnJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0i7i1xvpxza9ql36ssc.png" alt="Edits made" width="880" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using &lt;a href="https://github.com/elmsln/hax11ty"&gt;HAX11ty&lt;/a&gt; to Build the Same Blog
&lt;/h3&gt;

&lt;p&gt;Like before, use the linked template to make a repository.  You will need to do another &lt;code&gt;git clone&lt;/code&gt; on your terminal and &lt;code&gt;cd&lt;/code&gt; into the cloned work. Again, enter &lt;code&gt;code .&lt;/code&gt; to open the cloned work in Visual Studio.  It should be noted that HAX11ty is going to require &lt;code&gt;yarn&lt;/code&gt; to work properly. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;yarn install&lt;/code&gt; and &lt;code&gt;yarn start&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If all is successful, you will be able to edit the code in Visual Studio. &lt;/p&gt;

&lt;p&gt;After making desired edits, your blog may look something like this: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Va2nACR8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt6ink8225nwf3exwxb8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Va2nACR8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt6ink8225nwf3exwxb8.png" alt="hax11ty" width="880" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Problems with Yarn? Using another &lt;a href="https://github.com/vktrwlt/pugsum"&gt;Template&lt;/a&gt; to demonstrate 11ty
&lt;/h3&gt;

&lt;p&gt;Once more, use the linked template to make your repo.  Clone the repo, and cd into the cloned work.  Open the file in VS code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;npm install --save-dev @11ty/eleventy&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;npx @11ty/eleventy --serve&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comparing First Experience with HAX11ty
&lt;/h2&gt;

&lt;p&gt;HAX11ty is much more visually appealing.  Both are rather simple to access and understand; although the &lt;code&gt;yarn&lt;/code&gt; command with HAX11ty did create some challenges.  Overall, however, HAX11ty does have the stronger UI. &lt;/p&gt;

&lt;h4&gt;
  
  
  Repos
&lt;/h4&gt;

&lt;p&gt;The following repos demonstrate how I completed the discussed works. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/TaylorMorini/Hello-World-Blog"&gt;Hello World Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TaylorMorini/11ty-Lab-1-"&gt;Template Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TaylorMorini/11ty-lab-hax11ty"&gt;HAX11ty Work&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Sites
&lt;/h4&gt;

&lt;p&gt;The following sites demonstrate my work further&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://taylormorini.github.io/Hello-World-Blog/"&gt;Hello World Site&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h5&gt;
  
  
  Helpful Information
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.freecodecamp.org/news/how-to-open-visual-studio-code-from-your-terminal/"&gt;Open VS Code From Terminal&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.11ty.dev/docs/plugins/syntaxhighlight/"&gt;11ty Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tutorial</category>
    </item>
    <item>
      <title>Getting Started with Docker</title>
      <dc:creator>TaylorMorini</dc:creator>
      <pubDate>Sun, 27 Feb 2022 20:43:59 +0000</pubDate>
      <link>https://dev.to/taylormorini/getting-started-with-docker-36en</link>
      <guid>https://dev.to/taylormorini/getting-started-with-docker-36en</guid>
      <description>&lt;h2&gt;
  
  
  Why is Docker a Powerful Tool?
&lt;/h2&gt;

&lt;p&gt;One of the main reasons Docker is a powerful tool is its architecture. Docker uses a client-server architecture.  According to the Docker documentation, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A visualization of this occurring: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hzPKSog2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93vcr7djmemx2nmhhpjh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hzPKSog2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93vcr7djmemx2nmhhpjh.png" alt="Docker Architecture" width="880" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting out with Docker
&lt;/h2&gt;

&lt;p&gt;To begin using the Docker Playground follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to this &lt;a href="https://www.docker.com/play-with-docker"&gt;link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the section labelled "Play with Docker" &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p_x8Mmj9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sfbcnjvw0qda1bqcb6k6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p_x8Mmj9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sfbcnjvw0qda1bqcb6k6.png" alt="docker starting out" width="880" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in or create an account &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Press the start button and add a new instance&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Create a Dockerfile for NASA Image Search
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;In the Docker Playground add a "New Instance". This will open a terminal on the screen.
&lt;/li&gt;
&lt;li&gt;On GitHub, navigate to the Nasa Image Search repository and click "Code". Copy the link, and in the Docker Playground run a &lt;code&gt;git clone&lt;/code&gt; and &lt;code&gt;cd&lt;/code&gt; into the cloned repo&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oqVitmEA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/020s6mni2vvicqv5l5ws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oqVitmEA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/020s6mni2vvicqv5l5ws.png" alt="console img" width="880" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Run this command: &lt;code&gt;touch "Dockerfile"&lt;/code&gt;.  This will create a new file called &lt;code&gt;Dockerfile&lt;/code&gt;.  This is where custom settings can be added.
&lt;/li&gt;
&lt;li&gt;Access your new file via the "Editor" in Docker Playground.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BoKAmScd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/76ai4xr31j3okbmgs7us.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BoKAmScd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/76ai4xr31j3okbmgs7us.png" alt="editor" width="880" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The document that you have added will need to be configured.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rKd7rZL5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/422splygsghkjwzevfqh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rKd7rZL5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/422splygsghkjwzevfqh.png" alt="docker" width="668" height="388"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now we must reference an endpoint for Nasa Image Search.  For this example, the endpoint would be &lt;code&gt;https://402a.github.io/ip-project/&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the News example, this is where you would run &lt;code&gt;cp dot.env.example dot.env&lt;/code&gt;.  This would give you the ability to open the &lt;code&gt;dot.env&lt;/code&gt; file and populate it with specific data (a generated API Key and the NewsAPI endpoint): &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6WLa7A6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2knch7l4au6j24mc9r6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6WLa7A6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2knch7l4au6j24mc9r6u.png" alt="endpoint" width="880" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the Nasa Image Search example you can first run another touch command.  For this, I ran &lt;code&gt;touch "dot.env"&lt;/code&gt;.  Here, you would populate the document via the editor.  The endpoint, &lt;code&gt;https://402a.github.io/ip-project/&lt;/code&gt; is added to this document.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Port
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Once you have completed the configuration, you can now click on the "Open Port" button at the top of the Docker Playground screen. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m9NObKCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjzx72eplr2v78h1zy7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m9NObKCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjzx72eplr2v78h1zy7o.png" alt="open port" width="880" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will be prompted to enter a port number. For this example, I inputted "4000"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--shBw9PMu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkekv4f9upqnive80vp2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--shBw9PMu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkekv4f9upqnive80vp2.png" alt="4000" width="880" height="334"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will not immediately be able to open the desired page.  To do so, you will need to copy the URL of the page that opens when you input "port 4000".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hz1iJypN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2e45rv2rykod77l3o6sp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hz1iJypN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2e45rv2rykod77l3o6sp.png" alt="4000-2" width="880" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This URL should be added to the &lt;code&gt;dot.env&lt;/code&gt; file as the endpoint.  Click 'Save' after this has been added. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Starting the application
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;After everything has been added, run the line &lt;code&gt;docker-compose up&lt;/code&gt; in the playground. This will open port 4000.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ydxts4Qg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/65tvbvpbf9qjn1dfpwxd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ydxts4Qg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/65tvbvpbf9qjn1dfpwxd.png" alt="4000 opens" width="880" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on port 80.  If all was successful, you will be able to view the working application. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;News Example: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GXIK-Dxj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9i9r7ievvr858cwuxva8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GXIK-Dxj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9i9r7ievvr858cwuxva8.png" alt="port 80" width="880" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Helpful Links:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.docker.com/get-started/overview/"&gt;Docker Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/402A/ip-project"&gt;Nasa Image Search Code&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the News API Key: &lt;a href="https://newsapi.org/register/success"&gt;News API Site&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>docker</category>
    </item>
    <item>
      <title>API Back End: Wikipedia-Query Tag Creation</title>
      <dc:creator>TaylorMorini</dc:creator>
      <pubDate>Mon, 31 Jan 2022 04:01:17 +0000</pubDate>
      <link>https://dev.to/taylormorini/api-back-end-wikipedia-query-tag-creation-14lk</link>
      <guid>https://dev.to/taylormorini/api-back-end-wikipedia-query-tag-creation-14lk</guid>
      <description>&lt;p&gt;This posting will be about the usage of an IP address, using longitude and latitude to get a Google Maps iframe, and using this information in tandem with a wikipedia-query tag.  I will also be discussing &lt;em&gt;fetch&lt;/em&gt; as well &lt;em&gt;LitElements&lt;/em&gt; to provide insight into updating of the DOM.&lt;/p&gt;

&lt;h2&gt;
  
  
  The GeoIP Element
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://freegeoip.app"&gt;GeoIP&lt;/a&gt; element is an API.  It allows programmers to retrieve data from a user's IP address.  This data could include the following: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n4Z8J9hB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kq16s1mtuivujz0rw7y8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n4Z8J9hB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kq16s1mtuivujz0rw7y8.png" alt="pieces of geoip" width="698" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For my work, I used the GeoIP API to retrieve the user's longitude, latitude, city, and state. &lt;/p&gt;

&lt;h2&gt;
  
  
  Google Maps: iframe
&lt;/h2&gt;

&lt;p&gt;The Google Maps iframe takes in a latitude and longitude in order to display a map.  The latitude and the longitude stem from the user's IP address.  Therefore, the usage of the GeoIP API is necessary to successfully display the iframe.  &lt;/p&gt;

&lt;p&gt;&lt;u&gt;Step by step instructions for implementation: &lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the constructor you must set your locationEndpoint.  You can do so by entering: &lt;code&gt;this.locationEndpoint = 'https://freegeoip.app/json/'&lt;/code&gt;.  The &lt;strong&gt;locationEndpoint&lt;/strong&gt; is what is going to allow for a connection to the necessary software.&lt;/li&gt;
&lt;li&gt;Within your properties, add the following: 
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bG6Hodrg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6x893yylccgzcdgrft5.png" alt="properties" width="658" height="300"&gt;
The property named &lt;strong&gt;long&lt;/strong&gt; will be used for longitude, the property &lt;strong&gt;lat&lt;/strong&gt; for latitude, &lt;strong&gt;city&lt;/strong&gt; for the user's city, and finally &lt;strong&gt;region&lt;/strong&gt; for the user's state.&lt;/li&gt;
&lt;li&gt;The next step has you assigning values to the properties that you declared.  This step is what ensures that the user's data is correctly outputted.  Enter the code as follows: &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iF4d4Cz_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mi6fjnjn1k3q3j9287ut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iF4d4Cz_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mi6fjnjn1k3q3j9287ut.png" alt="geoipProp" width="796" height="894"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now you can begin rendering your map!  The first thing you want to do in order to render is create a &lt;code&gt;const url&lt;/code&gt; that will work with the properties that you declared.  Based on this example, therefore, the url would be: 
&lt;code&gt;https://maps.google.com/mapsq=${this.lat},${this.long}&amp;amp;t=&amp;amp;z=15&amp;amp;ie=UTF8&amp;amp;iwloc=&amp;amp;output=embed&lt;/code&gt;.  The interchangeable parts are &lt;strong&gt;${this.lat}&lt;/strong&gt; and &lt;strong&gt;${this.long}&lt;/strong&gt;.  These could be substituted for corresponding property names, as long as they refer to longitude and latitude. &lt;/li&gt;
&lt;li&gt;The creation of the iframe is going to rely on the url that was made in step 4.  To make the iframe, simply type: &lt;code&gt;html &amp;lt;iframe title = "Location" src="${url}"&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;.  The &lt;strong&gt;title&lt;/strong&gt; can be changed based on preference, but the &lt;strong&gt;src&lt;/strong&gt; must be the url that you specified from step 4. &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Wikipedia-query Tag
&lt;/h2&gt;

&lt;p&gt;In order to successfully wire information into a Wikipedia-query tag, the previous steps must be completed as well as the following: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dependencies and Import&lt;/strong&gt;:  If you would like your Wikipedia-query to work make sure to add the following import to your application: &lt;code&gt;import '@lrnwebcomponents/wikipedia-query/wikipedia-query.js';&lt;/code&gt;.  After you have added this import, navigate to your terminal (make sure you have run the proper cd into your directory) and run &lt;code&gt;npm install&lt;/code&gt; and once that process has finished run &lt;code&gt;npm start&lt;/code&gt;.  To check that the proper dependencies were added, in your IDE navigate to the &lt;strong&gt;package.json&lt;/strong&gt; file.  Here, you should see a section titled "Dependencies".  Under this section, search for the following:
&lt;code&gt;"@lrnwebcomponents/meme-maker": "^4.0.6",
"@lrnwebcomponents/wikipedia-query": "^4.0.6",&lt;/code&gt;.  if you are able to locate these, the import and dependencies are functional.&lt;/li&gt;
&lt;li&gt;You can now create the Wikipedia-query tag in your rendering function.  For this example, I was able to complete this action by entering the following: &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GRfzDnF_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8y0k8pfazyusrfd7fax8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GRfzDnF_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8y0k8pfazyusrfd7fax8.png" alt="querying" width="880" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again, the &lt;code&gt;this.region&lt;/code&gt; will refer to the user's state and the &lt;code&gt;this.city&lt;/code&gt; to the user's city.  This tag will render an embedded Wikipedia article!&lt;/p&gt;

&lt;h2&gt;
  
  
  Fetch and LitElement
&lt;/h2&gt;

&lt;p&gt;How can &lt;code&gt;fetch&lt;/code&gt; be used to gain information from the API?&lt;br&gt;
In practice, fetch is used to asynchronously receive resources across the network.&lt;br&gt;&lt;br&gt;
In my example, I used &lt;code&gt;fetch&lt;/code&gt; to complete the following task: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jwZVkyhd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kog3aqycodil5cp4pdy5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jwZVkyhd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kog3aqycodil5cp4pdy5.png" alt="fetch" width="828" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This excerpt from my code is using information from the &lt;strong&gt;locationEndpoint&lt;/strong&gt; and &lt;strong&gt;userIPData.ip&lt;/strong&gt; to print data to the console. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Fetch&lt;/code&gt; is used with &lt;code&gt;LitElement&lt;/code&gt; to provide updating of the DOM by ensuring that the console logs that proper user data. &lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://freegeoip.app"&gt;GeoIP&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.techtarget.com/searchapparchitecture/definition/API-endpoint"&gt;API Endpoint Explanation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://codepen.io/btopro/pen/yLNmVbw"&gt;Wikipedia Tag Example&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.mozilla.org/enUS/docs/Web/API/Fetch_API/Using_Fetch"&gt;Fetch Explanation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Source Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/TaylorMorini/ip-project"&gt;https://github.com/TaylorMorini/ip-project&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Getting Started with Web Components</title>
      <dc:creator>TaylorMorini</dc:creator>
      <pubDate>Mon, 17 Jan 2022 02:03:14 +0000</pubDate>
      <link>https://dev.to/taylormorini/getting-started-with-web-components-10k0</link>
      <guid>https://dev.to/taylormorini/getting-started-with-web-components-10k0</guid>
      <description>&lt;p&gt;Would you like to learn how to create a simple "Hello World" screen using JavaScript and Web Components from scratch? Follow these steps to see how I did it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you Start
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://ohmyz.sh/#install"&gt;oh-my-zsh&lt;/a&gt;
&lt;em&gt;It is not necessary to install this on your terminal, this is a preference.  It does, however, increase usability in my opinion.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oKC10jAG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xig52hcvhbknwjx6eq8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oKC10jAG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xig52hcvhbknwjx6eq8h.png" alt="zsh" width="880" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://code.visualstudio.com"&gt;Visual Studio Code&lt;/a&gt;
&lt;em&gt;This is my preferred IDE to complete this process.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wxkq4lJM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ifp4843ioigzw4tsfmj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wxkq4lJM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ifp4843ioigzw4tsfmj.png" alt="vs code" width="880" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Node.js/NPM?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically, Node.js is going to allow you to run code written in JavaScript.  NPM is the default package manager for Node.js.  This means that it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;puts modules in place so that node can find them, and manages dependency conflicts intelligently.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The good news is that once you have successfully downloaded Node.js, NPM will automatically be usable!&lt;/p&gt;

&lt;h2&gt;
  
  
  Downloading Node.js
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://nodejs.org/en/"&gt;Node.js&lt;/a&gt; to begin installation.  If you are using a Mac like I am, you should see a screen that looks like the following image: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OKJ1vDTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ko4klemyujahtrmm42rx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OKJ1vDTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ko4klemyujahtrmm42rx.png" alt="Node.js Download" width="880" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are going to want to download the "Recommended For Most Users" version.  Once installation is complete, you can go to your terminal and run &lt;code&gt;node -v&lt;/code&gt;. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kBnA4o03--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xw7kipx0klh72mb9k1kp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kBnA4o03--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xw7kipx0klh72mb9k1kp.png" alt="Checking installation" width="460" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have correctly installed Node.js, then you should see the version of it that was recommended.  To check NPM, simply do &lt;code&gt;npm-v&lt;/code&gt;.  If everything is in working order, you will see that there is a version of NPM running on your machine. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iDhVAgfh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wp6xpa12ggikmg37tkb9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iDhVAgfh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wp6xpa12ggikmg37tkb9.png" alt="npm" width="428" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with GitHub
&lt;/h2&gt;

&lt;p&gt;The first thing you're going to need to do is create a profile for &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt;. Once you have created a profile, you can create a new repository by clicking the "New" button, as shown below. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6vE36w0S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3oe0gy63g09ivjd0jjnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6vE36w0S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3oe0gy63g09ivjd0jjnb.png" alt="repo" width="604" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you haven't already, install &lt;a href="https://git-scm.com/downloads"&gt;Git&lt;/a&gt;.  This is going to make it possible to interact with GitHub via your terminal.  To ensure Git is installed, run &lt;code&gt;git --version&lt;/code&gt; in your terminal.  If you have successfully gotten git, then you will see a similar screen (below): &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DU1x9st8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/am1qi3pewm5jqtzi2o5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DU1x9st8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/am1qi3pewm5jqtzi2o5t.png" alt="git" width="514" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Making a Directory via Terminal
&lt;/h2&gt;

&lt;p&gt;Following these steps you can make a directory straight from your terminal:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the terminal.  Run &lt;code&gt;cd Documents&lt;/code&gt;. &lt;em&gt;This is going to navigate you to the Documents folder on your machine.  This is where I made my directory.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;mkdir sampleDirect&lt;/code&gt;.  &lt;em&gt;You can name it anything, but for the sake of the example I named mine "SampleDirect".&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Run a &lt;code&gt;ls&lt;/code&gt; if you want to be sure that it has successfully been created.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd sampleDirect&lt;/code&gt; &lt;em&gt;Note: if you run a &lt;code&gt;ls&lt;/code&gt; here, its going to appear empty because you haven't added anything to it yet.&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Bringing it all Together
&lt;/h2&gt;

&lt;p&gt;Keep your terminal open!  If you closed it, simply run the following (name specific!) to get back to your directory: &lt;br&gt;
&lt;code&gt;cd Documents/sampleDirect&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The first step you should take is to clone your repository.  To do so, copy the link for your specific repo: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NhT2VnFA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wg2mwx3o52iytwle1mf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NhT2VnFA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wg2mwx3o52iytwle1mf3.png" alt="the setup" width="868" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in your terminal, run &lt;code&gt;git clone&lt;/code&gt; and then your specific link.  It should look something like this: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SnUZZ6mA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rojl4rc2rt186amghs5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SnUZZ6mA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rojl4rc2rt186amghs5y.png" alt="clone" width="880" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run a &lt;code&gt;cd&lt;/code&gt;.  I named my Repo "sample-" so for me, I would run &lt;code&gt;cd sample-&lt;/code&gt;".&lt;/p&gt;

&lt;p&gt;The next thing you are going to want to do is run this command:&lt;br&gt;
&lt;code&gt;npm init @open-wc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OI8OGcoA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b34g5fhrm6s8ci3jvq8r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OI8OGcoA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b34g5fhrm6s8ci3jvq8r.png" alt="opening" width="880" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;What would you like to do today?&lt;/em&gt;&lt;code&gt;scaffold new project&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;What would you like to scaffold?&lt;/em&gt;&lt;code&gt;Web component&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Would you like to use a typescript?&lt;/em&gt; &lt;strong&gt;No&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;What is the tag name of your component?&lt;/em&gt; &lt;strong&gt;hello--World&lt;/strong&gt; (you can name it anything)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Would you like to write this file structure to a disk?&lt;/em&gt; &lt;strong&gt;Yes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Do you want to install dependencies?&lt;/em&gt; &lt;strong&gt;Yes, with npm.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U5oAXePh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7x5kemm7lfdzvbykhdx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U5oAXePh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7x5kemm7lfdzvbykhdx3.png" alt="fsetup" width="880" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Successful setup will show: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UZgCHLqA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h3d6ol1cr6vumgz428hb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UZgCHLqA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h3d6ol1cr6vumgz428hb.png" alt="success" width="376" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the terminal, run &lt;code&gt;cd hello--world&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;npm run start&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Running &lt;code&gt;npm run start&lt;/code&gt; in the terminal will yield: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nF2DujJL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wzqduw9gva1dh7bbj355.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nF2DujJL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wzqduw9gva1dh7bbj355.png" alt="completed!" width="736" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Opening with Visual Studio Code
&lt;/h2&gt;

&lt;p&gt;Use the following steps to open with VS Code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;At the 'Start' page in VS Code select the &lt;strong&gt;open&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Navigate to 'Documents'&lt;/li&gt;
&lt;li&gt;Select your directory (mine was &lt;em&gt;sampleDirect&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Open your 'hello--world' file&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4jdxLQjU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkyjhtzisg0qf87s1b9x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4jdxLQjU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkyjhtzisg0qf87s1b9x.png" alt="vsCode" width="880" height="581"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More Help
&lt;/h2&gt;

&lt;p&gt;Here is a helpful cheat-sheet for &lt;a href="https://education.github.com/git-cheat-sheet-education.pdf"&gt;Git&lt;/a&gt; commands.&lt;br&gt;
This is a helpful tool to learn &lt;a href="https://lit.dev/playground/#sample=examples/full-component"&gt;more&lt;/a&gt;.&lt;br&gt;
Here is my &lt;a href="https://github.com/TaylorMorini/402-lab"&gt;GitHub repo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
