<?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: Lu-Vuong Le 🚀</title>
    <description>The latest articles on DEV Community by Lu-Vuong Le 🚀 (@coderarchive).</description>
    <link>https://dev.to/coderarchive</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%2F175743%2F502d902c-c753-4863-9204-1d6aeafde575.jpg</url>
      <title>DEV Community: Lu-Vuong Le 🚀</title>
      <link>https://dev.to/coderarchive</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/coderarchive"/>
    <language>en</language>
    <item>
      <title>Writing a High Quality README! 🔥</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Thu, 15 Oct 2020 09:10:05 +0000</pubDate>
      <link>https://dev.to/coderarchive/writing-a-high-quality-readme-1k3j</link>
      <guid>https://dev.to/coderarchive/writing-a-high-quality-readme-1k3j</guid>
      <description>&lt;h1&gt;
  
  
  How &lt;strong&gt;good&lt;/strong&gt; are your README files?
&lt;/h1&gt;

&lt;p&gt;Many developers know this file is important when creating project but &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;how well do you write your README files?&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Do you know how you should go about writing a high quality README?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is &lt;strong&gt;no one right way&lt;/strong&gt; to write one but there is a very wrong way which is to not have a README at all. I've seen many projects with a very minimal README or none at all 😟 &lt;/p&gt;

&lt;p&gt;So I'm going to give you my own &lt;strong&gt;opinion/guidelines&lt;/strong&gt; from my experience of what a quality README should be but first let's go over why we need a good one in the first place.&lt;/p&gt;

&lt;h1&gt;
  
  
  You &lt;strong&gt;need&lt;/strong&gt; a good README because it:
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Will be the first file the user will see. A good README engages the user with the project &lt;/li&gt;
&lt;li&gt;Explains and showcases what your application does&lt;/li&gt;
&lt;li&gt;Allows you to clearly explain how to run your application, test or contribute&lt;/li&gt;
&lt;li&gt;Justify technology stack used&lt;/li&gt;
&lt;li&gt;Stand out from other developers and projects&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Here's my guidelines of &lt;strong&gt;what&lt;/strong&gt; to include
&lt;/h1&gt;

&lt;h4&gt;
  
  
  Project Title
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Your application or project name should be displayed first and foremost. Let everyone know what the name of the amazing project you're working on is! 😃&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Badges
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Badges make your README a lot more professional and really shows other developers that you know what you're doing! You can find badges all over but a good place to start is: &lt;a href="https://shields.io/"&gt;shields.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Screenshot / GIF of the application (Demo)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This one is self explanatory but showing your application in action is &lt;strong&gt;highly&lt;/strong&gt; recommended. Using a &lt;strong&gt;GIF&lt;/strong&gt; is much more preferred as from my experience it's more pleasing to see the application in real time than screenshots and will grab the attention of the person viewing your project&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Application Description (One Line)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;A short description or paragraph of your application/project&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Table of Contents
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;If your README is lengthy then it is &lt;strong&gt;always&lt;/strong&gt; a good idea to include a table of contents section for easy navigation&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Application / Deployed Links
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Include a link to your deployed application. You can also put in other links like a Kanban board for example&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Technology Stack
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;People are often curious about what tech stack you have used and even more so if they want to contribute. This is a good section to include in order to demonstrate your chosen tech stack. You can use a table format to make things neater&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Features (Optional)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Now this is optional but if your application is large with many features, you can show this off with this section and list as many features as you want 💯&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Installation
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Include steps to install your app for development and production. Provide clear step by step instructions to make it easy for other developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Configuration Setup
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Alongside installation, you may have some configuration files that are necessary to setup for each person. Add notes here about config options and what they need to change&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Usage
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;How does someone use your application? Add instructions here to run the application after installing and configuration is complete&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Tests
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Testing is important in any application! Explain your testing methods and provide instructions on how to run them. If tests need seed data, be sure to include that as well&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Collaborators
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;If other people have contributed to your project, make sure you provide a section for collaborators to give them credit where it is due! A good way to do this is in a table format with their name and link to their GitHub page&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Contributing Instructions
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;If your project is open source, provide instructions on how people can contribute according to the guidelines you set to ensure consistency. A good way to do this is to create a &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; file and link to it &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  License (Optional)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Add license information about your project. Not necessary if you have a &lt;code&gt;LICENSE&lt;/code&gt; file&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Contact Information (Optional)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Provide any contact information such as email if you would like&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Note: Make use of emojis! You don't have to overdo it but in my opinion they make it more pleasing to view 😃
&lt;/h4&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Examples&lt;/strong&gt; of good READMEs
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/matiassingers/awesome-readme"&gt;Awesome README List&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/vscode"&gt;Visual Studio Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/release-it/release-it"&gt;Release It&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Some Templates/Guidelines
&lt;/h4&gt;

