<?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: Nathan Orris</title>
    <description>The latest articles on Forem by Nathan Orris (@nathannosudo).</description>
    <link>https://forem.com/nathannosudo</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%2F413447%2Fdc465452-a463-4ff2-8f55-fc0448bdc279.jpeg</url>
      <title>Forem: Nathan Orris</title>
      <link>https://forem.com/nathannosudo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nathannosudo"/>
    <language>en</language>
    <item>
      <title>Back to the Basics: Why HTML and CSS Are Still Very Much Required</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Wed, 01 Mar 2023 15:06:32 +0000</pubDate>
      <link>https://forem.com/nathannosudo/back-to-the-basics-why-html-and-css-are-still-very-much-required-4ca5</link>
      <guid>https://forem.com/nathannosudo/back-to-the-basics-why-html-and-css-are-still-very-much-required-4ca5</guid>
      <description>&lt;h2&gt;
  
  
  Back to the Basics: Why HTML5 and CSS3 are Still Very Much Required
&lt;/h2&gt;

&lt;p&gt;In the world of web development, it's easy to get caught up in the latest trends and technologies. With the rise of JavaScript frameworks and web apps, it's easy to forget about the basics: HTML and CSS. However, despite all of the advances in web development, HTML5 and CSS3 are still very much required.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML5 and CSS3?
&lt;/h2&gt;

&lt;p&gt;HTML5 and CSS3 are the latest versions of the markup language and stylesheet language respectively. HTML5 provides the structure and content of a webpage, while CSS3 provides the presentation and layout. Together, they form the backbone of web development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why are they still important?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Compatibility: While newer technologies may be available, not all browsers and devices support them. HTML5 and CSS3 are widely supported, making them the most reliable option for web development. This means that your website is more likely to work on different devices and browsers, resulting in a better user experience.&lt;/li&gt;
&lt;li&gt;Accessibility: HTML5 and CSS3 provide the necessary tools for creating accessible websites and web applications. With features like semantic markup and ARIA attributes, developers can create websites that are accessible to everyone, including people with disabilities. This is important for ensuring that everyone can access your content, regardless of their abilities.&lt;/li&gt;
&lt;li&gt;Search engine optimization (SEO): Search engines rely on HTML to understand the content of a website. By using semantic markup and structured data, developers can help search engines understand the content of a website, which can improve search engine rankings. This means that your website is more likely to be found by people searching for relevant content.&lt;/li&gt;
&lt;li&gt;Performance: HTML5 and CSS3 are lightweight and efficient, which can improve website performance. By using best practices like minification and optimization, developers can create websites that load quickly and provide a better user experience. This is important for keeping users engaged and reducing bounce rates.&lt;/li&gt;
&lt;li&gt;Flexibility: HTML5 and CSS3 provide a lot of flexibility for web developers. They allow developers to create websites and applications that are responsive and adaptive to different screen sizes and devices. This means that your website can look good on desktops, laptops, tablets, and smartphones, providing a better user experience for all users.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;While it's important for web developers to stay up-to-date with the latest technologies, it's equally important not to forget about the basics. HTML5 and CSS3 are still very much required for web development, providing compatibility, accessibility, SEO benefits, improved performance, and flexibility. As the foundation of web development, they should not be overlooked. By using HTML5 and CSS3, web developers can create websites and applications that are reliable, accessible, performant, and flexible, providing a better user experience for everyone.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>A Christmas Coding Carol</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Sat, 24 Dec 2022 00:05:38 +0000</pubDate>
      <link>https://forem.com/nathannosudo/a-christmas-coding-carol-55fg</link>
      <guid>https://forem.com/nathannosudo/a-christmas-coding-carol-55fg</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Tis The Season&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As I was sitting here coding and listening to Christmas music, I started changing lyrics to some of the songs and I eventually ended up here. Please enjoy my Christmas Coding Carol and let me know what you think! &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;After you check it out, try and come up with another verse and I'll add it to the song!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;I'm sitting at my desk, the tree is all aglow&lt;br&gt;
I've got my laptop open, ready to code&lt;br&gt;
I'm feeling all festive, in the holiday flow&lt;br&gt;
I'm making magic happen, with every key stroke&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code, code, code, it's the season to&lt;br&gt;
Code, code, code, with a mug of hot cocoa too&lt;br&gt;
Code, code, code, let's create something new&lt;br&gt;
Code, code, code, it's Christmas and we're feeling fine&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm working on a project, with a deadline to meet&lt;br&gt;
I'm typing away, with all my might&lt;br&gt;
I'm making sure everything's neat and complete&lt;br&gt;
I'm solving problems, left and right&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code, code, code, it's the season to&lt;br&gt;
Code, code, code, with a mug of hot cocoa too&lt;br&gt;
Code, code, code, let's create something new&lt;br&gt;
Code, code, code, it's Christmas and we're feeling fine&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The snow is falling outside, the fire is burning bright&lt;br&gt;
I'm lost in my work, through the long winter night&lt;br&gt;
But I don't mind, I'm having such a good time&lt;br&gt;
Coding away, with Christmas cheer in my mind&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code, code, code, it's the season to&lt;br&gt;
Code, code, code, with a mug of hot cocoa too&lt;br&gt;
Code, code, code, let's create something new&lt;br&gt;
Code, code, code, it's Christmas and we're feeling fine&lt;/em&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>design</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>JavaScript Async/Await: A Beginner's Guide</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Tue, 20 Dec 2022 22:59:41 +0000</pubDate>
      <link>https://forem.com/nathannosudo/javascript-asyncawait-a-beginners-guide-232l</link>
      <guid>https://forem.com/nathannosudo/javascript-asyncawait-a-beginners-guide-232l</guid>
      <description>&lt;p&gt;Async/await is a language feature in JavaScript that allows us to write asynchronous code in a synchronous-looking style. It makes it easier to read and write asynchronous code, as it eliminates the need for chaining multiple .then() and .catch() blocks together.&lt;/p&gt;

&lt;p&gt;Before we dive into async/await, it's important to understand the concept of promises in JavaScript. A promise is an object that represents the result of an asynchronous operation. It can either be resolved (successful) or rejected (failed). We can use the .then() and .catch() methods to handle the resolved and rejected states of a promise, respectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Here's an example of using promises to make an HTTP request:&lt;/strong&gt;
&lt;/h3&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%2Fcba4og0ezh35zcqcluwt.png" 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%2Fcba4og0ezh35zcqcluwt.png" alt="fetch example" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the .then() and .catch() methods are chained together, which can make the code look cluttered and hard to read. This is where async/await comes in.&lt;/p&gt;

&lt;p&gt;To use async/await, we need to declare a function as async by adding the async keyword before the function declaration. Then, we can use the await keyword inside the function to wait for a promise to resolve.&lt;/p&gt;

