<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Christine Belzie - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Christine Belzie - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 29 May 2026 23:03:25 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/author/ChrissyCodes/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Use Git Cherry Pick and Avoid Duplicate Commits ]]>
                </title>
                <description>
                    <![CDATA[ Imagine a beautiful cherry tree full of sweet, red, round fruit hanging on lush, glistening branches. But imagine if those cherries grew so quickly that the branches started bending, overlapping, and breaking...sounds chaotic right?  This is what can... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/git-cherry-pick-avoid-duplicate-commits/</link>
                <guid isPermaLink="false">66b904fb834ca73e4f3ab3b1</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Wed, 03 Jan 2024 21:33:29 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/12/blog-cover-for-git-cherry-pick.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Imagine a beautiful cherry tree full of sweet, red, round fruit hanging on lush, glistening branches. But imagine if those cherries grew so quickly that the branches started bending, overlapping, and breaking...sounds chaotic right? </p>
<p>This is what can happen if you don't use Git's <code>cherry-pick</code> command properly in open source projects. Similarly to hand-picking the finest cherries and putting them in a basket, this command allows you to move individual commits from one branch into another.</p>
<p>It great for when you're collaborating with someone else on an open source project because it saves you the trouble of having to merge entire branches. </p>
<p>Now as powerful and awesome as the Git <code>cherry-pick</code> command is, it can create duplicate commits, making it difficult for open source maintainers to update their project's codebase or solve bugs. </p>
<p>Scared? Fear not, my fellow open source contributor. I have some strategies that you can use to prevent duplicates when cherry-picking commits.</p>
<h2 id="heading-strategy-1-use-the-no-commit-option">Strategy 1: Use the <code>--no commit</code> Option</h2>
<p>This option is one of the most common methods to prevent duplicate commits. It copies the changes from a branch but it won’t create a new commit, which can be very helpful if you’re working on a contribution with another person. Let’s see it in action.</p>
<h3 id="heading-step-1-pick-your-cherry-commit">Step 1: Pick your Cherry (commit)</h3>
<p>After you pick the open source project you and your partner are working on, go to their fork and click on the <strong>Commits</strong> tab. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/12/commits-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Screenshot of a Pull Request's tab. The Commits section is highlighted with a orange oval</em></p>
<p>From there, pick the commit that you want to put on your Pull Request by clicking on its SHA number. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/12/commit-sha.png" alt="Image" width="600" height="400" loading="lazy">
<em>Screenshot of commit history. The SHA number is shown on the right, highlighted in a green oval.</em></p>
<p>As you can see in the image, the SHA number is a unique id that contains the following information about a commit:</p>
<ul>
<li>The type of changes made</li>
<li>When the changes were made</li>
<li>The contributor who made the changes</li>
</ul>
<p>After that, paste your chosen commit's SHA number in the following command:</p>
<pre><code class="lang-git">git cherry-pick --no-commit &lt;commit SHA number&gt;
</code></pre>
<h3 id="heading-step-2-check-for-spots-and-plant">Step 2: Check for Spots and Plant</h3>
<p>After running the <code>--no-commit</code> command, now it's time to inspect your picked commit. You can do this by doing the following commands:</p>
<ul>
<li><code>git diff</code> :  This command shows you all the lines added, deleted, or modified by the cherry-picked commit. Here’s how it would look if someone was making a translation contribution:</li>
</ul>
<pre><code class="lang-git">git diff 2f410g1
diff --git a/01-intro.md b/01-intro.md
index 1234567890123456789012345678901234567890..0000000000000000000000000000000000000000
--- a/01-intro.md
+++ b/01-intro.md
@@ -1,3 +1,4 @@
- Hello, everyone!
+ Bonjour, tout moun!
- Welcome to our course!
+ [Placeholder for French intro]
+ Bonjour, amis!
</code></pre>
<ul>
<li><code>git show commit SHA</code> : With this version of the <code>git show</code> command, you'll see the name of the contributor, date of their commit, their email, and the list of changes they have made. If we were to take the SHA number from the previous example and used this command, here's how the output would look:</li>
</ul>
<pre><code class="lang-git">git show 2f410g1 (Frenchify intro and materials!)
Author: John (johnseed@example.com)
Date:   2023-12-18 18:07:15 -0500

Bonjour, le monde!  Time to add French translations to our intro and course materials.

* **01-intro.md:** Warm welcome and placeholder for the French translation.
* **materials.md:** Module descriptions replaced with [placeholders] for French versions.

... and other exciting French changes in 4 more files!
</code></pre>
<p>Now that you've picked your method of inspection, go to your files to make the changes and create a commit message as shown below.</p>
<pre><code class="lang-git">git commit -m &lt;"message"&gt;
</code></pre>
<p>From there, push the changes into your Pull Request's branch.</p>
<p>Now, <code>—no—commit</code> is not the only strategy you can use to prevent duplicate commits. Let’s look another one.</p>
<h2 id="heading-strategy-2-make-some-changes-with-edit">Strategy 2: Make Some Changes With <code>--edit</code></h2>
<p>If you know the edits that you want to make in the commit you picked, then the <code>--edit</code> command is for you. Here it is in action:</p>
<pre><code class="lang-git">git cherry-pick -e 2f450g1
diff --git a/docs/content/pets.md b/docs/content/pets.md
index abcdef12..34567890 100644
--- a/docs/content/pets.md
+++ a/docs/content/pets.md
@@ -1,4 +1,5 @@
 # Pets

 This is a file about pets.
+New content added about pets.

 ## Different types of pets
# Continue cherry picking process
git cherry-pick --continue
# Change commit message
git commit -m "feat: add section"
</code></pre>
<p>As shown in the code snippet, we initiated an interactive cherry-pick of a commit containing changes to the <code>pets.md</code> file. During the cherry-picking process, you may make direct edits to the file, including adding new content and changing the heading. From there, we created a new commit message and pushed the changes to our branch. </p>
<h2 id="heading-start-picking">Start Picking</h2>
<p>There it is folks – strategies to help you avoid duplicate commits when cherry-picking. </p>
<p>Using this command effectively not only makes it easier for you to work on collaborative contributions, but also keeps your commit history clean. </p>
<p>If you want to learn more about cherry-picking commits and want to put those skills to use, check out <a target="_blank" href="https://www.atlassian.com/git/tutorials/cherry-pick?source=post_page-----708ad5950460--------------------------------">this guide by Atlassian</a> and this <a target="_blank" href="https://intro.opensauced.pizza/#/">course by OpenSauced</a>. Also, check out <a target="_blank" href="https://www.biodrop.io/CBID2">BioDrop</a> to view my other technical content and connect with me.</p>
<h3 id="heading-credits">Credits</h3>
<p>Image of commit history from <em><a target="_blank" href="https://andrewlock.net/how-to-fix-the-order-of-commits-in-github-pull-requests/">How to fix the order of commits in GitHub Pull Requests</a></em> by Andrew Lock </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Write Commit Messages that Project Maintainers Will Appreciate ]]>
                </title>
                <description>
                    <![CDATA[ You know the saying “If you keep looking at the past, you’ll miss the future”? Well in the context of coding and working with Git, that’s not the case.  Your commit history plays a huge role in the future of the open source projects that you contribu... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-write-commit-messages-maintainers-will-like/</link>
                <guid isPermaLink="false">66b90504941d2f900bad52b8</guid>
                
                    <category>
                        <![CDATA[ best practices ]]>
                    </category>
                
                    <category>
                        <![CDATA[ community ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Sat, 11 Nov 2023 01:16:19 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/11/Commit-message-post.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>You know the saying “If you keep looking at the past, you’ll miss the future”? Well in the context of coding and working with Git, that’s not the case. </p>
<p>Your commit history plays a huge role in the future of the open source projects that you contribute to, and commit messages are key to making this possible.  </p>
<p>What are commit messages, you may ask? These brief explanations describe the changes you made to the codebase, and they're very useful if things like bugs occur. </p>
<p>Commit messages are also great checkpoints if you’re getting back to an open source project that you have not contributed to for a while and need to remember the changes you’ve made so far. </p>
<p>Feeling intimidated? No worries. In this quick guide, you’ll learn how to write effective commit messages.</p>
<h2 id="heading-what-makes-a-bad-commit-message">What Makes a Bad Commit Message?</h2>
<p>Like most things in life, we have to learn about what makes an unhelpful commit message before we learn how to write a good one. </p>
<p>Let's look at one example:</p>
<pre><code class="lang-git">mention information
</code></pre>
<p>Even though this commit message describes the change, it does not explain <strong>why</strong> the change was made, which can leave maintainers feeling confused. </p>
<p>It also does not state <strong>what</strong> kind of information was mentioned. Maintainers might be wondering "Was is it a missing code snippet?  A link to a specific section?". These are things that you want to avoid when writing commit messages. </p>
<p>Now that we’ve seen the bad, let’s learn how to turn this commit message into something that maintainers can understand.</p>
<h2 id="heading-characteristics-of-a-good-commit-message">Characteristics of a Good Commit Message</h2>
<p>Remember how I said the earlier commit message was a bit vague? Well, here’s how we can fix it:</p>
<h3 id="heading-step-1-mention-the-type">Step 1 – Mention the type</h3>
<p>This is where you specify the kind of change you’re making to the codebase. This makes it easier for maintainers and other contributors to gain a better understanding of your contribution. </p>
<p>Here’s how this step would look with the sample commit:</p>
<pre><code class="lang-git">feat: mention information
</code></pre>
<p>Since the sample commit seems to focus on adding some text, I decided to go with  <code>feat</code> because it often is used to describe contributions where information or a new feature is added to an open source project.  </p>
<p>Here are some other common abbreviations that are used to categorize commits:</p>
<ul>
<li><code>docs</code>: This is commonly used to describe revisions to current versions of or updates to an open source project's documentation.</li>
<li><code>fix</code>: This is typically used for fixing bugs in the project's codebase or small grammar errors in the project's documentation. </li>
<li><code>chore</code>: This is often used for a contribution that make take longer that usual to finish. </li>
</ul>
<h3 id="heading-step-2-summarize-the-change">Step 2 – Summarize the change</h3>
<p>This is where you give an overview of the change and how you did it. This helps maintainers understand how your contribution solves the problem you’re trying to solve. </p>
<p>Now it’s important to note that GitHub has a 72-character limit so you'll need to keep your description within that range. Let's look back at our example:</p>
<pre><code class="lang-git">feat: mention information
</code></pre>
<p>Remember how I said that it does not specify the typo that was fixed? Well after doing some thinking, I decided to write this:</p>
<pre><code class="lang-git">feat: mentioning Christine Peterson in the course's intro
</code></pre>
<p>That's so much better! :) Unlike before, this version of the sample commit mentions the kind of information and specifies where it was added in the project. This helps maintainers gain a better understanding of why this contribution was made. </p>
<h3 id="heading-optional-step-add-a-description">Optional Step – Add a description</h3>
<p>This is where you describe the change in more detail by mentioning why you made it. While this step is optional, consider doing this so that maintainers can get an idea of how your contribution enhances or solves an issue in their project.  </p>
<p>Here’s how it would look with our sample:</p>
<pre><code class="lang-git">I decided to add this information so participants get accurate information.
</code></pre>
<p>When doing the description, I decided to keep the describe short yet specific. That way, it would help maintainers understand why I made this contribution and how it enhances the project. </p>
<p>Now let's put these parts altogether:</p>
<pre><code class="lang-git">feat: mentioning Christine Peterson in the course's intro

I decided to add this information so participants can get accurate information
</code></pre>
<p>Now in comparison to the original example, this commit message is more effective because it does the following:</p>
<ul>
<li>Specify the type commit being made </li>
<li>Describes how the contribution enhances the project</li>
<li>Summarizes the change </li>
</ul>
<p>Looks great right? 😉</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>Whether you’re a new contributor or a seasoned veteran, writing commit messages effectively is crucial to communicating your contributions to maintainers. </p>
<p>If you’re looking for more ways to step up your commit message writing skills, check out <a target="_blank" href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a>. Also, follow me on <a target="_blank" href="https://www.biodrop.io/CBID2">BioDrop</a> to check out my socials and other technical articles.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Find Good First Issues On GitHub ]]>
                </title>
                <description>
                    <![CDATA[ So you may have been hearing about OpenSauced’s 100 Days of Open Source challenge on X (Twitter) or from your friends in an online coding group. And maybe you want to join in but don’t know where to start.  Ooh, I know the feeling. When I first joine... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-find-good-first-issues-on-github/</link>
                <guid isPermaLink="false">66b905012fd266308aa6ff6c</guid>
                
                    <category>
                        <![CDATA[ GitHub ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Tue, 08 Aug 2023 23:31:27 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/08/Finding-Good-First-Issues--1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>So you may have been hearing about <a target="_blank" href="https://docs.opensauced.pizza/community/100-days-of-oss/">OpenSauced’s 100 Days of Open Source challenge</a> on X (Twitter) or from your friends in an online coding group. And maybe you want to join in but don’t know where to start. </p>
<p>Ooh, I know the feeling. When I first joined the open source community, I was so overwhelmed with the plethora of projects out there, as well as the expertise that all the other contributors seemed to have. </p>
<p>It felt like I was a small fish taking its first swim in the big ocean. But eventually, those feelings went away after discovering this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/good-first-issue-logo.png" alt="In a purple oval, the phrase &quot;good first issue&quot; is written in light purple font and lowercase letters" width="600" height="400" loading="lazy">
<em>The "Good first issue" label. I'd like to call this the guiding light of GitHub repos</em></p>
<p>Remember how Peter Pan told Wendy that the second star to the right will take her to Neverland? Well, this guide will show you how to harness the power of the good first issues label so you can end up in digital Neverland.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/flying-to-neverland.gif" alt=" Wendy and her brothers jump off the pointer of Big Ben and follow Peter to Neverland" width="600" height="400" loading="lazy">
<em>Fly kiddies fly!</em></p>
<h2 id="heading-what-is-a-good-first-issue">What is a Good First Issue?</h2>
<p>Before you go to GitHub and plow through open source repositories for good first issues, let’s define what it is. </p>
<p>A good first issue is a label that GitHub-hosted open source projects use. It describes issues that are reserved for people who are new to open source in general or those who are new to a particular project. </p>
<p>Think of this label as the bat signal James Gordon often uses to let Batman know that help is needed in certain parts of Gotham City. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/bat-signal-.gif" alt="Batman is staring the at the bat signal, a white light with a bat symbol appearing." width="600" height="400" loading="lazy">
<em>The bat signal</em></p>
<p>Now, knowing what good first issue labels are is one thing, but finding them is another story.</p>
<h2 id="heading-how-to-find-good-first-issues-on-github">How to Find Good First Issues on GitHub</h2>
<p>If you already know the project that you want to contribute to, you can do the following:</p>
<p>First, click on the <strong>Issues</strong> tab:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Step-1-of-finding-a-good-first-issue.png" alt="In a screenshot of Codecademy's Docs repo in dark mode, an orange oval encompasses the Issues tab. " width="600" height="400" loading="lazy">
<em>Screenshot showing the issues tab in GitHub's interface</em></p>
<p>Then click on the <strong>Label</strong> filter:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Step-2-of-finding-a-good-first-issue.png" alt="This screenshot shows the label filter dropdown menu" width="600" height="400" loading="lazy">
<em>Screenshot showing the label filter displaying various labels</em></p>
<p>Now you can pick the <strong>good first issue</strong> label:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Step-three-of-finding-a-good-first-issue.png" alt="This screenshot shows the label &quot;good first issue&quot; being surrounded by a blue oval in the filter dropdown menu." width="600" height="400" loading="lazy">
<em>Screenshot showing the "good first issue" label</em></p>
<p>And there you go! Anything that the project has labeled "good first issue" will come up.</p>
<h3 id="heading-what-if-you-dont-have-a-project-in-mind">What if you don't have a project in mind?</h3>
<p>If you’re not sure which repo you want to contribute to, there’s also awesome curated lists of open source projects that have raised good first issues on GitHub.</p>
<p>You can access it by going to the navigation bar and clicking on <strong>Explore</strong>:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Step-1-of-method-2.png" alt="In this screenshot, you see the Github navigation bar with the Explore column being circled by a blue oval." width="600" height="400" loading="lazy">
<em>Click on "explore" in the left navigation menu on GitHub</em></p>
<p>Then type “good first issues” in the search bar:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Step-2-of-method-2.png" alt="This screenshot zeros in on GitHub's search engine. There, you see the phrase &quot;good first issues&quot; in the textbox." width="600" height="400" loading="lazy">
<em>Searching for "good first issues"</em></p>
<p>Go to the <strong>Filter By</strong> section and click on <strong>Topics</strong>:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/Step-3-of-method-2.png" alt="In a screenshot of the GitHub navigation bar, the Topics tab is circled. It also shows a list of repos that curate good first issues." width="600" height="400" loading="lazy">
<em>Filter by "Topics"</em></p>
<p>Now before you go and hunt for good first issues, there’s just one more piece of advice that I want to share with you.</p>
<h2 id="heading-how-to-decide-what-issues-to-work-on">How to Decide What Issues to Work on</h2>
<p>As cliché as this sounds, sometimes the simplest thing is actually the hardest. There are some issues that have the good first issue label that are actually pretty difficult to solve once you've started working on them. </p>
<p>I remember when I first contributed to the <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web">MDN Web Doc</a>s, I had to add the <code>&lt;section&gt;</code> tag to certain parts of the docs. On the surface, it seemed pretty easy, but then I found that it took me a while to find the files that needed those tags.   </p>
<p>To avoid making the mistake I made, consider asking yourself the following questions before you pick a good first issue:</p>
<ol>
<li>Does this issue truly suit your interest(s)?</li>
<li>Do you have the skills to solve the problem?</li>
<li>Has it been assigned to someone else already?</li>
</ol>
<p>By asking yourself these questions, you’ll be able to find a truly good first issue for you.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>There you have it folks! Your guide to finding good first issues. 😊  Starting your open source journey can be very exciting and intimidating. But by searching for good first issues and critically analyzing them, you should have a great experience. </p>
<p>Now, go forth and fly! 😊</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/08/cat-flying.gif" alt="A male-presenting individual lifts their cat and sends it to space" width="600" height="400" loading="lazy"></p>
<h3 id="heading-credits">Credits</h3>
<ul>
<li>Good first issue label image by <a target="_blank" href="https://github.com/">GitHub</a> </li>
<li>Peter Pan GIF by <a target="_blank" href="https://media.giphy.com/media/bBBUpMui4Q1xu/giphy.gif">Disney</a></li>
<li>Tim Burton Film GIF by <a target="_blank" href="https://media.giphy.com/media/l396BoOTIFem9xqQU/giphy.gif">Tech Noir</a></li>
</ul>
<p># </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Build Error-Free HTML Forms ]]>
                </title>
                <description>
                    <![CDATA[ After taking some coding courses, I decided that it was time to put my knowledge to good use and do a coding project.  Like most newbies, I went to Google to find some inspiration. As I scrolled through the internet, I stumbled upon Skillcrush’s list... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-build-error-free-html-forms/</link>
                <guid isPermaLink="false">66b904fe941d2f900bad52b6</guid>
                
                    <category>
                        <![CDATA[ error ]]>
                    </category>
                
                    <category>
                        <![CDATA[ forms ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Mon, 17 Jul 2023 18:47:31 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/07/FCC-Blog-Cover-4.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>After taking some coding courses, I decided that it was time to put my knowledge to good use and do a coding project. </p>
<p>Like most newbies, I went to Google to find some inspiration. As I scrolled through the internet, I stumbled upon <a target="_blank" href="https://skillcrush.com/blog/html-css-projects/">Skillcrush’s list of HTML and CSS projects for beginners</a>. </p>
<p>Number 5 piqued my interest, so I googled some images on how HTML forms should look. I thought “Oh I can do this. This looks easy!” But this project turned out to be a bit harder than I thought. </p>
<p>In this article, I will show you three things I have learned in surviving, I mean making HTML forms error-free. Let’s get started! 😀</p>
<h2 id="heading-tip-1-make-sure-the-labels-and-inputs-match">Tip #1: Make Sure the Labels and Inputs Match.</h2>
<p>When I first started creating HTML forms, I would often use the following methods for creating email input fields:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text"</span>&gt;</span> Your Email<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"text"</span>&gt;</span>
</code></pre>
<p>I would often use <code>text</code> as the label and id's attribute because I thought it was the correct method. </p>
<p>This all changed when I started using <a target="_blank" href="https://wave.webaim.org/extension/">WAVE’s accessibility checker</a> to learn how to make my code more accessible. When I ran my form through the checker, it pointed out that the email input did not have a properly associated label, and that can cause screen readers to have difficulty presenting it to users with disabilities.</p>
<p>So, I googled a few sources and found <a target="_blank" href="https://css-tricks.com/html-inputs-and-labels-a-love-story/">”HTML Inputs and Labels: A Love Story” by Amber Wilson</a>. Through reading this article, I learned that it’s best to use specific names in the <code>id</code> attribute. </p>
<p>With a new feeling of confidence, I started using this approach. Here’s an example:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/MWPPmBG" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>In the code snippet above, I used <code>email</code> as the label and input’s <code>id</code> attribute. When I ran it through the accessibility checker, there were no red Xs.  </p>
<p>While this victory was sweet, I wanted to learn more ways to ensure that labels and inputs were accessible. So I went to Google and found this <a target="_blank" href="https://www.w3schools.com/html/html_forms_attributes.asp">HTML Forms attributes article</a>. Through reading, I learned that you can add other attributes like <code>placeholder</code>, which demonstrates how the user should present their contact information.  </p>
<p>Through these experiences, I realized that creating harmonious labels and inputs for a form is like constructing a sandwich. You want to make sure that your flavors work well together and use the best features of your oven (or whatever appliance you use) to make your sandwich nice and toasty. </p>
<p>Now before we start getting hungry, let’s move on to my next tip. :) </p>
<h2 id="heading-tip-2-be-more-semantic-when-creating-a-button"><strong>Tip #2:  Be More Semantic When Creating a Button</strong></h2>
<p>Formatting your form’s buttons is crucial to the efficiency of your HTML form. Buttons are the main way that your user’s information is sent to your desired destination. </p>
<p>When I first started creating HTML forms, I used to create buttons like this:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;</span>
</code></pre>
<p>Like the labels and inputs, I would get a red x on WAVE’s accessibility checker. In the results, it mentioned that a <code>value</code> attribute was missing, which makes it difficult for the screen reader to detect the button. </p>
<p>With that in mind, I decided to do what most beginners do when creating this feature: </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">button</span>&gt;</span> Submit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
</code></pre>
<p>When I ran the code in the WAVE accessibility checker again, it passed a few tests. But something inside me told me that my previous solution was ok too and that I just needed to find a way to add a <code>value</code> attribute to it.  </p>
<p>With a new thirst for knowledge, I went to Google and found this <a target="_blank" href="https://www.w3.org/WAI/tutorials/forms/labels/#labeling-buttons">article on how to create accessible form components</a>. In the section about buttons, they recommend using the following methods to make this element semantic:   </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"Submit"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"Submit"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"Submit"</span>&gt;</span>Submit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
</code></pre>
<p>When I ran the first snippet into the accessibility checker, I received no red Xs. The same result occurred when I ran the second code snippet through the accessibility checker.  </p>
<p>At first, I didn't know which one to pick because both approaches made the form accessible. But something inside me told to go with what I truly wanted. So, I took a deep breath and chose the following code line:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/Rwedeme" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>I decided to go with the second code snippet because it's more explicitly labeled, which makes it easier for screen readers to scan. It's also easier to remember, and is the method that I often use for creating buttons. </p>
<p>Think of it as deciding to go with the brand of bread you’ve always used for your sandwiches instead of picking a different one. As cliché as this saying sounds, sometimes simplicity is best.  </p>
<p>Before you start getting hungry again, there is just one more suggestion for making your HTML forms error-free.</p>
<h2 id="heading-tip-3-pick-the-best-css-framework-based-on-your-needs"><strong>Tip #3:  Pick the Best CSS Framework Based on Your Needs</strong></h2>
<p>When I first started creating the style for my forms, I used to force myself to use CSS frameworks like Flexbox. At the time, my feelings of imposter syndrome were at an all-time high due to seeing other people creating great forms with those frameworks. I felt that if I started using them too, I would get those same designs. </p>
<p>At first, I was happy with using Flexbox as it made things like centering content easier as shown in the snippet below:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/mdzoQrg" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>Unfortunately, I still wasn't satisfied in the end. I found that the design did not come to fruition as I envisioned.  </p>
<p>To combat this feeling, I went to Google to find something to help me solve my dilemma. When I was about to give up, I stumbled upon the article, <a target="_blank" href="https://blog.logrocket.com/how-to-style-forms-with-css-a-beginners-guide/">“How to style forms with CSS: A beginner’s guide” by Supun Kavinda</a>.</p>
<p>My heart leaped with joy when it pointed out that you can use vanilla CSS to create beautiful designs. For example, to make the texts’ input fields look more presentable, I could do this:</p>
<pre><code class="lang-css"><span class="hljs-selector-tag">input</span><span class="hljs-selector-attr">[type=text]</span>{
<span class="hljs-attribute">padding</span>: <span class="hljs-number">10px</span>;
}
</code></pre>
<p>With newfound confidence, I gave vanilla CSS another chance, and I can honestly say I was so happy with this decision. Here’s the final result:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/NWOOQXQ" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>I wanted to keep my design simple, so I used basic elements like <code>text-align</code>  property to center my form's content. </p>
<p>If I had to pick something that exemplifies this experience, it would be like a sandwich cut into two triangle slices. Simple yet effective.  </p>
<p>Overall, sometimes, it’s best to go back to the basics before moving on to something more challenging. </p>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>There it is folks, my three tips on how to make your HTML forms error-free. </p>
<p>I know creating HTML forms can be frightening in the beginning. But with these tips, confidence, and some imagination, you can HTML forms that wow your viewers. Now go forth and be great! :)   </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Improve Your Technical Writing Skills by Contributing to Open Source Projects ]]>
                </title>
                <description>
                    <![CDATA[ Have you been writing your tech blog posts on Hashnode or Dev.to, but you're itching to try something new? If so, there is something that can quench your thirst: contributing to open source.  I know, I know, you’ve probably heard “Contribute to open ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/improve-tech-writing-skills-by-contributing-to-open-source/</link>
                <guid isPermaLink="false">66b905078ce2b320a7a31593</guid>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Mon, 12 Jun 2023 18:15:16 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/06/Blog-post-cover-for-FCC---3.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Have you been writing your tech blog posts on <a target="_blank" href="https://hashnode.com/about">Hashnode</a> or <a target="_blank" href="http://dev.to/">Dev.to</a>, but you're itching to try something new? If so, there is something that can quench your thirst: contributing to open source. </p>
<p>I know, I know, you’ve probably heard “Contribute to open source!” countless times in Discord groups and tech-related social media posts. But trust me, it really can be a great way to gain experience as a technical writer. </p>
<p>For one, you get to work on projects that are often displayed publicly. This can be a great way to showcase your skills to your professional network. </p>
<p>Also, contrary to popular belief, code is not the only way you can contribute to open source projects. You can use your writing skills to help maintainers improve their projects' documentation. </p>
<p>And contributing to open source exposes you to new technical languages and software, which the Bureau of Labor Statistics describes as <a target="_blank" href="https://www.bls.gov/ooh/media-and-communication/technical-writers.htm#tab-4">one of the many important skills in tech writers</a>. </p>
<p>Still not convinced? No worries – in this guide, I will discuss how you can find open source projects that need tech writers. I'll also describe what tech writing-related contributions to these projects might look like, and suggest how to display them publicly.</p>
<h2 id="heading-how-to-identify-open-source-projects-that-need-technical-writing-contributions">How to Identify Open Source Projects That Need Technical Writing Contributions</h2>
<p>Many open source projects need help with their documentation. Picking a project to make docs-based contributions to will be based heavily on your interests, the level of writing skills you have, and the opportunities available.  </p>
<p>When it comes to finding open source projects that need contributions, I highly recommend asking your colleagues about the projects they are involved in. Working with friends + open source? It's two for the price one! :) Once you've picked your project, my next tip is to do the following:</p>
<ol>
<li>Go to the <strong>Issues</strong> tab on the project's repository. </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/picking-an-issue--part-1-.png" alt="Yellow arrow pointing to a tab labelled &quot;Issues&quot;" width="600" height="400" loading="lazy">
<em>Yellow Arrow pointing to Issues tab</em></p>
<ol start="2">
<li>Click on the <strong>Label</strong> section </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/Picking-a-issue--part-2--1.png" alt="Orange arrow pointing to the Label section" width="600" height="400" loading="lazy">
<em>Orange arrow pointing at the Label section</em></p>
<ol start="3">
<li>Type "documentation" in the textbox and voilà! </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/picking-an-issue--part-3-.png" alt="The word &quot;documentation&quot; appears in the textbox " width="600" height="400" loading="lazy">
<em>"documentation" appearing in the textbox</em></p>
<p>Now if you are looking for something more specific, here is my list of open source projects with a focus on documentation:</p>
<h3 id="heading-the-good-docs-project">The Good Docs Project</h3>
<p>If you’re looking to start gaining experience in working with documentation, I highly recommend joining <a target="_blank" href="https://thegooddocsproject.dev/">this group</a>. :) They have diverse working groups that focus on different types of writing whether it’s creating documentation templates that other developers can use in their own open source projects, improving the content on the organization's website, and doing QA (Quality Assurance) for the templates that community members have created.</p>
<h3 id="heading-codecademy">Codecademy</h3>
<p>If you’re knowledgeable about a particular programming language and want to share that knowledge with the world, then I highly recommend contributing to Codecademy's <a target="_blank" href="https://github.com/Codecademy/docs">docs</a> and <a target="_blank" href="https://github.com/Codecademy/ugc">article</a> repositories. They provide templates based on different needs such as providing a new entry for a certain chapter and updating/editing an existing entry. </p>
<h3 id="heading-astro">Astro</h3>
<p>If you’re an avid user of Astro, then you can share your tips on using this software on their <a target="_blank" href="https://github.com/withastro/docs">docs repo</a>. Their documentation team is very open to working with members with different levels of experience. </p>
<p>Now picking a project is just one step. Let's look at some different ways you can contribute to open source projects as a technical writer.</p>
<h2 id="heading-ways-to-contribute-to-open-source-as-a-technical-writer">Ways to Contribute to Open Source as a Technical Writer</h2>
<p>Congrats! You've picked your project. Now, you just have to decide how you will use your tech writing skills to contribute. </p>
<p>I know this part can be difficult but don’t fret – now we're going to discuss some different types of contributions you can make.</p>
<h3 id="heading-revise-typos-and-other-grammar-errors-on-the-readme-file">Revise typos and other grammar errors on the README file</h3>
<p>This file is crucial to the foundation of an open source project. It's where they describe the project’s purpose and the steps to contribute to it, so it should be as clearly written as possible. </p>
<p>If you're reading through the README file and you see a comma missing or an unclear sentence, raise an issue about it to maintainers and make those edits (if they approve, of course). </p>
<p>I made this contribution to EddieHub when I first joined their community. It was not only a great way to introduce myself, but it also taught me how to tailor documentation to a specific audience. Now this not the only text-based contribution, let's look at another one! :) </p>
<h3 id="heading-create-an-internal-docs-style-guide">Create an internal docs style guide</h3>
<p>This entails creating a guide that defines the standards for writing and formatting the documentation for an open source project. It helps instruct contributors on how to effectively write for open source. </p>
<p>In this document, you'll see information such as how punctuation marks should and should not be written, specific ways to format code blocks, and the tone and voice that contributors should use when writing about the product. </p>
<p>A great example of this would be <a target="_blank" href="https://developers.google.com/style/contractions">the Contractions section in Google's Developer Documentation style</a>. </p>
<p>Also, I decided to make <a target="_blank" href="https://linkfree.io/docs/docs-style-guide">a doc style guide for EddieHub's Linkfree project</a> after watching a video by Portia from <a target="_blank" href="https://www.youtube.com/live/t-Tz6QzH8YA?feature=share">Document Write's YouTube channel</a>. She talked about how open source contributors, especially those who want to pursue tech writing as a career, can benefit from having these sorts of style guides. </p>
<p>Through creating this guide, I've learned the following:</p>
<ol>
<li><strong>Writing in a new style or language:</strong> Since Linkfree's main demographic is in the U.K., the maintainers wanted the guide to be written in British English. I've never used this version of English before, so it was interesting to learn how words are spelled, capitalized, and what punctuation marks are used. </li>
<li><strong>Using new tech tools or frameworks:</strong> <a target="_blank" href="https://mdxjs.com/">MDX (Markdown X)</a> is the technical language contributors use to maintain Linkfree's documentation. Simply put, it's Markdown that allows to you to put <a target="_blank" href="https://facebook.github.io/jsx/">JSX</a> (syntax that let's you put HTML code in JavaScript). I've briefly worked with Markdown, so it was a bit easier to implement this language in creating the docs guide. </li>
</ol>
<p>Now, a style guide is only one of the many docs-based contributions you can do for an open source project. Let's look at another one! :) </p>
<h3 id="heading-add-to-a-tutorial-for-a-product">Add to a tutorial for a product</h3>
<p>If you're good at teaching or find yourself reading an open source software's tutorial that is missing key information, consider doing this as your contribution.</p>
<p>A great example of this would be <a target="_blank" href="https://support.audacityteam.org/community/contributing/tutorials">the tutorial section</a> on Audacity's website. It's a free open source audio recording and editing software.  </p>
<p>As a person who's newer to the open source community, I noticed that most beginner-level content never really provided tips or advice on how contributors can implement their open source contribution experiences when looking for jobs or during interviews. So I was scrolling through OpenSauced's repository on GitHub and noticed that this kind of content would be helpful in their free "Intro to Open Source" course. </p>
<p>I presented my idea to <a target="_blank" href="https://twitter.com/BekahHW">Bekah</a>, the company's User Experience Lead, created a pull request, and violà, <a target="_blank" href="https://github.com/open-sauced/intro/pull/5">it got merged</a>!  </p>
<p>I highly recommend making this kind of contribution because a great way to gain practice is by simplifying technical content for a global audience of all skill levels. It also develops your detail-oriented skills. </p>
<p>Now, before you go, there’s just one more thing to consider when gaining tech writing experience through contributing to open source projects.</p>
<h2 id="heading-show-your-work">Show Your Work</h2>
<p>When it comes to the importance of displaying your creations, Austin Kielon said it best: “Show your work”.  </p>
<p>I mean, we’re writers for crying out loud! It’s in our DNA to display content through words, so why not do it with our own stuff?  </p>
<p>You can write about your projects via your blog, social media posts, or record a podcast episode about it. </p>
<p>If you’re looking for something more structured, I recommend using <a target="_blank" href="https://opensauced.pizza/#features">OpenSauced</a>'s free Chrome extension. It’s a tool that allows you to keep track of the GitHub open source repositories you currently contribute to and those you plan to contribute to.</p>
<p>They also have this feature called “Highlights” where you can pick certain contributions to post to your profile and share on LinkedIn and Twitter. To learn how, check out their <a target="_blank" href="https://github.com/open-sauced/intro/blob/main/06-the-secret-sauce.md#develop-your-open-source-resume">tutorial</a>. </p>
<p>This would be a great thing to reference during your job interviews and it can be an inspiration for other open source contributors. When I showcased the docs style guide I created for Linkfree on Twitter, one of my colleagues liked it so much that she thought it'd be good to have one for her project. So per her request, <a target="_blank" href="https://github.com/AccessibleForAll/AccessibleWebDev/blob/main/docs-style-guide.md">I created one</a>! :) Never underestimate the power of displaying your work. </p>
<p>There you have it folks, your guide to gaining writing experience through contributing to open source projects. I know it can be intimidating to do – especially at first – but with these tips and a positive attitude, I know you’ll succeed.</p>
<h2 id="heading-credits">Credits</h2>
<p>Open Source Symbol from <a target="_blank" href="https://uxwing.com/opensource-icon">UXwing</a></p>
<p>Tech Writing Icon by Ylivdesign from <a target="_blank" href="https://www.dreamstime.com/technical-writing-icon-outline-style-technical-writing-icon-outline-technical-writing-vector-icon-web-design-isolated-white-image214934937">Dreamstime</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Common Causes of Invalid HTML Syntax – and How to Fix Them ]]>
                </title>
                <description>
                    <![CDATA[ Remember those treehouses that we had as children and how the wood would wear, tear, and eventually collapse because we just would not stop jumping around inside it?   Well that's kind of like HTML. This markup language is like the wood to your codin... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/invalid-html-syntax-examples-and-fixes/</link>
                <guid isPermaLink="false">66b90509941d2f900bad52ba</guid>
                
                    <category>
                        <![CDATA[ coding ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Tue, 18 Apr 2023 16:51:50 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/04/Blog-post-cover-for-FCC---2-Revised-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Remember those treehouses that we had as children and how the wood would wear, tear, and eventually collapse because we just would not stop jumping around inside it?  </p>
<p>Well that's kind of like HTML. This markup language is like the wood to your coding project. If it’s invalid, your solution will collapse. </p>
<p>Now don’t fret. In this article, I'll give you some tips to help you make sure that your HTML is error-free as you build your coding solution.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/dwight.gif" alt="Dwight from the Office is getting ready to code " width="600" height="400" loading="lazy">
<em>You heard Dwight. Let's do this! :)</em></p>
<h2 id="heading-common-causes-of-invalid-html-syntax">Common Causes of Invalid HTML Syntax</h2>
<p>Before you go and start investigating for unclean code like Sherlock Holmes (the <a target="_blank" href="https://www.imdb.com/title/tt1475582/">Benedict Cumberbatch version</a> to be exact 😉), let’s briefly meet some examples of syntax that can ruin your HTML file:</p>
<ol>
<li>Improper nesting of HTML elements</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/example-of-improper-nesting-tag.jpeg" alt="Screenshot of a code snippet zooming in on the line <b></b> " width="600" height="400" loading="lazy">
<em>"HUH?" indeed</em></p>
<ol start="2">
<li>Deprecated HTML tags </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/deprecated-HTML.jpg" alt="Screenshot pointing to the <center> tag, a deprecated HTML element from the Google search's code. " width="600" height="400" loading="lazy">
<em>Interesting choice 😏</em></p>
<ol start="3">
<li>Missing tags </li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/missing-html-tag.png" alt="Image" width="600" height="400" loading="lazy">
<em>Oh closing tag, where are you?</em></p>
<p>Now that you've met the culprits, let’s figure out how to catch them before they mess up your HTML file and destroy your coding project.   </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/alfred-3.gif" alt="Young Alfred from &quot;Gotham&quot; saying &quot;Let's do this&quot;" width="600" height="400" loading="lazy">
<em>Sir yes sir!</em></p>
<h3 id="heading-ia"> </h3>
<p>Improper Nesting of HTML Elements </p>
<p>To briefly review, nesting occurs when an HTML element is inside another HTML element.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Coded by <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"profile-link"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://github.com/CBID2&gt;"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>Christine Belzie<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<p>Now a nested element becomes evil – I mean improperly nested – when you place an HTML element inside the wrong area of the other element, like this:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"profile-link"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"&lt;https://github.com/CBID2&gt;"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>Christine Belzie<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Coded by <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<p>The code above would be considered invalid because the </p><p> tag is not related to the <a> tag and the </a></p><p><a> tag is not related to <em> tag. As a result, you get an unorganized paragraph.</em></a></p><a>
</a><div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/WNawGVw" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>To replace the improperly nested element, I highly recommend doing what I like to call the Sandwich Model. It entails stacking the head and closing tags of styling HTML elements within the primary tags, kind of like how you stack up all your toppings and fillings between two slices of your favorite bread.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">bread</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">topping</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">topping</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">filling</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">filling</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">bread</span>&gt;</span>
</code></pre>
<p>Now if you think improperly nested tags were evil, wait until you see the next villain.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/evil-laugh.gif" alt="Daughter from &quot;Bob's Burgers&quot; gives an evil laugh while flames erupt in the background" width="600" height="400" loading="lazy">
<em>Muahaha! 😈</em></p>
<h3 id="heading-deprecated-html-tags">Deprecated HTML Tags</h3>
<p>Simply put, deprecated HTML tags are basically when you use HTML elements that the tech industry has decided should no longer be used. Here's an example:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">center</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">figcaption</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"img-caption"</span>&gt;</span>Rihanna performs on stage in San Siro Stadium for Anti World Tour 2016. <span class="hljs-tag">&lt;/<span class="hljs-name">figcaption</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">center</span>&gt;</span>
</code></pre>
<p>In the code snippet above, I used the </p><center> tag, Now, will the code snippet above fulfill its task? Of course. See the output below:</center><p></p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/LYgZXOE" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>But it’s considered invalid since it is <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/center">no longer used</a>, which can cause your project to not function in the best way possible. </p>
<p>It’s like wearing like wearing platform shoes from the 70s when everyone else is wearing Yeezy’s, Sketchers, or Converse.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/platform-shoes.gif" alt="Yellow platform shoes walking down the stairs" width="600" height="400" loading="lazy">
<em>To quote Pauly D from "Jersey Shore", "What are those?!"</em></p>
<p>The best way to fix deprecated HTML tags is to refer to websites, blogs, and other sources to stay updated on the latest versions of the code. Let’s give the snippet I mentioned a makeover:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">figcaption</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"img-caption"</span>&gt;</span>Rihanna performs on stage in San Siro Stadium for Anti World Tour 2016. <span class="hljs-tag">&lt;/<span class="hljs-name">figcaption</span>&gt;</span>
</code></pre>
<pre><code class="lang-css"><span class="hljs-selector-tag">figcaption</span>{
    <span class="hljs-attribute">max-width</span>:<span class="hljs-number">100%</span>;
      <span class="hljs-attribute">height</span>: auto;
    <span class="hljs-attribute">display</span>:flex;
    <span class="hljs-attribute">justify-content</span>: center;
     <span class="hljs-attribute">font-family</span>: <span class="hljs-string">'Montserrat'</span>, sans-serif;

  }
</code></pre>
<p> To center the </p><figcaption> element, I used the CSS Flexbox method: "justify-content" and viola:</figcaption><p></p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/jOerQzK" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>See how pretty the snippet looks now? When your code looks good, your project operates well, too. To stay updated on HTML, <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTML">MDN</a>, in my opinion, is a great source because they always let the readers know when certain tags are out of date.</p>
<p>Now hold on, we’re not out of the woods yet, there’s still one more invalid syntax that we have to meet.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/nervous.gif" alt="Ren from the &quot;Ren and Stimpy Show&quot; is sweating in fear" width="600" height="400" loading="lazy">
<em>Don't be scared...yet! 😈</em></p>
<h3 id="heading-missing-closing-tags">Missing Closing Tags</h3>
<p>You know how you use to scoff and roll your eyes whenever your writing instructor took points from your essay for having a few misspelled words or a missing period? Well, they were on to something – because the same idea applies to your HTML file. </p>
<p>A common issue you might run into is missing closing tags. Let's see what that looks like.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"user-info"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h3</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"user-name"</span>&gt;</span>Victor Crest<span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"age"</span>&gt;</span>26<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
</code></pre>
<p>If one of your code lines is like the code snippet above, your HTML file will break, causing your project to not look so great like in the output below:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/qBJNQQO" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p> Think of it like a missing tire in your car (or whatever vehicle you use to transport yourself). Without it, you would be driving like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/crazy-driving.gif" alt="Kramer from &quot;Seinfeld&quot; is driving an uncontrollable truck." width="600" height="400" loading="lazy">
<em>Hang in there buddy!</em></p>
<p>To fix this error, I highly recommend using the sandwich method that I mentioned before. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"user-info"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h3</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"user-name"</span>&gt;</span>Victor Crest<span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"age"</span>&gt;</span>26<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>As you can see in the code above, we've added our closing <code>&lt;div&gt;</code> tag, causing the snippet to now look like this:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/CB_ID2/embed/jOerQXv" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>See how improved the code looks now? Remember, think of a line of code like a sandwich. When one slice of bread (or in this case, a closing tag) is missing, your masterpiece falls apart, leaving you angry, sad, and sometimes hungry. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/penguin.gif" alt="A pudgy rubs its stomach in sadness while saying &quot;I'M SO HUNGRY&quot;" width="600" height="400" loading="lazy">
<em>So sorry penguin!</em></p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>There you have it! Three common types of invalid syntax to look out for in your HTML file. </p>
<p>Remember, this file is the foundation of your coding projects, so Happy HTML file = Happy project! 😊</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/image-131.png" alt="Image" width="600" height="400" loading="lazy">
<em>Glad to know that we agree with each other.</em></p>
<h3 id="heading-credits">Credits</h3>
<ul>
<li>Ben Mckenzie Fox GIF by <a target="_blank" href="https://giphy.com/gifs/gotham-fox-3o7abuqxszgO6pFb3i">Gotham</a></li>
<li>Can't Touch This High Heels GIF by <a target="_blank" href="https://giphy.com/gifs/brownsugarapp-fashion-get-l3vR1JnogyxKm0SGs">BrownSugarApp</a></li>
<li>Closing Tag image from "How to Easily Find Missing Closing Tags in HTML (with Coda 2)" article on <a target="_blank" href="https://clicknathan.com/web-design/easily-find-missing-closing-html-tag/">Clicks Nathan</a></li>
<li>Dwight Office Tv GIF by <a target="_blank" href="https://giphy.com/gifs/BpGWitbFZflfSUYuZ9">The Office</a></li>
<li>Driving Michael Richards GIF by <a target="_blank" href="https://giphy.com/gifs/crazy-seinfeld-9NTfxeLPpgRUI">Seinfield GIFs</a></li>
<li>Fox Tv Fire GIF by <a target="_blank" href="https://giphy.com/gifs/bobs-burgers-fox-bobs-burgers-tv-3o72FfM5HJydzafgUE">Bob's Burgers</a></li>
<li>Oh Yeah Yes GIF by <a target="_blank" href="https://giphy.com/gifs/cool-ok-sure-l41lUjUgLLwWrz20w">Mauro Gatti</a></li>
<li>Ren And Stimpy Reaction GIF by <a target="_blank" href="https://giphy.com/gifs/scared-nervous-ren-and-stimpy-y9X0F8VgTkmU8">Giphy</a></li>
<li>Sad Nft GIF by <a target="_blank" href="https://media.giphy.com/media/MSqUXNDStq8V3Qc9OM/giphy.gif">Pudgy Penguins</a></li>
<li>Screenshot of Google from the  "Why does Google use the deprecated HTML tag still?"discussion forum on <a target="_blank" href="https://twitter.com/davedbase/status/1647012417841365001?s=46">Reddit</a></li>
<li>Screenshot of improper nested tag from "How is the DOM Affected by Improperly Nested HTML Elements?" article by Louis Lazrus on <a target="_blank" href="https://www.impressivewebs.com/dom-improperly-nested/">Impressive Webs</a></li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Give Good Feedback for Effective Code Reviews ]]>
                </title>
                <description>
                    <![CDATA[ Hey, open sourcer! 😊 I’ve heard through the digital webs that you’ve become quite the wordsmith when it comes to giving feedback on pull requests and want to learn something new.  No worries, I’ve been there myself when I started getting more comfor... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/code-review-tips/</link>
                <guid isPermaLink="false">66b904f807654d99f7424c45</guid>
                
                    <category>
                        <![CDATA[ code review ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Feedback ]]>
                    </category>
                
                    <category>
                        <![CDATA[ GitHub ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Mon, 03 Apr 2023 16:49:44 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/04/Cover-for-first-FCC-article.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Hey, open sourcer! 😊 I’ve heard through the digital webs that you’ve become quite the wordsmith when it comes to giving feedback on pull requests and want to learn something new. </p>
<p>No worries, I’ve been there myself when I started getting more comfortable in the open source world. So, grab a chair, your favorite snack or beverage (I highly recommend water. It’s fresh and good for you! 😉), and your notebook (or in this case, your laptop). Because I’m about to share five techniques that will have you reviewing pull requests like a boss.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/neil-encouragement.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Neil deGrasse Tyson says "Let's Do This!" to give you confidence!</em></p>
<h2 id="heading-feedback-technique-1-the-show-and-tell-review">Feedback Technique 1: The “Show and Tell” Review</h2>
<p>For this technique, you provide screenshots or links to other sources that help explain the benefit of the new approach that you’re suggesting to your fellow contributor. Here's how it's done:</p>
<p>First, take a screenshot of the thing you want to convey in your feedback. I highly recommend using <a target="_blank" href="https://getfireshot.com/using.php">Fireshot</a>. It's an easy way to take screenshots on your computer.  </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/screenshot-Gif.gif" alt="Image" width="600" height="400" loading="lazy">
<em>This is a GIF of someone taking a screenshot of an image via a Mac</em></p>
<p>Then, go to the repository of your choosing and click on <strong>Pull Requests</strong> </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/repo-tabs.png" alt="Image" width="600" height="400" loading="lazy">
<em>A yellow circle surrounds the third tab called "Pull Requests". Click there to pick the PR you want to review.</em></p>
<p>Once you pick the pull request you want to review, click on <strong>Files Changed</strong>: </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-1-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Add your comments, then drag and drop your image in the textbox. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/chameleon-example.png" alt="Image" width="600" height="400" loading="lazy">
<em>In a textbox,</em></p>
<p>Click <strong>Submit review</strong> and volià you're done! 😊  </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Submit.png" alt="Image" width="600" height="400" loading="lazy">
<em>There's a green button saying "Submit Review". Click on it after you finish your review.</em></p>
<p>In my experience, this type of review is helpful when giving feedback on pull requests that require adding a feature to an open source project's website (for example a logo) or an image on one of its Markdown files. It can help the person see how their contribution impacts the overall project. </p>
<p>It's like if you were watching a commercial for a facial soap and you see the scenes where they show close ups of how the product makes your skin healthier. Showing someone an image of what needs fixing can help convey what's going on more clearly.</p>
<p>Speaking of skin, here's another strategy where your shifting powers, I mean adaptability skills, can be helpful.   </p>
<h2 id="heading-feedback-technique-2-the-chameleon-review">Feedback Technique 2: The “Chameleon” Review</h2>
<p>The “Chameleon” is a feedback giving technique where you adapt your PR review based on the type of contribution that your peer is making. It's like how a chameleon changes their skin color to fit in with their surroundings (minus the hiding from predators part of course 😉). </p>
<p>For example, if you’re reviewing a pull request that's text-based like the one in the image below, I highly recommend giving feedback via dialogic questions (for example, how does this resource stand out from other courses that teach JavaScript?). </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Chameleon-example.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This technique is helpful because it encourages the recipient of your review to think deeply about their contribution. It also teaches you how to tailor your feedback based on the type of pull request that you are reviewing.  </p>
<p>Now that you know the Chameleon, the next technique you'll learn is one that can help you swipe through fields, I mean, long lines of code.   </p>
<h2 id="heading-feedback-technique-3-two-peas-in-a-pod">Feedback Technique 3: Two Peas in a Pod</h2>
<p>The “Two Peas in a pod” is a PR review technique where you comment on one line of code in the conversation while another contributor gives feedback on another line code in the same pull request.  </p>
<p>Here's an example:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/two-peas-in-a-pod-one.png" alt="Image" width="600" height="400" loading="lazy">
<em>Two contributors comment on one line of code</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/two-peas-in-a-pod.png" alt="Image" width="600" height="400" loading="lazy">
<em>My comment on a different line of code on the same pull request</em></p>
<p>As shown in the first picture, it's helpful to point out why certain methods won't work and discuss some alternatives the pull requester can use. Additionally, consider commenting on a different way to improve the PR once you picked the line of code you want to improve. </p>
<p>When using this method, I highly recommend encouraging you and your fellow reviewer to pick a line of code that suits your strengths because it'll make giving feedback easier. </p>
<p>Since my background is in writing and education, I decided to comment on the text-based line that you see in the second picture whereas the other contributors focused on improving the image element due to being more experienced in coding. </p>
<p>This method helps you develop your written communication skills and ultimately makes reviewing pull requests less stressful. That's two benefits for the price of one! 😊 Cool right? 😉 </p>
<p>Speaking of lessening  your stress, I have another strategy that will have you reviewing pull requests like <a target="_blank" href="https://dcau.fandom.com/wiki/Flash">the Flash from <em>The Justice League</em></a>!</p>
<h2 id="heading-feedback-technique-4-teachem-review">Feedback Technique 4: Teach’em Review</h2>
<p>This “Teach’em” review is a PR review technique where you pretty much instruct your peer on how to improve their PR instead of just pointing out the issues in the PR. </p>
<p>Here are some examples:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Teach-em-example-2-jpg.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>My suggestion: turning the &lt;div&gt; element into a more semantic HTML element.</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Teach-em-example-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>I give tips to the contributor how to make their code-based contributions more accessible</em></p>
<p>When using this technique, I highly recommend pointing out an area of improvement.  Then, you can briefly teach a strategy they could use in the future. </p>
<p>This approach can help improve your coding skills and develop your written communication skills, which is very useful in the world of tech.  </p>
<p>Now, there’s just one more technique that will help you upgrade your PR reviewing skills. </p>
<h2 id="heading-feedback-technique-5-the-suggestion-review">Feedback Technique 5: The “Suggestion” Review</h2>
<p>If you're focusing on other open source projects, have a deadline for an assignment, or you're just tired from a long day at work but want to review pull requests, this feedback giving technique will be the ultimate tool in your open sourcer kit. It focuses on giving constructive feedback through your review.</p>
<p>Here's how it's done: </p>
<ol>
<li>Click on the <strong>Files Changed</strong> tab of a person’s pull request:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>There are four tabs underneath a person's pull request. The final one "Files changed" is circled in yellow. That's the tab you pick in the first step</em></p>
<ol start="2">
<li>Hover over the line of code you want to review and click on the blue plus sign:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>There is a blue plus sign over the line code that has a yellow covering. This indicates that you have picked a line of code you want to review.</em></p>
<ol start="3">
<li>Click on the file icon that has a plus on top and a minus sign on the bottom:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-3-2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="4">
<li>Rewrite the line of code, improving it as you think is necessary:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-4.png" alt="Image" width="600" height="400" loading="lazy">
<em>There's a yellow arrow point to an area that says ```suggestion. This where you rewrite the line of code that you choose to review.</em></p>
<ol start="5">
<li>Click on <strong>Add Single Comment</strong></li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-5-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>There is a yellow arrow pointing at the "Add single comment" button. This is what you click on to insert your suggestion into the person's line of code.</em></p>
<ol start="6">
<li>Write your comment in the textbox, click on <strong>Request Changes</strong>, and <strong>Submit Review</strong>.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Final-Suggestion-Step-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>The first arrow points to a textbox, the place where type your comment. The second arrow points the last radio button labeled "Request Changes". The final arrow points at a green button labeled "Submit review".</em></p>
<p>I highly recommend using this feedback technique for pull requests that are text-based because it will show your suggestion to the person who made the pull request, which is especially helpful if you are too tired or don't have time to give a brief grammar lesson (trust me, I've been there). </p>
<p>Like the other feedback techniques I previously mentioned, the suggestion review can also help you improve your detail-oriented skills as it encourages you to think of the best way to convey your feedback. It's pretty awesome! 😊</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Congratulations, you now have five feedback giving techniques in your Open Sourcer toolkit!  </p>
<p>Before I let you go, I want you to remember this. Open source contributions begin and end with you, so use your powers wisely. Now, go out there and be the best pull request reviewer in open source! </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/deadpool.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Deadpool and his crew is walking slowly towards their next challenge. Be like Deadpool with your pull request reviews! :)</em></p>
<h2 id="heading-credits">Credits</h2>
<p>Let's Do This GIF by <a target="_blank" href="https://giphy.com/gifs/natgeochannel-startalk-JykvbWfXtAHSM">National Geographic</a></p>
<p>Super Hero Walking GIF by <a target="_blank" href="https://media.giphy.com/media/l0Iy6hheGg52GcJt6/giphy.gif">20th Century Fox Home Entertainment</a></p>
<p>Screenshot GIF from "How to Take a Screenshot on a MacBook" by <a target="_blank" href="https://smallpdf.com/blog/how-to-screenshot-on-mac">Hung Nguyen</a> </p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
