<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: a-parris21</title>
    <description>The latest articles on Forem by a-parris21 (@aparris21).</description>
    <link>https://forem.com/aparris21</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%2F923753%2F1f5a6e44-e1ed-4c21-87e4-b24f98369c1d.png</url>
      <title>Forem: a-parris21</title>
      <link>https://forem.com/aparris21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/aparris21"/>
    <language>en</language>
    <item>
      <title>Release 0.2 - PR #4</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sun, 27 Nov 2022 03:59:57 +0000</pubDate>
      <link>https://forem.com/aparris21/release-02-pr-4-44pi</link>
      <guid>https://forem.com/aparris21/release-02-pr-4-44pi</guid>
      <description>&lt;h2&gt;
  
  
  Issue I worked on
&lt;/h2&gt;

&lt;p&gt;For my last PR, I contributed to the &lt;a href="https://github.com/mgreiler/se-unlocked"&gt;se-unlocked&lt;/a&gt; repo which manages the transcripts for the &lt;a href="https://www.se-unlocked.com/"&gt;Software Engineering Unlocked podcast&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;I worked on issue &lt;a href="https://github.com/mgreiler/se-unlocked/issues/132"&gt;#132&lt;/a&gt;, which involved making improvements to the transcript for Episode 53. Each of the transcripts is automatically generated, thus they contain many minor errors throughout which have to be adjusted manually by contributors.&lt;br&gt;&lt;br&gt;
I browsed the document for the Episode 53 transcript and made various changes, including grammar improvements and adjusting the script so it matched what was actually spoken in the podcast episode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation for the fix
&lt;/h2&gt;

&lt;p&gt;To prepare for the fix, I first had to review the relevant podcast episode on their website, &lt;a href="https://www.software-engineering-unlocked.com/tests-find-bugs/"&gt;viewable here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
Additionally, I had to ensure that any changes I made were consistent with the formatting rules outlined in the project's &lt;a href="https://github.com/mgreiler/se-unlocked/blob/master/Transcription_Guidelines.md"&gt;instructions on editing transcripts&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Explanation
&lt;/h2&gt;

&lt;p&gt;This fix did not involve any changes to the code.&lt;/p&gt;

&lt;p&gt;The associated file can be found here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mgreiler/se-unlocked/blob/a8f387f24a66331d78eedd0863c67e24d48c2bd7/Transcripts/EP_53_Mauricio_Aniche.md"&gt;Ep53 transcript before my changes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/a-parris21/se-unlocked/blob/a6a1b33703a8eec246ce24ea7b64362e8371d617/Transcripts/EP_53_Mauricio_Aniche.md"&gt;Ep53 transcript after my changes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Research
&lt;/h2&gt;

&lt;p&gt;No programming-related research was required to complete the fix for this issue.&lt;br&gt;&lt;br&gt;
Although, I did have to familiarize myself with the formatting rules outlined in the project's documentation. Additionally, &lt;/p&gt;

&lt;h2&gt;
  
  
  Interactions with project maintainers
&lt;/h2&gt;

&lt;p&gt;I had no noteworthy interactions with the project maintainers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulties
&lt;/h2&gt;

&lt;p&gt;I did not find this issue to be very difficult to work on. I had to familiarize myself with the project's formatting rules for transcripts, I found this mildly tedious though not difficult.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Pull Request
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mgreiler/se-unlocked/pull/179"&gt;PR #179&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>github</category>
      <category>podcast</category>
    </item>
    <item>
      <title>Release 0.2 - PR #3</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sun, 27 Nov 2022 03:32:53 +0000</pubDate>
      <link>https://forem.com/aparris21/release-02-pr-3-376g</link>
      <guid>https://forem.com/aparris21/release-02-pr-3-376g</guid>
      <description>&lt;h2&gt;
  
  
  Issue I worked on
&lt;/h2&gt;

&lt;p&gt;I worked on the &lt;a href="https://github.com/Diptenusarkar/html.org.in"&gt;html.org.in&lt;/a&gt; project once again.&lt;br&gt;&lt;br&gt;
When I was working on my &lt;a href="https://dev.to/aparris21/release-02-pr-2-1il2"&gt;second pull request&lt;/a&gt;, I found it very difficult to read the project's &lt;code&gt;README.md&lt;/code&gt; file. The instructions were not very clear to me and there were moderate grammar errors througout the document.&lt;br&gt;&lt;br&gt;
So, I opened an issue, &lt;a href="https://github.com/Diptenusarkar/html.org.in/issues/70"&gt;#70&lt;/a&gt;, to make some imrpovements to the project's &lt;code&gt;README.md&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation for the fix
&lt;/h2&gt;

