<?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: Amera White</title>
    <description>The latest articles on Forem by Amera White (@amera).</description>
    <link>https://forem.com/amera</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%2F1003102%2F3d997d81-f627-4983-8a28-eadece4b4aaf.jpeg</url>
      <title>Forem: Amera White</title>
      <link>https://forem.com/amera</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/amera"/>
    <language>en</language>
    <item>
      <title>7 Easy Design Patterns For Cognitive Accessibility</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Wed, 08 Nov 2023 04:40:49 +0000</pubDate>
      <link>https://forem.com/amera/7-easy-design-patterns-for-better-accessibility-5all</link>
      <guid>https://forem.com/amera/7-easy-design-patterns-for-better-accessibility-5all</guid>
      <description>&lt;p&gt;Did you know that just by following a few simple guidelines while creating your applications, you could provide people with learning disabilities and cognitive differences a better web experience.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.w3.org/WAI/WCAG2/supplemental/#cognitiveaccessibilityguidance"&gt;WCAG&lt;/a&gt; has 7 design patterns that can be easily followed to assist users in understanding what things are on a page and how to use them. The goal is to better meet these cognitive accessibility needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design Patterns:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Make the Purpose of Your Page Clear&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every user will need to know the context and the purpose of the page. You can help your users by using a clear title. Use headings that sum up the purpose of the content. This help show people who are easily distracted, have ADD/ADHD, or impaired attention and memory what the page is about, as well as, what they are doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Use a Familiar Hierarchy and Design&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This can be achieved by simply sticking to a standard layout, placing elements where users would normally expect them to be located, and abiding by visual hierarchy. Users expect the same patterns used in popular sites. There is no need to re-invent the wheel. By sticking to familiar practices, like a button that looks and functions as a button and standard styled underline links, users will be able to better locate and recognize the desired items to interact with. This also helps to lessen the feeling of being overwhelmed or lost that some users may experience by unexpected layouts and rearranged content hierarchy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Use a Consistent Visual Design&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consistency is key! Be consistent in your design themes, from the appearance of links and buttons to icons and font styles. It takes users time to learn new designs and to recognize various elements, so it is to everyone's benefit to continue the same theme throughout a sites pages. Plan out the design before adding any content. What colors will you use? Where will text blocks appear? The cognitive load  for certain user can become too much and impede their ability to complete tasks due to not sticking to a predetermined design course.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Make Each Step Clear&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are users who can easily forget what they were doing, get distracting from their current activity, or simply lose focus. This is why it is important to provide indicators to users about their progress. This information helps users to orientate themselves inside a task or the site. When you are able to give the information about the steps needed to complete a task, users can decide if they can successfully finish. Use headings to inform a user where they are inside the content or breadcrumbs to indicate the past, current, and future steps in a process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Clearly Identify Controls and Their Use&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Controls are the parts of a site that do an action. A checkbox, link, and a button are all controls. You want users to recognize and understand how to use these controls. Some users have trouble when controls have a different shape, look, or color than they have used before. This may cause a user to struggle while trying to interact and leave the site. This can be avoided by using typical and easy to find controls on the page. Make sure the controls are easy to identify, understand, and use regardless of how a user uses the page. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Make the Relationship Clear Between Controls and the Content They Affect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine being on an e-commerce site and finding an item you'd like to purchase. You use a button that is labeled "add to cart" located below the item you want. Suddenly, you are navigated to an unrelated external page...whoa! that's not what you expected. The relationship between controls and affected content should be clear and unambiguous. If a control on a page operates in an unexpected manner, it can be hard to tell what it will affect and what it will not. Some users with cognitive or learning disabilities may not be able to work out what to do, become overwhelmed, or stop interacting all together. Good practice would be to associate controls with the section they control, place the control inside the section, and have clear borders around the section.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Use Icons that Help the User&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some user may rely on symbols to understand content and navigate to content they need, due to different cognitive abilities. Symbols also help people who struggle with language and attention to navigate content. Help assist these users by utilizing common icons, images, or symbols with important content ,like a button or section heading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When we build with accessibility first, everyone benefits.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources :
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.w3.org/WAI/fundamentals/accessibility-intro/"&gt;Intro to Web Accessibility&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility"&gt;Mozilla - MDN Web Docs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>accessibilty</category>
      <category>a11y</category>
      <category>beginners</category>
    </item>
    <item>
      <title>JS Code Challenges : 1</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Wed, 25 Oct 2023 16:41:56 +0000</pubDate>
      <link>https://forem.com/amera/js-code-challenges-1-320</link>
      <guid>https://forem.com/amera/js-code-challenges-1-320</guid>
      <description>&lt;h1&gt;
  
  
  JS Code Challenge 1
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Problem:
&lt;/h3&gt;

&lt;p&gt;Create an algorithm using a for  loop that can add the sum of all  natural numbers up to 100.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Breakdown:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Natural numbers are positive whole integers &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ex: 1, 2, 3    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find sum of natural numbers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ex: Find the sum of natural numbers of 5          &lt;/p&gt;

&lt;p&gt;1 + 2 + 3 + 4 + 5 = 15    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Goal is to find the sum natural number up to 100&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hint:&lt;/strong&gt;  Use a for loop.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Solution:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;We need to have a constant variable that will not change.   &lt;/p&gt;

