<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: alvinscode</title>
    <description>The latest articles on DEV Community by alvinscode (@alvinscode).</description>
    <link>https://dev.to/alvinscode</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%2F1046204%2F0f929d75-b425-47ad-ba57-60300d7eb2bd.png</url>
      <title>DEV Community: alvinscode</title>
      <link>https://dev.to/alvinscode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alvinscode"/>
    <language>en</language>
    <item>
      <title>Cookies and Environment Variables</title>
      <dc:creator>alvinscode</dc:creator>
      <pubDate>Sun, 08 Oct 2023 18:11:23 +0000</pubDate>
      <link>https://dev.to/alvinscode/cookies-and-environment-variables-2jc1</link>
      <guid>https://dev.to/alvinscode/cookies-and-environment-variables-2jc1</guid>
      <description>&lt;p&gt;Paywalls were one of the most interesting things about the internet to me. How did the website know how many articles I've viewed? How does a website know how long I've spent on that particular website even though this is this first time I've opened in in a week? Websites store this type of information as &lt;code&gt;cookies&lt;/code&gt;. Cookies are a way for a server to send state information to a user, and for the user to return the information back to the server. To store state, a server will include a Set-Cookie header in an HTTP response. When a user returns to a website, the Cookie header that was received from the server previously will be accessed by the server, and the server will be free to interpret what to do with that information freely. Using Chrome's console, going under &lt;code&gt;Application -&amp;gt; Cookies&lt;/code&gt; allows the user to delete cookies, which can be used to reset the state of websites.&lt;/p&gt;

&lt;p&gt;The mystery of cookies doesn't end there, though. There is another level of encryption that can be done to cookies, and that is known as a &lt;code&gt;session&lt;/code&gt;. A signature is created for every session cookie, and attaches that signature to the cookie. This makes it so users cannot tamper with the cookie, if the cookie is messed with, because the tampering will not have the unique signature left from the server, it will ignore any changes to it and just generate a new one. &lt;/p&gt;

&lt;p&gt;So, what is a type of signature that can be used? One type of signature is known as a &lt;code&gt;secret_key&lt;/code&gt;. A &lt;code&gt;secret_key&lt;/code&gt; is used as a security mechanism to authenticate requests or services offered by websites. So, how do servers keep their keys a secret? Here are some steps that could be taken to hide a secret key:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use environment variables - secret keys are able to be stored as variables outside of a program. An example of an environment variable is:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export ENV_VARIABLE="Secret!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, 'ENV_VARIABLE' is an environment variable that has "Secret!" as it's value. Programs can then access "Secret!" by calling for 'ENV_VARIABLE' without explicitly using "Secret!".&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a &lt;code&gt;.env&lt;/code&gt; File - A &lt;code&gt;.env&lt;/code&gt; file is used to store environment variables. This file is not pushed to a repository to keep it a secret. Secret keys can be stored in this file with this format:
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Using &lt;code&gt;.gitignore&lt;/code&gt; - Adding &lt;code&gt;.env&lt;/code&gt; to a &lt;code&gt;.gitignore&lt;/code&gt; file is the method to prevent accidently publishing the secret key information anywhere.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access Environment Variables in Code - In Python, you can use the &lt;code&gt;os&lt;/code&gt; module to access environment variables. You can do it like this:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

secret_key = os.environ.get("SECRET_KEY")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Set Environment Variables in Production - In the version of an application that is uploaded, any reference to a secret key will be instead the environment variable is referencing that key.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set Environment Variables while Hosting - Most hosting services will provide a way to use environment variables when deploying applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secure the Environment Variable - Only people that are working on the project should have access to the environment variables, to prevent exploitation of your application. If a variable is compromised, you should change it as soon as you can.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Environment Variables are part of the environment that a process is run. They are accessible to any program or process running on the same computer, regardless of programming language or location in the system. They are used to store configuration settings, such as a path to a directory, system preferences, or settings needed by applications. They can be set, changed, or removed any time during the runtime of a system. This allows for them to be changed dynamically without modifying code. In addition to that, environment variables are accessed through APIs provided by programming languages, &lt;code&gt;getenv&lt;/code&gt; (C/C++), &lt;code&gt;process.env&lt;/code&gt; (Node.js), and &lt;code&gt;os.environ&lt;/code&gt; (Python) are used to retrieve their values. &lt;/p&gt;

&lt;p&gt;A real life practical environment variable would look like this:&lt;/p&gt;