&lt;p&gt;I've created some GitHub gists below with guidelines I use for both a README.md and a CONTRIBUTING.md to help out myself and everyone 🙌&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;View my &lt;a href="https://gist.github.com/luvuong-le/714407ccd98dfe820bd7a3bdfaec5e04"&gt;CONTRIBUTING.md guidelines&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;View my &lt;a href="https://gist.github.com/luvuong-le/ec9eaa582c34b1403d1b811fbc5c51d7"&gt;README.md guidelines&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I hope this has been useful to everyone! READMEs are very important for other people and act as a sort of documentation as well. Now that you know how to write better READMEs, get out there and create awesome ones! 💪&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>documentation</category>
    </item>
    <item>
      <title>Coping with Imposter Syndrome 🙏</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Sat, 19 Sep 2020 08:02:19 +0000</pubDate>
      <link>https://dev.to/coderarchive/coping-with-imposter-syndrome-1nj</link>
      <guid>https://dev.to/coderarchive/coping-with-imposter-syndrome-1nj</guid>
      <description>&lt;p&gt;Fear not if you experience this feeling, it's a common emotion for many developers...even experienced developers!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Feeling Overwhelmed?&lt;/em&gt;&lt;/strong&gt; 😨
&lt;/h2&gt;

&lt;p&gt;The life of a software engineer, whether you are a junior or a senior developer can at times, be overwhelming.&lt;/p&gt;

&lt;p&gt;You might feel this way because you can't solve a bug or you make a mistake at work. Typically &lt;strong&gt;Imposter Syndrome&lt;/strong&gt; is a tough feeling to get rid of, you feel inadequate and your confidence in your ability as a developer is shaken. It’s understandable to feel overwhelmed.&lt;/p&gt;

&lt;p&gt;However, some people might not know this can become serious and lead to more distraught feelings building up inside us developers. &lt;br&gt;
So don’t fret if you are currently feeling like this, you have others who have experienced the same thing alongside yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;em&gt;The Problem: Imposter Syndrome&lt;/em&gt;&lt;/strong&gt; 😵
&lt;/h2&gt;

&lt;p&gt;Feeling overwhelmed can be an issue, but if we let this feeling keep expanding further it can evolve into what is known as ‘&lt;strong&gt;Imposter Syndrome&lt;/strong&gt;’. For those people who are not able to easily pick themselves up or have confidence issues, this problem becomes a large internal struggle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imposter Syndrome&lt;/strong&gt; is a psychological pattern in which people cast uncertainty on their success and achievements and continue to have a perpetual feeling that they will be looked at as a fraud or imposter, hence the name.&lt;/p&gt;

&lt;p&gt;As a result of this, many people end up undermining themselves and override any feelings of success and instead turn them into feelings of failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Reasons we face this problem&lt;/em&gt;&lt;/strong&gt; 😕
&lt;/h2&gt;

&lt;p&gt;There can be many reasons we face &lt;strong&gt;Imposter syndrome&lt;/strong&gt;. As I mentioned earlier, we can become overwhelmed with the workload you’re given and expected to know.&lt;/p&gt;

&lt;p&gt;One thing to note is that being a developer is a lot of work and is very challenging. The technologies we work with here are always advancing, whether there are updates to new frameworks or newly created technologies to learn. This field has the requirement that we are always learning and are up to date with our knowledge of the newest technologies.&lt;/p&gt;

&lt;p&gt;Another potential reason is that you may have colleagues or friends who know much more than you and you feel as if you can never catch up or become a top-tier developer.&lt;/p&gt;

&lt;p&gt;Personally, I have also had the feeling where I thought I was never going to be good enough to catch up to people around me.&lt;/p&gt;