&lt;p&gt;That should be the value of 100.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const val = 100; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;We need a variable to hold our sum. We also know our sum is NOT constant and will be changing as we are on our way to the sum natural numbers up to 100.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let sum = 0;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Now that we have these variables we should be able to initialized a loop. We will use a for loop that will decrement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for (let i = val; i &amp;gt;= 1; i-- ){ 

     //code to execute  

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Start by letting &lt;strong&gt;i&lt;/strong&gt; equal our &lt;strong&gt;val&lt;/strong&gt; (100) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, we want the loop to continue until &lt;strong&gt;i&lt;/strong&gt; is &lt;strong&gt;greater than or equal to&lt;/strong&gt; 1 (only natural numbers remember)  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then, for each loop we want to &lt;strong&gt;decrement&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Okay so, now we need to figure out what logic to implement every time the loop is executed. &lt;br&gt;
Inside our  code block ...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for (let i = val; i &amp;gt;= 1; i-- ){

   sum = sum + i  

 }   

//can also be written as sum += i

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To keep up with the changing &lt;strong&gt;sum&lt;/strong&gt;, we want to update &lt;strong&gt;sum&lt;/strong&gt; by making it equal to  whatever the previous &lt;strong&gt;sum&lt;/strong&gt; value is plus &lt;strong&gt;i&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Test:
&lt;/h3&gt;

&lt;p&gt;To test if we are going in the right direction, since we already know the sum of natural numbers of 5 is equal to 15 (from our Breakdown example).&lt;/p&gt;

&lt;p&gt;Let's plug 5 into our loop, then console log the result.     ***Don't forget to change it back to val after you're done the test.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for (let i = 5 ; i &amp;gt;= 1; i-- ){ 

 sum = sum + i

}

console.log('answer', sum); //returns 15     

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;This means our loop is working correctly...Congrats!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;&lt;br&gt;
 Alright, let's console log the current value of sum to get our answer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for (let i = val; i &amp;gt;= 1; i-- ){ 

 sum = sum + i  

 }     

 console.log('answer', sum ); //returns 5050 


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

&lt;/div&gt;



&lt;p&gt;Now, it’s your turn! &lt;/p&gt;

&lt;h3&gt;
  
  
  Practice
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Try writing this out from scratch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose a different number to find   the sum of its natural numbers &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use something other than a for loop to solve&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Follow me for more!
&lt;/h3&gt;

</description>
    </item>
    <item>
      <title>IDK: Local Scope vs Global Scope</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Fri, 18 Aug 2023 14:05:12 +0000</pubDate>
      <link>https://forem.com/amera/idk-local-scope-vs-global-scope-46bb</link>
      <guid>https://forem.com/amera/idk-local-scope-vs-global-scope-46bb</guid>
      <description>&lt;p&gt;In order to discuss the differences between &lt;strong&gt;Local&lt;/strong&gt; scope and &lt;strong&gt;Global&lt;/strong&gt; scope, we first need to know what scope even means. So, What is scope?  Basically, scope describes where a variable was declared and where it can be accessed.&lt;/p&gt;

&lt;p&gt;Great! now that you have an idea of what the scope of a variable is referencing. Let’s move on to figure out the difference between &lt;strong&gt;Local&lt;/strong&gt; vs &lt;strong&gt;Global&lt;/strong&gt; scopes.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Local scope variables?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Local&lt;/strong&gt; variables refer to those declared inside of a function block. This means the variable can only be used and accessed within that particular block of code.&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 plaintext"&gt;&lt;code&gt;
function localScopeBlock() {  
let x = 5;  
return x
}

console.log(localScopeBlock()) //this will return the number 5 in the console

//Next, try to log the x variable, along with the function call 

console.log(localScopeBlock(), x) //this will cause an error in the console 

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

&lt;/div&gt;



&lt;p&gt;The error occurred because x was                                declared inside of the code block and can not be accessed.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Global scope variables?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Global&lt;/strong&gt; variables refer to those that are declared outside of a function block. This means the variable can be accessed and used from anywhere in the javaScript document, because it is at the highest level in the scope tree.&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 plaintext"&gt;&lt;code&gt;let x = 3;

function globalScopeBlock() {  
let x = 5;
return x;
}

console.log(globalScopeBlock(), x) //this will show the numbers 5 and 3 in the console

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

&lt;/div&gt;



&lt;p&gt;Unlike the previous example, the console doesn’t throw an error. &lt;br&gt;
The function call returned 5 (&lt;strong&gt;local&lt;/strong&gt; scope variable), then the number 3 was logged to the console from our &lt;strong&gt;global&lt;/strong&gt; variable located outside of the function.    &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Side-note&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When declaring variables, you should use &lt;em&gt;let&lt;/em&gt; and &lt;em&gt;const&lt;/em&gt; to be more precise in your javascript code. When you use  &lt;em&gt;var&lt;/em&gt; to declare variables they are automatically move to the &lt;strong&gt;global&lt;/strong&gt; scope. This is not best practice and can ultimately create unintended errors in your code.   &lt;/p&gt;

</description>
      <category>frontend</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>community</category>
    </item>
    <item>
      <title>Building inclusive UI for Neurodivergent Users</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Wed, 16 Aug 2023 23:01:36 +0000</pubDate>
      <link>https://forem.com/amera/building-inclusive-ui-for-neurodivergent-users-1kda</link>
      <guid>https://forem.com/amera/building-inclusive-ui-for-neurodivergent-users-1kda</guid>
      <description>&lt;p&gt;&lt;strong&gt;Building inclusive UI for Neurodivergent Users&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most commonly, people think of users with various hearing or vision abilities when including accessibility features. You may even think of elderly user or a 'temporarily disabled' user (like someone with a broken arm) but let us also remember to be mindful of our cognitive and neurodivergent users as well.&lt;/p&gt;

&lt;p&gt;Sometimes these users may not always be included, not purposely, but due to lack of awareness. I have been guilty of this too.  My daughter is the whole reason this type of awareness was brought to my attention. &lt;br&gt;
 To give a little insight, I have a 7-year-old who is autistic and has a sensory processing disorder. A few years, I open the Starz application on our television and as the logo enlarges on the screen, a loud drum noise bellows out. I watch my daughter grab her ears and squeeze her eyes tightly closed, the run into a corner with the tv out of sight. I was so confused. I'd seen and heard this plenty of times before and it never bothered me. I thought maybe she was overreacting. Then, the same type of issue happened when opening the Netflix application, after aloud chime and an array of flashing colors scroll across the screen, I look at my daughter and she is in tears, eyes closed, and tightly covering her ears. I wondered...what was going on? why would this be her reaction?&lt;/p&gt;

