<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neil An</title>
    <description>The latest articles on DEV Community by Neil An (@neilan99).</description>
    <link>https://dev.to/neilan99</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%2F922082%2F34e86134-07a0-4ab9-ad15-23c8995002d4.png</url>
      <title>DEV Community: Neil An</title>
      <link>https://dev.to/neilan99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neilan99"/>
    <language>en</language>
    <item>
      <title>Release 0.4 - Results</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Sun, 11 Dec 2022 12:19:26 +0000</pubDate>
      <link>https://dev.to/neilan99/release-04-results-19n3</link>
      <guid>https://dev.to/neilan99/release-04-results-19n3</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I completed the issues as described in my previous posts &lt;a href="https://dev.to/neilan99/release-04-planning-43fg"&gt;here&lt;/a&gt; and &lt;a href="https://dev.to/neilan99/release-04-my-progress-so-far-1f8a"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To recap the issues:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/216" rel="noopener noreferrer"&gt;generate a favicon.ico for our apps&lt;/a&gt;&lt;br&gt;
This issue looks to update the favicon logo to match the current logo that they are using. &lt;a href="https://github.com/ayoayco/astro-reactive-library/pull/221" rel="noopener noreferrer"&gt;My PR.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/148" rel="noopener noreferrer"&gt;chore: create script for updating RELEASE.md before PR&lt;/a&gt;&lt;br&gt;
This issue looks to update any RELEASE.md files when a developer changes a package. The script will ask the developer what is the scope of the PR they are making and what changes they made to a package and write to the appropriate RELEASE.md file. &lt;a href="https://github.com/ayoayco/astro-reactive-library/pull/232" rel="noopener noreferrer"&gt;My PR.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Last week I completed the first issue and this week I completed the second issue. I think I paced myself well enough considering all the other work I had to do (and that it's finals week). I really liked the fact that I worked on this repo for a while now (since Hacktoberfest) and that I got to meet some really cool and helpful people from the repo.&lt;/p&gt;

&lt;p&gt;The second issue I worked on was a little more open ended. To start, I created a script that asked the contributor what package they changed, what type of PR they were making (patch, minor, or major), and the description of changes they made. This information would then be used to update the corresponding RELEASE.md file for that package with the correct incremented version. I submitted a PR and received some feedback regarding the code. Also, I was asked to remove the versioning because of PR's may not be the same as releases. After updating my code, my PR was good to go.&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>Release 0.4 - My Progress So Far</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Sun, 04 Dec 2022 11:19:43 +0000</pubDate>
      <link>https://dev.to/neilan99/release-04-my-progress-so-far-1f8a</link>
      <guid>https://dev.to/neilan99/release-04-my-progress-so-far-1f8a</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I worked on the &lt;a href="https://dev.to/neilan99/release-04-planning-43fg"&gt;issues I described here last week&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, I tackled the &lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/216" rel="noopener noreferrer"&gt;issue here&lt;/a&gt;. This issue looks to update the favicon logo to match the current logo that they are using. To do this, I used the .svg logo they had and generated a favicon.ico with it. I created a &lt;a href="https://github.com/ayoayco/astro-reactive-library/pull/221" rel="noopener noreferrer"&gt;pull request&lt;/a&gt; and had some feedback about it. I had only tested it visually using light mode and had not considered how it would look using dark mode. On dark mode, the icon had bad contrast since the it was dark blue on a dark grey background. So to fix this, I added a circular white background to the logo so that it would look good on both light and dark mode.&lt;/p&gt;

&lt;p&gt;The next &lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/148" rel="noopener noreferrer"&gt;issue&lt;/a&gt; is still a WIP. I have created a basic implementation of the script, but I am still working out some logic.&lt;/p&gt;

&lt;p&gt;Overall, I feel that I am on track to complete the issues I have chosen (hopefully).&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>database</category>
    </item>
    <item>
      <title>Release 0.4 Planning</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Thu, 01 Dec 2022 02:12:09 +0000</pubDate>
      <link>https://dev.to/neilan99/release-04-planning-43fg</link>
      <guid>https://dev.to/neilan99/release-04-planning-43fg</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I have chosen to work on the &lt;a href="https://github.com/ayoayco/astro-reactive-library" rel="noopener noreferrer"&gt;Astro Reactive Library repo&lt;/a&gt; for release 0.4. I chose this repo because I have been contributing to it for the last couple of months and I am familiar with the project. I will be working on two issues:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/216" rel="noopener noreferrer"&gt;generate a favicon.ico for our apps&lt;/a&gt;&lt;br&gt;
This issue looks to update the favicon logo to match the current logo that they are using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/148" rel="noopener noreferrer"&gt;chore: create script for updating RELEASE.md before PR&lt;/a&gt;&lt;br&gt;
This issue looks to update any RELEASE.md files when a developer changes a package. The script will ask the developer what is the scope of the PR they are making and what changes they made to a package and write to the appropriate RELEASE.md file.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first issue seems straightforward to me, but the second issue I chose is a little more open-ended. I plan to first create a basic implementation and iteratively add more features to the script to make it more comprehensive and convenient for the developers.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Releasing my SSG with NPM</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Mon, 21 Nov 2022 23:21:25 +0000</pubDate>
      <link>https://dev.to/neilan99/releasing-my-ssg-with-npm-1mnf</link>
      <guid>https://dev.to/neilan99/releasing-my-ssg-with-npm-1mnf</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I released my &lt;a href="https://www.npmjs.com/package/nan1-ssg"&gt;static site generator&lt;/a&gt; to the &lt;a href="https://www.npmjs.com/"&gt;npm registry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The process for releasing my package was simple. First, you need to sign up on the npm website. Next, you need to make sure you have a package.json file in the root directory of your project. Then, created a README.md file to document how to use your package. Finally, issue the &lt;code&gt;npm publish&lt;/code&gt; command to publish your package to the npm registry. &lt;/p&gt;

&lt;p&gt;I didn't have to change much in my code to accommodate the release at first. But when I asked my friend to test it out for me, he found a couple things that I needed to change. First, the &lt;code&gt;npm link&lt;/code&gt; command that I had wrote in the README file did not work. This was because the command looks for a package.json file in the current directory, but since he installed using npm, there was no package.json file in his current directory. Therefore I had to make a change from &lt;code&gt;npm link&lt;/code&gt; to &lt;code&gt;npm link nan1-ssg&lt;/code&gt;. The second thing he found was minor, but he saw that when he printed the version number using &lt;code&gt;nan1-ssg -v&lt;/code&gt;, it was 0.2, not 1.01. `This was an easy fix and I updated the version number.&lt;/p&gt;

&lt;p&gt;To try out my SSG, follow the instructions &lt;a href="https://www.npmjs.com/package/nan1-ssg"&gt;here&lt;/a&gt;. The README file should provide the documentation you need to use my project.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>An internal PR</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Sun, 20 Nov 2022 22:00:05 +0000</pubDate>
      <link>https://dev.to/neilan99/an-internal-pr-55li</link>
      <guid>https://dev.to/neilan99/an-internal-pr-55li</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I fixed a UI error on &lt;a href="https://github.com/Seneca-CDOT/telescope"&gt;Telescope&lt;/a&gt;, an aggregate of blogs from Seneca students. The project set-up took some time for me because there were a lot of different things I had to install and use, but the documentation provided helped me set the project up. After running the project, I discovered that the sign-up form had a UI error on the YouTube/Twitch form:&lt;/p&gt;

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

&lt;p&gt;The button says &lt;code&gt;VALIDATE BLOG&lt;/code&gt;, when you're supposed to be validating your YouTube/Twitch URLs. To fix this, I first had to learn the project's code and directory structure. Eventually I found the place where the &lt;a href="https://github.com/Seneca-CDOT/telescope/blob/master/src/web/app/src/components/SignUp/Forms/ChannelFeeds.tsx"&gt;code for that form was&lt;/a&gt;. After making the change to &lt;code&gt;VALIDATE CHANNEL(S)&lt;/code&gt;, I received some feedback to add some padding to the button and change the text to just &lt;code&gt;VALIDATE&lt;/code&gt;. Here's the end result:&lt;/p&gt;

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

&lt;p&gt;The biggest challenge I faced was not the code itself, but using Git. I was asked to squash all my commits into 1, but I accidentally updated the branch and merged the master branch into my local branch, so I couldn't rebase properly. After some extremely helpful advice from some peers, I was able to squash all commits into one and get my &lt;a href="https://github.com/Seneca-CDOT/telescope/pull/3760"&gt;PR merged&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Reviewing code for peers</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Sun, 20 Nov 2022 05:22:06 +0000</pubDate>
      <link>https://dev.to/neilan99/reviewing-code-for-peers-4fb9</link>
      <guid>https://dev.to/neilan99/reviewing-code-for-peers-4fb9</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I reviewed some code for some fellow peers in my course.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Seneca-CDOT/telescope/pull/3763#issuecomment-1317621482"&gt;first review&lt;/a&gt; was for a PR that wanted to clarify the difference between a blog URL (HTML) and a blog feed URL (XML) during the sign-up process. I thought that it would've been a good idea to include an example of a blog URL vs a blog feed URL just for extra clarification.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Seneca-CDOT/telescope/pull/3767#issuecomment-1320813665"&gt;second review&lt;/a&gt; was for a PR that fixed a link when clicking the "About" icon in the sidebar. The PR looked good after review, but the author was having similar trouble with rebasing like I did in my PR. So, I provided him the same instructions that someone else gave me.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Adding CI to my SSG</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Thu, 17 Nov 2022 01:17:46 +0000</pubDate>
      <link>https://dev.to/neilan99/adding-ci-to-my-ssg-4m7p</link>
      <guid>https://dev.to/neilan99/adding-ci-to-my-ssg-4m7p</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I added CI to my &lt;a href="https://github.com/NeilAn99/nan1-ssg"&gt;SSG&lt;/a&gt;. I used GitHub's CI service GitHub Actions to accomplish this. It was very easy to set up as I just had to find the Node.js workflow and add it.&lt;/p&gt;

&lt;p&gt;This is what the YAML file looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: Node.js CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x, 16.x, 18.x]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/NeilAn99/nan1-ssg/actions/runs/3457131724"&gt;Here's the link to my successful workflow run.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also added a test to a &lt;a href="https://github.com/LostButton/my-button-ssg"&gt;partner's SSG&lt;/a&gt;. Writing a test for their SSG was not difficult as their code was easy to understand. They were using the same testing framework/workflow as me.&lt;/p&gt;