&lt;p&gt;I have met people and have close friends who are incredibly smart and talented in this line of work and have indeed compared them to myself, which brought my confidence in my own skills down. Things that would take me longer to understand would come instantly to them. I had thought that my talent is nothing compared to theirs and I would never be able to catch up.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;em&gt;What can you do to remedy this?&lt;/em&gt;&lt;/strong&gt; 🙌
&lt;/h2&gt;

&lt;p&gt;Everyone has different methods of dealing with these issues, here I would like to discuss a few ideas I think are useful and can help others&lt;/p&gt;

&lt;h4&gt;
  
  
  Where were you a year ago? 3️⃣6️⃣5️⃣
&lt;/h4&gt;

&lt;p&gt;Think about where you were a year ago. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did you learn and achieve in the past year? &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Look back and recap your experiences, it can give you a chance to be proud of yourself for the new things you have learned. Don’t compare your achievements to anyone else. Whether yours is a small accomplishment, it is still classified as an accomplishment that you put in the effort to make and will add on to your career in the long run.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: &lt;strong&gt;Please never compare yourself to someone else!&lt;/strong&gt; 🙏🙏&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  You are not the only one
&lt;/h4&gt;

&lt;p&gt;Even developers who are at a level much higher than yourself can have this feeling as well. If you ask your friend or mentors, you may be surprised if they have also been through what you’re going through. &lt;/p&gt;

&lt;p&gt;One person can’t know everything and as such, we developers will never completely know everything. Don’t let this be the reason you stop learning and keep at it at your own pace.&lt;/p&gt;

&lt;h4&gt;
  
  
  Take some time off
&lt;/h4&gt;

&lt;p&gt;If it all becomes too overwhelming, a good idea is to take some time off. Away from the keyboard and away from the code. &lt;/p&gt;

&lt;p&gt;Spend time with family, close friends or go on a trip somewhere. Come back feeling refreshed and hopefully with a more positive mindset. Who knows, something could give you a newfound inspiration and motivation during your time off.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2048%2F0%2AT3R_FT6oWqMymYG1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2048%2F0%2AT3R_FT6oWqMymYG1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Don't give up! Fail fast, fail often&lt;/em&gt;&lt;/strong&gt; 💪
&lt;/h2&gt;

&lt;p&gt;I would like to finish this with a few words personally from myself to my fellow developers out there. If you are facing any of what I have mentioned above, please &lt;strong&gt;stay confident in yourself&lt;/strong&gt;. There will always be new technologies emerging and there will always be better developers than you out there. However, intelligence is not fixed.&lt;/p&gt;

&lt;p&gt;Be proud of your past achievements (large or minuscule) and compete against yourself. Become the best developer you can possibly be and keep growing. I’m sure you all are as passionate as I am, so I implore you to keep going and don’t give up on your goals. Keep learning new things, improve your development skills, gain experience and reach new heights! Our skills can and will only keep increasing from where we are now. 🔥🔥&lt;/p&gt;

&lt;p&gt;Share this post if you know someone who is going through the &lt;strong&gt;Imposter Syndrome&lt;/strong&gt; phase to help them out 😄&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Learn Markdown in 20 minutes</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Tue, 08 Sep 2020 11:06:04 +0000</pubDate>
      <link>https://dev.to/coderarchive/learn-markdown-in-20-minutes-28ie</link>
      <guid>https://dev.to/coderarchive/learn-markdown-in-20-minutes-28ie</guid>
      <description>&lt;p&gt;In this video, we go through what Markdown is and how to use important basic Markdown syntax that is commonly used as a Developer&lt;/p&gt;

&lt;p&gt;It's important to know the basics of Markdown as a developer as you'll see it used in places like READMEs, blog posts on DEV, and more! &lt;/p&gt;

&lt;p&gt;Markdown syntax in this Github gist: &lt;br&gt;
&lt;a href="https://gist.github.com/luvuong-le/2b5f9465cd13329042afff1bccad73d9"&gt;https://gist.github.com/luvuong-le/2b5f9465cd13329042afff1bccad73d9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you'd like to see more of my videos, &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg"&gt;head over to Youtube!&lt;/a&gt; A follow/sub comes a long way to show support&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow and connect with me on:
&lt;/h2&gt;

&lt;p&gt;🐦 Twitter: &lt;a href="https://twitter.com/coderarchive"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

