<?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: Akira</title>
    <description>The latest articles on DEV Community by Akira (@akiramakes).</description>
    <link>https://dev.to/akiramakes</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%2F107588%2F238f9526-8ffb-463d-b82e-9fab65656cbc.png</url>
      <title>DEV Community: Akira</title>
      <link>https://dev.to/akiramakes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akiramakes"/>
    <language>en</language>
    <item>
      <title>Explaining Like I'm Five: Connecting Front and Backend Systems</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Thu, 14 Oct 2021 04:21:09 +0000</pubDate>
      <link>https://dev.to/akiramakes/explaining-like-im-five-connecting-front-and-backend-systems-3jo2</link>
      <guid>https://dev.to/akiramakes/explaining-like-im-five-connecting-front-and-backend-systems-3jo2</guid>
      <description>&lt;p&gt;A large missing for myself and probably others is an accurate mental model of how frontend and backend systems interplay with each other. As a result, a lot of mental "soup" comes into play when it comes time to get your React/Vue/Angular talking to a backend system. This becomes especially problematic when you layer something as complex as an OAuth Auth Code Grant or other Auth systems on top of that. &lt;/p&gt;

&lt;p&gt;So how can one think of frontend and backend systems communicating accurately while cutting out jargon and confusion? &lt;/p&gt;

&lt;p&gt;Let's borrow from Richard Feynman, a theoretical physicist whose genius lied not only in his discoveries in the various fields of physics, but in his ability to explain deeply technical concepts to everyday people.  He developed a technique where someone explains something to themselves in simple terms to discover gaps in their knowledge; an "Explain Like I'm Five", if you will. &lt;/p&gt;

