<?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: CDPhu</title>
    <description>The latest articles on DEV Community by CDPhu (@cdphu).</description>
    <link>https://dev.to/cdphu</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%2F921772%2Fe8600d19-bd9d-44c7-9a36-361ee55a31e6.jpeg</url>
      <title>DEV Community: CDPhu</title>
      <link>https://dev.to/cdphu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cdphu"/>
    <language>en</language>
    <item>
      <title>Update</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Thu, 29 Feb 2024 19:05:55 +0000</pubDate>
      <link>https://dev.to/cdphu/update-17ae</link>
      <guid>https://dev.to/cdphu/update-17ae</guid>
      <description>&lt;p&gt;Hey there, haven't been on here a while, but I just wanted to update you all on what's been happening. I've graduated from college a while back and am job searching.&lt;/p&gt;

&lt;p&gt;But in the time that I have not been sitting idly, because I have been working on certifications from IBM as well as Oracle. So far its been a slow process but I will update again, hopefully sooner rather than later.&lt;/p&gt;

&lt;p&gt;But &lt;a href="https://www.credly.com/users/chan-dinh-phu/badges"&gt;here&lt;/a&gt; you can find my badges so far. Thanks for reading.&lt;/p&gt;

</description>
      <category>update</category>
      <category>productivity</category>
      <category>certification</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Release 0.4 - Finale</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Sat, 10 Dec 2022 20:03:36 +0000</pubDate>
      <link>https://dev.to/cdphu/release-04-finale-g33</link>
      <guid>https://dev.to/cdphu/release-04-finale-g33</guid>
      <description>&lt;p&gt;We have reached the finishing point of the semester as well as Release 0.4. &lt;/p&gt;

&lt;p&gt;I managed to finish the implementations themselves, it took a bit of time finishing the react but it was well worth the time.&lt;/p&gt;

&lt;p&gt;For the Continuous integration, I managed to get the CI to run properly and also run the authors version of lint. I should have expected it to fail because there were several issues when running lint locally but it was the difference between. CRLF and LF, which is only the difference in line feed in different operating systems. So I assumed GitHub would ignore that and it did. though the Authors code did have some issues that I did not find. So I can safely say that I managed to integrate &lt;code&gt;ESLint&lt;/code&gt; in the continuous integration properly.&lt;/p&gt;

&lt;p&gt;For the timer I managed to finish the class for it to countdown till it reached zero. The timer has a constructor that would store the time and in the tick function it would do the math for the countdown. Then there would be a function to start the countdown and it would set the countdown as it kept ticking. Finally the render would be sent within contained between &lt;code&gt;&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&lt;/code&gt;. The index file would take the class and set the amount of seconds and send it to the main app.&lt;/p&gt;

&lt;p&gt;But as the author requested, instead of making a class, it would be better if I could export it as a function. So I decided to revamp my code as a whole, and changed it to a much more simple function, instead of setting it up similar to the class before with multiple functions, it is one function that does everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: I am now a &lt;a href="https://github.com/Ewager1/scrambled/tree/new-timer" rel="noopener noreferrer"&gt;collaborator&lt;/a&gt; for this repository.&lt;/p&gt;

&lt;p&gt;As for why they are not merged yet, I am still awaiting a review from both Repositories. For &lt;strong&gt;scrambled&lt;/strong&gt;, I basically have evrything done as per the authors request, and changing it to a function. As for &lt;strong&gt;github-writter&lt;/strong&gt; I have not heard from them.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Release 0.4 - Progress</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Fri, 02 Dec 2022 01:51:17 +0000</pubDate>
      <link>https://dev.to/cdphu/release-04-progress-4p4j</link>
      <guid>https://dev.to/cdphu/release-04-progress-4p4j</guid>
      <description>&lt;p&gt;So far, I have made some progress on both the newer repositories.&lt;/p&gt;

&lt;p&gt;For &lt;code&gt;github-writer&lt;/code&gt; I figured out the basis of how to run the commands during the workflow. Currently I'm sure that it relies on Node version 16, I have tried running the integration with different versions but they &lt;strong&gt;will&lt;/strong&gt; fail. Not only that but the versions of the &lt;code&gt;CDK editor&lt;/code&gt; are also very specific. &lt;/p&gt;