</description>
      <category>coderarchive</category>
      <category>markdown</category>
      <category>tutorial</category>
      <category>documentation</category>
    </item>
    <item>
      <title>Migrating Posts from Medium to DEV</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Sat, 22 Aug 2020 08:00:30 +0000</pubDate>
      <link>https://dev.to/coderarchive/migrating-posts-from-medium-to-dev-332p</link>
      <guid>https://dev.to/coderarchive/migrating-posts-from-medium-to-dev-332p</guid>
      <description>&lt;p&gt;Hi Everyone! 👋 &lt;/p&gt;

&lt;p&gt;As I create blog posts, I typically use multiple platforms aside from DEV such as Medium. &lt;/p&gt;

&lt;p&gt;Now I have had some posts on Medium in the past that I wanted to move onto DEV. The problem was I didn't want to rewrite the posts on Medium to markdown for DEV, which would require a bit of effort.&lt;/p&gt;

&lt;p&gt;Thus began my search for a way around this which led me to stumble onto this awesome tool!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to migrate posts ❓
&lt;/h2&gt;

&lt;p&gt;The tool I used is &lt;a href="https://www.npmjs.com/package/mediumexporter" rel="noopener noreferrer"&gt;Medium Exporter&lt;/a&gt;. In order to use this, you can install this npm package globally via:&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="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;g&lt;/span&gt; &lt;span class="nx"&gt;mediumexporter&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you should be able to run the following command to convert a medium post into an MD file&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="nx"&gt;Format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;mediumexporter&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;md&lt;/span&gt;

&lt;span class="nx"&gt;mediumexporter&lt;/span&gt; &lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//medium.com/@coderarchive/4-lessons-ive-learned-during-my-first-year-as-a-software-engineer-50bc95afd629 &amp;gt; 4-lessons.md&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you don't have it installed globally, you can also use &lt;strong&gt;npx&lt;/strong&gt; which is what I'm using in the example below :)&lt;/p&gt;

&lt;h3&gt;
  
  
  Running the command
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F895n8r8ftw6y9mf73go4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F895n8r8ftw6y9mf73go4.gif" alt="Demo CLI 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  View the file
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9siuczwntn1nzycr6qrj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9siuczwntn1nzycr6qrj.gif" alt="Demo CLI 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There may be some changes to make as it doesn't always convert everything correctly and you'll possibly need to deal with any images yourself but it usually helps with most of the work 👌&lt;/p&gt;




&lt;p&gt;That about wraps it up for this short one! I'm also aware there is are some chrome extensions and other npm packages to do this as well but I haven't tried them out yet, this way seems to work well enough 😁&lt;/p&gt;

</description>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Why I decided to start blogging and why we all should 🙌</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Sat, 15 Aug 2020 10:26:28 +0000</pubDate>
      <link>https://dev.to/coderarchive/why-i-decided-to-start-blogging-and-why-we-all-should-1ije</link>
      <guid>https://dev.to/coderarchive/why-i-decided-to-start-blogging-and-why-we-all-should-1ije</guid>
      <description>&lt;p&gt;Just a short post talking about why I started blogging and why I think we all should as developers 😁&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the point ❓
&lt;/h2&gt;

&lt;p&gt;There are a lot of reasons why someone would start writing blog posts. Personally, for me, I think a blog carries many benefits as a software developer that I'll talk about below. Moreover, I think &lt;strong&gt;it's amazing to share our knowledge with other developers out there and also learn from them&lt;/strong&gt; 📚&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of writing blog posts ✏️
&lt;/h2&gt;

&lt;p&gt;I would absolutely recommend all developers to start blogging. Some of the benefits I can think of are (if you have more, please feel free to comment):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Allowing you to connect and potentially meet incredible developers. We have a &lt;strong&gt;great community&lt;/strong&gt; here so let's all share knowledge with each other and interact 👋&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blogging can help &lt;strong&gt;boost confidence in both writing ability and your skills as a developer&lt;/strong&gt;. Trying to explain the knowledge and concepts you know is important as you become a more experienced developer, blogging can help with that&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Social wise&lt;/strong&gt;, it acts as another place to &lt;strong&gt;build a profile&lt;/strong&gt; and get your own name out there. You can form valuable connections through blogging and allow employers to see your engagement and passion being a developer. More ways to showcase your knowledge to employers never hurts! 👌&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Go for it! ✌️
&lt;/h2&gt;