&lt;p&gt;What I learned was some people with autism and/or sensory processing disorders tend to perceive sensory stimuli differently. The sounds that may not influence myself but can be painful and overwhelming to her. Also, she has a very low tolerance to bright, flashing lights.&lt;/p&gt;

&lt;p&gt;She is the reason why I am here. After those events occurred, I began to wonder how many others are affected by loud or repetitive noises, or flashing, pulsating animations when use the web. I want to encourage you to create for users like her, as well as others with various cognitive and neurodivergent abilities (ex:  ADHD, Autism, and Dyslexia).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Issues and barriers users with different neurodivergence or cognitive abilities may experience:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An overload of bright colors, this may become overstimulating or even distracting to the web   experience&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Large sections of text may make it difficult to understand, impair reading comprehension, and word recognition&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having visible timers on screen, this can sometime cause anxiety and create unnecessary stress&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loud music and/or sound effects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flashing light, and lights with pulsing patterns, could potentially cause seizures in some cases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blinking images, Gifs, automatic scrolling sections, these could be overstimulating and distracting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Too many images or information in one block, content- crowding, cluttered sections crammed with text, images, videos, etc. This is known as Visual noise.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Here are a few practices that you may want to implement:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Keeping navigation/menu placement consistent throughout the website/application. This creates accessibility for all users and predictability. Users need to understand the order of menu items, and where the search bar and navigation links are located.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If possible, do not include content that flashes, blinks repeatedly, or pulsates at a particular rate or pattern. If this type of content is necessary, add warnings to the users before the content is displayed. It would even help to give users a way to switch off the animations if they aren't essential.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Giving users the ability to use commands like pause and stop on content such as rotating images or slides. Also, the ability to hide non-related articles or content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of a Screen Mask. This is a reading tool that follows the mouse or touch to assist with eliminating page distractions. This gives the user the ability to focus one block of information at a time. (Google Chrome has a screen mask tool induvial can use on their browser)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Of course, all the listed techniques will not be possible to implement on every application. The goal is to find a way to ensure that users with neurodivergent conditions can adjust and navigate a website that suit their personal needs. Slight changes, like font size, color contrast, and alternative ways to relay information (i.e., video, audio) could make the difference for a more comfortable web experience.&lt;/p&gt;

&lt;p&gt;We all have unique abilities, personalities, and ways of communicating. It is important for us as developers, designers, content creators to understand that when we create, build, design, and write with purpose of making our websites and applications accessible first, the web experience is enhanced for us all.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>frontend</category>
      <category>a11y</category>
    </item>
    <item>
      <title>RenderATL : An Introvert’s worst nightmare … in the BEST way.</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Tue, 06 Jun 2023 15:54:53 +0000</pubDate>
      <link>https://forem.com/amera/renderatl-an-introverts-worst-nightmare-in-the-best-way-5alg</link>
      <guid>https://forem.com/amera/renderatl-an-introverts-worst-nightmare-in-the-best-way-5alg</guid>
      <description>&lt;p&gt;Hi, my name is &lt;a href="https://twitter.com/AmeraWhite2/"&gt;Amera&lt;/a&gt; and I am an introvert. I can easily be overwhelmed by spaces with lots of people or just a lot of movement in general. Just to put everything into perspective, I was elated when grocery stores began online shopping and delivery….you mean to tell me I don’t have to circle the produce section over and over again to find an opening for a head of cabbage…..genius 🤯!!  &lt;/p&gt;

&lt;p&gt;Just hear me out…I’m going somewhere with this, I promise.&lt;/p&gt;

&lt;p&gt;In an attempt to network, engage, and “put myself out there”, I signed up to be an ambassador for RenderATL and was chosen. I was so excited to get the news and then it hit me… I have to go OUTSIDE.  If you aren’t aware, &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt; is a tech conference that brings the tech community together.  In all transparency, I have never attended a tech conference and had no idea what to expect. &lt;/p&gt;

&lt;p&gt;So, what do you do when you are unaware of something, you start doing your research… at least that is what I did. I began to look up information, watch YouTube videos, and read blog posts on other tech conferences. I needed to get an idea of what I may be coming across as I prepared for my role.  That’s where I went wrong.  &lt;/p&gt;

&lt;p&gt;I quickly learned &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt; is NOT like any other tech conference you’ll ever attend. It is a whole tech community experience. &lt;/p&gt;

&lt;p&gt;As a noob in the tech space and an introvert, a conference like this is perfect. Let me tell you why.  Jumping out of your comfort zone is tough, but every single person I encountered at &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt; was rooting for me in some way. Greetings and smiles from every direction. Flows of good vibes and energy surrounded the entire event.  There were so many strangers that left as friends, #irl Twitter reunions, and connections being made all around.  I had the opportunity to meet people that have unknowingly inspired me during my tech journey from their podcasts, YouTube videos, blog posts, or even their courses. I shook hands with representatives from companies that many would dream of working with. I listened to speakers who shared their knowledge and advice on various topics, like “Neurodiversity In The Workplace “ by &lt;a href="https://www.linkedin.com/in/wesley83"&gt;Wesley Faulkner&lt;/a&gt; and “Streaming Server Rendering with Suspense “ by &lt;a href="https://twitter.com/shaundai?lang=en"&gt;Shaundai Person&lt;/a&gt;. There were great panel discussions about building community, leadership, and career growth from some amazing voices in the industry, including &lt;a href="https://twitter.com/anthonydmays"&gt;Anthony D. Mays&lt;/a&gt;, &lt;a href="http://linkedin.com/in/kristina-dixon"&gt;Kristina Dixon&lt;/a&gt; , &lt;a href="https://twitter.com/LDLockhartJr"&gt;Lawrence Lockhart&lt;/a&gt;, and so many more.  The hosts of the event were super dope and all the staff were amazing. &lt;/p&gt;

