<?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>Forem: kevin sims</title>
    <description>The latest articles on Forem by kevin sims (@kevsmss).</description>
    <link>https://forem.com/kevsmss</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%2F352903%2F9f18a86f-6ae0-443e-b4b8-3a9cee8dcfb7.jpg</url>
      <title>Forem: kevin sims</title>
      <link>https://forem.com/kevsmss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kevsmss"/>
    <language>en</language>
    <item>
      <title>From Jail Bird To Developer In A Year</title>
      <dc:creator>kevin sims</dc:creator>
      <pubDate>Tue, 20 Oct 2020 23:22:08 +0000</pubDate>
      <link>https://forem.com/kevsmss/from-jail-bird-to-developer-in-a-year-5ajl</link>
      <guid>https://forem.com/kevsmss/from-jail-bird-to-developer-in-a-year-5ajl</guid>
      <description>&lt;p&gt;This post is for all of you who don't believe you're good enough to become a developer. Just Know, YOU ARE!&lt;/p&gt;

&lt;h1&gt;
  
  
  How It Started
&lt;/h1&gt;

&lt;p&gt;Growing up, I never lived in one area for more than 2 years before moving; my mother's failed attempts at relationships were the main cause most of the time. My father was never in the picture long. He was in and out of prison often, until eventually, he received pretty heavy sentencing and has been locked up since I was six.&lt;/p&gt;

&lt;p&gt;Back then, I couldn't necessarily see how these things were affecting me, but around the time middle school started, I had developed a lot of pain, anger, and resentment towards the world. Through middle and high school, my grades sucked, I got into fights, got expelled, was disrespectful to just about anyone I felt looked at me wrong and arrested more than five times.&lt;/p&gt;

&lt;p&gt;And things got rougher. I was selling and doing drugs whenever I wanted. Taking people for granted and even using people for my own benefit. I was a mess, to say the least. &lt;/p&gt;

&lt;p&gt;Until I was 18 and went to visit my father in prison, I often used to do this, but the darker my world became, the more ashamed I was. When we finally sat down after years, he said things that really changed me, and I slowly but surely stopped doing drugs. &lt;/p&gt;

&lt;p&gt;But the biggest hurdle I had to cross was the mindset that I had to become rich overnight. The idea that there was some secret formula that could generate real wealth overnight. This is something I struggled a lot with. I traded forex, bitcoin, bought the courses, tried it all, and to be completely honest, the only thing that stopped me from continuing to waste my money on bs was fitness.&lt;/p&gt;

&lt;p&gt;All my life, I never really cared about my body, how I ate, if I was stretching consistently, or working out regularly. But when I turned 19, a buddy of mine asked me to be his workout partner. I took him up on the offer, and again this was a life-changing experience. After the first month, I was in the best shape of my life, and after three months, I had an 8 pack. This taught me that a little patience goes a long way, that anything that comes fast usually doesn't last, but most importantly. It taught me that hard work means everything. Hard work is the bridge that connects you to where you want to go. We were in the gym 3 hours a day, going all out. I had never worked harder in my life, and it paid off. &lt;/p&gt;

&lt;p&gt;At a certain point, I sat down with myself and evaluated my life, all the people I had hurt and done wrong: anger, sadness, and resentment. I never wanted to be that person, growing up. I wanted to help others, lift one another, and make the world a better place. But as a kid, when bad things happen, you become hardened, view the world differently, and change your morals and outlook. And as a result, I had become the opposite of who I really was. But I want yall to know; people can change. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;some people will tell you how they did it but will you listen?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I started listening to people like David Goggins, a Black Navy Seal who had grown up with struggles like mine. But instead of allowing his situation to make him a victim, he used all the crap he'd gone through as strengths! Seeing and listening to content like this is what helped me break the victims' mentality. &lt;/p&gt;

&lt;p&gt;Then one day, while trying to figure out what to do with myself, I heard a line that would change my life.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you don't know what you want to do, look for someone who lives the life you want to live and try that.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Genius right?&lt;/p&gt;

&lt;p&gt;But really this changed it for me, a lot of us have no idea what we want to do, and that's fine! The most important thing is that you live a life you love. Some would say you must love your work from day 1. Well, I don't see it this way, and my counter is that if you love the life you live outside of work, it'll make it that much easier to love the actual work, And if you hate the work, there are plenty of careers in the sea, try something else.&lt;/p&gt;