&lt;p&gt;I think CI is extremely easy to set up and very useful to have. It's important for the main branch of a project to be running and working at all times.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Making another PR to a repo</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Mon, 14 Nov 2022 17:10:05 +0000</pubDate>
      <link>https://dev.to/neilan99/making-another-pr-to-a-repo-c8p</link>
      <guid>https://dev.to/neilan99/making-another-pr-to-a-repo-c8p</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I worked on &lt;a href="https://github.com/ayoayco/astro-reactive-library"&gt;Astro reactive library&lt;/a&gt;, a repo that I previously worked on for Hacktoberfest. Astro reactive library uses the Astro framework to let you build reactive user interfaces.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/175"&gt;issue&lt;/a&gt; was to add a &lt;code&gt;setValue&lt;/code&gt; method to the FormGroup class. This would allow anyone using Astro to set the values of any form controls in that form group. For example:&lt;/p&gt;

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

&lt;p&gt;should produce the following result:&lt;/p&gt;

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

&lt;p&gt;Since I was familiar with this repo, I didn't have to learn the documentation. The first thing I did was find the file where I had to make my changes. After finding the &lt;a href="https://github.com/ayoayco/astro-reactive-library/blob/main/packages/form/core/form-group.ts"&gt;file&lt;/a&gt;, I needed to figure out how I would implement the method. I looked in the &lt;a href="https://github.com/ayoayco/astro-reactive-library/blob/main/packages/form/core/form-control.ts"&gt;form-control&lt;/a&gt; to see what properties each form control has and how I could use those properties in my implementation. I found that each form control has a &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;value&lt;/code&gt; property that I could use. So, after figuring this out, I created my first implementation for the method. I also updated a demo page I created during Hacktoberfest to use the new method and submitted a &lt;a href="https://github.com/ayoayco/astro-reactive-library/pull/191"&gt;PR&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The repo owner reviewed my PR and requested I make some changes, specifically to an ESLint error and to change my method implementation to be more efficient. After making the changes, they approved my PR and merged.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Adding tests to my SSG</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Fri, 11 Nov 2022 02:24:17 +0000</pubDate>
      <link>https://dev.to/neilan99/adding-tests-to-my-ssg-j82</link>
      <guid>https://dev.to/neilan99/adding-tests-to-my-ssg-j82</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I added some testing tools to my &lt;a href="https://github.com/NeilAn99/nan1-ssg"&gt;SSG&lt;/a&gt;. The project now uses &lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt; for testing. I chose to use Jest because it is a very popular testing framework for JavaScript. I contemplated using &lt;a href="https://mochajs.org/"&gt;Mocha&lt;/a&gt;, but after doing some research, decided Jest was easier to use out of the box. Installing Jest was easy. All I had to do was install it using npm: &lt;code&gt;npm install --save-dev jest&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Writing the test cases on the other hand was more difficult. A lot of my tests didn't work as expected and I spent a lot of time figuring out how to use different types of matchers. I also had to change some of my existing code to handle some cases correctly. For example, if a function that handled text files was given a markdown file, then that function should throw an error or reject.&lt;/p&gt;