&lt;p&gt;It doesn’t just end there… &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt; made it a point to encourage socializing with your peers. To let your guard down and engage with people you wouldn’t normally be in the position to speak with and get to know in comfortable social settings. There was a variety of after-hour events to choose to attend. You could go check out the latest cars at the EV Car Show or enjoy smooth R&amp;amp;B at the Skyline Park Rooftop Party, all while in the company of people who are also passionate about their profession in tech.  To top it off, &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt; ended the festivities with a live performance from &lt;a href="https://twitter.com/KAYTRANADA"&gt;KAYTRANADA&lt;/a&gt; at the Historic Fourth Ward Skatepark. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ThugDebugger"&gt;Justin E. Samuels&lt;/a&gt; (Founder-CEO of RenderATL) and the entire &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt; team did an amazing job at curating this safe space for a beautifully diverse tech experience.  &lt;/p&gt;

&lt;p&gt;What I take away from this conference is to be okay with stepping out and embracing your surroundings, networking, and building your community.  Some people are where you are in your career path or understand what you’re experiencing on your journey. Some genuine people want to see you excel in your journey. &lt;/p&gt;

&lt;p&gt;Please do yourself a favor &amp;amp; Check out &lt;a href="https://www.renderatl.com/"&gt;RenderATL&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m looking forward to connecting with you at the next one… who knows, you may become an extrovert by the end of this conference.&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
    <item>
      <title>IDK - Memoization &amp; useMemo React Hook</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Mon, 15 May 2023 19:24:32 +0000</pubDate>
      <link>https://forem.com/amera/idk-memoization-usememo-react-hook-2hp</link>
      <guid>https://forem.com/amera/idk-memoization-usememo-react-hook-2hp</guid>
      <description>&lt;h2&gt;
  
  
  IDK - Memoization: React.memo &amp;amp; useMemo
&lt;/h2&gt;

&lt;p&gt;I don't know what Memoization is or how it works with React.&lt;/p&gt;

&lt;p&gt;That’s okay let's figure it out together.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is memoization in React?
&lt;/h3&gt;

&lt;p&gt;Memoization is a computer science technique that stores the output of a function based on the function’s inputs. This way if the function is called again with the same inputs, it will return the cached (stored) result rather than recomputing the output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does Memoization help with performance?
&lt;/h3&gt;

&lt;p&gt;Yes, because of the way Memoization works, by reducing the resources, as well as, the time needed to execute a function. This is especially useful for functions that are called frequently (or expensive 💰). &lt;/p&gt;

&lt;h3&gt;
  
  
  How can Memoization be used in React?
&lt;/h3&gt;

&lt;p&gt;Inside React, Memoization can be utilized with functional components using the &lt;strong&gt;React.memo()&lt;/strong&gt; higher-order components. The &lt;strong&gt;React.memo()&lt;/strong&gt; function will return a new component that will ONLY re-render if its props change. &lt;/p&gt;

&lt;p&gt;This is exactly how the performance of a React application could be improved when using Memoization. You can now prevent any unnecessary re-renders to the functional components.&lt;/p&gt;

&lt;p&gt;For example, you are creating list that will hold a large list of items inside:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const TaskList = ({tasks})=&amp;gt;{  
return (
     &amp;lt;ul&amp;gt;        
      {tasks.map( (task) =&amp;gt; (                    

       &amp;lt;li key={task.id}&amp;gt;     
            {task.title} 
       &amp;lt;/li&amp;gt;
      ))}         
    &amp;lt;/ul&amp;gt; 
 );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To provide better optimization, you could apply memoization :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const MemoizedTaskList = React.memo(TaskList);   
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you wrap the functional component within &lt;strong&gt;React.memo()&lt;/strong&gt;, React will only re-render if the props have changed. So, if nothing is added, updated, or removed from the task list and it remains the same. &lt;strong&gt;React.memo()&lt;/strong&gt; will perform a shallow comparison of the previous props and the new props and re-render only if the props have changed. &lt;/p&gt;

&lt;h3&gt;
  
  
  React Hook: useMemo()
&lt;/h3&gt;

&lt;p&gt;useMemo is a built-in React hook that lets you cache the result of an expensive calculation. Again, assisting with optimizing re-rendering performance in the application by telling React to skip re-rendering or to reuse the cached value if the data hadn't changed&lt;/p&gt;

&lt;h4&gt;
  
  
  Syntax:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const cacheValue = useMemo( calculatedValue, dependencies )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Parameters:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;calculatedValue&lt;/strong&gt; - This is the function that will be used to calculate the value that you want to cache.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;dependencies&lt;/strong&gt; - A list of reactive values (state, props, functions, and variables declared directly inside the component body) that are referenced in the &lt;strong&gt;calculatedValue&lt;/strong&gt; function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reminder:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; useMemo is a Hook, which means it must be called at the top level of the component.&lt;/li&gt;
&lt;li&gt; If you are using Strict Mode, React will call the calculation function twice (According to &lt;a href="https://react.dev"&gt;react.dev&lt;/a&gt;, this is developmental behavior to find any accidental impurities and does not affect production) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {useMemo} from 'react'; 
function TaskList({tasks, tab, theme}) {
 const visibleTasks = useMemo( () =&amp;gt; filterTasks(tasks, tab), [tasks, tab]);     
 //...   
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1) &lt;code&gt;visibleTasks&lt;/code&gt; the variable for our &lt;strong&gt;cacheValue&lt;/strong&gt; &lt;br&gt;
2) &lt;code&gt;() =&amp;gt; filterTasks(tasks, tab)&lt;/code&gt; is the &lt;strong&gt;calculatedValue&lt;/strong&gt; function, in this case the function takes no arguments and will return what you want to calculate&lt;br&gt;
3) &lt;code&gt;[tasks, tab]&lt;/code&gt; are the &lt;strong&gt;dependencies&lt;/strong&gt; (or list of reactive values)&lt;/p&gt;