&lt;p&gt;There was not much preparation required for this fix apart from my usual workflow actions - i.e. forking the repo and making a branch for the issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Explanation
&lt;/h2&gt;

&lt;p&gt;There was no code involved in this fix. I provided documentation improvement to the repository for this PR.&lt;br&gt;&lt;br&gt;
As such, I've provided URLs to the repo's &lt;code&gt;README.md&lt;/code&gt; file prior to my changes and also after my changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before the fix
&lt;/h3&gt;

&lt;p&gt;This is &lt;a href="https://github.com/Diptenusarkar/html.org.in/tree/09c431c934d5c66c585858bddf0cb8d57d1da5d2#readme"&gt;the original &lt;code&gt;README.md&lt;/code&gt; file&lt;/a&gt; from before my changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  After the fix
&lt;/h3&gt;

&lt;p&gt;Here is &lt;a href="https://github.com/Diptenusarkar/html.org.in/tree/81f1705bf29902372fab0e3647ac61b59fea4ad6#readme"&gt;the &lt;code&gt;README.md&lt;/code&gt; file&lt;/a&gt; after my changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Research
&lt;/h2&gt;

&lt;p&gt;As this was a documentation improvement, minimal research into programming topics was necessary.&lt;br&gt;&lt;br&gt;
I did some reading on embedding video files in webpages via HTML and compared my research material to the instructions provided in the project's documentation just to ensure I was understanding code correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interactions with project maintainers
&lt;/h2&gt;

&lt;p&gt;I did not have any notable interactions with the project maintainers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulties
&lt;/h2&gt;

&lt;p&gt;Improving the documentation was difficult at first since I found it very unclear initially. However, as I familiarized myself more with the project, it became clearer to me what the developers were trying to say in the &lt;code&gt;README.md&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Pull Request
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Diptenusarkar/html.org.in/pull/73"&gt;PR #73&lt;/a&gt;&lt;/p&gt;

</description>
      <category>documentation</category>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Release 0.2 - PR #2</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sun, 27 Nov 2022 02:27:40 +0000</pubDate>
      <link>https://forem.com/aparris21/release-02-pr-2-1il2</link>
      <guid>https://forem.com/aparris21/release-02-pr-2-1il2</guid>
      <description>&lt;h2&gt;
  
  
  Issue I worked on
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/Diptenusarkar/html.org.in"&gt;html.org.in&lt;/a&gt; project is a website which has several simple tutorials aimed at teaching new web developers the basics of HTML.&lt;/p&gt;

&lt;p&gt;The website supports "light" theme and "dark" theme for readibility. I worked on &lt;a href="https://github.com/Diptenusarkar/html.org.in/issues/69"&gt;issue #69&lt;/a&gt;, where the drop-down menu for choosing the theme was overlapping with list of tutorials, making it difficult to read some of the titles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation for the fix
&lt;/h2&gt;

&lt;p&gt;There was not much setup required to apply the fix. After forking the repo, I got to work on fixing the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Explanation
&lt;/h2&gt;

&lt;p&gt;As stated, the website supports "light" and "dark" themes for readibility purposes. CHanging between these two themes can be done via the "theme-box", which is a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; element that functions as a drop-down menu.&lt;br&gt;&lt;br&gt;
On the website's home page, there is a list of all the tutorials currently hosted on the website, organised into a table.&lt;br&gt;&lt;br&gt;
Before my changes, the theme-box would "float" within the website's main area, overlapping with the tutorials on the far-left of the table. I found this unpleasant to look at and mildly inconvenient when browsing so I opted to fix the problem.&lt;/p&gt;

&lt;p&gt;My code changes move the theme-box to be part of the header, instead of its original position where it "floats" in-front of the list of tutorials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Demo
&lt;/h2&gt;

&lt;p&gt;Below I've attached two screenshots of the website's home page. Take note of the position theme-box, which is moved from floating over the tutorial list, to the header.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before the fix
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  After the fix
&lt;/h3&gt;

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