&lt;p&gt;So now that I know that, It &lt;strong&gt;HAS&lt;/strong&gt; to stay the same, so there isn't much I can modify within the &lt;code&gt;package.json&lt;/code&gt; . Even upgrading it to a more recent version would break the continuous integration workflow.&lt;/p&gt;

&lt;p&gt;What I'm going to focus on next is trying to properly run lint within this workflow. From my previous implementation of lint was not correct, so I will have to somehow find a way to properly run the command in order to get the correct result. I would also have to figure out &lt;/p&gt;

&lt;p&gt;As for &lt;code&gt;scrambled&lt;/code&gt; So far, I have the layout of how it should be displayed somewhat finished. I even included it within the &lt;code&gt;App.js&lt;/code&gt; file so I could test it locally to see that it does convert it to minutes and seconds from a parent.&lt;/p&gt;

&lt;p&gt;For now it does take from a parent and display it, so from now I will be focusing on creating a tick that would set it as a countdown. The hard part would be trying to set up the speed at which it would tick down, and set it to stop at &lt;code&gt;00:00&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;That is what I will be focusing on up until the finished product.&lt;/p&gt;

&lt;p&gt;NOTE: The wedding repository has been either privated or removed from githu&lt;/p&gt;

</description>
      <category>programming</category>
      <category>react</category>
      <category>opensource</category>
      <category>github</category>
    </item>
    <item>
      <title>Release 0.4 - Planning Rework</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Wed, 30 Nov 2022 23:36:33 +0000</pubDate>
      <link>https://dev.to/cdphu/release-04-planning-rework-145j</link>
      <guid>https://dev.to/cdphu/release-04-planning-rework-145j</guid>
      <description>&lt;p&gt;Due to some unexpected circumstances that in my previous post for &lt;strong&gt;Release 0.4&lt;/strong&gt;, the author of the repository no longer wanted the test dummy gallery.&lt;/p&gt;

&lt;p&gt;It was quite unfortunate because, when he said this, I had just finished the react component of the code and all it needed was a review from him. But I didn't commit on time and I saw that he had closed the issue stating that it was no longer needed. So I just have one semi-finished product without the review.&lt;/p&gt;

&lt;p&gt;So I opted for a different repo, or rather, two in particular:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One was to create Continuous Integration for a repository called &lt;a href="https://github.com/ckeditor/github-writer"&gt;github-writer&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This one is what we have done in a previous lab, but instead of relying on node and &lt;code&gt;npm&lt;/code&gt;, this time it also relies on the use of &lt;code&gt;yarn&lt;/code&gt;. So somehow I would have to integrate yarn instead of &lt;code&gt;npm&lt;/code&gt; like in my previous lab to create this integration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The second one is to create a timer that would take  set amount of seconds from a parent state and displays those seconds as minutes and seconds. It will then start counting down to zero in the repository called &lt;a href="https://github.com/Ewager1/scrambled"&gt;scrambled&lt;/a&gt;. (It is a relatively new project)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scrambled is based of the use of react and since I previously tried to do something in react but couldn't (rather they canceled on me). So this would be another chance for me to give it another go at using &lt;code&gt;React&lt;/code&gt;. I'd have to somehow figure out how to get the system to take a parent amount and then figure out how to convert the numbers into minutes and seconds. After that somehow set a loop for it to countdown until it reaches and stops at zero.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>github</category>
      <category>programming</category>
      <category>react</category>
    </item>
    <item>
      <title>Release 0.4 - Week 1</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Sun, 27 Nov 2022 00:28:43 +0000</pubDate>
      <link>https://dev.to/cdphu/release-04-week-1-li5</link>
      <guid>https://dev.to/cdphu/release-04-week-1-li5</guid>
      <description>&lt;p&gt;For this release, I plan to work on a repository called &lt;a href="https://github.com/sean1093/wedding" rel="noopener noreferrer"&gt;wedding&lt;/a&gt;. The objective itself was to create a test gallery that would fit with the authors objective.&lt;/p&gt;

&lt;p&gt;The thing is when the author first created the issue there was not that many details about how he wanted. So I just went off and created a test gallery that I thought he would like.&lt;/p&gt;