&lt;p&gt;One the initial render, useMemo will return the result of the &lt;strong&gt;calculatedValue&lt;/strong&gt; function. After that render, React will compare the &lt;strong&gt;dependencies&lt;/strong&gt; with the dependencies passed during the previous render. If none of the &lt;strong&gt;dependencies&lt;/strong&gt; have been changed, then useMemo will return the cached value. If the &lt;strong&gt;dependencies&lt;/strong&gt; had been changed, then React will re-run the calculation and return the new value.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional resources:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://react.dev/reference/react/useMemo"&gt;https://react.dev/reference/react/useMemo&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Hopefully, this helps to give a better understanding of what Memoization is and how it works, as well as usage of the useMemo React Hook. &lt;/p&gt;

&lt;p&gt;It's okay to say, " I don't know"&lt;/p&gt;

&lt;p&gt;We can figure it out together. &lt;/p&gt;

</description>
      <category>react</category>
      <category>performance</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>IDK - useSWR - React Hook for Data Fetching (Client-Side)</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Wed, 03 May 2023 17:03:41 +0000</pubDate>
      <link>https://forem.com/amera/idk-useswr-react-hook-for-data-fetching-client-side-1nkm</link>
      <guid>https://forem.com/amera/idk-useswr-react-hook-for-data-fetching-client-side-1nkm</guid>
      <description>&lt;h1&gt;
  
  
  IDK - useSWR - React Hook for Data Fetching (Client-Side)
&lt;/h1&gt;

&lt;h3&gt;
  
  
  I don't know how to use the useSWR React Hook.
&lt;/h3&gt;

&lt;p&gt;That’s okay, let’s figure it out together.&lt;/p&gt;

&lt;p&gt;When building web applications in React, you almost always come to a point where you need to get some data from some where. While you can just use the built-in JavaScript Fetch API by itself, there are more effective and efficient ways of utilizing it. My new favorite way is by using the JavaScript Fetch API alongside the &lt;strong&gt;useSWR&lt;/strong&gt; hook.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is SWR?
&lt;/h3&gt;

&lt;p&gt;According to &lt;a href="https://swr.vercel.app/"&gt;SWR&lt;/a&gt;, SWR (stale-while-revalidate) is a strategy to first return the data from cache (data that has been stored in a temporary location to be accessed faster), then send a fetch request (revalidate...the process of refreshing the data), and lastly returning up-to-date data.&lt;/p&gt;

&lt;p&gt;This is nice. It allows you to simplify the logic involved in fetching data for your projects.&lt;/p&gt;

&lt;p&gt;SWR also comes with numerous valuable features you may not have known you needed like, refetching on intervals. It can even be used with TypeScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The useSWR hook takes in a few parameters:&lt;/strong&gt;     &lt;/p&gt;

&lt;p&gt;useSWR( key, fetcher, options )&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;key : this is a unique key string needed for the request. (i.e.  URL or an endpoint) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;fetcher :  a promise returning function to fetch the data (i.e. a function using the Fetch API or Axios) **optional&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;options : an object of various options for use with this SWR hook  **optional&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What will you get back from the useSWR hook?
&lt;/h3&gt;