&lt;p&gt;If anyone is reading this and is afraid of posting in case you think someone has already talked about it or you're scared of what people may think, please &lt;strong&gt;take the leap and go for it!&lt;/strong&gt; 😊 &lt;/p&gt;

&lt;p&gt;Even if it has already been talked about before, someone will be able to take something out of the stories and knowledge you share. &lt;/p&gt;

&lt;p&gt;As for me, I will do my best to share my knowledge with you all so we can all progress as developers! 💪&lt;/p&gt;

</description>
      <category>writing</category>
      <category>sharing</category>
      <category>branding</category>
    </item>
    <item>
      <title>Event Delegation in JS</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Thu, 23 Jul 2020 06:13:35 +0000</pubDate>
      <link>https://dev.to/coderarchive/event-delegation-in-js-1aff</link>
      <guid>https://dev.to/coderarchive/event-delegation-in-js-1aff</guid>
      <description>&lt;h1&gt;
  
  
  What is Event Delegation? ❓
&lt;/h1&gt;

&lt;p&gt;You can look at Event Delegation as a method of handling events for multiple elements via an event listener on one parent element.&lt;/p&gt;

&lt;p&gt;Essentially the child elements events will bubble up via &lt;strong&gt;Event Bubbling&lt;/strong&gt; to the parent element and trigger its event listener and then perform some action on the child element via the &lt;strong&gt;event.target&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This also allows it to cater for any dynamically generated elements.&lt;/p&gt;




&lt;h1&gt;
  
  
  Picture this 🖼️
&lt;/h1&gt;

&lt;p&gt;To understand what Event Delegation is, imagine this scenario:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"brooklyn99Characters"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Jake Peralta&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Raymand Holt&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Amy Santiago&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"characterInput"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"addBtn"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Add Character&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;You have a list

&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;

and list items

&lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;

in the DOM
- For each list item, you have an attached &lt;strong&gt;event listener&lt;/strong&gt; listening to a click button that highlights the text when clicked&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some pretty basic concepts so far, you can add an event listener to each of these list items via a loop. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now imagine&lt;/strong&gt; that this list has the ability to add new cast characters and essentially is now &lt;strong&gt;dynamic&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;All of a sudden when a character is added and you try to click on them, nothing happens! 😕&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This happens because the event listeners were attached to the elements that were added during page load. When dynamic elements are added to the DOM, the JS is not run and event listeners are not added. This is a common issue you may run into or see others encounter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F94r75ulhl8zujba4tr65.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F94r75ulhl8zujba4tr65.gif" alt="Common Event Listener Dynamic Binding Issue"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  How can we fix this? 🔨
&lt;/h1&gt;

&lt;p&gt;So one common way to fix this problem is to &lt;strong&gt;bind&lt;/strong&gt; these event listeners whenever an element is dynamically generated.&lt;/p&gt;

&lt;p&gt;Say you had this code to add a new cast member:&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;characterList&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;brooklyn99Characters&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;addBtn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;addBtn&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;characterInput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;characterInput&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;highlightText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;background&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;yellow&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;addBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;listItem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;li&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Set text content to user custom input    &lt;/span&gt;
    &lt;span class="nx"&gt;listItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;characterInput&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Bind event listener to this created element&lt;/span&gt;
    &lt;span class="nx"&gt;listItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;highlightText&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;characterList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;listItem&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;So let's take a look at what is happening: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We have a reference to the character list

&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;

and a function to style the background of an element to yellow&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
&lt;li&gt;On the add button, we have an event listener which creates an

&lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;

and sets some text (which would be grabbed from an input field)&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Now we create an event listener for this new dynamically generated element and set in our highlight function. This is the &lt;strong&gt;important&lt;/strong&gt; part which allows the &lt;strong&gt;'rebinding'&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, we append it to the parent list&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now this is not always the best way to do things, there are some things problematic with this&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It can cause you to have a lot of event listeners on your page and can cause performance issues&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There can be some memory leaks and issues when it comes to binding and unbinding event listeners&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Using Event Delegation 💡
&lt;/h1&gt;