&lt;p&gt;That was before, he told me what kind of requirements he would like. After finding out his requirements, I had to change up my approach completely, which is honestly a blessing in disguise. &lt;/p&gt;

&lt;p&gt;I have not worked much with react, only during school so that means working on this would allow me to hone my skills in &lt;code&gt;react&lt;/code&gt;, which I have not done much of compared to others. I haven't even used react for a long while, so I need to relearn how the system works. I have to follow what the author already laid for me and build from there.&lt;/p&gt;

&lt;p&gt;This is new because as of now, I am building a part of a web app &lt;strong&gt;without&lt;/strong&gt; using &lt;code&gt;html&lt;/code&gt; files whatsoever.&lt;/p&gt;

&lt;p&gt;I'm hoping to be able to relearn how react works and build properly what the author is asking.&lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
    <item>
      <title>Software Release Via NPM</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Sat, 26 Nov 2022 00:31:03 +0000</pubDate>
      <link>https://dev.to/cdphu/software-release-via-npm-3j25</link>
      <guid>https://dev.to/cdphu/software-release-via-npm-3j25</guid>
      <description>&lt;p&gt;For this lab, I have chosen to release my tool via the use of NPM.&lt;/p&gt;

&lt;h4&gt;
  
  
  Preparation before publishing
&lt;/h4&gt;

&lt;p&gt;Create a package.json file if you don't have in the root directory.&lt;br&gt;
Use this npm init to create the new package.json file.&lt;/p&gt;

&lt;p&gt;A package.json file:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lists the packages your project depends on&lt;/li&gt;
&lt;li&gt;Specifies versions of a package that your project can use using semantic versioning rules&lt;/li&gt;
&lt;li&gt;Makes your build reproducible, and therefore easier to share with other developers&lt;/li&gt;
&lt;li&gt;Make sure to add the name, version and author in your package.json file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ADD a README.md file to a package:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In a text editor, in your package root directory, create a file called README.md.&lt;/li&gt;
&lt;li&gt;In the README.md file, add useful information about your package.&lt;/li&gt;
&lt;li&gt;Save the README.md file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Publish your release:&lt;br&gt;
-Make sure you have created the account npm and verified it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the &lt;code&gt;npm login&lt;/code&gt; on your terminal. Login with your username and password.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;npm publish --access public&lt;/code&gt; to create and publish scoped public packages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note: Update types&lt;/strong&gt;&lt;br&gt;
Each digit in the version has it's own meaning:&lt;br&gt;
1) First digit means major release.(resetting two later digit to zero)&lt;br&gt;
2) Second digit means minor change in the software(resetting last digit to zero)&lt;br&gt;
3) Last digit means a patch release.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a href="https://www.npmjs.com/package/button-ssg"&gt;Installing&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;After releasing my static site to install it locally on your device you can use &lt;code&gt;npm i button-ssg&lt;/code&gt; to download my program.&lt;/p&gt;

&lt;h4&gt;
  
  
  Feedback
&lt;/h4&gt;

&lt;p&gt;It's important to avoid taking feedback as personal criticism. When people provide us with feedback, we should be grateful because they are actually pointing out areas in which we need to improve.&lt;/p&gt;

&lt;h4&gt;
  
  
  Thoughts
&lt;/h4&gt;

&lt;p&gt;This lab was a welcome one, that allowed us to contribute more to the community if anything. It was a first for me when publishing to npm, but this is useful information. I have always wondered how people were publishing their programs and now here I am, doing just that.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>npm</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Release 0.3 - Internal</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Fri, 18 Nov 2022 21:05:56 +0000</pubDate>
      <link>https://dev.to/cdphu/release-03-internal-22el</link>
      <guid>https://dev.to/cdphu/release-03-internal-22el</guid>
      <description>&lt;p&gt;This was the first commit for this release I contributed to, but it took a while to finish since me and some others were building  a completely new website from scratch. Safe to say we can expect much more in the future. The website is called &lt;strong&gt;&lt;a href="https://github.com/humphd/my-photohub"&gt;My Photohub&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;No. 1:&lt;/strong&gt;&lt;br&gt;