&lt;p&gt;Here's the same example using async/await:&lt;/p&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%2Fd3yh13horq7c9qf3di5v.png" 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%2Fd3yh13horq7c9qf3di5v.png" alt="async await example" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the code looks much cleaner and easier to read with async/await.&lt;/p&gt;

&lt;p&gt;It's important to note that the await keyword can only be used inside an async function. Additionally, the value of an await expression is the resolved value of the promise.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;There are a few other things to keep in mind when using async/await:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If the value of an await expression is not a promise, it will be wrapped in a resolved promise automatically.&lt;/li&gt;
&lt;li&gt;If an await expression throws an error, it will be caught by the nearest enclosing try/catch block.&lt;/li&gt;
&lt;li&gt;If an async function returns a value, it will be wrapped in a resolved promise automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this brief introduction to async/await in JavaScript has been helpful. Happy coding!&lt;/p&gt;

&lt;p&gt;Let me know if you have any questions or if you'd like me to clarify anything.&lt;/p&gt;

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

</description>
      <category>opensource</category>
      <category>marketing</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>JS Test #3: try/catch</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Sun, 18 Dec 2022 15:42:41 +0000</pubDate>
      <link>https://forem.com/nathannosudo/js-test-3-trycatch-3he3</link>
      <guid>https://forem.com/nathannosudo/js-test-3-trycatch-3he3</guid>
      <description>&lt;h2&gt;
  
  
  What is try/catch
&lt;/h2&gt;

&lt;p&gt;In JavaScript, the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; statements allow you to handle runtime errors in your code.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;&lt;em&gt;try&lt;/em&gt;&lt;/strong&gt; block contains code that may throw an error. If an error is thrown, the code in the catch block is executed. This allows you to gracefully handle the error and take appropriate action, rather than letting the error cause the program to crash.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Here is an example of how try and catch can be used in JavaScript:&lt;/strong&gt;
&lt;/h3&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%2Fdtmdh1ps6tdg9gaebj88.png" 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%2Fdtmdh1ps6tdg9gaebj88.png" alt="js example" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;&lt;strong&gt;error object&lt;/strong&gt;&lt;/em&gt; that is passed to the &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; block contains information about the error that occurred, including the name of the error and a message describing the error. You can use this information to log the error, display an error message to the user, or take any other appropriate action.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Here is an example of using &lt;em&gt;try&lt;/em&gt; and &lt;em&gt;catch&lt;/em&gt; to handle a runtime error:&lt;/strong&gt;
&lt;/h3&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%2Fdboflbwf0751jbwagbjx.png" 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%2Fdboflbwf0751jbwagbjx.png" alt="Coding example" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, the code in the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block attempts to access a variable NathanNOSudo that has not been defined. This will cause a ReferenceError to be thrown. The &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; block will then handle the error by logging the error's name and message to the console.&lt;/p&gt;

&lt;p&gt;You can also specify multiple exceptions to catch in the catch block by using multiple catch statements:&lt;/p&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%2Fhbrw6nvtjpfswuzdtj57.png" 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%2Fhbrw6nvtjpfswuzdtj57.png" alt="Another Coding Example" width="800" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Lets Break This Down
&lt;/h3&gt;

&lt;p&gt;In this JavaScript code, a &lt;strong&gt;&lt;em&gt;try&lt;/em&gt;&lt;/strong&gt; block contains code that might throw an exception. In this case, the code is attempting to divide the string 'NathanNOSudo' by 3, which will cause a TypeError exception to be thrown because it is not possible to perform arithmetic operations on a string.&lt;/p&gt;

&lt;p&gt;The code has two &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; blocks following the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block. The first &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; block is designed to handle a RangeError exception, and the second &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; block is designed to handle a TypeError exception.&lt;/p&gt;

&lt;p&gt;If the code in the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block throws a RangeError exception, the first catch block will execute and log a message to the console indicating that a RangeError occurred. If the code in the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block throws a TypeError exception, the second &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; block will execute and log a message to the console indicating that a TypeError occurred.&lt;/p&gt;

&lt;p&gt;If no exceptions are thrown in the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block, both &lt;em&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/em&gt; blocks will be skipped and the program will continue to execute any code that comes after the &lt;em&gt;&lt;strong&gt;try-catch&lt;/strong&gt;&lt;/em&gt; blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: finally
&lt;/h2&gt;

&lt;p&gt;Finally, you can use the &lt;em&gt;&lt;strong&gt;finally&lt;/strong&gt;&lt;/em&gt; block to specify code that should be executed whether or not an exception is thrown in the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block:&lt;/p&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%2F5cgkj18mcag2wwqzl2qs.png" 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%2F5cgkj18mcag2wwqzl2qs.png" alt="Finally Example JS" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, the code in the &lt;em&gt;&lt;strong&gt;finally&lt;/strong&gt;&lt;/em&gt; block will be executed whether or not an exception is thrown in the &lt;em&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/em&gt; block.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 Test Questions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What will be logged to the console when the following code is executed?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  console.log(a);
} catch (error) {
  console.log('Error: ' + error.message);
} finally {
  console.log('Finally block executed');
}

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Answer:
&lt;/h3&gt;

&lt;p&gt;Error: a is not defined and Finally block executed will be logged to the console.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will be logged to the console when the following code is executed?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  console.log(1 / 0);
} catch (error) {
  console.log('Error: ' + error.message);
} finally {
  console.log('Finally block executed');
}

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Answer:
&lt;/h3&gt;

&lt;p&gt;Error: Division by zero and Finally block executed will be logged to the console.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will be logged to the console when the following code is executed?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  console.log(1 / 2);
} catch (error) {
  console.log('Error: ' + error.message);
} finally {
  console.log('Finally block executed');
}

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Answer:
&lt;/h3&gt;

&lt;p&gt;0.5 and Finally block executed will be logged to the console.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will be logged to the console when the following code is executed?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  console.log(a);
} catch (error) {
  console.log('Error: ' + error.message);
  throw error;
} finally {
  console.log('Finally block executed');
}

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Answer:
&lt;/h3&gt;

&lt;p&gt;Error: a is not defined, Finally block executed, and an error will be thrown.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will be logged to the console when the following code is executed?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  console.log(1 / 2);
} catch (error) {
  console.log('Error: ' + error.message);
  throw error;
} finally {
  console.log('Finally block executed');
}

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Answer:
&lt;/h3&gt;

&lt;p&gt;0.5 and Finally block executed will be logged to the console. No errors will be thrown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summation
&lt;/h2&gt;

&lt;p&gt;I hope you enjoyed this little test. Let me know in the comments how you did!&lt;/p&gt;

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