&lt;p&gt;Before reading ahead, pause and try your best to explain how a frontend and backend system communicate to yourself as if you are five years old.  Don't use jargon (a five year old doesn't know what an API is), and keep this grounded in daily examples a five year old uses (mom's smartphone, a toy train, playing outside). &lt;/p&gt;

&lt;p&gt;// &lt;/p&gt;

&lt;p&gt;What did you come up with? Here's what I said: &lt;/p&gt;

&lt;p&gt;When your mom comes to pick you up from school, first she has to get in her car.  When she gets in her car, she does a couple of things: she opens the door, puts the key in the starter, turns on the engine, and then cranks up the radio to her favorite tunes!  All of that is like how a frontend and backend work together. If your mom is a website's 'frontend', she is making her car, the websites 'backend' do things for her so that she can move on to the next stage of her journey for picking you up. For example, she tells the car to turn 'on' by putting her key in the ignition and turning it.  She tells the radio to turn 'on' by pushing the on button and turning it up.  In the same way, a website's frontend tells the backend what it wants, and the backend responds by giving the frontend what it wants.  If the car didn't turn on, then it would be broken, right? The same can be said about the website frontend and backend - if the request from the frontend isn't fulfilled, something is probably wrong with the backend.  Or if your mom tried to turn on her car with a banana instead of a key, that would be like the frontend of a website being broken so that the backend doesn't understand what she wants from it. &lt;/p&gt;

&lt;p&gt;How was that? A little wordy and bizarre, but it showed me a huge gap in my own understanding: the fact that the implementation of that front and back end system communicating to me, is still a little fuzzy. The magic that happens to make the car actually turn &lt;em&gt;on&lt;/em&gt; when the key is turned to me, still seems like a black box. But at least now I know what to drill - that very same implementation. And from drilling that implementation, I can refine my mental model. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>api</category>
      <category>programming</category>
      <category>mentalmodels</category>
    </item>
    <item>
      <title>Hot Tips to Get the Most from your Bootcamp</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Fri, 13 Aug 2021 01:56:00 +0000</pubDate>
      <link>https://dev.to/akiramakes/hot-tips-to-get-the-most-from-your-bootcamp-5gn5</link>
      <guid>https://dev.to/akiramakes/hot-tips-to-get-the-most-from-your-bootcamp-5gn5</guid>
      <description>&lt;p&gt;This is for my students, and for anyone who is embarking on learning to code, whether in a bootcamp, self-taught, or university. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Make flashcards of core concepts/new vocab/code snippets you see again and again.  Use index cards, or better yet, &lt;a href="https://apps.ankiweb.net/"&gt;Anki&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to office hours, even if you fully understand the material, or conversely, even if you are completely lost. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write down every error message you get and how you solved it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask questions to the point of feeling obnoxious, then ask more questions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the error messages/stacktrace.  They are your guideposts. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work on homework in groups.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write about what you are learning. Publish it on Twitter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work in short sessions, 30 minutes at a time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have a time where you turn your laptop off for the night.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not allow yourself to be frustrated. Take a break before that happens. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask for extensions, if you need them! &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Answer other people's questions. Concentrate on forming a collaborative dialogue with them, instead of having the 'right answer'.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do &lt;em&gt;not&lt;/em&gt; procrastinate. Often the hardest part is getting started. Just work on the thing for five minutes. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anything worth doing is worth doing poorly. Try the 70% rule: can you get this thing to work 70% of the way?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your new favorite phrase is 'I don't know.' Use it! &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is ok and expected to use Google, a lot. It is not cheating.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seek positive encouragement from friends, family, or even the internet. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are often many right ways to do something. It is ok if your way is different than your colleague's. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are pieces of code, and then there are finished projects. Programming is everything that happens in between. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The best way to learn to program is not 'to build projects', necessarily.  But that is a very efficient way. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Teach others.  Take on a mentee. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@baciutudor?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Tudor Baciu&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/code?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
    <item>
      <title>Setting up a JavaScript project</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Fri, 12 Mar 2021 21:07:54 +0000</pubDate>
      <link>https://dev.to/akiramakes/setting-up-a-javascript-project-137d</link>
      <guid>https://dev.to/akiramakes/setting-up-a-javascript-project-137d</guid>
      <description>&lt;p&gt;If you're new to JS, you've probably been hit with some confusion around package.json files, why you can't just run JS files from your terminal without hitting MODULE_NOT_FOUND errors, and wondering what the deal is with needing to &lt;code&gt;npm install&lt;/code&gt; when you first clone a seemingly simple app to your local machine.  I know I was, and so I'm going to demystify setting up a JS project into is separate "whys". &lt;/p&gt;

&lt;p&gt;JavaScript is a little different than other languages in that it runs in the browser. That's great if you're simply developing JavaScript to run exclusively in the browser, but what if you want to TDD your JavaScript and run it on your local machine? What if you want to write server-side JavaScript that runs on a server? This is where Node steps in. &lt;/p&gt;

&lt;p&gt;Node is a JavaScript &lt;em&gt;runtime&lt;/em&gt; environment that requires some extra configuration in order to work. It needs to know &lt;em&gt;metadata&lt;/em&gt; about your app before it can run, at a bare minimum, it needs to know the name of the app and its version. It reads this metadata from a file called package.json, and without that file, Node can't run your JavaScript code. So in order to run JavaScript anywhere outside of the browser relying on Node, you need to make a package.json file. &lt;/p&gt;

&lt;p&gt;The way to do this is to run &lt;code&gt;npm init&lt;/code&gt; from your command line. &lt;/p&gt;

&lt;p&gt;You will see a message starting with &lt;code&gt;This utility will walk you through creating a package.json file.&lt;br&gt;
It only covers the most common items, and tries to guess sensible defaults.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Several questions will pop up, for example asking what license it is under, the name of who made it, entry points, and other things. You can fill in as much or as little of this as you'd like, but the package.json will still create even if you leave all the optional fields blank.  &lt;/p&gt;

&lt;p&gt;In the end, you'll end up with a file that looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blog&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1.0.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;description&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a test package&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scripts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;echo &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Error: no test specified&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; &amp;amp;&amp;amp; exit 1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;author&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Akira Brand&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;license&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;MIT&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, you need to install your dependencies. Run &lt;code&gt;npm install + libraryName&lt;/code&gt; for any external libraries you are using in your project. This will add their metadata to the package.json file, so that whomever ends up running your project on their local machine can run &lt;code&gt;npm install&lt;/code&gt; and have all the dependencies installed together so that your project can run. &lt;/p&gt;

&lt;p&gt;For example, if I need to use express in my app, I would now run &lt;code&gt;npm install express&lt;/code&gt;. Then the package.json file looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blog&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1.0.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;description&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a test package&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scripts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;echo &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Error: no test specified&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; &amp;amp;&amp;amp; exit 1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;author&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Akira Brand&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;license&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;MIT&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dependencies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;^4.17.1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice there is now an express version at the end of the package.json file. &lt;/p&gt;

&lt;p&gt;It's good to note now that two more files/folders have arrived in your filetree, package-lock.json and node_modules. Those are different topics for a different post, but just know that they help manage the tooling around the npm packages you've just installed. Node_modules in particular can get really large, so use good judgment on committing it to GitHub along with your project! &lt;/p&gt;

&lt;p&gt;The &lt;a href="https://nodejs.org/en/knowledge/getting-started/npm/what-is-the-file-package-json/#:~:text=All%20npm%20packages%20contain%20a,as%20handle%20the%20project's%20dependencies"&gt;node&lt;/a&gt; documentation does a great job of explaining package.json in further detail.&lt;/p&gt;

&lt;p&gt;Happy projecting! &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>npm</category>
      <category>programming</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Lessons Learned From Singing Opera</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Tue, 26 Jan 2021 20:35:41 +0000</pubDate>
      <link>https://dev.to/akiramakes/lessons-learned-from-singing-opera-4gg3</link>
      <guid>https://dev.to/akiramakes/lessons-learned-from-singing-opera-4gg3</guid>
      <description>&lt;p&gt;You learn a lot being a high-performance oriented classical musician. Here are some lessons I learned along the way, especially in how I needed to practice so methodically to have any hope of making progress, which may be helpful to people as they learn to code. &lt;/p&gt;

&lt;p&gt;1) Isolate small, difficult sections&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you are having difficulty in a section of music, you don't go back and practice the entire piece over and over again. you isolate the measure (which is a very tiny segment!) of music you are most struggling with and practice that. You work smaller and smaller even until you can play it without getting it wrong. The same goes for coding. If you're struggling with a leetcode exercise, are you struggling with arrays? Objects? Maybe control flow? Go back and practice some &lt;em&gt;short&lt;/em&gt; exercises focused on that one thing you are struggling with until you absolutely cannot get them wrong. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2) Practice until you can't get it wrong. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't practice a section of music until you get it right. Practice it until you can't get it wrong. The same goes for difficult concepts in code. Don't just do an array exercise until you're like "oh, ok I got one right, I guess I understand arrays now." Do array exercises until you literally can do them in your sleep. That's not to say you need to memorize every array method ever, but you should understand in-depth how arrays work. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3) Simple and good is better than complex and a trainwreck. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When singers audition, there is a lot of temptation to do a big, showy, frilly piece; however, those pieces can be exceptionally difficult and not necessarily showcase the singer in the best light. It's better to do a simple piece in the audition, but executed flawlessly, than a showy piece with lots of mistakes. Same with code, I think, is that its better to have solid, amazing basics and stretch from there in your work (of course, balancing this with pushing yourself forward is important), rather than biting off huge chunks of very complex projects that are way beyond your skillset and will ultimately lead you to get discouraged.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4) At the end of the day, you're telling a story.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I think this one is the most ethereal tip, but in classical music, as obsessive as it is on technical perfection (and I'm not kidding when I say perfection),  your job is to tell a story through the sound of your voice and your technical chops serve that end. I think the same thing in code is important; keeping in mind that working code is better than perfect and that if you can't serve the end-user with your work, then something is off.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yes, you can hear me sing; in a live performance of &lt;a href="https://www.youtube.com/watch?v=Oi_o3rdtXXI"&gt;Poulenc's Gloria&lt;/a&gt;:) &lt;/p&gt;

</description>
      <category>programming</category>
      <category>music</category>
      <category>javascript</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Great places to meld music and code</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Thu, 24 Dec 2020 02:38:52 +0000</pubDate>
      <link>https://dev.to/akiramakes/great-places-to-meld-music-and-code-35j4</link>
      <guid>https://dev.to/akiramakes/great-places-to-meld-music-and-code-35j4</guid>
      <description>&lt;p&gt;&lt;a href="https://earsketch.gatech.edu/earsketch2/"&gt;https://earsketch.gatech.edu/earsketch2/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://teropa.info/blog/2016/07/28/javascript-systems-music.html"&gt;https://teropa.info/blog/2016/07/28/javascript-systems-music.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sonic-pi.net/"&gt;https://sonic-pi.net/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Self-note: Try this to write a commit message when you're stuck in VIM</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Fri, 13 Nov 2020 03:18:01 +0000</pubDate>
      <link>https://dev.to/akiramakes/try-this-to-write-a-commit-message-when-you-re-stuck-in-vim-58pg</link>
      <guid>https://dev.to/akiramakes/try-this-to-write-a-commit-message-when-you-re-stuck-in-vim-58pg</guid>
      <description>&lt;p&gt;Maybe this will help you. &lt;/p&gt;

&lt;p&gt;When git pulling master into a feature branch, you may get this error:&lt;/p&gt;

&lt;p&gt;Merge branch 'master' of xxxxxxxx into xxxxxxxxx&lt;/p&gt;

&lt;h1&gt;
  
  
  Please enter a commit message to explain why this merge is necessary,
&lt;/h1&gt;

&lt;h1&gt;
  
  
  especially if it merges an updated upstream into a topic branch.
&lt;/h1&gt;

&lt;p&gt;Ah, stuck in VIM. &lt;/p&gt;

&lt;p&gt;Here's what I did. It seemed to work.&lt;/p&gt;

&lt;p&gt;cntrl x + cntrl v + commit message + :wq&lt;/p&gt;

&lt;p&gt;If that doesn't help, try this thread from stackoverflow &lt;a href="https://stackoverflow.com/questions/19085807/please-enter-a-commit-message-to-explain-why-this-merge-is-necessary-especially"&gt;https://stackoverflow.com/questions/19085807/please-enter-a-commit-message-to-explain-why-this-merge-is-necessary-especially&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;godspeed&lt;/p&gt;

</description>
      <category>vim</category>
      <category>git</category>
      <category>programming</category>
      <category>commandline</category>
    </item>
    <item>
      <title>Notes to Myself - First Dev Job Reflections</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Sat, 31 Oct 2020 20:52:39 +0000</pubDate>
      <link>https://dev.to/akiramakes/notes-to-myself-first-dev-job-reflections-ohj</link>
      <guid>https://dev.to/akiramakes/notes-to-myself-first-dev-job-reflections-ohj</guid>
      <description>&lt;ul&gt;
&lt;li&gt;I've spent far more time fixing issues than I have spent time writing original code &lt;/li&gt;
&lt;li&gt;Bugs are a thing and will always be a thing&lt;/li&gt;
&lt;li&gt;Holy god having a monitor and keyboard is worth the cost&lt;/li&gt;
&lt;li&gt;I guess I'm getting paid to be super uncomfortable all the time now&lt;/li&gt;
&lt;li&gt;There are days I just don't wanna; and that's ok, I have to do it anyway, and if I do it, the suckage goes away after about 20 minutes. &lt;/li&gt;
&lt;li&gt;I'm reading far more code than I expected: for every line of code I write, I probably read 5-20 lines of other code&lt;/li&gt;
&lt;li&gt;I read way more &lt;em&gt;english&lt;/em&gt; than I ever thought I would, too&lt;/li&gt;
&lt;li&gt;Not every article you find on the internet about something is helpful&lt;/li&gt;
&lt;li&gt;Once you get past very very basic things in code, the resources become far fewer in between, more full of jargon, and considerably less accurate, overall. &lt;/li&gt;
&lt;li&gt;I see a lot of plagiarism and its gross. Don't steal other people's code examples or articles w/o attribution, yo.&lt;/li&gt;
&lt;li&gt;Graphs, visuals, pictures, and color-coded anything is my friend. &lt;/li&gt;
&lt;li&gt;If you can make coding funny and human it takes a lot of the suck out of it when you're struggling&lt;/li&gt;
&lt;li&gt;Asking questions is ok and no one thinks I'm an idiot. &lt;/li&gt;
&lt;li&gt;I should ask questions sooner than I do. &lt;/li&gt;
&lt;li&gt;Just cause I'm new, doesn't mean I'm wrong&lt;/li&gt;
&lt;li&gt;Its better to feel stupid in front of other people and figure something out than feel stupid in private and not make progress&lt;/li&gt;
&lt;li&gt;A good team will make or break your experience, cause this job is HARD&lt;/li&gt;
&lt;li&gt;Being physically active is a non-negotiable &lt;/li&gt;
&lt;li&gt;I'm SO glad I didn't give up&lt;/li&gt;
&lt;li&gt;Getting paid this much is a mental adjustment, it helps to reframe your salary as being compensated for business value-added. (hint---you're adding a lot of business value.) &lt;/li&gt;
&lt;li&gt;Don't &lt;em&gt;ever&lt;/em&gt; take side gigs that don't pay a regular developer rate, you won't be taken seriously and you won't be able to do your best work. &lt;/li&gt;
&lt;li&gt;This is the most fulfilling job I've ever had. &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>juniordeveloper</category>
    </item>
    <item>
      <title>Notes to myself - the DOM</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Sat, 31 Oct 2020 20:43:30 +0000</pubDate>
      <link>https://dev.to/akiramakes/notes-to-myself-the-dom-5878</link>
      <guid>https://dev.to/akiramakes/notes-to-myself-the-dom-5878</guid>
      <description>&lt;p&gt;Document Object Model - The DOM&lt;br&gt;
The DOM is a cross-platform browser interface that treats an HTML or XML document as a tree structure, with each node is treated as an object that is part of a document. So, for example, in an HTML document that looks like this:&lt;/p&gt;


&lt;br&gt;
  &lt;h1 id="header"&gt;Hello, World!&lt;/h1&gt;
&lt;br&gt;
  &lt;p id="paragraph"&gt; How are you doing today?&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
The tag is treated as its own element, that contains two other elements, an &lt;h1&gt; element and a &lt;/h1&gt;
&lt;p&gt; element. Those elements have text inside of them, but the texts themselves are not elements, they are merely what the &lt;/p&gt;
&lt;h1&gt; and &lt;/h1&gt;
&lt;p&gt; elements contain.&lt;/p&gt;

&lt;p&gt;You can use the DOM to hook onto these separate elements and manipulate the data inside of them. So, for example, if I want to change the text inside the &lt;/p&gt;
&lt;h1&gt; element, I can do so by hooking onto that particular node via its id, like so:

&lt;/h1&gt;
&lt;p&gt;var element = document.getElementById(header);&lt;br&gt;
element.innerHTML = "Goodbye!"&lt;br&gt;
Notice that I used JavaScript to dynamically update the contents of the HTML node. The reason I can do that is the DOM has traversed my HTML document and made object nodes for each object in my HTML file. Pretty neat!&lt;/p&gt;

</description>
      <category>frontend</category>
    </item>
    <item>
      <title>JS Array Stuffy Stuff</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Mon, 05 Oct 2020 20:46:07 +0000</pubDate>
      <link>https://dev.to/akiramakes/js-array-stuffy-stuff-3n15</link>
      <guid>https://dev.to/akiramakes/js-array-stuffy-stuff-3n15</guid>
      <description>&lt;p&gt;Honestly, maybe these array methods can help me understand stack. (pushing and popping things off a stack frame, anyone?)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;let numbers = [1, 2, 3, 4, 5];&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  push
&lt;/h2&gt;

&lt;p&gt;Adds an element to the end of an array&lt;br&gt;
&lt;code&gt;numbers.push(6);&lt;br&gt;
numbers &lt;br&gt;
[1, 2, 3, 4, 5, 6]&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  pop
&lt;/h2&gt;

&lt;p&gt;Pops the last element off of the array and returns it&lt;br&gt;
&lt;code&gt;numbers.pop();&lt;br&gt;
6&lt;br&gt;
numbers&lt;br&gt;
[1, 2, 3, 4, 5]&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  slice
&lt;/h2&gt;

&lt;p&gt;Slices off whatever you want from index x UP TO index y (slice(x, y)), and returns it. &lt;br&gt;
*Doesn't change the state of the original array&lt;br&gt;
&lt;code&gt;numbers.slice(0, 2);&lt;br&gt;
[1, 2]&lt;br&gt;
numbers &lt;br&gt;
[1, 2, 3, 4, 5]&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  splice
&lt;/h2&gt;

&lt;p&gt;Deletes elements from index x for the number of places specified by y, returns the deleted element. (ie. array.splice(x, y)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;numbers.splice(1, 2);&lt;br&gt;
[2, 3]&lt;br&gt;
numbers &lt;br&gt;
[1, 4, 5]&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>datastructures</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Oh my God, WTF is Stack</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Fri, 02 Oct 2020 14:54:43 +0000</pubDate>
      <link>https://dev.to/akiramakes/oh-my-god-wtf-is-stack-4ing</link>
      <guid>https://dev.to/akiramakes/oh-my-god-wtf-is-stack-4ing</guid>
      <description>&lt;p&gt;I have a short definition I'm writing. &lt;/p&gt;

&lt;p&gt;Is this right?? Close??? Am I getting warmer???&lt;/p&gt;

&lt;p&gt;"The stack is a temporary data structure used to temporarily store and retrieve data; and the heap is a temporary storage space that holds objects, etc, that we use in our program, it is dynamic and can change. The stack can also refer to the area allocated in memory where the stack data is stored."&lt;/p&gt;

&lt;p&gt;Comments and corrections most welcome! &lt;/p&gt;

</description>
      <category>computerscience</category>
    </item>
    <item>
      <title>How Scope Works &amp; Why You Should Care</title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Tue, 22 Sep 2020 22:07:46 +0000</pubDate>
      <link>https://dev.to/akiramakes/how-scope-works-why-you-should-care-5ale</link>
      <guid>https://dev.to/akiramakes/how-scope-works-why-you-should-care-5ale</guid>
      <description>&lt;p&gt;Scope is one of those nasty components of programming which makes all the difference between a lifetime of misery as a programmer and a lifetime of misery but about things other than scope as a programmer.  But in laymen's terms, scope boils down to defining where you can access data in your codebase.  &lt;/p&gt;

&lt;p&gt;I'll say that again.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope comes down to where data can be accessed in your codebase.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Why does that matter? Well, imagine a real world-scenario.  Let's say that the codebase is your house, the data are things in your house, and the scope is where those things are stored in your house. &lt;/p&gt;

&lt;p&gt;If everything in your house could be stored and accessed anywhere else in your house, you'd soon have an incredibly messy, disorganized house where it would take forever to find and use &lt;em&gt;anything&lt;/em&gt;. Imagine a house where you have toothbrushes in your silverware drawer, underwear in your couch cushions, and artwork in your dresser. What a mess, right? Living there would soon become untenable. &lt;/p&gt;

&lt;p&gt;🤫 Side note &lt;/p&gt;

&lt;p&gt;If your house is &lt;em&gt;actually&lt;/em&gt; like this, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I feels it&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://shop.konmari.com/collections/books/products/the-life-changing-magic-of-tidying-up-1"&gt;Marie Kondo&lt;/a&gt; can save you.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ANYWAY. &lt;/p&gt;

&lt;p&gt;The same principle of an organized, accessible house, goes for scope. &lt;/p&gt;

&lt;p&gt;If all my data was accessible everywhere in my program, I'd quickly have a mess of exposed variables that I'd have to spend hours searching for to use, and a completely overwhelmed garbage collector which wouldn't be able to keep track of what matters and what doesn't. It's not that it's impossible to have everything in the global scope, it's just that its a &lt;em&gt;really bad idea&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;There are three common types of scope in JS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local &lt;/li&gt;
&lt;li&gt;Global&lt;/li&gt;
&lt;li&gt;Block Scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Global Scope
&lt;/h3&gt;

&lt;p&gt;Global scope allows data (stored in a variable) to be accessed anywhere in your program. It can also be changed &lt;em&gt;anywhere in your program&lt;/em&gt; so honestly its a pretty terrible idea to use global variables unless you're by default, declaring them with CONST so they can't be changed. You can make data global by setting it to a variable outside of a function. You can only use var and const to declare global variables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;someStuff&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;things&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;someStuff&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;things&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sayStuff&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;someStuff&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;sayStuff&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;things&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, this globally scoped variable, someStuff, is accessible inside and outside of any function in my program. &lt;/p&gt;

&lt;h3&gt;
  
  
  Local Scope
&lt;/h3&gt;

&lt;p&gt;Local scope allows data to be accessed anywhere INSIDE the function in which it was declared. The variable is still mutable, but since the variable is tied to it's function, it won't affect your entire program in unforeseen, horrific ways. Once the function finishes firing, the variable and the data contained within it are garbage collected and are no more; until you call said function again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;greeting&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;greeting&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;greeting&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;ReferenceError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;greeting&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;not&lt;/span&gt; &lt;span class="nx"&gt;defined&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, we can see here that the variable &lt;code&gt;greeting&lt;/code&gt; exists only inside the function &lt;code&gt;sayHello()&lt;/code&gt; as that is where I define it; once I tried to call the variable outside of the function; it no longer existed. So we can say &lt;code&gt;var greeting&lt;/code&gt; is LOCALLY scoped to the function &lt;code&gt;sayHello()&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Block Scope
&lt;/h3&gt;

&lt;p&gt;Last but not least is block scope. Data created inside a block scope are only available inside the block of the function in which they were created. This is great when you have short-term data you want to use in only very specific cases; like if an &lt;code&gt;if&lt;/code&gt; statement returns true.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;rememberMe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Akira&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)){&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;recognition&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`Omg, hi, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;! I remember you!`&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;recognition&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;recognition&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`I'm sorry, I don't remember you, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;...`&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;recognition&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see here, the &lt;code&gt;let&lt;/code&gt; keyword let me use the variable name &lt;code&gt;recognition&lt;/code&gt; only within its block. After the first block ended, I could set a new block variable with &lt;code&gt;let&lt;/code&gt; and the same variable name of &lt;code&gt;recognition&lt;/code&gt;, because JavaScript's garbage collector wiped out that block variable after the block finished firing. So, here the variables &lt;code&gt;let recognition&lt;/code&gt; were BLOCK scoped to their particular block. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;side note: a block is a fancy way to say anything between a pair of curly braces.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;So, there you have it! Scopes demystified. &lt;/p&gt;

&lt;p&gt;Drop a comment or a correction below, I'm happy to hear constructive feedback! &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>How-To Annoy Your Senator into NOT Voting in RBG's Replacement Until After The Election </title>
      <dc:creator>Akira</dc:creator>
      <pubDate>Sat, 19 Sep 2020 03:49:08 +0000</pubDate>
      <link>https://dev.to/akiramakes/a-quick-how-to-to-annoy-your-senator-into-not-voting-in-rbg-s-replacement-until-after-the-election-340e</link>
      <guid>https://dev.to/akiramakes/a-quick-how-to-to-annoy-your-senator-into-not-voting-in-rbg-s-replacement-until-after-the-election-340e</guid>
      <description>&lt;p&gt;If you are concerned about a replacement of RBG being made before the election, I urge you to call your senator first thing tomorrow and advocate for waiting to vote on Ruth Bader Ginsburg’s replacement until after the election is over. &lt;/p&gt;

&lt;p&gt;Then do it literally as often as you can/want to. &lt;/p&gt;

&lt;p&gt;You can find your senator’s number &lt;a href="https://www.senate.gov/general/contact_information/senators_cfm.cfm"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;And &lt;a href="https://bit.ly/2EiYCa2"&gt;here&lt;/a&gt; is an excellent article on how to have a productive conversation with your legislator’s office, regardless of the issue.&lt;/p&gt;

&lt;p&gt;Godspeed. Dissent with fervor. &lt;/p&gt;

</description>
      <category>ethics</category>
      <category>socialjustice</category>
      <category>womeninstem</category>
    </item>
  </channel>
</rss>