I first started by creating a base line of what the website should look like, any form of padding needed. I then started researching for any open source or &lt;code&gt;node_modules&lt;/code&gt; that could be used. the first one I cam across that took my interest was called &lt;a href="https://fancyapps.com/docs/ui/fancybox/"&gt;Fancybox&lt;/a&gt;. It was relatively simple to use. Though what I did not check was when it was last updated. Turns out, Fancybox has not been updated for four years, and I was recommended to take a more modern version. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No. 2:&lt;/strong&gt;&lt;br&gt;
After doing some research on what was recommended I decided to use &lt;strong&gt;&lt;a href="https://photoswipe.com/getting-started/"&gt;PhotoSwipe&lt;/a&gt;&lt;/strong&gt; as a base for the gallery view. It took a bit of time for me to understand how the syntax worked, but eventually I understood. It was that the dimensions of the photos has to be inputted a certain way for them to fully fit within the gallery pop-up.&lt;/p&gt;

&lt;p&gt;I then deployed it statically, which took a lot of time because I didn't understand the concept of a static page fully. So it took a while, and a lot of questions to understand how to let parcel bundle it properly to be deployed.&lt;/p&gt;

&lt;p&gt;I was then requested to change to allow for complete fullscreen capabilities. This is due to the fact that using a mobile IOs device would cause double image. It took a bit of time but this is the result of the work:&lt;br&gt;
&lt;a href="https://lostbutton.github.io/my-photohub/"&gt;Test Gallery&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No. 3:&lt;/strong&gt;&lt;br&gt;
It was at this point where I had to start communicating with the other contributors to the repository. It was due to the fact that three of us previously had a &lt;code&gt;package.json&lt;/code&gt;, &lt;code&gt;package-lock.json&lt;/code&gt; each and that would cause conflicts around each other.&lt;/p&gt;

&lt;p&gt;So what we had to confirm was to create a separate pull request with only those &lt;code&gt;package.json&lt;/code&gt; and &lt;code&gt;package-lock.json&lt;/code&gt;. And then remove the package.json from the rest of our files before we fully committed.&lt;br&gt;
&lt;a href="https://github.com/humphd/my-photohub/pull/15"&gt;Initial Package Implimentation&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thoughts
&lt;/h3&gt;

&lt;p&gt;This was extremely time consuming, but otherwise puts into perspective how long it would takes to merge into a single repository. But that only means this is more experience for those of us participating. I as a contributor have also to take account for the other programmers codes. Other times, I was given their code and had to build around it, this time, we had to build around each others code, at the same time.&lt;/p&gt;

</description>
      <category>github</category>
      <category>javascript</category>
      <category>node</category>
      <category>community</category>
    </item>
    <item>
      <title>Internal Code Review -2 &amp; 3</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Fri, 18 Nov 2022 21:05:42 +0000</pubDate>
      <link>https://dev.to/cdphu/internal-code-review-2-3-igi</link>
      <guid>https://dev.to/cdphu/internal-code-review-2-3-igi</guid>
      <description>&lt;p&gt;Continuing my code reviewing, in the same repository as before I another issue popped up and being the person that I am, I took a shot at it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;No. 2:&lt;/strong&gt;&lt;br&gt;
I will be honest, I had quite the issue with this one, because there was not much that I could see wrong with the code. Even when running ESLint through I couldn't see much. I had a couple issues when trying to run the server because I thought be had to build a template, but that wasn't the case.&lt;/p&gt;

&lt;p&gt;After consulting with the author, apparently all I had to do was  &lt;code&gt;npm install&lt;/code&gt; and &lt;code&gt;npm run start&lt;/code&gt;. So after doing that the server runs successfully. What I initially saw was that the list of data types within the drop in box was being cut off. But there was no documentation on how to modify the values of the box. Even trying to modify his css file did not work, so there was no real way of making the box bigger or modifying the dimensions of the text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yuj9e267mnxicg56yyp.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yuj9e267mnxicg56yyp.PNG" alt="List of data types being cut off" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No. 3:&lt;/strong&gt;&lt;br&gt;
My Final code review was also in the same repository. There was not much code, but it from what I saw there was an issue that was pointed out in my code, so I thought I would recommend to them as well. Instead of importing from a CDN, they would import it from &lt;code&gt;node_modules&lt;/code&gt; instead. because importing from an &lt;code&gt;HTTP&lt;/code&gt; is still considered experimental according to the &lt;code&gt;node.js&lt;/code&gt; documentation.&lt;br&gt;
You can read more on it &lt;a href="https://nodejs.org/api/esm.html#https-and-http-imports"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thoughts
&lt;/h3&gt;