&lt;h2&gt;
  
  
  Research
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What research did you do?  Were there aspects of the issue that you found difficult?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did some personal research into the Bootstrap classes used in this project and they turned out to be structures I am already familiar with, so resolving this issue turned out to require less preparation than I initially expected.&lt;/p&gt;

&lt;p&gt;However, a problem I ran into while updating the code to apply my changes was that, if a section of HTML code was loaded into a file via the &lt;code&gt;include-html&lt;/code&gt; attribute on an element, then the JS code defined in &lt;code&gt;app.js&lt;/code&gt; would not apply to it.&lt;br&gt;&lt;br&gt;
As such, I had to make some small changes to my initial fix (where I updated the &lt;code&gt;header.html&lt;/code&gt; file) and move those changes to the main &lt;code&gt;index.html&lt;/code&gt; file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interactions with project maintainers
&lt;/h2&gt;

&lt;p&gt;I had no notable interactions with the project maintainers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulties
&lt;/h2&gt;

&lt;p&gt;My greatest difficulty was in understanding the code of the project as it was fairly messy. There are a lot of deprecated sections of code that have just been commented out, rather than deleted and documented. Thus, there's commented-out buggy code placed througout bug-free code.  &lt;/p&gt;

&lt;p&gt;Once I found the relevant sections that I needed to update, it was not very difficult to apply my fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Pull Request
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Diptenusarkar/html.org.in/pull/71"&gt;PR #71&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>opensource</category>
      <category>css</category>
      <category>ux</category>
    </item>
    <item>
      <title># Release 0.2 - PR #1</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Fri, 25 Nov 2022 22:46:59 +0000</pubDate>
      <link>https://forem.com/aparris21/-release-02-pr-1-3g0o</link>
      <guid>https://forem.com/aparris21/-release-02-pr-1-3g0o</guid>
      <description>&lt;h2&gt;
  
  
  Issue I worked on
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/Aatmaj-Zephyr/Basic-memory-game"&gt;Basic-memory-game repo&lt;/a&gt; hosts the code for a tile-matching memory game. There was a problem, described in &lt;a href="https://github.com/Aatmaj-Zephyr/Basic-memory-game/issues/104"&gt;Issue #104&lt;/a&gt; where tiles that were flipped face-up would not be rendered at a constant size. Thus, if tiles used image files with different dimensions, then the tiles would be re-arranged haphazardly upon being flipped face-up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation for the fix
&lt;/h2&gt;

&lt;p&gt;There was not much setup required in order to prepare the fix. It was a problem with the web app not loading the CSS correctly. I am already familiar with CSS, so it was just a matter of forking the repo and then inspecting the web app's CSS to locate the source of the problem.  &lt;/p&gt;

&lt;p&gt;However, the problem wound up being very different from my initial expectations. Originally, I expected that I would have to edit the stylesheets for the web app but it turned out the bug was generated by the &lt;code&gt;index.html&lt;/code&gt;, and not within the stylesheets.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did you need to learn in order to make the fix?
&lt;/h2&gt;

&lt;p&gt;Originally, I expected that I would need to improve my knowledge of CSS syntax in relation to setting the dimensions for elements and their contents in order to resolve this issue. However, in the end I simply needed to familiarize myself with what filepath formats are considered 'valid' for most browsers that process HTML code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Explanation
&lt;/h2&gt;

&lt;p&gt;Originally, upon first inspecting the stylesheets for the Basic-memory-game web app, I could not seem to find a syntax error within the CSS that handled the dimensions of the images.&lt;br&gt;&lt;br&gt;
Therefore, I decided to try commenting-out all of the CSS and gradually re-enabling each section of CSS code until one of them broke the program.&lt;br&gt;&lt;br&gt;
Upon attempting this, I realized that none of the CSS was being rendered at all.&lt;/p&gt;