&lt;p&gt;After this, I started researching(stalking people's lives) to see what I may want to do. After looking at close friends' parents, relatives, and even people like Musk, Gates, Bezos. I decided I'd give programming a shot.&lt;/p&gt;

&lt;p&gt;But where would I start? How was little ole black Kev, gonna break into tech? I found a resource that I will forever be grateful for and probably use for the rest of my career and life. &lt;/p&gt;

&lt;p&gt;A Mentor, even more importantly, one I could relate to. This is how I would know that I was going in the right direction and on my way to becoming an engineer.&lt;/p&gt;

&lt;p&gt;The first step was to move across the country as fast as possible. No, I didn't have to, but I knew myself enough to know I'd need a support team to get through this. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Never be afraid of help; the self-made man is a fallacy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So there I went to California, leaving the last 7 years of my life behind in pursuit of something better.&lt;/p&gt;

&lt;p&gt;After getting settled, we (mentor and myself) created a roadmap. I'd attend a boot camp, work on personal projects, network, all until I finished the boot camp. &lt;/p&gt;

&lt;p&gt;Then get rejected from jobs and improve in the areas they saw were weak. Go back reapply, through friends in my network, and hopefully get a job. This took a lot longer than I had first imagined; there were many ups and downs. &lt;/p&gt;

&lt;p&gt;*Days I did not want to code. &lt;/p&gt;

&lt;p&gt;*Days I wondered, "Is this for me?". &lt;/p&gt;

&lt;p&gt;*Days I told myself, "YOU IDIOT THIS IS NOT FOR YOU!". &lt;/p&gt;

&lt;p&gt;But I got through it, I graduated my Bootcamp, and 5 months later, an offer had opened at my mentors' company for an internship. I proved myself over 4 months, and when a full-time position came around, I was given a shot. &lt;/p&gt;

&lt;h1&gt;
  
  
  What's Next For Me?
&lt;/h1&gt;

&lt;p&gt;Since then, I've continued coding in my free time, this is an art of its own form, and I've learned to appreciate and love it. I could not go a week without coding. I've also started an Instagram, Youtube and created blog posts to encourage people from similar backgrounds to give programming a shot. I think we all need to step out of the stereotypes the world has tried to put us in, and I believe I can help others with that process. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We are all unique, and that's a good thing. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Just because I grew up listening to Lil Wayne does not mean I cant learn what a database, server, or app is. It doesn't matter if you're black, white, rich, or poor. You can do whatever it is that you want to do. Work hard and do not give up. &lt;/p&gt;

&lt;p&gt;Much Love to All.&lt;/p&gt;

&lt;p&gt;If you would like to reach out and talk about anything, please feel free via &lt;a href="https://twitter.com/KevSmss"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Roadmap To Becoming A Successful Freelance Developer</title>
      <dc:creator>kevin sims</dc:creator>
      <pubDate>Fri, 16 Oct 2020 22:50:04 +0000</pubDate>
      <link>https://forem.com/kevsmss/roadmap-to-becoming-a-successful-freelance-developer-4of9</link>
      <guid>https://forem.com/kevsmss/roadmap-to-becoming-a-successful-freelance-developer-4of9</guid>
      <description>&lt;h2&gt;
  
  
  What is freelancing?
&lt;/h2&gt;

&lt;p&gt;Freelancing is the act of &lt;em&gt;working for different companies at different times rather than being permanently employed by one company.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why choose to freelance?
&lt;/h2&gt;

&lt;p&gt;There isn't a singular reason to why people choose to freelance but here are a few:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Work Remotely&lt;/li&gt;
&lt;li&gt;Control over your schedule &lt;/li&gt;
&lt;li&gt;Use the time, that would be spent commuting, to do the things you love&lt;/li&gt;
&lt;li&gt;Be your own boss&lt;/li&gt;
&lt;li&gt;Extra income&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do I begin to freelance?
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Step 1: Choose A Lane And Stick With It!
&lt;/h1&gt;

&lt;p&gt;The first step in becoming a freelance developer is to identify the arena you want to operate around. &lt;/p&gt;

&lt;p&gt;What I mean by arena is, instead of trying to build everyone in the world a SPA. Narrow it down to building apps or software for Retail stores, Sports Leagues, or Restaurants.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;I read an article once that put it like this: &lt;/p&gt;

&lt;p&gt;You could be the dev that goes around fixing every problem you encounter, and yes make money while doing so. &lt;/p&gt;

&lt;p&gt;The problem is, although you've been solving issues and making money, you haven't become better at making e-commerce systems because only 1/5 of your clients needed an e-commerce set up. Only 2/5 of your clients needed a social app, so your skills haven't improved much in that area either. And the last 2 clients needed PHP websites which you'll never use again.&lt;/p&gt;

&lt;p&gt;You made money, yes, but you did not create more value for the next customer.&lt;/p&gt;

&lt;p&gt;Now let's take a look at the next dev. He only had 3 jobs but they were all related to chatting through social platforms. He now knows how to create a chat system alot easier, and has had 3 iterations to continuously improve in that arena. &lt;/p&gt;

&lt;p&gt;He will now be able to upcharge for his service because he has been able to add more value through iterations!&lt;/p&gt;

&lt;p&gt;This is what you want to do. Find an arena and stick with it. You can always decide to switch if you don't like it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2: Identify A Problem
&lt;/h1&gt;

&lt;p&gt;This is the hardest step, anyone can build someone software, very few can build solutions.&lt;/p&gt;

&lt;p&gt;To identify a problem in a certain arena, you must talk with someone who lives in that arena. While you may be able to identify problems you have with something, that doesn't necessarily mean that's how everyone else feels.&lt;/p&gt;

&lt;p&gt;Reach out and get close to someone who lives in the arena you want to help, and start asking questions. Ask what are some of the biggest headaches they deal with on a daily basis? There is no magic formula for finding problems, you must have patience and open ears at all times. &lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3: Mock It Out
&lt;/h1&gt;

&lt;p&gt;After you have identified a problem in set arena, you want to create a mock of the idea you have in mind. The last thing you want to do is create a machine that cuts bread when all the baker wanted was a knife. This will save you ALOT of time and frustration. &lt;/p&gt;

&lt;p&gt;Take your mock to the person you've been in contact with and ask if that is what they had in mind, collaborate as much as you can, you are not the expert of this problem they are.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4: Create The Solution
&lt;/h1&gt;

&lt;p&gt;You've identified a problem and made a mock that received good responses. Great! Now it's time to code. This is the easy part. Take the research and knowledge you have obtained and created the solution! &lt;/p&gt;

&lt;h1&gt;
  
  
  Step 5: Sell It
&lt;/h1&gt;

&lt;p&gt;Take your solution to whomever you've been in contact with and let them know you'd like for them to try it. Give it to them to try for a week for free, through that week you'll find problems you hadn't thought about, fix them then return with the polished version. &lt;/p&gt;

&lt;p&gt;If you've effectively solved the problem, the solution will sell its self.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Freelancing can open doors, move money, and create passion. But for any of these things to come true, you must be willing to work hard. &lt;/p&gt;

&lt;p&gt;The road is long, but with perseverance, it can be very rewarding. &lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read and if you have any suggestions please reach out via &lt;a href="https://twitter.com/KevSmss"&gt;twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>A Quick Look At Reacts useState</title>
      <dc:creator>kevin sims</dc:creator>
      <pubDate>Sun, 11 Oct 2020 02:22:34 +0000</pubDate>
      <link>https://forem.com/kevsmss/a-quick-look-at-reacts-usestate-1oam</link>
      <guid>https://forem.com/kevsmss/a-quick-look-at-reacts-usestate-1oam</guid>
      <description>&lt;h1&gt;
  
  
  What's useState?
&lt;/h1&gt;

&lt;p&gt;useState is a react hook. React Hooks are a new feature to React 16.8. Hooks allow us to use things like state, inside of functional components. &lt;/p&gt;

&lt;p&gt;So when you usually make some state for a class component it'll look 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="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;FakeDate&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;handleClick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nx"&gt;handleClick&lt;/span&gt; &lt;span class="o"&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="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o"&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;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;click&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;change&lt;/span&gt; &lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;It&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h2&amp;gt;&lt;/span&gt;&lt;span class="err"&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;Now with hooks, we can utilize useState and write 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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Counter&lt;/span&gt; &lt;span class="o"&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="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCounter&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&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;onClick&lt;/span&gt; &lt;span class="o"&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="nx"&gt;setCounter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;counter&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
 &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;click&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;change&lt;/span&gt; &lt;span class="nx"&gt;counter&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&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;counter&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;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;Pretty cool right? &lt;/p&gt;

&lt;h2&gt;
  
  
  A Deeper Look
&lt;/h2&gt;

&lt;p&gt;When we useState, we no longer require a constructor or state object. Instead, we declare our state variable along with its setVariable partner. Now anytime you want to update that specific state variable you just call setVariable and pass it a value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is useState Better State?
&lt;/h2&gt;

&lt;p&gt;Should you use the useState hook or the traditional state lifecycle? &lt;/p&gt;

&lt;p&gt;Well, it depends if you want to use a functional or class component. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;useState is simply a tool of convenience.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There will still be times where a class component is more useful than a functional component. Assess your needs and the answer will be obvious.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;We have gone over the useState hook. I hope you've gained some knowledge from this. If you have any questions feel free to reach out to my &lt;a href="https://twitter.com/KevSmss"&gt;twitter&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Thank you for reading and keep coding!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>What Is Promise.all?</title>
      <dc:creator>kevin sims</dc:creator>
      <pubDate>Wed, 30 Sep 2020 21:28:31 +0000</pubDate>
      <link>https://forem.com/kevsmss/what-is-promise-all-3o73</link>
      <guid>https://forem.com/kevsmss/what-is-promise-all-3o73</guid>
      <description>&lt;h2&gt;
  
  
  👋 😄
&lt;/h2&gt;

&lt;p&gt;Have you ever been in a situation, where you needed to do a large amount of async functions at once? Promise.all() is very helpful at taking a large number of actions and making it easier to manage them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Promise.all()
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all"&gt;Promise.all()&lt;/a&gt; is a function that takes an array of promises, executes them in parallel, and returns a single promise that resolves to an array of the results from the given iterable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do we need this?
&lt;/h3&gt;

&lt;p&gt;Imagine trying to run, 1000 different async functions in a single block... That would take FOREVER, and it might even crash your server. &lt;/p&gt;

&lt;p&gt;Now instead of making all 1000 calls one at a time, we could do it in parallel with Promise.all(). &lt;/p&gt;

&lt;p&gt;But even doing that with 1000 calls could be risky. So we could take it a step further and make these calls in batches to prevent possible crashes and bugs.&lt;/p&gt;

&lt;p&gt;Another possible scenario would be needing to make multiple queries to the database and using those queries to build a single response of information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sound confusing? Let us walk through some examples.
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//Here we have 3 promises &lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;promise1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl.com&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="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
   &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;e&lt;/span&gt;&lt;span class="p"&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;promise2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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="k"&gt;try&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;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl1.com&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;sesult&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;catch&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="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;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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;promise3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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="k"&gt;try&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;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl2.com&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;sesult&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;catch&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="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;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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;promise1Result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;promise1&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;promise2Result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;promise2&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;promise3&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;more&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When it comes to async functions and promises, we know that no other code will run until they resolve. &lt;/p&gt;

&lt;p&gt;In our example, all three of our async functions will have to run and resolve, one at a time, before our "more code" section runs. &lt;/p&gt;

&lt;p&gt;This will kill your apps efficiency and bring a bad experience for your user.&lt;/p&gt;

&lt;p&gt;This is where Promise.all() shines.&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;promise1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl.com&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="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&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;promise2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl1.com&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;sesult&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;promise3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl2.com&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;sesult&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;all&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt; &lt;span class="nx"&gt;promise1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;promise2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;promise3&lt;/span&gt; &lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;response&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;error&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;more&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The results of each promise will be consistent with the order you passed them to Promise.all() &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While we still have to wait for all of our promises to resolve, now that we are using &lt;strong&gt;Promise.all()&lt;/strong&gt; they all run at the same time. This will save us time and performance hits, something critical to apps that rely on speed. As well as saving you from potential server crashes, depending on how many of your promises are server requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if one of our promises fail?
&lt;/h3&gt;

&lt;p&gt;If any of the promises used in our promise.all() fail, they all fail. Causing a rejection, in our promise.all(). &lt;/p&gt;

&lt;p&gt;&lt;em&gt;But what if we want the rest of our promises to resolve, and we handle the rejects later?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let us take a look at how we would do that:&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;promise1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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="c1"&gt;//Use a Try/Catch to resolve the error for this promise &lt;/span&gt;
&lt;span class="c1"&gt;//instead of relying on promise.all&lt;/span&gt;
 &lt;span class="k"&gt;try&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;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;someurl.com&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;sesult&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="k"&gt;catch&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="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;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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;promise2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&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="c1"&gt;//Use .catch to resolve the error for this promise&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;http://example.com&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="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;data&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&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="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;e&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;all&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt; &lt;span class="nx"&gt;promise1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;promise2&lt;/span&gt; &lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;response&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&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="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;e&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, as long as we catch our errors in our promises, Promise.all will resolve. &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Promise.all() is a very powerful tool, we can use it to fetch a bunch of data for our frontend, handle heavy loads of calls on our backend, and more. I suggest every developer plays with this, as handling multiple promises has never been easier.&lt;/p&gt;

&lt;p&gt;Thank you for reading, if you have any questions or advice on how I could improve this article, feel free to reach me on twitter &lt;a class="comment-mentioned-user" href="https://dev.to/kevsmss"&gt;@kevsmss&lt;/a&gt;
 (:&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>How To Level Up As A Software Engineer</title>
      <dc:creator>kevin sims</dc:creator>
      <pubDate>Mon, 28 Sep 2020 22:59:00 +0000</pubDate>
      <link>https://forem.com/kevsmss/i-went-from-jr-to-sr-engineer-in-one-year-here-s-how-5gke</link>
      <guid>https://forem.com/kevsmss/i-went-from-jr-to-sr-engineer-in-one-year-here-s-how-5gke</guid>
      <description>&lt;p&gt;Greetings everyone(:&lt;/p&gt;

&lt;p&gt;Today I want to share some of the knowledge I've acquired since I have begun to program.&lt;/p&gt;

&lt;p&gt;I'm hoping this will help some juniors and even mid-level devs who are trying to level up.&lt;/p&gt;

&lt;p&gt;Creating software is like culture, things come and go at a rapid pace. The library you begged your manager to let you use in production today could be old news tomorrow.&lt;/p&gt;

&lt;p&gt;As a junior, I remember sitting at my computer wondering,&lt;br&gt;
&lt;em&gt;well, how do I know what I should learn?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After a lot of banging my head on the wall and talks with my mentors and other peers, what I figured out was, being a good Engineer has nothing to do with creating React apps, libraries, or a cli... &lt;strong&gt;It's about being able to adapt to new unknowns while also finding and using the right tools to get the job done.&lt;/strong&gt; This is the trait of a good to great engineer. &lt;/p&gt;

&lt;p&gt;The question is not &lt;em&gt;what framework should I use?&lt;/em&gt;, but &lt;em&gt;what framework is the best fit for this project?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So if this is what it means to be an engineer, how do I practice this skill? Only one answer, build more.&lt;/p&gt;

&lt;p&gt;Build things you have not built before. Earlier I said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;being an Engineer is not about being the best at creating React apps, libraries, or a cli&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And I stand on that, BUT to work the skill of being able to adapt to new unknowns you must create new things. New apps, cli, libraries.&lt;/p&gt;

&lt;p&gt;Think of it like this. When you're a kid and your parents teach you chores, you start by taking the trash out, then you learn to do the dishes, then its the yard, and so on. Well, why is it important to add to that load? &lt;br&gt;
They aren't making you do it because they think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;we're going to have the best cleaner in the world!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They do it because to be truly disciplined you have to constantly work that discipline muscle in your mind, in ways you haven't before.&lt;/p&gt;

&lt;p&gt;Think of being an engineer in the same way. The projects you create are not teaching you anything, its the frustration and struggles you were able to work past during the process of creating that made you better. And the more you do it the better you get.&lt;/p&gt;

&lt;p&gt;If you want to become a better engineer, I challenge you to do this. Take the top 3 apps you use daily and for however long it takes you to build them to perfection. Always think quality instead of quantity when you work.&lt;br&gt;
If you do this I can promise you you'll be well on your way to Sr engineer.&lt;/p&gt;

&lt;p&gt;Thank you for reading and I hope this has helped you. If you know of anyone struggling with their next step, please share this with them.&lt;/p&gt;

&lt;p&gt;P.s. Remember pressure makes diamonds, todays uncomfortable can be tomorrows easy! Problems get difficult, reach out to friends and your network for help we all go through this process, you are not alone! The greatest engineers in the world know when to ask for help!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Easiest Way To Use Icons In React</title>
      <dc:creator>kevin sims</dc:creator>
      <pubDate>Fri, 20 Mar 2020 23:02:41 +0000</pubDate>
      <link>https://forem.com/kevsmss/easiest-way-to-use-icons-in-react-h0o</link>
      <guid>https://forem.com/kevsmss/easiest-way-to-use-icons-in-react-h0o</guid>
      <description>&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    * [Overview](#chapter-1)
    * [Getting Started](#chapter-2)
    * [Step 1](#chapter-3)
    * [Step 2](#chapter-4)
    * [Step 3](#chapter-4)
    * [Conclusion](#chapter-5)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Overview &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Today we'll be discussing the easiest way to use SVG icons in react. We'll be using an npm package that will enable us to use icons from some of the most well-known icon libraries out there.&lt;/p&gt;

&lt;p&gt;The package we'll be discussing is called React-Icons.&lt;br&gt;
Link to npm page: &lt;a href="https://www.npmjs.com/package/react-icons"&gt;https://www.npmjs.com/package/react-icons&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Getting Started &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you'll be following along feel free to clone this repository, as this is what we'll be using for our boilerplate: &lt;a href="https://github.com/kevinsims1/bare-react"&gt;https://github.com/kevinsims1/bare-react&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I'll assume you have cloned the repo from this point forward.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1 &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Open the terminal in the root of the project and use this command: &lt;br&gt;
&lt;code&gt;npm install react-icons&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will download our package and give us full accessibility to it.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2 &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Now open the boilerplate in your code editor.&lt;/p&gt;

&lt;p&gt;React Icons give you the option to choose icons from all of the following icon libraries:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x9wrB5pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/e465a1edbbfc27ac1bda1155eec3a28e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x9wrB5pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/e465a1edbbfc27ac1bda1155eec3a28e.png" alt="Icon Libraries"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;to use them all you need to do is use the import relevant to the library.&lt;/p&gt;

&lt;p&gt;Here is an example of each relevant import:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lt3NOPJM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/6a6f228f82ce6dd3c2a0f5a6ab834d3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lt3NOPJM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/6a6f228f82ce6dd3c2a0f5a6ab834d3e.png" alt="Icon Imports"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to the bare.js file and add the following import after line 1:&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="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;FaTwitter&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-icons/fa&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now delete the return statement and add 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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Bare&lt;/span&gt; &lt;span class="o"&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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FaTwitter&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;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;Go into your terminal and type: &lt;code&gt;npm run start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;you should get a page with this icon in the top left of your page:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FB5wiPwh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/618a576b8349e4d4abbcfa4bff8cfe1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FB5wiPwh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/618a576b8349e4d4abbcfa4bff8cfe1c.png" alt="Birdie"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;IT's WORKING!&lt;/p&gt;

&lt;p&gt;But... It's a bit on the bland side. &lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3 &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;React Icons handles that by allowing you to import an IconContext component that allows you to do a lot of cool things to your icon. We'll be using it to add some style to ours.&lt;/p&gt;

&lt;p&gt;Add this import after our first one:&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="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconContext&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react-icons&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now wrap our icon in the IconContext component like so:&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;Bare&lt;/span&gt; &lt;span class="o"&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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;IconContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Provider&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FaTwitter&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/IconContext.Provider&lt;/span&gt;&lt;span class="err"&gt;&amp;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;Now all we need to do is add a value prop to our  IconContext component, pass it an object. Inside of that object add a key called style, assign it the value of an object and start styling.&lt;/p&gt;

&lt;p&gt;Example:&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;Bare&lt;/span&gt; &lt;span class="o"&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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;IconContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Provider&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;fontSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;30px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rgb(0, 123, 255)&lt;/span&gt;&lt;span class="dl"&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FaTwitter&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/IconContext.Provider&lt;/span&gt;&lt;span class="err"&gt;&amp;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;If you head back to your browser you should now see this: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hxTjouXU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/f1581dfdd7209888b3a0b4933bb9a3b1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hxTjouXU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.paste.pics/f1581dfdd7209888b3a0b4933bb9a3b1.png" alt="Blue Birdie"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;That is all for this tutorial. If you've enjoyed it please take a moment to leave a like, to help the next dev. Thank you.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>npm</category>
      <category>react</category>
      <category>icons</category>
    </item>
  </channel>
</rss>