</description>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>JS Test #2: Type conversion in JavaScript</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Mon, 12 Dec 2022 22:01:33 +0000</pubDate>
      <link>https://forem.com/nathannosudo/js-test-2-type-conversion-in-javascript-2mb5</link>
      <guid>https://forem.com/nathannosudo/js-test-2-type-conversion-in-javascript-2mb5</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What is Type Conversion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;JavaScript type conversion is the process of converting one data type into another. This is a common operation in programming languages, and it is often necessary to convert a value from one type to another in order to use it in a specific context or to perform certain operations on it.&lt;/p&gt;

&lt;p&gt;JavaScript has two types of type conversion: implicit and explicit. Implicit type conversion is automatic and occurs when a value is used in a context that requires a different type. For example, if you try to concatenate a string and a number using the + operator, JavaScript will automatically convert the number to a string before performing the concatenation&lt;/p&gt;

&lt;p&gt;Explicit type conversion, also known as type casting, is performed using built-in functions such as Number(), String(), and Boolean(). These functions allow you to explicitly convert a value from one type to another. For example, you can use the Number() function to convert a string containing a number to an actual number data type.&lt;/p&gt;

&lt;p&gt;Type conversion is a fundamental concept in JavaScript, and understanding it is essential for writing correct and efficient code. Lets take a deeper look at type conversion, as it is essential to building a solid JavaScript foundation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implicit Conversion:
&lt;/h2&gt;

&lt;p&gt;There are various operator and functions in JavaScript which automatically converts a value to the right type like alert() function in JavaScript accepts any value and convert it into a string. But various operators can create a problem like ‘+’ operator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example:
&lt;/h3&gt;

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

&lt;p&gt;This code shows the implicit type conversion in JavaScript:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--phveYZqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r06wiupc32y7lsogypmc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--phveYZqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r06wiupc32y7lsogypmc.png" alt="Image description" width="572" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Converting Values to Strings:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;String()&lt;/strong&gt; or &lt;strong&gt;toString()&lt;/strong&gt; function can be used in JavaScript to convert a value to a string.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Examples&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--awfm4n9l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ecf34dk076cwbyll06x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--awfm4n9l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ecf34dk076cwbyll06x.png" alt="String and toString function examples." width="437" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5ICOYohf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zo2hxdiqs1ko7j7giu8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5ICOYohf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zo2hxdiqs1ko7j7giu8n.png" alt="String function examples" width="463" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Below code is going to convert the number to a string, boolean value to a string and dates to a string.
&lt;/h3&gt;

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

&lt;h2&gt;
  
  
  &lt;strong&gt;Converting Values to Numbers:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We can use &lt;strong&gt;Number()&lt;/strong&gt; function in JavaScript to convert a value to a Number. It can convert any numerical text and boolean value to a Number. In the case of strings of non-numbers, it will convert it to a NaN(Not a Number).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Examples:&lt;/strong&gt;
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  Below code converts a numerical text, dates and boolean values to a number.
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  If the string is a non-number then it converts it to NaN and strings of white spaces or empty strings will convert to 0.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M4hMkQf9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yaw7vaq926sonkinwed2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M4hMkQf9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yaw7vaq926sonkinwed2.png" alt="another one dj khaled" width="673" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Test Questions
&lt;/h2&gt;

&lt;p&gt;I hope this helps you better understand type conversion and it's use. This is just the beginning of type conversion. Try to answer these 5 questions on what we just discussed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How can you convert a string to a number using the Number() function in JavaScript?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var myString = '123';
var myNumber = Number(myString);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;How can you convert a number to a string using the String() function in JavaScript?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var myNumber = 123;
var myString = String(myNumber);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;How can you convert a string to a number using the parseInt() function in JavaScript?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var myString = '123';
var myNumber = parseInt(myString, 10);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;How can you convert a string to a number using the parseFloat() function in JavaScript?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var myString = '3.14';
var myNumber = parseFloat(myString);

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;How can you convert a number to a string using the toString() method in JavaScript?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var myNumber = 123;
var myString = myNumber.toString();

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

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>JavaScript Test #1: Arrays</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Wed, 07 Dec 2022 00:02:57 +0000</pubDate>
      <link>https://forem.com/nathannosudo/javascript-test-1-arrays-1h03</link>
      <guid>https://forem.com/nathannosudo/javascript-test-1-arrays-1h03</guid>
      <description>&lt;p&gt;Recently I have decided to make my posts more fun and interactive. I will explain a topic and then have a short test at the end or something along those lines! Follow me for more fun posts like this!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;JavaScript Arrays&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;JavaScript arrays are used to store and manipulate collections of data. They are a versatile and powerful data type that can be used to represent a wide variety of data structures, including lists, sets, and dictionaries.&lt;/p&gt;

&lt;p&gt;In this post, we will cover some of the key features of JavaScript arrays and provide a brief quiz to test your knowledge.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Creating Arrays&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To create an array in JavaScript, you can use the [] square bracket syntax, like this:&lt;/p&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%2F9n41u0g2l1baoci3ommd.png" 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%2F9n41u0g2l1baoci3ommd.png" alt="code example 1 baby" width="505" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This creates an array named colors that contains three string elements: 'red', 'green', and 'blue'. You can access these elements using their index in the array, starting from 0 for the first element. For example, you can access the second element of the colors array like this:&lt;/p&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%2Fuxirf8n4ho8wgxs13xz2.png" 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%2Fuxirf8n4ho8wgxs13xz2.png" alt="js example 2" width="522" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also create an empty array by calling the Array constructor function without any arguments, like this:&lt;/p&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%2Fr3e92xv4qbsizt3203oe.png" 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%2Fr3e92xv4qbsizt3203oe.png" alt="js example 3" width="404" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Adding and Removing Elements&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you have created an array, you can add or remove elements from it using a variety of methods. For example, you can use the push() method to add an element to the end of an array, like this:&lt;/p&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%2Fdnjsjy7d9w7kxrrvmfng.png" 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%2Fdnjsjy7d9w7kxrrvmfng.png" alt="js example 4" width="791" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use the pop() method to remove the last element from an array, like this:&lt;/p&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%2F1e6vkadf5o9kcmyhxb83.png" 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%2F1e6vkadf5o9kcmyhxb83.png" alt="js example 5" width="631" height="220"&gt;&lt;/a&gt;&lt;br&gt;
There are many other methods for adding and removing elements from arrays, including unshift(), shift(), splice(), and slice().&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Iterating Over Arrays&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;One of the most common tasks when working with arrays is to iterate over their elements and perform some action on each element. In JavaScript, you can use the for...of loop to iterate over an array, like this:&lt;/p&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%2Fcvhb37rspbjxmym9ata6.png" 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%2Fcvhb37rspbjxmym9ata6.png" alt="js example 6" width="412" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will print each element of the colors array to the console. You can also use the forEach() method to iterate over an array, like this:&lt;/p&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%2F96lnxkum3gupfciszcf0.png" 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%2F96lnxkum3gupfciszcf0.png" alt="js example 7" width="538" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Quiz&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now that you know some of the basics of JavaScript arrays, let's test your knowledge with a short quiz!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;How do you create an empty array in JavaScript?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do you add an element to the end of an array in JavaScript?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do you remove the last element from an array in JavaScript?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do you iterate over the elements of an array in JavaScript?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can you use a for loop to iterate over an array in JavaScript?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Leave a comment with the answers and I'll get back to you!&lt;/p&gt;

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

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>JavaScript: 5 types of functions with 5 reasons to use each function</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Tue, 06 Dec 2022 20:28:11 +0000</pubDate>
      <link>https://forem.com/nathannosudo/javascript-5-types-of-functions-with-5-reasons-to-use-each-function-me3</link>
      <guid>https://forem.com/nathannosudo/javascript-5-types-of-functions-with-5-reasons-to-use-each-function-me3</guid>
      <description>&lt;p&gt;In JavaScript, there are several different types of functions that can be defined and used. Here are some of the most common types of functions in JavaScript:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are Named Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Named functions: These are functions that are declared using the function keyword and are given a name. Named functions can be called by their name, and they can be assigned to a variable or passed as an argument to another function.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reasons to use Named Functions:
&lt;/h3&gt;

&lt;p&gt;There are several reasons why you might want to use a named function in JavaScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A named function can make your code easier to read and understand, especially if the function is long or performs a complex task.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using named functions can help you avoid creating global variables, which can cause conflicts with other code or libraries that you are using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A named function can be easily reused in your code, which can help you avoid repeating the same code multiple times.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Named functions can be passed as arguments to other functions, which can be useful for implementing functional programming techniques.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Named functions can be used as the value of an object property, which can be useful for creating objects that have methods.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Overall, using named functions can help you write more modular and organized code that is easier to maintain and debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are Anonymous Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Anonymous functions: These are functions that are declared without a name. Anonymous functions are typically assigned to a variable or passed as an argument to another function.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reasons to use Anonymous Functions:
&lt;/h3&gt;

&lt;p&gt;There are several reasons why you might want to use an anonymous function in JavaScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Anonymous functions can be useful when you need to define a function that you only plan to use once, such as an event handler or a callback.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anonymous functions can make your code more concise, especially if you would otherwise need to create a named function just to use it in a single location.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anonymous functions can help you avoid creating unnecessary global variables, which can reduce the risk of conflicts with other code or libraries that you are using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anonymous functions are often used in functional programming techniques, such as map, filter, and reduce, which can help you write more concise and elegant code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anonymous functions can be useful when you want to define a function inside another function, which can be useful for creating nested or closure functions.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Anonymous functions are relatively new to JavaScript, if you have time be sure to try them out and let me know what you like or dislike about them!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are Arrow Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Arrow functions: These are a more concise syntax for defining anonymous functions in JavaScript. Arrow functions were introduced in ECMAScript 6 (ES6) and are often used to define short, simple functions that do not need a name.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reasons to use Arrow Functions:
&lt;/h3&gt;

&lt;p&gt;Like all functions in JavaScript, there are several reasons why you might want to use arrow functions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Arrow functions can make your code more concise, especially when defining small, one-line functions or functions that are used as arguments to other functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrow functions automatically bind the value of the this keyword, which can make it easier to use this inside your functions without having to worry about its value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrow functions can be useful when you want to define a function inside another function, which can be useful for creating nested or closure functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrow functions are often used in functional programming techniques, such as map, filter, and reduce, which can help you write more concise and elegant code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrow functions can be useful when you want to define a function that is not a method of an object, which can be useful for avoiding creating unnecessary this bindings.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Arrow functions are my favorite and go to. I feel they are most readable out of all functions and have many other uses!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are IIFE's&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;IIFE (Immediately Invoked Function Expression) functions: These are anonymous functions that are declared and immediately executed. IIFE functions are often used to create a new scope for variables, to prevent variables from leaking into the global scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reasons to use IIFE's:
&lt;/h3&gt;

&lt;p&gt;Some reasons why you might want to use an immediately invoked function expression (IIFE) in JavaScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;An IIFE can be used to create a local scope for your variables and functions, which can help you avoid creating global variables and reduce the risk of conflicts with other code or libraries that you are using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An IIFE can be used to create a self-contained module of code that has its own private variables and functions, which can be useful for creating reusable components or libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An IIFE can be used to execute code immediately, without having to wait for an event, such as a page load or user interaction, to occur.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An IIFE can be used to define and execute a function that is only needed once, such as an event handler or a callback, without having to create a named function or create a global variable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An IIFE can be used to pass arguments to a function, which can be useful for creating functions that are configurable or that can be used with different sets of data.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;IIFEs in my opinion are extremely useful for organizing your code. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are Generator Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Generator functions: These are functions that use the yield keyword to return multiple values over time. Generator functions allow you to pause and resume the execution of a function, and they are often used to implement asynchronous or iterative behavior in JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reasons to use Generator functions
&lt;/h3&gt;

&lt;p&gt;There are several reasons why you might want to use generator functions in JavaScript:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Generator functions can be used to create iterable objects, which can be useful for working with large or complex data sets that cannot be easily processed or stored in memory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generator functions can be used to create lazy-evaluated or infinite sequences, which can be useful for working with data streams or large datasets that may not be known in advance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generator functions can be used to pause and resume the execution of a function, which can be useful for implementing asynchronous or concurrent programming patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generator functions can be used to delegate the execution of a function to another generator or iterable object, which can be useful for implementing complex control flow or data processing logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generator functions can be used as a compact and elegant syntax for defining iterators, which can be useful for implementing the iterator protocol or creating custom iterable objects.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Overall, generator functions can be a powerful and versatile tool for working with data and implementing complex control flow in JavaScript.&lt;/p&gt;

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

&lt;p&gt;So to wrap it up, there are many different types of functions in JavaScript, and each type has its own unique characteristics and uses. Understanding the different types of functions and when to use them is an important part of learning and mastering the JavaScript language. Over time your abilities to recognize the appropriate function for your task more easily. Stick with it. These are just a few different functions, what other functions do you like or dislike?&lt;/p&gt;

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

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Bash Script to Send a Message in Telegram from your Terminal!</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Mon, 05 Dec 2022 23:38:06 +0000</pubDate>
      <link>https://forem.com/nathannosudo/bash-script-to-send-a-message-in-telegram-from-your-terminal-20c7</link>
      <guid>https://forem.com/nathannosudo/bash-script-to-send-a-message-in-telegram-from-your-terminal-20c7</guid>
      <description>&lt;p&gt;Have you ever wanted to send a message from your terminal? Think about how convenient that would be as a developer who works in a terminal for 60% of the time. I know for me it was a game changer! There are api's available for use with pulse sms and others but this tutorial is a quick right up on using Telegrams API. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What is Telegram?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Telegram is a cloud-based instant messaging and voice-over-IP service. It was developed by the Russian entrepreneur Pavel Durov and his brother Nikolai. Telegram is available for Android, iOS, Windows, macOS, and Linux, and it supports a wide range of languages.&lt;/p&gt;