&lt;p&gt;Let's implement &lt;strong&gt;Event Delegation&lt;/strong&gt; to the above code and see what the differences are:&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;characterList&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;brooklyn99Characters&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;addBtn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;addBtn&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;characterInput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;characterInput&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;highlightText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;background&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;yellow&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Listen for events on the parent&lt;/span&gt;
&lt;span class="nx"&gt;characterList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;targetEl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Check for node type and execute some code&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;targetEl&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;targetEl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nodeName&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;LI&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="nf"&gt;highlightText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&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;span class="nx"&gt;addBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;listItem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;li&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Set text content to user custom input    &lt;/span&gt;
    &lt;span class="nx"&gt;listItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;characterInput&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;characterList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;listItem&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 above, we have no longer have any need to assign an event listener in the &lt;strong&gt;"addBtn"&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;This is because when the element is added and clicked, &lt;strong&gt;Event Bubbling&lt;/strong&gt; kicks in and bubbles up to the parent and triggers the click event there too. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inside parent element (&lt;strong&gt;characterList&lt;/strong&gt;) we have an event listener for a "click", and inside that, we do some checks for the &lt;strong&gt;event target&lt;/strong&gt; to see if it's a &lt;strong&gt;li&lt;/strong&gt; and then we change the styles!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both the method above and this Event Delegation have the same result: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0srb6vcqo74xt0m4ev6a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0srb6vcqo74xt0m4ev6a.gif" alt="Binding Fix"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  So why use Event Delegation?
&lt;/h1&gt;

&lt;p&gt;So as above, the benefit here is that we only need &lt;strong&gt;one&lt;/strong&gt; event listener and it also caters to dynamically generated elements! 🔥&lt;/p&gt;

&lt;p&gt;This can be extremely useful depending on your situation and can save you trouble so it is a good technique to keep in your backpack 😁&lt;/p&gt;

&lt;h1&gt;
  
  
  Follow and connect with me on:
&lt;/h1&gt;




&lt;p&gt;📹 Youtube: &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg" rel="noopener noreferrer"&gt;https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg&lt;/a&gt;&lt;br&gt;
🐦 Twitter: &lt;a href="https://twitter.com/coderarchive" rel="noopener noreferrer"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le" rel="noopener noreferrer"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/" rel="noopener noreferrer"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>todayilearned</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Building a Code Editor for the Web - Output to Custom Console</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Wed, 22 Jul 2020 01:45:57 +0000</pubDate>
      <link>https://dev.to/coderarchive/building-a-code-editor-for-the-web-output-to-custom-console-3kgb</link>
      <guid>https://dev.to/coderarchive/building-a-code-editor-for-the-web-output-to-custom-console-3kgb</guid>
      <description>&lt;p&gt;In this final video, we'll be displaying the logs we stored in the array to our custom console and styling them according to the log type 🔥&lt;/p&gt;

&lt;p&gt;Find the code for this video in this branch: &lt;br&gt;
&lt;a href="https://github.com/luvuong-le/code-editor-tutorial/tree/output-to-custom-console"&gt;https://github.com/luvuong-le/code-editor-tutorial/tree/output-to-custom-console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the previous part to this video &lt;a href="https://dev.to/coderarchive/building-a-code-editor-for-the-web-redefining-the-console-1416"&gt;here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was my first time doing a longer series so hope you enjoyed it! 💪&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow and connect with me on:
&lt;/h2&gt;

&lt;p&gt;📹 Youtube: &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg"&gt;https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg&lt;/a&gt;&lt;br&gt;
🐦 Twitter: &lt;a href="https://twitter.com/coderarchive"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>My 100 Days Of Code Journey</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Mon, 20 Jul 2020 14:59:24 +0000</pubDate>
      <link>https://dev.to/coderarchive/my-100-days-of-code-journey-4n5n</link>
      <guid>https://dev.to/coderarchive/my-100-days-of-code-journey-4n5n</guid>
      <description>&lt;h1&gt;
  
  
  Round 1 Complete! 🔥 🔥
&lt;/h1&gt;

&lt;p&gt;I've just completed my 100 Days of Code challenge and wanted to  share my experience and how it helped me 💪&lt;/p&gt;

&lt;p&gt;I'd like to also give my thanks for the support from the dev community on Twitter where I posted! 🙏&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WiJ2CFxN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rk9g8nxrmpkzsr9zdtwl.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WiJ2CFxN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rk9g8nxrmpkzsr9zdtwl.gif" alt="Alt Text" width="600" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the 100 Days of Code Challenge ❓
&lt;/h2&gt;