&lt;p&gt;I inspected the &lt;code&gt;index.html&lt;/code&gt; file and noticed that there was an invalid filepath provided to the &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; element which linked the stylesheet file.&lt;br&gt;&lt;br&gt;
The value of the &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; element's &lt;code&gt;href&lt;/code&gt; attribute was set to &lt;code&gt;"/styles.css"&lt;/code&gt; which, worked correctly and rendered all the CSS appropriately when testing the app via VSC's live-server extension.&lt;br&gt;&lt;br&gt;
However, when the web app was rendered by any browser outside of VSC's live-server extension, the CSS would break completely. I adjusted the value of the &lt;code&gt;href&lt;/code&gt; attribute, adding a period (&lt;code&gt;.&lt;/code&gt;) before the forward-slash (&lt;code&gt;/&lt;/code&gt;) and the CSS began rendering correctly. Now all of the images displayed in tiles were rendered at the same size.  &lt;/p&gt;

&lt;p&gt;Thus, the problem was that, the filepath provided when attempting to link the stylesheet file, &lt;code&gt;"/styles.css"&lt;/code&gt;, was interpreted as  a folder in the current working directory with the name &lt;strong&gt;"styles.css"&lt;/strong&gt;, instead of a &lt;code&gt;.css&lt;/code&gt; file with the name &lt;strong&gt;"styles"&lt;/strong&gt;. As a result, since the stylesheet linked to the &lt;code&gt;index.html&lt;/code&gt; file technically did not exist, no CSS was applied to the HTML. Adjusting the filepath's syntax fixed this problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Before the fix
&lt;/h3&gt;

&lt;p&gt;Start of a new game:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sNsxHgH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l73lt4p14t2bk3piahk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sNsxHgH5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l73lt4p14t2bk3piahk3.png" alt="Image description" width="880" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After clicking a tile with a large character image:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EYGF0-bp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asv9s1vyqy06l4l085kp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EYGF0-bp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asv9s1vyqy06l4l085kp.png" alt="Image description" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  After the fix
&lt;/h3&gt;

&lt;p&gt;Start of a new game:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RQ4gpQst--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zix1g2huwm26wiekgvnl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RQ4gpQst--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zix1g2huwm26wiekgvnl.png" alt="Image description" width="880" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After clicking a tile with a large character image:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---7CNtEb---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/546h9qw7muzbody9lp14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---7CNtEb---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/546h9qw7muzbody9lp14.png" alt="Image description" width="880" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Research
&lt;/h2&gt;