&lt;p&gt;Overall, I enjoyed this part of the assignment because it allowed me to review and check other students' code while also providing me with real-world experience with reviewing pull requests. The process of reviewing a pull request is critical because it ensures that only the best code is pushed into the main branch.&lt;/p&gt;

</description>
      <category>react</category>
      <category>opensource</category>
      <category>github</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Internal Code Review - 1</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Fri, 18 Nov 2022 21:05:26 +0000</pubDate>
      <link>https://dev.to/cdphu/internal-code-review-1-14e6</link>
      <guid>https://dev.to/cdphu/internal-code-review-1-14e6</guid>
      <description>&lt;p&gt;Reviewing code is not really my strong suit. It takes a lot of time and effort, something I lack. But I knew it was an essential tool to programmers, taking in and considering better alternatives for code, as well as optimizing it. So I had to push through, and eventually I found several errors within my first review:&lt;/p&gt;

&lt;h3&gt;
  
  
  Review
&lt;/h3&gt;

&lt;p&gt;My first ever code review, I decided to do within &lt;a href="https://github.com/humphd/my-photohub"&gt;my-photohub&lt;/a&gt;. I reviewed a fellow students code that being &lt;a href="https://github.com/SerpentBytes"&gt;SerpentBytes&lt;/a&gt;. I tried nitpicking at the small details. &lt;/p&gt;

&lt;p&gt;After that, I then decided to clone his code locally via the use of the HTTPS cloning and I couldn't really find anything that caught my eye. So I decided to use ESlint for any syntax. ESLint found several, one of which was an Unused import.&lt;/p&gt;

&lt;p&gt;After I submitted what I found the author of the pull request contacted me to help him test out the new version after he had made the changes. He walked me through getting my &lt;em&gt;personal access tokens&lt;/em&gt;. It took a while because I did not have &lt;code&gt;gh_&lt;/code&gt; before my token name. Which then caused me to have an &lt;code&gt;error 400&lt;/code&gt; being that it was an invalid request.&lt;/p&gt;

&lt;p&gt;So after getting that sorted out, when I added the proper credentials with an access token that does begin with &lt;code&gt;gh_&lt;/code&gt;, I finally got a passing message 200. He then asked me to check my GitHub if a repository has been created or not. When I checked, a new repository had been created in my account.&lt;/p&gt;

&lt;p&gt;He then asked me to re-input the access token so I did as he told. It was to check whether you can use the same access token twice. Tested it out, and a new repository had been created. So it was working completely as intended.&lt;/p&gt;

&lt;h4&gt;
  
  
  Thoughts
&lt;/h4&gt;

&lt;p&gt;It was great to work collaboratively on these issues as an open source community. I learned a lot from reviewing other people's code, and it was interesting to see how everyone tried to approach similar tasks in different ways. Overall, I hope that these reviews will help to improve the code quality in the future.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>testing</category>
      <category>github</category>
    </item>
    <item>
      <title>Adding Continuous Integration</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Thu, 17 Nov 2022 13:57:19 +0000</pubDate>
      <link>https://dev.to/cdphu/adding-continuous-integration-46oh</link>
      <guid>https://dev.to/cdphu/adding-continuous-integration-46oh</guid>
      <description>&lt;p&gt;This week, we are going to have out Lab 9 in &lt;strong&gt;OSD600&lt;/strong&gt;. Similar to the Lab 8, Lab 9 is about to improve our &lt;em&gt;SSG&lt;/em&gt; within GitHub. We are doing so by implementing &lt;strong&gt;&lt;em&gt;Continuous Integration&lt;/em&gt;&lt;/strong&gt; or CI. &lt;br&gt;
Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single project. It's a key practice, allowing developers to frequently merge code changes into a central repository, where builds and tests are then run.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Part 1&lt;/strong&gt;&lt;br&gt;
I have had practice using CI doe to one of my other classes that being &lt;strong&gt;CCP555&lt;/strong&gt;. So I understood what I was doing for the most part. It didn't take long in all honesty, due to it being that GitHub does the majority of the work for you.&lt;/p&gt;