&lt;p&gt;Essentially, the 100 Days of Code challenge is a challenge where you code for a minimum of an hour a day for 100 days and record your progress by posting on Twitter. &lt;/p&gt;

&lt;p&gt;You can find more information about it &lt;a href="https://www.100daysofcode.com/"&gt;here&lt;/a&gt; if you'd like to try it!&lt;/p&gt;

&lt;h2&gt;
  
  
  My Thoughts 💭
&lt;/h2&gt;

&lt;p&gt;To start, I can say confidently that for me this worked pretty well! I started this because I wanted to be more motivated to write code consistently and this stood out as a great challenge to help me with that. At this point, I'd already seen people posting some really amazing work and progress on Twitter 😍 &lt;/p&gt;

&lt;p&gt;Over time, I began to code more often even if only for an hour a day and I did a lot more projects than I would have. For example, I finally got around to learning and completing a few different CSS Illustrations during these 100 days&lt;/p&gt;

&lt;p&gt;Here are some examples: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4ZAwqNwQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4o603nycxxas4r6ock84.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4ZAwqNwQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4o603nycxxas4r6ock84.gif" alt="Pacman" width="600" height="331"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w5A2k4YZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fr6826lrv7gpamnie9fy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w5A2k4YZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fr6826lrv7gpamnie9fy.gif" alt="Nintendo Switch" width="880" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Throughout the 100 days, I've learned new things and have also been able to brush up on some core coding skills. I could feel my heightened motivation to code in order to complete and stay disciplined to the challenge. All the support from everyone was really amazing! Such an awesome community that I've been able to connect with even more due to this challenge 🙌&lt;/p&gt;

&lt;p&gt;A quick note, my work would range from projects, tutorials, just reading for the day, or no work at all. I don't believe we have to code every day as we all need rest days for our mental health 😴 &lt;/p&gt;

&lt;h2&gt;
  
  
  So...where to now?
&lt;/h2&gt;

&lt;p&gt;This is a challenge I'd highly recommend for everyone to try! I really enjoyed doing this and learned a lot during these 100 days so now off to start Round 2! 😁&lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>learning</category>
    </item>
    <item>
      <title>Building a Code Editor for the Web - Redefining the Console</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Mon, 20 Jul 2020 14:29:54 +0000</pubDate>
      <link>https://dev.to/coderarchive/building-a-code-editor-for-the-web-redefining-the-console-1416</link>
      <guid>https://dev.to/coderarchive/building-a-code-editor-for-the-web-redefining-the-console-1416</guid>
      <description>&lt;p&gt;In order to output to our custom console, we'll need some way to store the logs that usually get logged in the dev tools that are also formatted as we want so that we can display them all at once later on &lt;/p&gt;

&lt;p&gt;Find the code for this video in this branch: &lt;br&gt;
&lt;a href="https://github.com/luvuong-le/code-editor-tutorial/tree/redefine-console"&gt;https://github.com/luvuong-le/code-editor-tutorial/tree/redefine-console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the previous part to this video &lt;a href="https://dev.to/coderarchive/building-a-code-editor-for-the-web-configuring-ace-editor-507h"&gt;here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay tuned for the final video 😁 &lt;/p&gt;

&lt;h2&gt;
  
  
  Follow and connect with me on:
&lt;/h2&gt;

&lt;p&gt;📹 Youtube: &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg"&gt;https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg&lt;/a&gt;&lt;br&gt;
🐦 Twitter: &lt;a href="https://twitter.com/coderarchive"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building a Code Editor for the Web - Configuring Ace Editor</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Sun, 19 Jul 2020 08:52:06 +0000</pubDate>
      <link>https://dev.to/coderarchive/building-a-code-editor-for-the-web-configuring-ace-editor-507h</link>
      <guid>https://dev.to/coderarchive/building-a-code-editor-for-the-web-configuring-ace-editor-507h</guid>
      <description>&lt;p&gt;In this video, we'll work on configuring ace with some options and getting the user input from Ace to execute in the chrome dev tools&lt;/p&gt;