&lt;p&gt;Name: &lt;code&gt;DATABASE_CONFIG&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "host": "database.example.com",
    "port": 5555,
    "username": "db_username"
    "password": "secret_password"
    "database": "appdb"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This variable stores important information such as the host address, port, database username, password, and name of the database. Environment variables like this are used in applications where sensitive information needs to be stored but also accessed outside of an application's code. The benefits of using an environment variable like this are security, flexibility, easy management, and portability. When a program needs to, it will access this variable file and extract the necessary information to   establish a secure and reliable connection to the database. Cookies, secret keys, and environment variables are some very intricate things and interesting things that make up the foundation of modern internet and computers.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Python and ORM</title>
      <dc:creator>alvinscode</dc:creator>
      <pubDate>Sun, 27 Aug 2023 11:46:32 +0000</pubDate>
      <link>https://dev.to/alvinscode/python-and-orm-4908</link>
      <guid>https://dev.to/alvinscode/python-and-orm-4908</guid>
      <description>&lt;p&gt;Python is widely used as a general purpose, high-level programming language. It was originally designed by Guido van Rossom in 1991, and developed by the Python Software Foundation. The main focus of Python at it's creation was readability, which means the cost of maintaining programs within this language will be more manageable and reliable for the long term. The reason Guido chose to develop Python because he thought that development in other languages at the time was too slow. Today, I want to talk about how what ORM is, and why it can help speed up application development.&lt;/p&gt;

&lt;p&gt;An Object-relational mapper (ORM) is a library that automates the transfer of data into database tables through objects that are used in code. They are useful because they allow developers to write Python code instead of SQL to make create, read, update, and delete data from a database. The main benefit of this is that a developer wouldn't need to switch between languages when creating an application, they can just continue in Python and I feel like that makes it a very powerful tool, as the more experience with Python a developer has, the more they can just continue using it over any other language. For example, here is an example of a Python class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    username = Column(String)
    email = Column(String)

engine = create_engine('sqlite:///users.db')
Session = sessionmaker(bind=engine)
session = Session()

new_user = User(username='john_doe', email='john@example.com')
session.add(new_user)
session.commit()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this block of Python code, an SQL database is created, and an initial user is already added. It is pretty simple to interpret, the 'users' table will have 3 columns: id, username, and email. Almost instantaneously a new user can be generated, and the ability to generate more users is readily available all a few lines. &lt;/p&gt;

&lt;p&gt;Another benefit of using Python for SQL is how many database backends it can support. This code above would only need a couple minor changes and it will be able to switch from SQLite support to MySQL or any other database backend for example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    username = Column(String)
    email = Column(String)

mysql_username = 'your_username'
mysql_password = 'your_password'
mysql_host = 'localhost'  # Change to your MySQL host
mysql_db_name = 'your_database_name'

connection_string = f'mysql+mysqlconnector://{mysql_username}:{mysql_password}@{mysql_host}/{mysql_db_name}'

engine = create_engine(connection_string)
Session = sessionmaker(bind=engine)
session = Session()

new_user = User(username='john_doe', email='john@example.com')
session.add(new_user)
session.commit()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is an example of code that serves the same purpose as above but with support for MySQL. The majority of code is the same, which goes to show how adaptable Python code really is.&lt;/p&gt;

&lt;p&gt;Another really powerful benefit of Python is relationship handling. Relationship handling in SQLAlchemy refers to how relationships are managed between tables in a database model. One record in a parent table can be associated with multiple records in a child table. This is called a one-to-many relationship. Another relationship two tables can have with each other is called a many-to-many relationship, and that is when both the parent and child table can share multiple records in the other table. Although managing multiple different records and the possibility of duplicates in those records sounds like it can get messy and confusing fast, SQLAlchemy can handle these relationships with a few lines of code. For example, without Python, you would need to create two separate tables with their own primary keys and other fields. Then, create a middle table to link both main tables together, this table contains keys that reference both primary keys of the two main tables. Afterwards, you would need to manually establish the relationships between the middle table and both main tables. Whenever a connection needs to be made from the two main tables, a third record needs to be created from the middle table to connect them. With the possibility of duplicate and multiple entries, visualizing this process can get very messy and confusing pretty quickly. Thankfully, this process can be automated with a few lines a Python code, here is an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;association_table = Table(
    'user_roles', Base.metadata,
    Column('user_id', Integer, ForeignKey('users.id')),
    Column('role_id', Integer, ForeignKey('roles.id'))
)

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    username = Column(String)
    email = Column(String)
    roles = relationship('Role', secondary=association_table, back_populates='users')