&lt;p&gt;There is so much information you are able to retrieve when using the hook. We will focus on the main &lt;strong&gt;return values&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;data&lt;/strong&gt; : the data resolved from the fetcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;isloading&lt;/strong&gt; : if the request is still ongoing and no data has been loaded yet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;error&lt;/strong&gt; : any error that has been thrown by the fetcher while attempting to fetch the data&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are more return values and a long list of options that are extremely useful. You can  learn more on &lt;a href="//swr.Vercel.app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you get started using the useSWR hook in you React application?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You'll need to install the package into you project. &lt;br&gt;
&lt;code&gt;npm i swr&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, import the useSWR to the functional component. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;import useSWR  from 'swr'&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We need to create a fetcher. Although, the &lt;strong&gt;useSWR&lt;/strong&gt; hook is super convenient, it alone does not fetch the data. We’ll create a &lt;strong&gt;fetcher&lt;/strong&gt; using JavaScript Fetch API, but you can use other ways fetch data as well, like Axios.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;const fetcher = (...args) =&amp;gt; {       fetch(...args)&lt;br&gt;
.then(res =&amp;gt; res.json()) &lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using object destruction, we'll get a few our return values to help us determine the 3 possible states of our request.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const  UserProfile = () =&amp;gt; { 

const key = 'api/user-info/123'

const { data, isLoading, error } = useSWR(key ,fetcher); 

  return(    
    &amp;lt;&amp;gt; ... &amp;lt;/&amp;gt;
 )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Great! Now we can use the return values in a meaningful way.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;If there was an error while fetching our data, we could :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(error) return &amp;lt;div&amp;gt; Error &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If the data is still being loaded, we could :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(isLoading)return 
&amp;lt;div&amp;gt; Loading... &amp;lt;/div&amp;gt;

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;We have successfully retrieved our data, we could now display that data.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import useSWR  from 'swr' 

const  UserProfile = () =&amp;gt; { 

const key = 'api/user-info/123' 
const { data, isLoading, error} = useSWR( key ,fetcher);   

if(error) return &amp;lt;div&amp;gt; Error &amp;lt;/div&amp;gt;  

if(isLoading) return &amp;lt;div&amp;gt; Loading... &amp;lt;/div&amp;gt;  

return(   
    &amp;lt;div&amp;gt;       
       &amp;lt;p&amp;gt; Hello, &amp;lt;/p&amp;gt;    
       &amp;lt;h3&amp;gt; {data.name} &amp;lt;/h3&amp;gt;              
  &amp;lt;/div&amp;gt;
 )
}
export default UserProfile;

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

&lt;/div&gt;



&lt;p&gt;I have enjoyed using the &lt;strong&gt;useSWR&lt;/strong&gt; hook so far and I hope you give it a try.&lt;/p&gt;

&lt;p&gt;There are so many other features when using SWR, I definitely encourage you to check out the docs at &lt;a href="https://swr.vercel.app/"&gt;SWR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;As always...It's okay to say IDK.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>api</category>
      <category>webdev</category>
    </item>
    <item>
      <title>IDK- API basics and React</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Tue, 04 Apr 2023 14:21:41 +0000</pubDate>
      <link>https://forem.com/amera/api-basics-and-react-5fpk</link>
      <guid>https://forem.com/amera/api-basics-and-react-5fpk</guid>
      <description>&lt;h2&gt;
  
  
  APIs &amp;amp; React
&lt;/h2&gt;

&lt;p&gt;What is an API? Yes, we know what API stands for...Application Programming Interface, but what is it really?&lt;/p&gt;

&lt;p&gt;I am quite sure there are plenty of technical definitions that can make learning what an API is and does, very convoluted and hard to comprehend. So, I'll tell you what my understanding of what an API is. &lt;/p&gt;

&lt;p&gt;Let's think about it like you're going to pick out a vehicle at a car lot. The car lot has a catalog of vehicles. The catalog &lt;br&gt;
is organized into various categories, like Sedans, SUVs, Trucks, and Vans. The catalog may also have additional information&lt;br&gt;
about the vehicles, including the price and features. After glancing through the catalog, you simply tell the car salesman (the sever) what you want. I'd like a 2024 Range Rover SV please...👀.  Next, the salesman takes order and brings your vehicle of choice all ready and prepared to go. You'll recieved what you wanted and you &lt;br&gt;
don't even need to know how the car lot made it happen. The only thing you need to understand is how to make a request&lt;br&gt;
the for the vehicle and now you get to drive off the lot into the sunset in your brand new Range &lt;em&gt;Beep Beep&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I know this analogy doesn't cover all the bases of APIs, it is just meant to give you a general idea of how an API works.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You want data from an API&lt;/li&gt;
&lt;li&gt;You make a request to that API&lt;/li&gt;
&lt;li&gt;API returns the data requested&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  What information is needed to know how to interact with the API?
&lt;/h3&gt;

&lt;p&gt;Most times the entity with the data will provide the documentation necessary to make the request.Like the car lot catalog, they will tell you what data is available and instructions on how to retrieve that data. Then, just like the salesman on the lot, you request the data from the API, it &lt;br&gt;
goes to get the data and brings it back for you to use. &lt;/p&gt;

&lt;p&gt;This is the Request and Response cycle.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Request (I want some data) ===&amp;gt; Reponse (Here's the data)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Request and Response cycle involves your Web Browser (the client) communicating with a Server.The typical request is a GET request, you are making a request to get data from a server.&lt;/p&gt;
&lt;h3&gt;
  
  
  What will the data look like ?
&lt;/h3&gt;

&lt;p&gt;The most common format the data sent back will in JavaScript Object Notation (JSON).&lt;br&gt;
JSON is formats the data like JavaScript objects, using key-value pairs&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 plaintext"&gt;&lt;code&gt;{
  "type": "SUV",
  "name": "Range Rover SV" ,
  "price": "$$$$"
  "features": ["cool","stuff", "here"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;one key (or property) would be "type" and the value would be "SUV"&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How do you make the request for the the data?
&lt;/h3&gt;

&lt;p&gt;There are a few different tools you can use to fetch data from an API, including the built-in JavaScript&lt;br&gt;
Fetch API, Axios library, SWR, or even React Query.&lt;/p&gt;

&lt;p&gt;I will use a simple example to fetch data from the DOG API (&lt;a href="https://dog.ceo"&gt;https://dog.ceo&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;-This example uses React, the useEffect/useState hook, and the Fetch API&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import React, { useEffect, useState } from "react";

const FetchExample = () =&amp;gt; {
  const [data, setData] = useState(null);

 useEffect(() =&amp;gt; {
    fetch("https://dog.ceo/api/breeds/image/random")
      .then((resp) =&amp;gt; resp.json())
      .then((apiData) =&amp;gt; {
        setData(apiData.message);
      });
  }, []); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, you can use the data for you want. In this case, I'll just display the image on the screen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
return (
    &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt; My new dog &amp;lt;/h1&amp;gt;
      &amp;lt;img 
        width={500} 
        src={data}     
        alt=‘image of dog’
      /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default FetchExample;

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

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Great! Now, you're an expert!&lt;br&gt;
Well, maybe not an expert but, you're definitely on your way to becoming one.&lt;/p&gt;

&lt;p&gt;I've added a few useful resources with information on free APIs you can use for your&lt;br&gt;
future projects or just to practice.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/public-apis/public-apis"&gt;https://github.com/public-apis/public-apis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://apilist.fun"&gt;https://apilist.fun&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rapidapi.com"&gt;https://rapidapi.com&lt;/a&gt; (Free &amp;amp; Paid)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy Coding :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>api</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Do you take notes when learning how to code?</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Tue, 07 Mar 2023 18:21:53 +0000</pubDate>
      <link>https://forem.com/amera/do-yourself-a-favor-write-that-sht-down-261g</link>
      <guid>https://forem.com/amera/do-yourself-a-favor-write-that-sht-down-261g</guid>
      <description>&lt;h3&gt;
  
  
  Do you take notes while coding or learning to code?
&lt;/h3&gt;

&lt;p&gt;I'm guilty. I write down &lt;strong&gt;EVERYTHING&lt;/strong&gt;...of importance of course. I am a note-taking enthusiast. Plus, I am &lt;em&gt;old-school&lt;/em&gt;. I love the feeling of pen to paper. I use anything from spiral notebooks, sticky note pad, and even scratch paper. Basically, if my pen's ink will show up on it, then I'm probably going use it to write on. There are plenty of people who may not understand the reason to take notes while learning to code and think its a waste of time. Clearly, I strongly disagree.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits of Note-Taking
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Engage your mind&lt;/strong&gt;. While writing you are actively listening and deciding what to include into your notes. This means that you are alert and you body is active and involved. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organize the information your way&lt;/strong&gt;. You are in control. You can choose what information should be highlighted, emphasized, and bold. You are able to create a structure, style, and a method that gives you better understanding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Did you know that tools for your hands are also tools for your brain?&lt;/strong&gt; Handwritten notes a very strong tool for encrypting embodied cognition. This supports your brain's capacity for retrieving information. When you are writing, your brain is provided tactile feedback from the contact of pen or pencil to paper.This is the key to creating the neurocircuitry between the hand-brain relationship.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;It's fun&lt;/strong&gt;. You can doodle badly drawn illustrations to express the point being made. Add little shapes and random arrows to point at items on the page. Taking notes is the only time I get to use all the other colored highlighters in the package.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, I know I said I like &lt;em&gt;old-school&lt;/em&gt;, pen to paper, but I also understand that while learning to code that may not always work out the best. If you are on-the-go or need quick access to a specific topic, it may take a minute to rummage through the pages of your notebook. So, even I have progress from the stone-age and have fallen in love with the benefits of technology.&lt;/p&gt;

&lt;p&gt;My Ipad is my BFF, she always holds me down &lt;strong&gt;periodt&lt;/strong&gt; 💅🏾&lt;/p&gt;

&lt;h3&gt;
  
  
  Note Applications
&lt;/h3&gt;

&lt;p&gt;There are quite few note applications available, but not all are best when writing code in you notes. &lt;/p&gt;

&lt;p&gt;Here are a some I suggest, in no particular order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GoodNotes&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Notion&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MicroSoft OneNote&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Notability&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Evernote&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using these various applications, you can easily access, update, share, and even print your notes. &lt;/p&gt;

&lt;h2&gt;
  
  
  What should you write down?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anything that you deem noteworthy and useful.&lt;/strong&gt; Take note of topics you are learning, keep track of new methods,
vocabulary, and various concepts. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This doesn't mean to rewrite all the documention.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Common Commands that you frequently use.&lt;/strong&gt; This could include project enviroment commands, git commands, and console commands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keyboard shortcuts&lt;/strong&gt;. Sometimes I come across shortcuts I didn't know existed and never realize how helpful they could be. Keeping a list that you can reference will come in handy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code snippets / Code Blocks.&lt;/strong&gt; You can write utility functions, method examples, or things you find yourself looking up often.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How-Tos&lt;/strong&gt; ...step by step layout on how to perform various tasks you may need.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your Projects&lt;/strong&gt;  Sometimes before I begin coding a new project, I write a plan down. What does my application do? what functionaliy should I include to do certain things? You could sketch your page layout, components, and wire-framing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, you will have your own ideas of what to write down and how to best organize your notes.&lt;/p&gt;

&lt;p&gt;Don't let people fool you into thinking note- taking isn't important or even necessary. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note-Taking is an important tool and you should definitely utilize it.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>IDK - React Router V6.4+ Basics</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Tue, 10 Jan 2023 18:32:09 +0000</pubDate>
      <link>https://forem.com/amera/updating-my-application-routes-in-7-easy-steps-react-router-v64-updates-4681</link>
      <guid>https://forem.com/amera/updating-my-application-routes-in-7-easy-steps-react-router-v64-updates-4681</guid>
      <description>&lt;p&gt;I recently decided to finish an unfinished project that began working on a few months ago. Hold on! don’t judge me…. we’ve all done it, but this time I’m going to complete it 👀.  Anyway, back to my point, I realized the routing was not working properly and could not figure out what the problem was. I must’ve missed the notice about &lt;strong&gt;React Router V6.4+&lt;/strong&gt; update (it’s at 6.6 now, I believe). No biggie! I went through the process of re-routing my router and let me tell you…. I kind of like it. It is not like I didn’t like the previous version, but something about the new way of initializing the router now just seems more aesthetically pleasing. We all love nice aesthetics.&lt;/p&gt;

&lt;p&gt;The main changes in this update were mostly with data fetching in React and to really utilize the features we must adjust how our routes are defined.&lt;/p&gt;

&lt;p&gt;If you missed the update memo too, don’t worry I got you. I can show you what I did to update the routing on my current application.&lt;/p&gt;

&lt;h6&gt;
  
  
  Step 1: Re-heat your coffee, it’s probably cold now.
&lt;/h6&gt;

&lt;h6&gt;
  
  
  Step 2: You will need to install &lt;strong&gt;React Router&lt;/strong&gt; if you haven’t already.  You can do this by running the command: &lt;strong&gt;npm install react-router-dom&lt;/strong&gt; inside your terminal.
&lt;/h6&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
npm install react-router-dom

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

&lt;/div&gt;



&lt;h6&gt;
  
  
  Step 3: Next, you must import a few things to begin using React Router in your App.js file.
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw33yt6y4vl0472pgsevg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw33yt6y4vl0472pgsevg.jpeg" alt="imports need for router" width="735" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Step 4:  Now, you can create a variable name &lt;strong&gt;router&lt;/strong&gt; that will hold the &lt;strong&gt;createBrowserRouter&lt;/strong&gt; object, this will allow your URL to update and manage the history stack using the DOM History API. The &lt;strong&gt;createBrowserRouter&lt;/strong&gt; may have already been available prior to this most recent update but was not required. Using another function provided to us by React Router, &lt;strong&gt;createRoutesFromElements&lt;/strong&gt;, you will place each route with its corresponding element inside of here.
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhguh633p1be0i2c5a4i.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhguh633p1be0i2c5a4i.jpeg" alt="creating createBrowserRouter object " width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Step 5:  Now, if you notice the first &lt;strong&gt;path= ’/ ’&lt;/strong&gt; has the &lt;strong&gt;element: &lt;/strong&gt;.  We have not created this &lt;strong&gt;Root&lt;/strong&gt; element yet, so we’ll take care of that now. The &lt;strong&gt;Root&lt;/strong&gt; element’s purpose is to help structure anything related to the router on your application that isn’t defining routes, like our navigation or a global styling component.
&lt;/h6&gt;

&lt;h6&gt;
  
  
  Towards the bottom, underneath the return statement, define the &lt;strong&gt;Root&lt;/strong&gt; component. Inside of the &lt;strong&gt;Root&lt;/strong&gt; component, you will also need to use &lt;strong&gt;&lt;/strong&gt;. It sort of works like a placeholder to show how you are going to display the other pages or routes inside of the &lt;strong&gt;Root&lt;/strong&gt; component.
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ww5sm2qsxbzqfqfw9j8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ww5sm2qsxbzqfqfw9j8.jpeg" alt="setup of Root component " width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  So, essentially every page in your application will have a navigation bar and whichever route is supposed to be displayed.
&lt;/h6&gt;

&lt;h6&gt;
  
  
  Step 6: Great! Now that our Root component is completed, you can create the other routes inside of it.  This part should look familiar if you already have experience with React Router, when you would create a component tree and place the routes inside of the return statement using BrowserRouter, Route, and Routes. The “Home” page path will now be &lt;em&gt;index&lt;/em&gt; (meaning the first page).
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vj9mrr5l4nu1nrxehqu.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vj9mrr5l4nu1nrxehqu.jpeg" alt="setting up other routes" width="800" height="845"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Step 7: Almost done! Now we want our application to be able to display our routes. To do this, we need to use a &lt;strong&gt;RouterProvider&lt;/strong&gt; inside of the return statement.  The &lt;strong&gt;RouterProvider&lt;/strong&gt; is a self-closing component. You need a prop called &lt;em&gt;router&lt;/em&gt; and you’ll pass in the &lt;strong&gt;router&lt;/strong&gt; that you created.
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs5gxl5yeyiv5bpick8m.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs5gxl5yeyiv5bpick8m.jpeg" alt="provider image" width="800" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, you should be able to go to your browser, refresh, and see the changes.&lt;/p&gt;

&lt;p&gt;I’m sure there is plenty more to learn and if you’re interested you can go to &lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;reactrouter.com&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Boom! Just like that you’re all caught up like me…. now go finish your unfinished projects!
&lt;/h5&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Learning how to code from my autistic 3 year old....</title>
      <dc:creator>Amera White</dc:creator>
      <pubDate>Fri, 06 Jan 2023 18:32:05 +0000</pubDate>
      <link>https://forem.com/amera/how-i-got-started-with-coding-from-my-autistic-3-year-old-4ljj</link>
      <guid>https://forem.com/amera/how-i-got-started-with-coding-from-my-autistic-3-year-old-4ljj</guid>
      <description>&lt;p&gt;I am a mom. I have 4 daughters. Being a parent, I have experienced a lot of situations... no one prepares you for.  For example, when my oldest daughter was 5, she put an eraser from the end of pencil in her ear. It got stuck. No one told me that this little human would be weird and curious enough to attempt to ruin her own hearing, or even how to explain this to the emergency room doctors. The point I am making is, as a parent you don't really know what situation you may face on a daily basis, but you still have to figure out how to maneuver through it...Parenting 101.&lt;br&gt;
    This lesson I learned is one I learned from my youngest daughter, she is autistic. I never knew what autism was or knew anyone that was on the spectrum before her. She is also non-verbal (meaning she lacks functional language), and has a sensory disorder (meaning certain sounds, lighting, or even the feel of something can be overstimulating or extremely off-putting). As, her mother , I became super aware, protective and slightly overbearing over her. I did the worst thing a mother could do (I'm exaggerating...but it did make me feel bad). I doubted her abilities. &lt;br&gt;
     When my youngest daughter was 3, she began attending ABA Therapy. While picking her up after one of her therapy sessions, her therapists asked if I'd ever given her a particular puzzle (it was one of those block puzzles with a picture on each side, and when placed together it forms a whole picture) to play with and put together. My response was, "No. She can't. She won't be able to do that type puzzle, because it is too complicated for her." . I know...I know... how dare I doubt her abilities!! Little did I know, her therapist wasn't asking me to see if I'd go buy this type of puzzle and try it out, she was making me aware that my daughter had mastered all of the puzzles of that type in their facility. Herself, as well as , all other therapists, and employees had been so impressed that they wanted to know if I had taught or shown her how to work the puzzles before. Needless to say, I was embarrassed and elated all at the same time. Embarrassed, because I allowed myself to be so closed minded about her abilities, that I didn't believe that she could accomplish the task of completing this type of puzzle. I was also elated, because at that very moment, I realized my daughter was going to be fine. She was able to show me and the world that even though she processes information and communicates differently, she is able and capable of doing whatever she wants to do. From that moment on, I have always presented her with choices, opportunities, and tasks just as I have with my other daughters. I thought I was being protective and in reality, I was being a barrier. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Autism is.... about finding a way to survive in an overwhelming, confusing world… It is about developing differently, in a different pace and with different leaps.” &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I began to challenge myself and learn how to code, shortly after that moment. I started teaching myself JavaScript, taking courses on CodeAcademy, FreeCodeCamp, and YouTube. I realized that I had been doubting my own abilities. She taught me that I am enough and that I am able to do whatever it is that I set out to accomplish, regardless of what other people may deem as obstacles in my path. &lt;/p&gt;

&lt;p&gt;So, I'm sharing this story to encourage anyone who has doubts about their path to continue working towards your goals and remember that YOU ARE ENOUGH and YOU ARE ABLE. &lt;/p&gt;

&lt;p&gt;P.S. The doctor's were able to remove the eraser from my oldest daughter's ear.&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