&lt;p&gt;Find the code for each video here in its own branch: &lt;br&gt;
&lt;a href="https://github.com/luvuong-le/code-editor-tutorial/tree/configuring-ace"&gt;https://github.com/luvuong-le/code-editor-tutorial/tree/configuring-ace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;View the Ace configuration options here: &lt;br&gt;
&lt;a href="https://github.com/ajaxorg/ace/wiki/Configuring-Ace"&gt;https://github.com/ajaxorg/ace/wiki/Configuring-Ace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the previous part to this video &lt;a href="https://dev.to/coderarchive/building-a-code-editor-for-the-web-html-css-structure-ilf"&gt;here!&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow and connect with me on:
&lt;/h2&gt;

&lt;p&gt;📹 Youtube: &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg"&gt;https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg&lt;/a&gt;&lt;br&gt;
🐦 Twitter: &lt;a href="https://twitter.com/coderarchive"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building a Code Editor for the Web - HTML &amp; CSS Structure</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Mon, 13 Jul 2020 01:50:24 +0000</pubDate>
      <link>https://dev.to/coderarchive/building-a-code-editor-for-the-web-html-css-structure-ilf</link>
      <guid>https://dev.to/coderarchive/building-a-code-editor-for-the-web-html-css-structure-ilf</guid>
      <description>&lt;p&gt;In this video, we'll work on the basic overall structure with the HTML and CSS. We'll also load the ACE Code Editor without any configuration.&lt;/p&gt;

&lt;p&gt;Find the code for each video here in its own branch: &lt;br&gt;
&lt;a href="https://github.com/luvuong-le/code-editor-tutorial/tree/html-css-structure"&gt;https://github.com/luvuong-le/code-editor-tutorial/tree/html-css-structure&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the previous part to this video &lt;a href="https://dev.to/coderarchive/building-a-code-editor-for-the-web-project-setup-1m43"&gt;here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you'd like to see more of my videos, &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg"&gt;head over to Youtube!&lt;/a&gt; A follow/sub comes a long way to show support&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow and connect with me on:
&lt;/h2&gt;

&lt;p&gt;🐦 Twitter: &lt;a href="https://twitter.com/coderarchive"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  coderarchive #webdev #html #css #js
&lt;/h1&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Building a Code Editor for the Web - Project Setup</title>
      <dc:creator>Lu-Vuong Le 🚀</dc:creator>
      <pubDate>Thu, 09 Jul 2020 07:23:06 +0000</pubDate>
      <link>https://dev.to/coderarchive/building-a-code-editor-for-the-web-project-setup-1m43</link>
      <guid>https://dev.to/coderarchive/building-a-code-editor-for-the-web-project-setup-1m43</guid>
      <description>&lt;p&gt;In this video, we'll set up the project with a basic folder structure and also take a look at the library we'll use for the embedded code editor (Ace Editor)&lt;/p&gt;

&lt;p&gt;Find the code for each video here in its own branch: &lt;br&gt;
&lt;a href="https://github.com/luvuong-le/code-editor-tutorial"&gt;https://github.com/luvuong-le/code-editor-tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the previous part to this video &lt;a href="https://dev.to/coderarchive/building-a-code-editor-for-the-web-introduction-3b87"&gt;here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you'd like to see more of my videos, &lt;a href="https://www.youtube.com/channel/UCWaB4SBBUCvhYb91fz5Vidg"&gt;head over to Youtube!&lt;/a&gt; A follow/sub comes a long way to show support&lt;/p&gt;

&lt;p&gt;I've become a bit busy till the weekend so stay tuned for the next part 🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow and connect with me on:
&lt;/h2&gt;

&lt;p&gt;🐦 Twitter: &lt;a href="https://twitter.com/coderarchive"&gt;https://twitter.com/coderarchive&lt;/a&gt;&lt;br&gt;
📚 Github: &lt;a href="https://github.com/luvuong-le"&gt;https://github.com/luvuong-le&lt;/a&gt;&lt;br&gt;
💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/lu-vuongle/"&gt;https://www.linkedin.com/in/lu-vuongle/&lt;/a&gt;&lt;br&gt;
📷 Instagram: &lt;a href="https://www.instagram.com/coderarchive/"&gt;https://www.instagram.com/coderarchive/&lt;/a&gt;&lt;br&gt;
📝 Dev.to: &lt;a href="https://dev.to/coderarchive"&gt;https://dev.to/coderarchive&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