&lt;p&gt;I learned a lot about testing. Even though I struggled a lot with writing tests, I can see the benefits of using tests, especially when you're working in a shared repository and you have to ensure that the code works.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Adding static analysis to my SSG</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Tue, 01 Nov 2022 00:48:15 +0000</pubDate>
      <link>https://dev.to/neilan99/adding-static-analysis-to-my-ssg-2c</link>
      <guid>https://dev.to/neilan99/adding-static-analysis-to-my-ssg-2c</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I added some static analysis tools to my &lt;a href="https://github.com/NeilAn99/nan1-ssg"&gt;SSG&lt;/a&gt;. The tools I added are &lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt; and &lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt;. Prettier is a code formatter to make code consistent and ESLint checks your code for any common errors/warnings.&lt;/p&gt;

&lt;p&gt;It was easy to set both tools up. Since I was using nodejs, all I had to do was install the tools using npm. For Prettier, I used:&lt;br&gt;
&lt;code&gt;npm install --save-dev --save-exact prettier&lt;/code&gt;&lt;br&gt;
and for ESLint I used:&lt;br&gt;
&lt;code&gt;npm init @eslint/config&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Prettier changed a lot of stuff in my code. I usually put curly braces after a function or control statement like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (...)
{

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

&lt;/div&gt;



&lt;p&gt;but Prettier changed to format to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (...) {

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

&lt;/div&gt;



&lt;p&gt;Prettier also changed my indentation spacing and made everything look more compact.&lt;/p&gt;

&lt;p&gt;For ESLint, it found a bunch of errors/warnings in my code. For example, a common warning was that I had unused variables in my code. There was also a warning telling me not to use async in a promise object.&lt;/p&gt;

&lt;p&gt;To get the tools to run in the command line, I edited the package.json file and added some scripts to run Prettier and ESLint. Here is what I added:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    "lint": "npx eslint src",
    "prettier": "npx prettier --write .",
    "prettier-check": "npx prettier --check ."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To integrate these tools into my IDE (VSCode), I just added the Prettier and ESLint extensions. For people contributing to my project, I added a .vscode/extensions.json file so that these extensions would be recommended to them on opening the project.&lt;/p&gt;

&lt;p&gt;Overall, I learned a lot about formatters and linters and why they are important when working in a shared repo.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hacktoberfest Recap</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Sun, 30 Oct 2022 01:23:25 +0000</pubDate>
      <link>https://dev.to/neilan99/hacktoberfest-recap-1ll5</link>
      <guid>https://dev.to/neilan99/hacktoberfest-recap-1ll5</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;I have finally completed my Hacktoberfest journey. It was definitely a lot more stressful than I thought, but I'm glad I was able to complete it on time. The main problem that I had was finding the right issue to work on. It took me way too long to find the right issues that I wanted to work on. &lt;/p&gt;

&lt;p&gt;Here are my blogs that document my journey:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/neilan99/my-first-pr-for-hacktoberfest-b9d"&gt;https://dev.to/neilan99/my-first-pr-for-hacktoberfest-b9d&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/neilan99/my-second-pr-for-hacktoberfest-4geh"&gt;https://dev.to/neilan99/my-second-pr-for-hacktoberfest-4geh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/neilan99/my-third-hacktoberfest-pr-823"&gt;https://dev.to/neilan99/my-third-hacktoberfest-pr-823&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/neilan99/my-fourth-hacktoberfest-pr-4oni"&gt;https://dev.to/neilan99/my-fourth-hacktoberfest-pr-4oni&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I learned a few things on my journey. First, finding the right issue is important. I had to make sure the repo I was working on was documented well and had been updated recently. I also learned to start early, because I ran into a lot of problems that made me unable to continue to work and I had to scrap some issues I worked on. Most repo owners were very helpful and friendly, but I did run into some who did not answer my questions or were not responding at all. I became very familiar with contributing to a repo and I learned how to read documentation better. Finally, I learned to believe in my own skills as a programmer.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My fourth Hacktoberfest PR</title>
      <dc:creator>Neil An</dc:creator>
      <pubDate>Sat, 29 Oct 2022 23:54:41 +0000</pubDate>
      <link>https://dev.to/neilan99/my-fourth-hacktoberfest-pr-4oni</link>
      <guid>https://dev.to/neilan99/my-fourth-hacktoberfest-pr-4oni</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I completed my final Hacktoberfest PR. For my final PR, I chose to contribute to &lt;a href="https://github.com/ayoayco/astro-reactive-library"&gt;Astro reactive library&lt;/a&gt;. Astro reactive library uses the Astro framework to let you build reactive user interfaces.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/ayoayco/astro-reactive-library/issues/162"&gt;issue&lt;/a&gt; was to create a demo page showcasing everything the library has to offer with form control. This issue was interesting and a bit challenging to work on because I had to learn the &lt;a href="https://astro.build/"&gt;Astro documentation&lt;/a&gt; before I could start writing code. The syntax and coding style in Astro is different from other frameworks, but it was fun learning new things. The main benefit of Astro vs other frameworks is that websites are built faster. The cool thing about Astro is that Astro is built from components and it's syntax is a superset of HTML. An Astro component is denoted by its file extension &lt;code&gt;.astro&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;After familiarizing myself with Astro, I started to create my demo page. I decided to use the &lt;a href="https://tailwindcss.com/"&gt;tailwindcss framework&lt;/a&gt; to help me style my page since Astro supported it. This meant I had to read the tailwind documentation to style my page. Finally, after familiarizing myself with tailwind, I created the html for my page. For the demo page, I designed and created a job application page. This page included many form control types like text, radio, dropdowns, checkboxes, file upload, and a submit button. To do this, I used the built-in FormGroup from the library. I had to read the other parts of the source code to make sure I was using it correctly. Finally, I finished the page and created a &lt;a href="https://github.com/ayoayco/astro-reactive-library/pull/164"&gt;pull request&lt;/a&gt;. The most difficult thing about this PR was reading the documentation and making sure I was using the frameworks correctly.&lt;/p&gt;

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