&lt;p&gt;Telegram is known for its focus on security and privacy. It offers end-to-end encryption for all messages and calls, and it allows users to create private and secret chats that are not stored on the company's servers. Telegram also offers a range of features that make it popular among users, such as the ability to send large files, create group chats with up to 200,000 members, and use bots to automate tasks.&lt;/p&gt;

&lt;p&gt;Telegram is a free and open-source platform, and it has a large and active community of users and developers. It has become one of the most popular messaging platforms in the world, with over 500 million monthly active users. You can download it in your respective app store!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Simple Bash Script to the Rescue&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To send a message in Telegram using a simple Bash script, you can use the curl command to make an HTTP POST request to the Telegram API. The API will allow you to send a message to a specified chat or user, and the message will be delivered instantly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3em8phpofwhosvqfdyrm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3em8phpofwhosvqfdyrm.png" alt="bin/bash/scripting doggy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Here is a simple Bash script that you can use to send a message in Telegram:&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

# Set the API token and chat ID
API_TOKEN="&amp;lt;your_api_token&amp;gt;"
CHAT_ID="&amp;lt;your_chat_id&amp;gt;"

# Set the message text
MESSAGE="This is a test message"

# Use the curl command to send the message
curl -s -X POST https://api.telegram.org/bot$API_TOKEN/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE"



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

&lt;/div&gt;

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

&lt;h2&gt;
  
  
  &lt;strong&gt;How to use our Script:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To use this script, you will need to replace  and  with the API token and chat ID of your Telegram bot and the user or group you want to send the message to, respectively. You will also need to replace This is a test message with the text of the message you want to send.&lt;/p&gt;

&lt;p&gt;Once you have set these values, you can run the script by calling the bash command and passing the script file as an argument, like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

bash send_telegram_message.sh



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

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytd64pnd92u1wproowm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytd64pnd92u1wproowm3.png" alt="paper plane flying and stuff like that my man."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What's our Script Doing?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The script will then send the message to the specified user or group on Telegram. You can use this script as a starting point and modify it to suit your specific needs. For example, you could add command-line arguments to the script to make it more flexible and allow you to specify the API token, chat ID, and message text when you run the script. You can find more detailed instructions and information about the Telegram API in the Telegram API documentation.&lt;/p&gt;

&lt;p&gt;Please feel free to reach out to me with any questions or if you just want to chat!&lt;/p&gt;

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

</description>
      <category>tutorial</category>
      <category>programming</category>
      <category>bash</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>How to Modify an Android APK</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Mon, 05 Dec 2022 22:36:48 +0000</pubDate>
      <link>https://forem.com/nathannosudo/how-to-modify-an-android-apk-425d</link>
      <guid>https://forem.com/nathannosudo/how-to-modify-an-android-apk-425d</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What is an APK?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;An APK is an Android Package Kit, and it is the file format used by the Android operating system to distribute and install mobile apps. An APK file is a compressed package that contains all the necessary files and resources for an app, including the Java class files, resources, and manifest file. APK files are similar to other package files, such as ZIP or RAR, but they are specifically designed for the Android platform.&lt;/p&gt;

&lt;p&gt;APK files are typically downloaded from the Google Play Store, but they can also be downloaded from other sources on the internet. Once an APK file is downloaded, users can install it on their Android device by simply clicking on the file. The Android operating system will automatically extract the contents of the APK file and install the app on the device.&lt;/p&gt;

&lt;p&gt;APK files are an important part of the Android ecosystem, as they allow developers to distribute their apps to users and make them available for installation on Android devices. They are a key component of the Android app ecosystem and are crucial for the success of the Android platform.&lt;/p&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%2F5k6far0e00wrq2juuup1.png" 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%2F5k6far0e00wrq2juuup1.png" alt="Android code screen" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why would you want to Modify an APK file?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;For me personally, I became interested in modifying android games to do things like get unlimited resources in a game or unlimited lives. It was for personal use and to understand the internal workings of an APK. It can be fun to make a game do what YOU would like it to do beyond it's intended capabilities. I suggest trying it out some day to see all the different things you can do! &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;There are a few reasons why someone might want to modify an APK file. Here are a few examples:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To remove unwanted permissions or features from an app. Some apps may ask for permissions that the user is not comfortable granting, or they may have features that the user does not want or need. By modifying the APK file, the user can remove these permissions or features and create a custom version of the app that is more tailored to their needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To add new features or functionality to an app. By modifying the APK file, a user can add new features or functionality to an app that the original developer did not include. This can be useful if the user wants to extend the capabilities of the app or make it more useful for their specific needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To customize the appearance or behavior of an app. Some users may want to change the way an app looks or behaves, such as by changing the color scheme or the user interface. By modifying the APK file, a user can make these changes and create a custom version of the app that is more personalized to their preferences.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For educational or research purposes. Modifying an APK file can be a valuable learning experience for those interested in Android app development or reverse engineering. By studying the structure and contents of an APK file, a user can gain a better understanding of how Android apps work and how they are built.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overall, there are a few reasons why someone might want to modify an APK file. However, it is important to note that modifying APK files can be a complex and technical process, and it is not something that can be done easily or without significant knowledge and experience. Additionally, modifying APK files without the permission of the original developer is illegal and can lead to legal consequences. You should only modify APK files for educational or personal use.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fynqmavwh14j7s4d0vq8g.png" 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%2Fynqmavwh14j7s4d0vq8g.png" alt="android eating an apple description" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Modify an APK file
&lt;/h2&gt;