&lt;p&gt;Though I was stuck on what to use for a while. Did I want to hardcode it automatically for the default branch using &lt;code&gt;$default-branch&lt;/code&gt; or did I want it to run in my &lt;code&gt;main&lt;/code&gt; branch (which is also my default)&lt;code&gt;. So I just opted to just use&lt;/code&gt;main` as the branch within the CI.&lt;/p&gt;

&lt;p&gt;In order to check whether this had worked or not, I decided to push split of my &lt;code&gt;mdFileConverter()&lt;/code&gt; function into its own file. From there, I created several tests for it as well. I then pushed the new test files to see whether it would pass the &lt;strong&gt;CI&lt;/strong&gt; lo and behold they passed without issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 2&lt;/strong&gt;&lt;br&gt;
Moreover, for this Lab 9 we need to test other people's CI as well. I found my partner &lt;a href="https://github.com/NeilAn99"&gt;Neil&lt;/a&gt; via Slack. Personally I didn't do much, I just created a test to test whether an parse was undefined or not, and one to see if her config file could parse &lt;strong&gt;one&lt;/strong&gt; specific file and not a folder of files. I also used experience from a previous commit during release 0.3 where the owner was asking to create tests.&lt;/p&gt;

&lt;h4&gt;
  
  
  Thoughts
&lt;/h4&gt;

&lt;p&gt;This lab overall, is a simple lab, though I would not call it a bad thing. With this lab it can be extremely useful, and an extremely powerful tool that can apply to a variety of situations. This allows programmers to build on one project simultaneously on a project while checking for any errors. An extremely versatile and useful tool to any programmers&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>github</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Release 0.3-External</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Mon, 14 Nov 2022 20:25:22 +0000</pubDate>
      <link>https://dev.to/cdphu/release-03-external-31o0</link>
      <guid>https://dev.to/cdphu/release-03-external-31o0</guid>
      <description>&lt;p&gt;For release 0.3, we had a few parts that we needed to accomplish in the assignment. This blog post will discuss my experience with contributing to an external repository. The repository of choice was &lt;a href="https://github.com/BVPyro/front"&gt;front&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;front is the repository for the frontend to the website of the &lt;a href="https://bvpk.org/"&gt;BVPK e.V.&lt;/a&gt; In simple terms, it's a static website with some forms for new members and donation functionality. The front- and backend of the application run on &lt;strong&gt;Next.js&lt;/strong&gt;. The project is deployed with docker-compose on a Debian server. &lt;/p&gt;

&lt;h3&gt;
  
  
  Issue
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/BVPyro/front/issues/3"&gt;Issue #3&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Part 1:&lt;/strong&gt;&lt;br&gt;
The author wanted testing for his repository so I tried it out with jest. I wasn't sure what they wanted as they only specified tests. Though I wasn't sure about the tests so I was using the tests to see if they would match the snapshot when being run. I did this for multiple pages. Though I was trying a new method. Instead of just testing the file out right, I had the test file create a snapshot of what was the expected output. It would then compare what it was receiving and compare it with the snapshot. If it did not match then the test would fail.to run the code the user has to use &lt;code&gt;npm run test&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 2:&lt;/strong&gt;&lt;br&gt;
I also decided to also implement &lt;strong&gt;end to end&lt;/strong&gt; tests using &lt;a href="https://playwright.dev/docs/writing-tests"&gt;&lt;strong&gt;playwright&lt;/strong&gt;&lt;/a&gt;. Though this kind of testing was completely new to me. So I had to read the documentation on how playwright is implemented, and how to test &lt;em&gt;e2e&lt;/em&gt;. It took a bit of time to understand but, eventually I understood. &lt;/p&gt;

&lt;p&gt;So I created basic tests for routing within the home page. So I fired up the server locally using &lt;code&gt;npm run start&lt;/code&gt; and looked through some of the routes used on the home page. I've written the test in a way that it would only work once &lt;code&gt;localhost:3001&lt;/code&gt; is being used, otherwise it would fail. to run the code the user has to use &lt;code&gt;npm run test:e2e&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Thoughts
&lt;/h4&gt;

&lt;p&gt;The author never really conveyed how the code should be tested so I had to make due with what I did know how to do. Though straying out of my comfort zone when it came to creating these tests. Using snapshots was completely new to me, had to do a lot of reading using &lt;a href="https://jestjs.io/docs/snapshot-testing#:~:text=Snapshot%20tests%20are%20a%20very,file%20stored%20alongside%20the%20test."&gt;this link&lt;/a&gt;. Learning playwright was also an interesting experience, though a welcome one. I now have some experience using a different kind of testing tool.&lt;/p&gt;

</description>
      <category>playwright</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>github</category>
    </item>
    <item>
      <title>Javascript Testing</title>
      <dc:creator>CDPhu</dc:creator>
      <pubDate>Thu, 10 Nov 2022 21:18:06 +0000</pubDate>
      <link>https://dev.to/cdphu/javascript-testing-193h</link>
      <guid>https://dev.to/cdphu/javascript-testing-193h</guid>
      <description>&lt;p&gt;This week we are going to have &lt;strong&gt;Lab 8&lt;/strong&gt;  and along with the lab &lt;br&gt;
it is also introducing a new tool to our SSG project. In &lt;strong&gt;lab 8&lt;/strong&gt;, we are going to add testing functions for several functions that we have in our SSG. I somewhat have experience with this because one of my other course &lt;strong&gt;CCP555&lt;/strong&gt; has a lot of testing involved. The testing framework that was used in the program was Jest.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procedure
&lt;/h3&gt;

&lt;p&gt;After watching the videos and reading through the lab instruction. I just chose the testing framework that I'm going to use in this Lab 8, which is Jest. And then I just install the Jest to my program by using the command &lt;code&gt;npm install jest&lt;/code&gt;. I updated the "test" command in the package.json file in order for it to run correctly.&lt;/p&gt;

&lt;p&gt;I then extracted the &lt;code&gt;htmlGen&lt;/code&gt; function and placed is into its own file that being htmlGen.js, and modified &lt;code&gt;my-button.js&lt;/code&gt; to import &lt;code&gt;htmlGen&lt;/code&gt; as an external function. &lt;/p&gt;

&lt;p&gt;I then started coding the testing functions. At first all I coded was the html good value functions. So I set up a total of 7 tests where for &lt;code&gt;htmlGen()&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;test would generate a html result with a string html argument&lt;/li&gt;
&lt;li&gt;test where it generates  a html result with a string html argument&lt;/li&gt;
&lt;li&gt;test the &lt;code&gt;htmlGen()&lt;/code&gt; function with bad or empty value types &lt;code&gt;(lang, title, html, string, footer)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In CCP555, I have already learned about coverage using &lt;code&gt;npm run coverage&lt;/code&gt;. But what was new was setting it up so that coverage would print out a report. &lt;/p&gt;

&lt;h4&gt;
  
  
  Thought
&lt;/h4&gt;

&lt;p&gt;There were several things I was already aware of since I have done some of this in previous labs in a different course. Though what was new to me was the capability of being able to print coverage &lt;br&gt;
files into a report. I will probably make more use of this on different projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: I didn't squash it correctly therefor having several commits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/LostButton/my-button-ssg/commit/99a9534fc255a54a6d1d866e78322e5feb5dca4f"&gt;Test Function&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/LostButton/my-button-ssg/commit/4bdef45b89f5298e6bd94640bd8bed6dfde01ed9"&gt;htmlGen file&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/LostButton/my-button-ssg/commit/bf8342d76ec862500466d973b504be416fa0a5ac"&gt;Adding Jest&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/LostButton/my-button-ssg/commit/de7221f9dcba9f1a17d093192d77c288b190b103"&gt;Updatting my-button.js&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/LostButton/my-button-ssg/commit/4f1b2e742c932c72ee8441adc77992fe0d8fa841"&gt;Coverage Files&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>github</category>
      <category>javascript</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