&lt;p&gt;I spent some time browsing the web, especially online developer community forums, search for articles or threads discussing filepath validity in relation to web-browsers and HTML. I have yet to find something that speaks specifically to this problem with &lt;code&gt;./filename&lt;/code&gt; vs &lt;code&gt;/filename&lt;/code&gt;, although I have gained a better understanding of the difference through some testing of my own.&lt;br&gt;&lt;br&gt;
As such, I arrived at the conclusion described above (in the &lt;strong&gt;Code Explanation&lt;/strong&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The string &lt;code&gt;"/example"&lt;/code&gt; repesents a folder named "example" in the current working directory.&lt;/li&gt;
&lt;li&gt;The strings &lt;code&gt;"./example"&lt;/code&gt; and &lt;code&gt;"example"&lt;/code&gt; are the valid ways to represent a file named "example" in the current working directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interactions with project maintainers
&lt;/h2&gt;

&lt;p&gt;I had no notable interactions with the project maintainers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulties
&lt;/h2&gt;

&lt;p&gt;The most difficult part in resolving this issue was attempting to locate what I believed to be a syntax error in the CSS, which turned out to be non-existent.&lt;br&gt;&lt;br&gt;
Upon realizing that the error was in the stylesheet linking, fixing the issue took just a few minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Pull Request
&lt;/h2&gt;

&lt;p&gt;Basic-memory-game &lt;a href="https://github.com/Aatmaj-Zephyr/Basic-memory-game/pull/105"&gt;PR #105&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Refactoring my SSG</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sat, 29 Oct 2022 06:23:15 +0000</pubDate>
      <link>https://forem.com/aparris21/refactoring-my-ssg-41il</link>
      <guid>https://forem.com/aparris21/refactoring-my-ssg-41il</guid>
      <description>&lt;p&gt;In refactoring my code, I focussed on removing global variables, reducing code duplication, adjusting my IF and ELSE statements for clearer logic, and shortening the body of my functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Change List
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Removed &lt;code&gt;outputPath&lt;/code&gt; global constant&lt;/li&gt;
&lt;li&gt;Removed &lt;code&gt;htmlLangAttribute&lt;/code&gt; global variable&lt;/li&gt;
&lt;li&gt;Renamed &lt;code&gt;parseFile&lt;/code&gt; to &lt;code&gt;parseDir&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Adjusted the IF and ELSE blocks in &lt;code&gt;parseDir&lt;/code&gt; to make logic easier to understand&lt;/li&gt;
&lt;li&gt;Edited &lt;code&gt;main.js&lt;/code&gt; such that &lt;code&gt;--lang&lt;/code&gt; CLI option is only parsed if an &lt;code&gt;--input&lt;/code&gt; option is provided&lt;/li&gt;
&lt;li&gt;Extracted function &lt;code&gt;generateHtmlBody&lt;/code&gt; from &lt;code&gt;writeHtmlFile&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Extracted function &lt;code&gt;parseOneFile&lt;/code&gt; from &lt;code&gt;parseDir&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Improvements
&lt;/h2&gt;

&lt;p&gt;Previously, my code used 2 global variables and 1 global constant. I removed the need for the constant (&lt;code&gt;outputPath&lt;/code&gt;) and 1 of the variables (&lt;code&gt;htmlLangAttribute&lt;/code&gt;).&lt;br&gt;
The &lt;code&gt;outputPath&lt;/code&gt; constant stored the default filepath './dist' for the output directory (where generated HTML files would be saved). This constant has been removed and the default filepath is defined internally with a function (&lt;code&gt;setOutputFolder&lt;/code&gt;).&lt;br&gt;
The &lt;code&gt;htmlLangAttribute&lt;/code&gt; was used to save, as a string, the value for the 'lang' attribute when generating HTML files. This information is now passed in to the relevant functions as a parameter instead of existing as a global variable.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;parseFile&lt;/code&gt; function was renamed to &lt;code&gt;parseDir&lt;/code&gt; to better reflect its intended purpose. &lt;code&gt;parseDir&lt;/code&gt; reads the files inside a folder, and if any of them are folders, it will recursively parse those sub-folders. If the files are single-files, that file is read and an HTML file is generated from its text content.&lt;/p&gt;

&lt;p&gt;A new function &lt;code&gt;generateHtmlBody&lt;/code&gt; was extracted from &lt;code&gt;writeHtmlFile&lt;/code&gt; which handles converting an array of strings into HTML paragraphs and an HTML title element.&lt;/p&gt;

&lt;p&gt;A new function &lt;code&gt;parseOneFile&lt;/code&gt; was extracted from &lt;code&gt;parseDir&lt;/code&gt;. I moved the code which handles the reading and writing of a single file from &lt;code&gt;parseDir&lt;/code&gt; into a function &lt;code&gt;parseOneFile&lt;/code&gt; and then invoke &lt;code&gt;parseOneFile&lt;/code&gt; as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Interactive Rebase
&lt;/h2&gt;

&lt;p&gt;The interactive rebase was very easy to do. I squashed all of the commits into the oldest one and edited its commit message to reflect the later changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bugs
&lt;/h2&gt;

&lt;p&gt;When I started refactoring my code I realized that, after implementing the recursive folder parsing feature, the &lt;strong&gt;index.html&lt;/strong&gt; file was no longer being generated correctly.&lt;br&gt;
I was not able to resolve this issue as yet though I've ruled out some of the possible solutions I came up with previously.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changing history with Git
&lt;/h2&gt;

&lt;p&gt;This was my first experience with using the &lt;code&gt;rebase&lt;/code&gt; feature to change the history of commits on a repo. It turned out to be fairly easy, since I had kept each of my commits limited to a single change so squashing and renaming them was not difficult.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Lab 4 - config file support &amp; remote repos</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Mon, 10 Oct 2022 01:55:12 +0000</pubDate>
      <link>https://forem.com/aparris21/lab-4-config-file-support-remote-repos-1jl7</link>
      <guid>https://forem.com/aparris21/lab-4-config-file-support-remote-repos-1jl7</guid>
      <description>&lt;h2&gt;
  
  
  Implementing config support in another repo
&lt;/h2&gt;

&lt;p&gt;For Lab 4, I added support for reading and parsing a JSON config file to &lt;a href="https://github.com/sfrunza13/SiteGenerationTool"&gt;Stefan's SSG&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The code itself was difficult at first since I am not incredibly familiar with Python but it got easier as I continued once I was accustomed to the syntax structure (since Python itself is fairly easily).&lt;/p&gt;

&lt;p&gt;I did run into quite a few problems since, as I stated, I am not very familiar with programming in Python.  However, since Python is a fairly easy-to-use language, it did not take me long to become familiar with the necessary syntax and logic in order to implement and test this config file feature.&lt;/p&gt;

&lt;p&gt;Using Git was very easy this time for cloning the repo, creating a topic branch and updating the branch regularly with changes. I have performed these tasks via the Git CLI before so it was easy to do it again for Lab 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewing and Testing using remotes
&lt;/h2&gt;

&lt;p&gt;For Lab 4, Maxim &lt;a href="https://github.com/a-parris21/ap21-ssg/pull/25"&gt;implemented the config support&lt;/a&gt; for my repo.&lt;/p&gt;

&lt;p&gt;This was my first time using Git's features for reviewing and testing via remote repos/branches. This was also my first time getting acquainted with remote-tracking branches. I thought they sounded complicated at first but they were actually fairly easy to use.&lt;/p&gt;

&lt;p&gt;Additionally, Maxim's code did not generate any errors when I tested it and it functioned as intended. So after reading and testing it a few times, I just had to accept the PR since there was nothing that required fixing.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
    </item>
    <item>
      <title>Lab 3 - working in multiple branches</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sun, 02 Oct 2022 17:14:52 +0000</pubDate>
      <link>https://forem.com/aparris21/lab-3-working-in-multiple-branches-444o</link>
      <guid>https://forem.com/aparris21/lab-3-working-in-multiple-branches-444o</guid>
      <description>&lt;p&gt;Project Repo: &lt;a href="https://github.com/a-parris21/ap21-ssg"&gt;ap21-ssg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;New Features added&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/19"&gt;Issue 19 - User can specify an output directory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/20"&gt;Issue 20 - Recursive folder parsing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;Merge Commits&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/commit/7517130"&gt;Merged issue-19 into main&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/commit/51d58d9"&gt;Merged issue-20 into main&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Working in parallel branches for adding new features ensured that, when I made any changes to the code, if the new changes generated errors or broke the program; the previous bug-free stable version would remain intact and I wouldn't lose that work.&lt;/p&gt;

&lt;p&gt;I was able to code the solution for 'issue-19' (allowing the user to specify an output directory) without losing any of the progress I made prior to adding this new feature.&lt;/p&gt;

&lt;p&gt;I encountered some issues when I attempted to merge the solution for 'issue-20' (adding support for recursive file parsing). I resolved the conflicts generated when attempting to merge the two branches into 'main' &lt;a href="https://github.com/a-parris21/ap21-ssg/commit/d150685"&gt;here&lt;/a&gt;.&lt;br&gt;
However, for one of the functions, I merged from the wrong branch, but since only minor changes to the code (about 4 lines total) were necessary, I went back and manually adjusted the code.&lt;br&gt;
See &lt;a href="https://github.com/a-parris21/ap21-ssg/issues/21"&gt;Issue 21 - Resolved conflicts between issue-19 &amp;amp; issue-20 merges&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;I think that, in reference to merging the function from the wrong branch, it would have been a better solution to revert the changes, and then re-merge using the correct branch. However, since the changes I needed to make were very minor, I opted to edit the code manually this time.&lt;/p&gt;

</description>
      <category>github</category>
      <category>branches</category>
    </item>
    <item>
      <title>First GitHub pull req + Lab2</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sat, 24 Sep 2022 02:05:01 +0000</pubDate>
      <link>https://forem.com/aparris21/first-github-pull-req-lab2-1kp9</link>
      <guid>https://forem.com/aparris21/first-github-pull-req-lab2-1kp9</guid>
      <description>&lt;p&gt;This was my first time using GitHub to create a pull request for merging my edits into someone else's project's main branch.&lt;/p&gt;

&lt;p&gt;It was fun learning something new.&lt;/p&gt;

&lt;p&gt;And the implementation of the initial markdown support was not too difficult. Completing lab 2 was intriguing.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>github</category>
    </item>
    <item>
      <title>Progress on Release 0.1</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sat, 17 Sep 2022 03:30:58 +0000</pubDate>
      <link>https://forem.com/aparris21/progress-on-release-01-2f5m</link>
      <guid>https://forem.com/aparris21/progress-on-release-01-2f5m</guid>
      <description>&lt;p&gt;Hello!&lt;/p&gt;

&lt;p&gt;This week I got started on Release 0.1, though I've run into a lot of bugs so far, it's been very engaging trying to build my own SSG tool.&lt;/p&gt;

&lt;p&gt;I worked with my partner (&lt;a href="https://dev.to/anshul137"&gt;anshul137&lt;/a&gt;) to improve the code in both SSG tools. We've known each other from previous classes and discussed this project via Slack.&lt;/p&gt;

&lt;p&gt;Reviewing Anshul's SSG tool was relatively easy — his logic was straightforward and not difficult to understand. I did find a few issues in his code but not very many as of this post.&lt;/p&gt;

&lt;p&gt;Anshul reviewed my SSG tool and found some issues that I wasn't aware of initially (such as the /dist folder not being created) as well as some minor errors I had overlooked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The issues I filed:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/anshul137/ag-ssg/issues/1"&gt;minor errors in README.md file&lt;/a&gt; - There were some minor spelling, formatting and information errors in the README.md file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/anshul137/ag-ssg/issues/2"&gt;Help message from CLI &lt;code&gt;--help&lt;/code&gt; flag is minimalistic&lt;/a&gt; - Help message generated by the CLI &lt;code&gt;--help&lt;/code&gt; flag looks like a placeholder help message. It does not yet provide any intuitive information about the tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/anshul137/ag-ssg/issues/3"&gt;Attempting to run &lt;code&gt;npm link&lt;/code&gt; gives an error&lt;/a&gt; - The instructions stated to run the &lt;code&gt;npm link&lt;/code&gt; command before using the tool but this generated an error.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/anshul137/ag-ssg/issues/4"&gt;Version number in &lt;code&gt;package.json&lt;/code&gt; is an invalid number&lt;/a&gt; - The version number listed in the &lt;code&gt;package.json&lt;/code&gt; file for the app was not in a valid format.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/anshul137/ag-ssg/issues/5"&gt;Error when attempting to use &lt;code&gt;--input&lt;/code&gt; flag&lt;/a&gt; - Attempting to use the &lt;code&gt;--input&lt;/code&gt; flag generated an error when the program attempted to delete the old /dist folder. A function invoked by the code is not recognized.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The issues my partner filed:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/1"&gt;README.md file missing&lt;/a&gt; - I was working on the 'test' branch of my repos and did not switch back to the 'main' branch in order to push the updated README.md file there. It has now been pushed to the 'main' branch though it is not yet fully completed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/2"&gt;Output files are missing&lt;/a&gt; - My program currently does not generate output &lt;code&gt;.html&lt;/code&gt; files as intended. Currently working to resolve this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/3"&gt;/dist folder is not created&lt;/a&gt; - The /dist folder is not created when the program executes. Currently looking into this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/4"&gt;2 optional implementations are missing&lt;/a&gt; - The optional implementation features for the code were missing. They have been added to the program and also to the README.md file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/a-parris21/ap21-ssg/issues/5"&gt;--version CLI flag not function correctly&lt;/a&gt; - The name of the tool prints to the console when Anshul tests the app but the version number either does not appear or has the wrong value.&lt;/p&gt;

&lt;p&gt;Anshul was able to fix most of his issues thus far. &lt;br&gt;
I am currently working to resolve issues #2 and #3 in my code.&lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>First post!</title>
      <dc:creator>a-parris21</dc:creator>
      <pubDate>Sat, 10 Sep 2022 00:26:17 +0000</pubDate>
      <link>https://forem.com/aparris21/first-post-cd</link>
      <guid>https://forem.com/aparris21/first-post-cd</guid>
      <description>&lt;h1&gt;
  
  
  include 
&lt;/h1&gt;

&lt;p&gt;//#include &lt;/p&gt;

&lt;p&gt;int main()&lt;br&gt;
{&lt;br&gt;
  std::cout &amp;lt;&amp;lt; "Hello Reader!\n";&lt;br&gt;
  std::cout &amp;lt;&amp;lt; "Please see my bio." &amp;lt;&amp;lt; std::endl;&lt;/p&gt;

&lt;p&gt;return 0;&lt;br&gt;
}&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>git</category>
      <category>github</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