&lt;p&gt;To modify an APK file, you will need to use an APK editor or decompiler. An APK editor allows you to open and modify the files within an APK file, while a decompiler can convert the APK file into source code, which you can then modify and recompile into a new APK file.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Here are the general steps you can follow to modify an APK file using an APK editor:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Download and install an APK editor on your computer. Some popular APK editors include APK Easy Tool and APK Studio.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open the APK editor and select the APK file you want to modify.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use the editor to modify the files within the APK file, such as the AndroidManifest.xml file or the files in the res/ directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save your changes and export the modified APK file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alternatively, you can use a decompiler to convert the APK file into source code, modify the source code, and then recompile it into a new APK file. Here are the general steps you can follow to do this:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download and install a decompiler on your computer. Some popular decompilers for Android include Jadx and AndroChef Java Decompiler.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open the decompiler and select the APK file you want to decompile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The decompiler will extract the source code from the APK file and display it in a readable format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use a text editor to modify the source code as desired.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use the decompiler to recompile the modified source code into a new APK file.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fax7ibp43c2oxzpajqfu5.png" 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%2Fax7ibp43c2oxzpajqfu5.png" alt="multiple cute androids" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep in mind that modifying APK files can be a complex and technical process. It requires a deep understanding of the Android operating system and the structure of APK files. It is not something that can be done easily or without significant knowledge and experience. Additionally, modifying APK files without the permission of the original developer is illegal and can lead to legal consequences. AGAIN YOU SHOULD ONLY modify APK files for EDUCATIONAL or PERSONAL use.&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Implement IAM Auth to RDS PostgreSQL in AWS</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Mon, 05 Dec 2022 22:11:25 +0000</pubDate>
      <link>https://forem.com/nathannosudo/implement-iam-auth-to-rds-postgresql-in-aws-181n</link>
      <guid>https://forem.com/nathannosudo/implement-iam-auth-to-rds-postgresql-in-aws-181n</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;From Secrets Manager to IAM&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Recently I was tasked with removing all of our secrets from secret manager that were in our 300+ lambdas and switch to using IAM auth by generating tokes instead of having secrets in our lambdas.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;A few simple steps to get you going&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  To implement Identity and Access Management (IAM) authentication to Amazon RDS for PostgreSQL, you can follow these steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sign in to the AWS Management Console and open the Amazon RDS console.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the PostgreSQL instance you want to enable IAM authentication for.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under the Configuration tab, select the IAM DB authentication option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the Enable IAM DB authentication option and choose the IAM role that you want to use for authentication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the Apply changes button to save the changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To connect to your PostgreSQL instance using IAM authentication, you will need to use the IAM credentials (access key and secret key) of the IAM user or role that you specified in step 4.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can use the following connection string to connect to your PostgreSQL instance using IAM authentication:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Copy code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;postgresql://&amp;lt;IAM_USER&amp;gt;:&amp;lt;IAM_SECRET_KEY&amp;gt;@&amp;lt;RDS_ENDPOINT&amp;gt;:&amp;lt;RDS_PORT&amp;gt;/&amp;lt;DB_NAME&amp;gt;
Replace &amp;lt;IAM_USER&amp;gt;, &amp;lt;IAM_SECRET_KEY&amp;gt;, &amp;lt;RDS_ENDPOINT&amp;gt;, &amp;lt;RDS_PORT&amp;gt;, and &amp;lt;DB_NAME&amp;gt; with the appropriate values for your setup.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With these steps, you should be able to enable and use IAM authentication for your Amazon RDS for PostgreSQL instance. Keep in mind that you will need to have the appropriate IAM permissions to perform these steps. You can find more detailed instructions in the Amazon RDS for PostgreSQL documentation. This is a very basic intro to the steps but should get you started. If you have any questions please just ask me!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>The Beginners Guide to Landing a Junior Developer Role</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Mon, 05 Dec 2022 19:00:49 +0000</pubDate>
      <link>https://forem.com/nathannosudo/the-beginners-guide-to-landing-a-junior-developer-role-12dj</link>
      <guid>https://forem.com/nathannosudo/the-beginners-guide-to-landing-a-junior-developer-role-12dj</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;You need to understand &lt;em&gt;why&lt;/em&gt; it is hard&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It can be difficult for junior developers to get a job for a few reasons. First, many companies are looking for developers who have significant experience and a track record of success. This can be difficult for junior developers who are just starting out in their careers and don't have a lot of experience.&lt;/p&gt;

&lt;p&gt;Second, the job market for developers can be competitive, and there may be many other junior developers who are also looking for their first job. This can make it difficult for junior developers to stand out from the crowd and catch the attention of potential employers.&lt;/p&gt;

&lt;p&gt;Third, many companies are looking for developers who are proficient in a specific technology or framework. This can be challenging for junior developers who may not have had the opportunity to gain expertise in a particular area.&lt;/p&gt;

&lt;p&gt;Overall, it can be difficult for junior developers to get a job because they may lack the experience, skills, and connections that many companies are looking for. However, with hard work, persistence, and a willingness to learn, it is possible for junior developers to succeed in the field.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Show your worth and know your worth&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5_xXRKyw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c4ubab9b0xu5kd0kbt2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5_xXRKyw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c4ubab9b0xu5kd0kbt2n.png" alt="beginners guid yo!" width="474" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Here are a few ways you can show as a junior developer that you would be valuable to a team:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Highlight your relevant skills and experience. Even if you don't have a lot of professional experience, you may have worked on personal projects or completed internships that demonstrate your abilities. Be sure to include these on your resume and highlight them during interviews.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show your enthusiasm and willingness to learn. Many employers are looking for developers who are eager to learn and willing to take on new challenges. Be sure to convey your passion for the field and your desire to continue learning and growing as a developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show that you are a team player. As a junior developer, you may be working on a team with more experienced developers. Show that you are a collaborative, communicative, and supportive team member who can contribute to the success of the team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Highlight your problem-solving skills. Many development tasks involve solving complex problems. Show that you have the ability to think critically and approach problems in a logical, systematic way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Demonstrate your ability to adapt and learn new technologies. The field of development is constantly changing, and new technologies and frameworks are always emerging. Show that you are able to quickly learn and adapt to new technologies, and that you are willing to continue learning and growing throughout your career.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Stay up-to-date with the latest technologies and best practices in the field. This will help you understand how to build applications effectively and efficiently, and it will also make you more attractive to potential employers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don't be afraid to ask for help. Many experienced developers are happy to share their knowledge and advice with junior developers, so don't hesitate to reach out to them for guidance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Practice, practice, practice. The best way to improve your skills as a developer is to regularly work on projects and challenges. This will help you develop your problem-solving abilities and deepen your understanding of the technologies you're using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build a portfolio of your work. Having a portfolio of projects you've worked on will help you showcase your skills to potential employers and give them a sense of what you're capable of.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Network with other developers. Attend meetups, conferences, and other events where you can meet and connect with other developers. This will help you learn from others in the field and also open up potential job opportunities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;In Summation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Above is only a few examples out of an almost infinite way to set yourself apart from the competition. The biggest thing I can say is DON'T STOP TRYING. You may feel like an imposter and it's impossible but this is actually a normal feeling as a junior developer. It will surpass and you will make it if you persist and stay motivated!&lt;/p&gt;