class Role(Base):
    __tablename__ = 'roles'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    users = relationship('User', secondary=association_table, back_populates='roles')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, a user is able to have many roles, and a role can have many users. This code will establish the relationships between the two tables without needing to manually enter in anything. The keys between the tables will be established. This process without a ORM will definitely be more messy, time consuming, and could potentially reach a point where it'll be too complex to work with. In conclusion, Python's purpose is more readability and simplicity, and even with SQL it provides just that. Python makes SQL easier to manage and navigate.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is React?</title>
      <dc:creator>alvinscode</dc:creator>
      <pubDate>Sun, 02 Jul 2023 14:01:24 +0000</pubDate>
      <link>https://dev.to/alvinscode/what-is-react-57bf</link>
      <guid>https://dev.to/alvinscode/what-is-react-57bf</guid>
      <description>&lt;p&gt;Today, I want to talk about React, what it is and what it can do. React is a front-end framework that will allow developers to build large applications quickly and seamlessly. React is built entirely from JavaScript, with a structured and organized syntax called JSX. JSX looks similar to HTML, but instead looks more simplified and is separated into components, and used to build applications in sections. The ability to split code in sections allows for applications to be more organized, easy to read, and reusable.&lt;/p&gt;

&lt;p&gt;An example of App in React would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function App() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;NavBar /&amp;gt;
      &amp;lt;SongMenu&amp;gt;
        &amp;lt;SongResult result={result1} /&amp;gt;
        &amp;lt;SongResult result={result2} /&amp;gt;
      &amp;lt;/SongMenu&amp;gt;
      &amp;lt;SongRecommendation /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, NavBar, SongMenu, SongResult, and SongRecommendation are all separate components. These components would each have their own sections, which would allow for better organization. In this example, the SongResult component is able to be used twice for a different result, because the component was created in a way that it could be reused. This is what makes React so good, the ability to keep things short, simple, and reusable while also allowing other parts of the code to be incredibly intricate. &lt;/p&gt;

&lt;p&gt;Another way that React is so powerful it's ability to share and download code to use alongside it's own. To help organize code, React uses JavaScript packages. This package manager is called &lt;strong&gt;npm&lt;/strong&gt;. Huge reusable libraries of code are available as npm packages, which allows web applications to be based off the same structure or data. This is very neat because you could use the same packages of code to create completely different things. The ability to build a package using others allows the coding process to become ever growing and innovative.&lt;/p&gt;

&lt;p&gt;The way React organizes the packages is through a file called &lt;code&gt;package.json&lt;/code&gt;, this file contains a list of &lt;em&gt;dependencies&lt;/em&gt;. These dependencies are what is used to run your application, and would be required to download if someone else was to access your application. In order to do this, you would run this command, &lt;code&gt;npm install&lt;/code&gt;. This would prompt the package manager, npm, to grab all the dependencies from the package file, and install them into your directory. Thinking about the amount of time that the world has saved from the accessibility and efficiency of this is mind-numbing.&lt;/p&gt;

&lt;p&gt;Some very useful code that is built-in React's internal code is called &lt;code&gt;useState&lt;/code&gt;. It is a special function called a &lt;strong&gt;React Hook&lt;/strong&gt; which lets us hook into React's internal state of a component.&lt;/p&gt;

&lt;p&gt;To import &lt;code&gt;useState&lt;/code&gt;'s functionality, you would type this at the start of a component:&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, { useState } from "react";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then it would be implemented like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Counter() {
  const [count, setCount] = useState(0);

  function increment() {
    setCount(count + 1);
  }

  return &amp;lt;button onClick={increment}&amp;gt;{count}&amp;lt;/button&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I'll go in depth with what exactly is happening in this code now. The first line of the &lt;code&gt;Counter&lt;/code&gt; function is setting an original value of count (which is 0), and setting a function, &lt;code&gt;setCount&lt;/code&gt; to be the "setter" function, which pretty much just means when it is called, it will re-render the component. Then, the second function being run inside the &lt;code&gt;Counter&lt;/code&gt; function is &lt;code&gt;increment&lt;/code&gt;. In the increment function, &lt;code&gt;setCount&lt;/code&gt; is called, so the page will re-render, but it will re-render when count is added by 1. Finally, the button on the bottom is set to run the &lt;code&gt;increment&lt;/code&gt; function on every click, while displaying the count on the button text. Clicking this button ultimately increases the count by 1, which in turn re-renders the page with the new count on the button. The &lt;code&gt;useState&lt;/code&gt; function allows React to work with dynamic data. This is one of the most powerful tools to use to make code both reusable and interactive. There are many more tools involved in React but I will leave it at this for now.&lt;/p&gt;

&lt;p&gt;Another useful tool in React is the ability to use &lt;code&gt;props&lt;/code&gt;. Props are used to turn components into dynamic templates. &lt;code&gt;props&lt;/code&gt; are so powerful because they allow the data to be passed down from a &lt;em&gt;parent&lt;/em&gt; component to a &lt;em&gt;child&lt;/em&gt; component. This is pretty much the way puzzle pieces, or "components" are connected to make a fully functional application. Data is passed through component to component to make dynamic interactions within the application, ultimately allowing the developer to create smarter and bigger applications.&lt;/p&gt;