&lt;p&gt;Do you have any advice you could offer to junior developers? If so please leave a comment and let's help them land a job!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>discuss</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Four Phases of The Crypto Market Cycle</title>
      <dc:creator>Nathan Orris</dc:creator>
      <pubDate>Sun, 04 Dec 2022 23:44:53 +0000</pubDate>
      <link>https://forem.com/nathannosudo/four-phases-of-the-crypto-market-cycle-1h7l</link>
      <guid>https://forem.com/nathannosudo/four-phases-of-the-crypto-market-cycle-1h7l</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A crypto market cycle typically consists of four different phases of price trends that are caused by several types of external factors. Here is what they look like and how to take advantage of them.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Takeaways&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A crypto market cycle consists of four phases - accumulation, markup, distribution, and markdown&lt;/li&gt;
&lt;li&gt;Each crypto market cycle last four years on average&lt;/li&gt;
&lt;li&gt;The main factors that affect a crypto market cycle include its correlation with Bitcoin, the halving of Bitcoin, and social metric&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What Does the Crypto Market Cycle Look Like?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;At a high level, market cycles are specific patterns that typically emerge from the psychology of market participants and the greater economic environment. This is a natural phenomenon that occurs in every market, and the crypto market is no exception. &lt;/p&gt;

&lt;p&gt;Crypto market cycles start with little to no interest in the market. However, as more interest and demand arise, asset prices generally rise to keep up with the increasing demand. At some point, prices reach a peak and eventually start to drop, as interest declines and supply outweighs the demand. At the end of each cycle, a new cycle begins. &lt;/p&gt;

&lt;p&gt;Although it is difficult to pinpoint the start or the end of a market cycle, most cryptocurrencies (excluding stablecoins) go through similar stages. Understanding the characteristics of each stage and how a typical user may approach each of these stages can help you to participate in the market in a more informed way.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SunImUI---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0s1pdpc4qlrymud9zw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SunImUI---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0s1pdpc4qlrymud9zw3.png" alt="calculator with person typing on it" width="600" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Accumulation Phase&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Accumulation&lt;/em&gt; is the first phase of every market cycle. It starts after the end of the previous cycle when sellers have exited the market and prices are perceived to begin stabilizing. &lt;/p&gt;

&lt;p&gt;In this phase, the market volume is typically lower than average, as interest in the market remains low. Therefore, no clear trend emerges, and assets typically trade within a tight range. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Characteristics:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Market sentiment is dominated by disbelief and uncertainty&lt;/li&gt;
&lt;li&gt;Low price volatility&lt;/li&gt;
&lt;li&gt;Low trading volume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The accumulation phase is also known as a &lt;em&gt;consolidation&lt;/em&gt; &lt;em&gt;phase&lt;/em&gt;, which generally marks the end of the downtrend. Some market participants may still consider it an uncertain time to enter the market, as it can be hard to deduce whether the asset will continue trending lower. But from another perspective, longer-term holders often look at the accumulation phase as the precursor to what they hope will be the start of a bull market. &lt;/p&gt;

&lt;p&gt;This period is especially attractive for long-term users who are looking to buy and hold. For short-term traders, however, patience is key, as this phase can last anywhere from weeks to months or even years. At this point, positive news relating to the market circumstances at large can capture market participants’ attention and potentially push the market into the next phase — the &lt;em&gt;markup phase&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qtVJV-XZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ajfxhan55jz70f84gzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qtVJV-XZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ajfxhan55jz70f84gzn.png" alt="red and green sellers &amp;lt; buyers" width="700" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Markup Phase&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Commonly referred to as the &lt;em&gt;bull market phase&lt;/em&gt;, the &lt;em&gt;markup phase&lt;/em&gt; is when the market moves higher in price at an increasing rate. During the markup phase, new groups of market participants enter the market, and with that generally comes a notable increase in volume at the beginning of this phase. &lt;/p&gt;

&lt;p&gt;From a market sentiment standpoint, despite still being cautious, market participants start becoming optimistic about the outlook, as companies and press begin publishing positive headlines. &lt;/p&gt;

&lt;p&gt;The demand for an asset begins to outweigh the supply, causing prices to appreciate in value as a result. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Characteristics:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Market sentiment is dominated by optimism and excitement&lt;/li&gt;
&lt;li&gt;An up-trending price chart&lt;/li&gt;
&lt;li&gt;Increase in trading volume&lt;/li&gt;
&lt;li&gt;Favorable economic conditions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The markup phase may be a good time for new participants to enter the market, as the upward price movement is much easier to recognize. Additionally, dips or pullbacks in the markup phase are mostly considered by many as an opportunity to buy, rather than a caution signal. &lt;/p&gt;

&lt;p&gt;However, despite the overall optimism in the markup phase, assets will not necessarily increase in price. Not all assets follow the overall trend, and some may still be affected by negative news particular to them, which may cause their price to go against the general trend. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M-3knqZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yx949vsj0047w6faabmv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M-3knqZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yx949vsj0047w6faabmv.png" alt="laptop with wine and persons elbow on table" width="474" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Distribution Phase&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;At some point, after a bull run, some buyers become sellers. This is the distribution phase, where the buyers and sellers in the market are at equilibrium. &lt;/p&gt;

&lt;p&gt;On one side, there are market participants who are still looking to buy, as they have confidence that the bull market is not over. On the other side are sellers, who are looking to lock in their profits. This creates tension between the bulls and bears. While this phase of the market still sees high trading volume, asset prices generally fluctuate within a limited range until either the bulls or bears surrender.  &lt;/p&gt;

&lt;p&gt;As a result, this phase may cause the overall market sentiment to turn from optimistic to a separation between greed and fear, with the prevailing uncertainty of whether the uptrend will continue or if a bear market is coming. The fear and greed index is a common indicator used by analysts to gauge this change in overall market sentiment.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Characteristics:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Market sentiment is simultaneously coloured by overconfidence, greed, and uncertainty&lt;/li&gt;
&lt;li&gt;Low price volatility&lt;/li&gt;
&lt;li&gt;Elevated trading volume, but without an increase in price&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The distribution phase is also the first sign of weakness after a bull market. In turn, this can lead some to deduce that a further downtrend might be coming. &lt;/p&gt;

&lt;p&gt;During this time, some participants who bought an asset prior to or at the beginning of the markup phase may begin liquidating their positions in preparation for what they perceive to be an upcoming bear market, also known as the markdown phase. &lt;/p&gt;

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

&lt;h3&gt;
  
  
  &lt;strong&gt;The Markdown Phase&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;em&gt;markdown phase&lt;/em&gt;, or the &lt;em&gt;bear market&lt;/em&gt;, is the scariest phase for most market participants. It starts as soon as the supply exceeds the demand in the distribution phase, and is a period that’s fueled by fear in the market, as the outlook becomes increasingly negative. &lt;/p&gt;