&lt;p&gt;In conclusion, React as a framework is very modular and reusable. It helps us focus on organization and presentation instead of solely on functionality. Components and &lt;strong&gt;React Hooks&lt;/strong&gt; allow us to separate our code an structure complex applications, while making them interactive.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Retrieve Data from an API</title>
      <dc:creator>alvinscode</dc:creator>
      <pubDate>Sat, 06 May 2023 11:14:19 +0000</pubDate>
      <link>https://dev.to/alvinscode/how-to-retrieve-data-from-an-api-3dbp</link>
      <guid>https://dev.to/alvinscode/how-to-retrieve-data-from-an-api-3dbp</guid>
      <description>&lt;p&gt;Hello everybody, today I would like to talk about one of the most, if not the most important (in my opinion) thing about web programming, and that thing is communication with a server. The most popular websites today use some form of process to request data and update the webpage without reloading, and that process is called &lt;em&gt;AJAX&lt;/em&gt;, or "asynchronous JavaScript and XML". An example of &lt;em&gt;AJAX&lt;/em&gt; would be like Instagram requesting data from their server and receiving data about the hottest new posts, then sending you a prompt to "Click to View New Posts" so you can view the posts without you having to click refresh to check for the new posts yourself. This makes it so much easier to browse and view new content on the internet because the page stays updated itself and you don't have to spend any time loading or reloading it. &lt;/p&gt;

&lt;p&gt;One way to request data from a server using JavaScript that I've learned so far is: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;fetch()&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;This is a function that retrieves data, and is then paired with &lt;code&gt;then()&lt;/code&gt; to use the data, this is how you would use &lt;code&gt;fetch()&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch('url')
  .then(response =&amp;gt; response.json())
  .then(data =&amp;gt; {
    console.log(data);
    \\ This logs the retrieved data into the console.
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's walk through a very basic way of using &lt;code&gt;fetch()&lt;/code&gt; together one time. First, let's go to &lt;a href="https://mixedanalytics.com/blog/list-actually-free-open-no-auth-needed-apis/"&gt;Mixed Analytics&lt;/a&gt; to view their list of free and public API's (Application Programming Interface). An API basically allows you to send and receive data from a server. For this walkthrough, I'm going to use #3 on the list, Nager.Date for their API on public holidays. Now, for this next step, you can do this from almost every website but for this example let's do it here. Here's what we need to do to get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Right click on this page and click "Inspect"&lt;/li&gt;
&lt;li&gt;Click on "Console" on the new window at the top right&lt;/li&gt;
&lt;li&gt;Type this into the console to clear all the of messages: &lt;code&gt;console.clear()&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With a clear console we are now ready to fetch data from our API. Next, we want to retrieve and view data from our API, and we would do it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch('https://date.nager.at/api/v2/publicholidays/2020/US')
  .then(response =&amp;gt; response.json())
  .then(data =&amp;gt; {
    console.log(data);
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy and paste this into the console. You will now see the data that has been logged in the form of an array. This array consists of all the public holidays in the US according to the data from the API. But, let's do more than just view the data, let's use it. Look at this updated code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch('https://date.nager.at/api/v2/publicholidays/2020/US')
  .then(response =&amp;gt; response.json())
  .then(data =&amp;gt; {
    console.log(data);
    console.log(`There are ${data.length} public holidays in the US.`);
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I've added another line to be logged in the console, but this time the length of the array of data is being called, which in this case is the total amount of holidays retrieved from the data. Finally, if you paste this into the console you will see that it will return a message saying "There are 12 public holidays in the US".&lt;/p&gt;

&lt;p&gt;There are four main actions an API can take, and those are:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GET - request data from server&lt;br&gt;
POST - send changes from user to server&lt;br&gt;
PUT - revises or adds to existing information on the server&lt;br&gt;
DELETE - deletes existing data from the server&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The combination of these four actions make up some of the most powerful communication tools on the internet. Whether it comes to checking the weather, booking a flight, or choosing an alternate payment method (like PayPal or Apple Pay), an API will have to be used to communicate data from the user to the server. A server has stored all the data that you need to access and you (the user) will send a request to communicate with it, which will then allow you to view what the weather is like in your area, view the time and cost of flights, and also allow you to continue to pay and ship a product to your doorstep using a third party payment method.&lt;/p&gt;

&lt;p&gt;Our example of fetching data from an API is a relatively small request of data. An API is capable of sending an enormous amount of data that can be too much to process for the average internet user at times. Being able to write code to navigate an API and the ability to break down a huge amount of data and make it user-friendly is almost like building a virtual bridge to allow people around the world to cross over and access a new area of the internet.&lt;/p&gt;

&lt;p&gt;In conclusion, using JavaScript to retrieve and use data is a very powerful tool. We can fetch data at the click of a button and have new information or amusing content displayed to us immediately. This tool makes the internet a much more captivating space, and I hope I helped you understand a bit more of how it actually works behind the scenes with this post. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