&lt;p&gt;The more that participants begin fearing the upcoming state of the market, the more the selling pressure builds. In some situations, this cascading effect can send prices of an asset to levels not seen since the markup phase. &lt;/p&gt;

&lt;p&gt;From a technical perspective, the markdown phase is defined by a downtrending chart and a high volume price decline. From a market sentiment perspective, it begins when news articles turn negative, with words like &lt;em&gt;‘recession’&lt;/em&gt; in their title. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Characteristics:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Market sentiment is dominated by anxiety and panic&lt;/li&gt;
&lt;li&gt;Downtrending price chart&lt;/li&gt;
&lt;li&gt;Elevated trading volume&lt;/li&gt;
&lt;li&gt;Unfavorable economic conditions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The markdown phase is a &lt;em&gt;short seller’s dream&lt;/em&gt;, and the period where they stand to gain from the market drawdown. In this period, even good news can have trouble pulling an asset out of a downtrend, as participants adopt a cautious approach to avoid losses in the current harsh market climate. &lt;/p&gt;

&lt;p&gt;But there is light at the end of the tunnel because markdown phases don’t last forever. At the end of this phase generally comes the new crypto market cycle. What lies around the corner might be yet another markup phase. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7muPCSn9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prd3d1cifhi252t4fddn.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7muPCSn9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prd3d1cifhi252t4fddn.jpeg" alt="4 stages depicted on bar graph" width="880" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How Long is a Crypto Market Cycle?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Despite its young history, crypto has already seen several market cycles. &lt;/p&gt;

&lt;p&gt;One of Bitcoin’s first market cycles came in 2013, where, in just a few months, the asset went from US$150 in its accumulation phase to over US$1,150 at the peak of the markup phase. It eventually slumped back to US$250 in the markdown phase in early 2015.&lt;/p&gt;

&lt;p&gt;The next cycle kicked off in 2017: starting at around US$1,000 and climbing to a peak of US$19,000 by the end of the year, only to return to a low of about US$3,700 by the end of the markdown phase. &lt;/p&gt;

&lt;p&gt;In both examples, it took the asset roughly four years to complete a market cycle; hence, the conclusion that an average crypto market cycle takes four years. However, be wary when making decisions based on this data, because it is based on a very small sample set and there may be black swan events that the industry hasn’t seen.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Factors That Affect a Crypto Market Cycle&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In traditional finance, the factors that affect a market cycle are synonymous with the factors that might cause a bull or bear market.&lt;/p&gt;

&lt;p&gt;These are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Political sentiment&lt;/li&gt;
&lt;li&gt;Supply and demand&lt;/li&gt;
&lt;li&gt;Fiscal and monetary central bank policies&lt;/li&gt;
&lt;li&gt;Corporate performance data&lt;/li&gt;
&lt;li&gt;Technical indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The cryptocurrency market, however, has historically seen additional unique features:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BVEP-4wX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0kqibcpseket11exs1bj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BVEP-4wX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0kqibcpseket11exs1bj.png" alt="Bitcoin exchanging hands" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  &lt;strong&gt;Bitcoin Halving&lt;/strong&gt;
&lt;/h5&gt;

&lt;p&gt;The technological advancements behind a cryptocurrency can often become the catalyst for the start of a markup or markdown phase for the asset. For instance, the Bitcoin halving. &lt;/p&gt;

&lt;p&gt;This process involves the halving of rewards for Bitcoin miners after every 210,000 blocks. In layperson terms, it reduces the rewards for mining on the Bitcoin network, and in return, limits the supply of new Bitcoins. &lt;/p&gt;

&lt;p&gt;Because of this, if the demand remains strong, it will generally push the Bitcoin price higher due to the perceived lack of market supply. Historically, Bitcoin’s halving has always created a new markup phase, making it a good indicator in which to pay attention. &lt;/p&gt;

&lt;h5&gt;
  
  
  &lt;strong&gt;Bitcoin Correlation&lt;/strong&gt;
&lt;/h5&gt;

&lt;p&gt;It is worth noting that, regardless of the niche of a crypto asset (except stablecoins), most share a strong correlation with Bitcoin, which occupies 54% of the entire crypto market capitalization (at the time of writing). Hence, if there are no strong catalysts, the market cycles of smaller crypto assets are likely to resemble the market cycle of Bitcoin. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Social Media Influencers&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The worst of the worst or the best of the best? Depends when you got on the train.. An interesting observation of many minor cryptocurrencies is that, due to their small market cap, their prices can be affected significantly by influencers. One of the biggest influencers is Elon Musk. &lt;/p&gt;

&lt;p&gt;In February 2021, the meme coin Dogecoin (DOGE) surged over 50% immediately after Musk tweeted about it. On another occasion, after Musk was asked how many Shiba Inu coins (SHIB) he owns, to which he then replied “none,” the cryptocurrency suffered a 20% decline in market value. &lt;/p&gt;

&lt;p&gt;Although social metrics are hard to measure or predict, crypto assets have a tendency to fluctuate based on tweets or other forms of social media engagement from influential figures. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How Can Users Take Advantage of Market Cycles?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Although market cycles are fairly simple to understand, crypto assets are still a new asset class with new underlying technology. This can add multiple layers of complications when trying to ascertain where the market currently stands with regard to the crypto cycle. To add, market cycles may not always have the same patterns, and market participants typically cannot tell until looking back in retrospect. &lt;/p&gt;

&lt;p&gt;Understanding that markets are cyclical — and managing your portfolio so that it accounts for markdown phases — can help ensure that you won’t be caught off guard. As much as we’d all like our assets to only increase in price, market cycles are ultimately inevitable. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--otv7B9B7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vgk8xuposkktgkehtapt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--otv7B9B7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vgk8xuposkktgkehtapt.png" alt="man in gray suit looking swagged out" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Due Diligence and Do Your Own Research&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;I CAN NOT STRESS THIS ENOUGH!&lt;/em&gt; All examples listed in this article are for informational purposes only. You should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained herein shall constitute a solicitation, recommendation, endorsement, or offer by myself to invest, buy, or sell any crypto assets. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am not a financial advisor.&lt;br&gt;
 Returns on the buying and selling of crypto assets may be subject to tax, including capital gains tax, in your jurisdiction etc, etc, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Past performance is not a guarantee or predictor of future performance. The value of crypto assets can increase or decrease, and you could lose all or a substantial amount of your purchase price. When assessing a crypto asset, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It’s essential for you to do your research and due diligence to make the best possible judgement, as any purchases shall be &lt;strong&gt;your sole responsibility&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thanks for stopping by and I hope this helped you better understand the crypto market phases!&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>tutorial</category>
      <category>web3</category>
      <category>writing</category>
    </item>
  </channel>
</rss>
