<?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: Amanjot Singh</title>
    <description>The latest articles on Forem by Amanjot Singh (@theamanjs).</description>
    <link>https://forem.com/theamanjs</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%2F366996%2Ff383c08e-539a-4208-8525-e6d50960a904.jpg</url>
      <title>Forem: Amanjot Singh</title>
      <link>https://forem.com/theamanjs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/theamanjs"/>
    <language>en</language>
    <item>
      <title>Final Report on Google Summer of Code 2021</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Wed, 18 Aug 2021 19:13:42 +0000</pubDate>
      <link>https://forem.com/theamanjs/final-report-on-google-summer-of-code-2021-2870</link>
      <guid>https://forem.com/theamanjs/final-report-on-google-summer-of-code-2021-2870</guid>
      <description>&lt;p&gt;TL;DR I had a super good experience in Google Summer of Code 2021. It was a sweet start to the journey with open source. Though I already had some experience with open source that was not enough for me to get satisfied. Fasten your seat belts and let's see the progress I made in GSoC.&lt;/p&gt;

&lt;h1&gt;
  
  
  About my project
&lt;/h1&gt;

&lt;p&gt;Online Geometry Viewer aka OGV is an online web application, which provides the user experience of uploading, viewing, and sharing 3D CAD models. OGV is a standalone application that can be installed on a server and used within the organization or publically. Users get the ability to like and comment on other people's 3D CAD models that provide a similar experience with any other social blogging platform but having 3D models in it. &lt;/p&gt;

&lt;p&gt;This project is written in meteor.js that plays the role of backend and frontend along with MongoDB that covers the database part.  &lt;/p&gt;

&lt;h1&gt;
  
  
  What we achieved?
&lt;/h1&gt;

&lt;p&gt;Before the coding period started I already had the plans of task with their execution. I gave my best to keep the plan in line with the timeline and development log. My major role was to fix issues in the project and add some new features and they are listed below with the link of PR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Show appropriate errors when uploading a model fails. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/105"&gt;PR #105&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Prevent using the application before setting up the server. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/106"&gt;PR #106&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Show the upload progress of the model. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/108"&gt;PR #108&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Introduce eslint to the project and remove all linting issues. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/107"&gt;PR #107&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add husky to the project to make sure any commit shouldn't go against linter. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/109"&gt;PR #109&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CSS code improvement by splitting one CSS file into multiple appropriate ones and add SCSS to the project &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/111"&gt;PR #111&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fix edit link of the model that was showing 404 when clicking. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/101"&gt;PR #101&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Introduce support of custom coloring of background canvas of object. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/113"&gt;PR #113&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Improve the directory structure of the project for the better handling of components. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/112"&gt;#112&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Upgrade meteor to the latest version. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/104"&gt;#104&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add an option to change the camera view of the object with buttons. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/119"&gt;PR #119&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fix issues in documentation and add contribution guidelines to the project. &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/115"&gt;#115&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  What I under-estimated?
&lt;/h1&gt;

&lt;p&gt;There are two things that I started work on but couldn't get completed due to some reasons that are mentioned after the link.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Remove CFS dependency from the project &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/110"&gt;#110&lt;/a&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Reason for incompleteness: While creating the plan this task was not estimated with all the ins and outs of it. This task required a rewrite of the front-end, back-end, and database of modules that have anything to do with the file system. This task was planned to replace the deprecated file system package the project is using.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add WikiMedia oAuth to the project &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/114"&gt;PR #114&lt;/a&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Reason for incompleteness: This task was stuck due to an error from WikiMedia's side while adding OAuth to the project.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm still working on these issues and will get them done as soon as possible with some feasible solutions and move with further development.&lt;/p&gt;

&lt;h1&gt;
  
  
  What's next?
&lt;/h1&gt;

&lt;p&gt;After having the great experience of working on an open-source project. I'm continuing with the development of OGV and I'll surely write a proposal to the organization BRL-CAD about some other enhancements like porting frontend and backend with the latest technologies. I'm already super excited for the stuff that will happen in the future. There are some more issues that requires triage which I would love to work on after talking about that with my mentor.&lt;/p&gt;

&lt;h1&gt;
  
  
  Work to do
&lt;/h1&gt;

&lt;p&gt;To complete my pending tasks I'll talk about my mentor and will create a separate plan for the pending two tasks. To complete the file system issue requires a rewrite and testing of the whole module. To complete the oAuth of WikiMedia, I'll contact the WikiMedia organization with the problem as there was no solution given for the issue (Mentioned in PR).&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Note
&lt;/h1&gt;

&lt;p&gt;I'll wrap up by saying GSoC was a great experience. I got a chance to work with people on an open-source project that is still unbelievable for me. I'd like to extend my gratitude to every person involved with me over this journey.&lt;/p&gt;

&lt;p&gt;A special thanks to my mentor Dr. Daniel Rossberg. I saw very helpful leadership by my mentor. I  learned a lot from my mentor. Thank you for being patient with me and clarifying my doubts. I would love to solve things in the future with further development.&lt;/p&gt;

&lt;p&gt;Thank you for reading this blog. That was all about my report of GSoC 2021. &lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>brlcal</category>
      <category>opensource</category>
      <category>gratitude</category>
    </item>
    <item>
      <title>Week 9 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Mon, 09 Aug 2021 10:44:30 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-9-of-coding-period-in-gsoc-1bdh</link>
      <guid>https://forem.com/theamanjs/week-9-of-coding-period-in-gsoc-1bdh</guid>
      <description>&lt;p&gt;This week was amazing at work. I tried tons of new things and learned a lot. The major focus of this week was on oAuth and improvement of Documentation. So let's talk a bit more about what I have done in week 9.&lt;/p&gt;

&lt;p&gt;As I mentioned in my early blogs, I was working to implement the oAuth of Wikimedia in the project OGV (Online Geometry Viewer). In the beginning, I was treating this task as we only want the feature to add oAuth of MediaWiki for BRL-CAD. But later on, I realized oAuth creds should come from a config file where it should give the ability to change OAuth credentials. When I started this task I found it a bit challenging and there were various reasons for that. Let me tell you the honest one first ;) I never worked with oAuth implementation of any application in any project. Another reason was the documentation; I felt the documentation was a bit confusing for me. However, I kept moving with the task by setting up oAuth in an empty project. I described this approach in my previous blog. To prevent the unwanted complexity of the existing project, I tried implementing the oAuth in a new Meteor application. The Wikimedia documentation had a link to a &lt;a href="https://github.com/wikimedia/apiclient-wiki"&gt;javascript application&lt;/a&gt; where the oAuth was implemented. However, I felt the application has the complexity of the front-end in javascript. Nevertheless, it was pretty helpful. I'm almost done with this task and make my PR ready for review in a day or so. There are still some things that are not super clear to work. I liked working on this task because this was pretty much challenging. Till now I have tried the routes of oAuth2 for MediaWiki authentication and tried getting access token for that. &lt;/p&gt;

&lt;p&gt;Furthermore, I tried improving documentation. There was an issue opened in the project with the concern &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/87"&gt;The current readme is arguable off-putting to new contributors&lt;/a&gt;. I added the CONTRIBUTING.md file to the project where I specified the commit guidelines, code of conduct, and PR opening process. I took the code of conduct guidelines from &lt;a href="http://contributor-covenant.org/version/1/4"&gt;Covenant&lt;/a&gt;. The primary focus of adding the Contribution file was to thank and encourage other developers for contributing and keep a healthy environment to work with. I also added the table of content in the Readme file so the users can see what is in the Readme in a glimpse. I'll turn this PR to ready for review in a day or so as well.&lt;/p&gt;

&lt;p&gt;I'll wrap up after writing what's for week 10. Before I talk about week 10 I want to share a small experience. This week was a bit disturbing for me. I'm still finding why it is sounding so stressful to me. I think I fell ill in the week 7-8ish and before that, I faced some family issues these two reasons took a lot of time from me and damaged my productivity a lot. I'm not sure what will be the final result of GSoC i.e whether I'll be able to pass or not. But I'm feeling being a human my brain started blaming things for this. When GSoC was started I used to on weekdays and weekends as well. Later on, realized the importance of periodic breaks i.e weekend. I learned a lesson from that, which is not taking breaks on weekends and keep working on things can take our productivity temporarily and it can cause some health issues as well. That is not a good thing in the long run. I'm glad that I'm not only learning coding practices but also the good working practices from GSoC. I think later in life these things are gonna help me a lot. Yeah, that was all I wanted to share. I hope you are doing great :) &lt;/p&gt;

&lt;p&gt;Thank you for reading this blog... Oh, wait! I didn't tell you about what I'll be doing in week 10. Amm, week 10 will be interesting as I'll going to make 2 PRs ready to review and merge. Other than that, I'll work on the issue of auto position the dimensions of canvas according to object. The upcoming week is the last in the coding period. I hope this week I'll make as many as improvements I can. &lt;/p&gt;

&lt;p&gt;The final thank you for reading this blog. This was the first blog where I wrote my personal experience other than the development log. &lt;/p&gt;

</description>
      <category>oauth</category>
      <category>gsoc</category>
      <category>opensource</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>Week 7 and 8 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Thu, 05 Aug 2021 09:16:32 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-7-and-8-of-coding-period-in-gsoc-213c</link>
      <guid>https://forem.com/theamanjs/week-7-and-8-of-coding-period-in-gsoc-213c</guid>
      <description>&lt;p&gt;TL;DR let's talk about the week 7 and 8 of the Coding period in GSoC. I added the feature of custom background on models and the oAuth with MediaWiki is in progress. In this blog, I'll talk about two weeks together because on week 8 I was not well and I could not work in that week.&lt;/p&gt;

&lt;p&gt;The first enhancement I started in week 7 was adding custom background to the viewer where the user sees the model. This feature was requested a long time ago &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/67"&gt;here&lt;/a&gt;. I used &lt;code&gt;input type="color"&lt;/code&gt; for the color palette and fetched the color in the js file with the meteor events. This task was kind of related to three.js so I looked into the three.js docs about updating the canvas. I got stuck in one issue after updating the color it required the user to trigger zoom or interact with the model viewer in order to update the color of the viewer. After searched about updating the canvas after a change I found &lt;code&gt;animate()&lt;/code&gt; and &lt;code&gt;render()&lt;/code&gt; can update the canvas. Though I was a bit conscious about using &lt;code&gt;render()&lt;/code&gt; because when the object is going to be larger it is gonna re-render the canvas. Anyways, this was the correct fix to update the canvas after updating color.&lt;/p&gt;

&lt;p&gt;Then I moved to MediaWiki integration in the project. The &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/59"&gt;requested feature&lt;/a&gt; was to add oAuth of MediaWiki to the OGV. The idea was to give users the ability to log in with the MediaWiki account of the users linked to the MediaWiki application they have registered. I found the MediaWiki OAuth documentation a bit confusing. Nevertheless, I followed the docs and tried implementing OAuth in the application. To reduce the complexity of the task and understand how things are working; I set up a new Meteor project and tried implementing the oAuth in the new project. This approach helped me to keep the complexity of the project away from the task and focus on the task. This feature is still in progress and I hope I'll complete this one by the end of this week.&lt;/p&gt;

&lt;p&gt;I started the improvement of Documentation of the project side by side. In my one of the previous task, I moved the config of the email server to &lt;code&gt;settings.json&lt;/code&gt; in this &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/106"&gt;PR&lt;/a&gt;. After this change, it was required to set up SMTP configuration before users can use the application. This instruction was missing in the README file. I added the instructions in the &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/115"&gt;PR&lt;/a&gt;. This PR also targets resolving the issues &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/92"&gt;#92&lt;/a&gt; and &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/87"&gt;#87&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's all for weeks 7 and 8. In the next week, I'll complete the oAuth and Documentation task. Then I'll move the &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/66"&gt;auto height adjustment task&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>opensource</category>
      <category>brlcad</category>
      <category>oauth</category>
    </item>
    <item>
      <title>Week 6 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Thu, 05 Aug 2021 08:34:03 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-6-of-coding-period-in-gsoc-5eaj</link>
      <guid>https://forem.com/theamanjs/week-6-of-coding-period-in-gsoc-5eaj</guid>
      <description>&lt;p&gt;In week 6 of the Coding Period, I fixed some pending issues and sent PR for that issues. Let's talk about the issues I fixed in week 6.&lt;/p&gt;

&lt;p&gt;I started by changing the directory structure of the project. It was necessary because of scaling the project. The previous directory structure of the project looked like this:&lt;br&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%2F3wxz30ds6xscb5x1bv8o.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%2F3wxz30ds6xscb5x1bv8o.png" alt="image" width="200" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The new directory structure looked something like this:&lt;br&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%2F76lbv44tadq2jj63trz8.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%2F76lbv44tadq2jj63trz8.png" alt="image" width="200" height="489"&gt;&lt;/a&gt;&lt;br&gt;
The major change in the directory structure was moving the components to the related folders and update the path in the files where they are being used. Though, this task was last on the list and I proposed this task as a bonus task, but it was becoming a bit difficult to manage the components in the old directory structure. So, I prioritized this issue and fixed it first.&lt;/p&gt;

&lt;p&gt;Then I fixed an old &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/58"&gt;issue&lt;/a&gt; of splitting one main CSS file to multiple CSS files in this &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/111"&gt;PR&lt;/a&gt;. By doing this, it became easier to handle and perform CSS tasks. In this task, there was a subtask of adding SCSS support to the project. Then, I added the node-sass meteor package to the project. &lt;/p&gt;

&lt;p&gt;That was all for week 6, let's meet again in the week 7 blog. Thanks for reading this one :)&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>opensource</category>
      <category>brlcad</category>
      <category>meteor</category>
    </item>
    <item>
      <title>Week 5 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Wed, 21 Jul 2021 09:17:28 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-5-of-coding-period-in-gsoc-18bk</link>
      <guid>https://forem.com/theamanjs/week-5-of-coding-period-in-gsoc-18bk</guid>
      <description>&lt;p&gt;On week 5, I was struggling with the CFS removal tasks. Let me tell you this dark week of the coding period.&lt;/p&gt;

&lt;p&gt;From the week 4 blog, you must be aware of the task that was going on i.e CFS removal task. Let me recap, I started replacing the CFS dependency for file uploading with the new dependency &lt;a href="https://github.com/ExentriqLtd/Meteor-CollectionFS"&gt;https://github.com/ExentriqLtd/Meteor-CollectionFS&lt;/a&gt; and it contained a lot of breaking changes.&lt;/p&gt;

&lt;p&gt;I got stuck on this task for a long time. It was already 10-12 days I was working on this thing but couldn't achieve what was supposed to achieve. I talked with my mentor about this issue as this was the first issue I got stuck in. It was not really that I got totally stuck, but with the amount of existing Meteor knowledge, I was having some troubles understanding the existing code and rewrite the new one.&lt;/p&gt;

&lt;p&gt;I read a lot about backend this week and re-wrote backend code. No luck! it was taking a lot of time and the first evaluation was drawing near. So I had to move this task for later and started working on other tasks. There were some logical conflicts that were raised during I was writing the backend code. It was uploading the .g file and .obj file. In the code .g gets converted first. The existing code was a bit confusing and long, so it took a lot of time to figure out. &lt;/p&gt;

&lt;p&gt;Now this task is going on side by side. After I talked with my mentor about this task, I decided that I will now do this task alongside other tasks.&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>opensource</category>
      <category>brlcad</category>
      <category>meteor</category>
    </item>
    <item>
      <title>Week 4 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Wed, 21 Jul 2021 08:59:34 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-4-of-coding-period-in-gsoc-2bae</link>
      <guid>https://forem.com/theamanjs/week-4-of-coding-period-in-gsoc-2bae</guid>
      <description>&lt;p&gt;Week 4 was more focused on learning than coding. This week I got to start the task of removing CFS dependency from the project and replace it with another package. This task involved Frontend, Backend, and Database. Let's have a look at the week 4 development log.&lt;/p&gt;

&lt;p&gt;I started exploring the package with which the existing CFS dependency could be replaced. The &lt;a href="https://github.com/CollectionFS/Meteor-CollectionFS"&gt;CFS dependency&lt;/a&gt; is now deprecated and we got to replace that with &lt;a href="https://github.com/VeliovGroup/Meteor-Files"&gt;Meteor Files&lt;/a&gt; The package was recommended on README of CFS dependency. However, I looked for a more similar package that was folks of CFS.&lt;/p&gt;

&lt;p&gt;Then, I started understanding the backend of OGV. I started learning backend stuff in Meteor and started replacing things one by one. &lt;/p&gt;

&lt;p&gt;I updated the frontend to the way to save files from the frontend.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Previous Code&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;uploadFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Utility&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;eachFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fsFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;File&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Meteor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;converted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeUploaded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;about&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`The model &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt; was uploaded on &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;
      &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeUploaded&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;viewsCount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;ModelFiles&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;sAlert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;There was some error in uploading your file, please try again/later&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;sAlert&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;success&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;File Uploaded, and will appear in file manager after it's converted&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;go&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`/processing/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Latest Code with new package&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;uploadFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;files&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fsFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Meteor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;converted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeUploaded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;about&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`The model &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; was uploaded on &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;
      &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timeUploaded&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;viewsCount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;// We upload only one file, in case&lt;/span&gt;
    &lt;span class="c1"&gt;// multiple files were selected&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;upload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ModelFiles&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fsFile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;chunkSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dynamic&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;start&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentUpload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="nx"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;end&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;fileObj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Error during upload: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`File "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fileObj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;" successfully uploaded`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;go&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`/processing/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;fileObj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="c1"&gt;// template.currentUpload.set(false);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="nx"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As it was having a lot of breaking changes on the frontend, backend, and database. It was strenuous to migrate the package all at once. The achievements of this week were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The files started uploading and saving on the local directory&lt;/li&gt;
&lt;li&gt;Created Mongo Collection for the new package (Existing one could not be used)&lt;/li&gt;
&lt;li&gt;Updated file upload code of Server-side and made the file details get saved on database&lt;/li&gt;
&lt;li&gt;Read about the pub/sub in Meteor and how to use them efficiently&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>gsoc</category>
      <category>meteor</category>
      <category>brlcad</category>
    </item>
    <item>
      <title>Week 3 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Mon, 28 Jun 2021 18:35:20 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-3-of-coding-period-in-gsoc-12am</link>
      <guid>https://forem.com/theamanjs/week-3-of-coding-period-in-gsoc-12am</guid>
      <description>&lt;p&gt;Welcome back! Let's talk about 3rd week I spent in GSoC. I implemented a lot of things from prior experience this week. Let's go!&lt;/p&gt;

&lt;p&gt;Before we talk about week 3 here is the link of &lt;a href="https://github.com/theamanjs/OGV-meteor/projects/1"&gt;project board&lt;/a&gt; with cards that I'll be managing during GSoC 2021. I first thought to create a board in Trello but my mentor suggested creating under the project in my folk of project. &lt;/p&gt;

&lt;p&gt;I started by adding Husky to the project. For that, I used this &lt;a href="https://www.npmjs.com/package/meteor-husky"&gt;package&lt;/a&gt;. This was the most fascinating task. You must be wondering, eh!! that was easy for what thing I was most excited about. I didn't try installing husky before on any project. So, for me, it was nothing less than a roller coaster ride where I enjoyed a lot. Link to &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/109"&gt;PR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I tried migrating the CFS collection of the meteor to files for meteor &lt;a href="https://github.com/VeliovGroup/Meteor-Files#installation"&gt;package&lt;/a&gt; The project was looking for removal of CFS collection dependency as the collection is deprecated. I found the new package easier to use. Though this task is still a work in progress as I got some family problems this week and couldn't work much. &lt;/p&gt;

&lt;p&gt;Apart from this, from my learning of project management, I decided to clear all the open issues that are already resolved could be closed, because closing solved issues will reduce the number of issues and it shows the project is live. &lt;/p&gt;

&lt;p&gt;Next week I'll be completing the CFS dependency removal and code quality management. When I'll be done with these tasks I'll move ahead with others that are in To Do in the project board. Stay safe and take care of your family! &lt;/p&gt;

</description>
      <category>google</category>
      <category>gsoc</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Week 2 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Tue, 22 Jun 2021 19:03:42 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-2-of-coding-period-in-gsoc-k1j</link>
      <guid>https://forem.com/theamanjs/week-2-of-coding-period-in-gsoc-k1j</guid>
      <description>&lt;p&gt;Welcome here! Before you pronounce actillimandataquerin altosapaoyabayadoondib! Let me tell you my crispy experience of week 2 in the GSoC. &lt;/p&gt;

&lt;p&gt;The second week started on 14 June 2021 and ended on 21 June 2021. I solved the issue of &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/57"&gt;Email server validation&lt;/a&gt;. This issue was if the admin has not updated the SMTP server details in the application it should force the admin to set up first. This was required because if any user creates an account the user was not getting any email, neither the user could recover the password. Further, there was a discussion for this task about setting up SMTP server at localhost. The full conversation can be read on the &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/106"&gt;PR&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Then I worked on removing linting errors from code &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/107"&gt;PR link&lt;/a&gt;. This task was super knowledgeable because I removed all the linting errors manually from each file. Though I had a hunch that this thing can be done all at once. Unfortunately, I could recall or find the solution. After I finished the task I found the solution. ESlint gives us a provision to fix all the auto-fixable linting issues. We need to run this command &lt;code&gt;npm run lint -- --fix&lt;/code&gt;. Link to StackOverflow question where I found this is &lt;a href="https://stackoverflow.com/questions/40271230/how-to-run-eslint-fix-from-npm-script"&gt;here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Then I looked into the issue of &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/62"&gt;upload progress of model&lt;/a&gt; There was already a &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/94"&gt;PR&lt;/a&gt; for this issue. So I talked with my mentor about this PR that some changes were required to make this PR solve the issue. I end up having my PR from this commit and add new changes to that PR. This issue is a work in progress. &lt;/p&gt;

&lt;p&gt;Apart from that, most of my time went into learning management for that project. From my prior job experience and discussions with other people I thought it will be good if I manage things like time and handle the issues properly. So I thought I create a Trello board for my tasks where I'll write my tasks. Further, I am studying Scrum management for this. &lt;/p&gt;

&lt;p&gt;I hope the next week will be awesome with this management. I will share the link to the Trello board in the next week 3 blog as well. I will see you in the next blog. Have a wonderful day!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>gsoc</category>
    </item>
    <item>
      <title>Week 1 of Coding Period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Mon, 21 Jun 2021 10:16:58 +0000</pubDate>
      <link>https://forem.com/theamanjs/week-1-of-coding-period-in-gsoc-30l0</link>
      <guid>https://forem.com/theamanjs/week-1-of-coding-period-in-gsoc-30l0</guid>
      <description>&lt;p&gt;Hello there! Let me tell you my experience of the first week of coding period in GSoC. Fasten your seatbelts and get ready for the ride.&lt;/p&gt;

&lt;p&gt;The coding period started on the 7th of June 2021. To have proper context I would suggest having a look at the community bonding period first if you have not seen that &lt;a href="https://dev.to/theamanjs/getting-selected-and-community-bonding-period-in-gsoc-3ik9"&gt;blog&lt;/a&gt; From the checklist I submitted in my proposal I was already done with one task. You can read my proposal &lt;a href="https://summerofcode.withgoogle.com/serve/5202119382007808/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before I start writing about my first week I would love to share that I followed a commit standard that I read once on GitHub in a &lt;a href="https://gist.github.com/turbo/efb8d57c145e00dc38907f9526b60f17"&gt;gist&lt;/a&gt;. Though I couldn't follow all the standards though I tried my best and thinking of following them further in other work as well. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Commit messages must have a subject line and may have a body copy. These must be separated by a blank line.&lt;/li&gt;
&lt;li&gt;The subject line must not exceed 50 characters&lt;/li&gt;
&lt;li&gt;The subject line should be capitalized and must not end in a period&lt;/li&gt;
&lt;li&gt;The body copy must be wrapped at 72 columns&lt;/li&gt;
&lt;li&gt;The body copy must only contain explanations as to what and why, never how. The latter belongs in documentation and implementation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first thing I was doing when the coding period started was upgrading the Meteor version. This task was done already but I ran into a problem on my machine. I was not able to run any Meteor project on my machine. It took me a day to figure out the issue. I searched a lot about the issue and found some solutions from the internet and my mentor. I reinstalled the Meteor on my machine and removed .meteor/local folder and it got started again. The actual error was &lt;code&gt;undefined symbol: node_module_register&lt;/code&gt; When I searched for the solution I found this error occurs when we compile the node modules with different versions from what we are using at the moment. You can have a look at the whole problem on &lt;a href="https://stackoverflow.com/questions/29495599/bcrypt-lib-node-undefined-symbol-node-module-register"&gt;stackoverflow&lt;/a&gt;. You can have a look on PR &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/104"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I moved ahead to fix the issue of the route when uploading the model. The issue was when we upload a model on OGV it takes the user to model preview route where in case of error it was not preventing the user to see that 404 page. Putting the route in condition solved this issue. You can have a look at issue &lt;a href="https://github.com/BRL-CAD/OGV-meteor/issues/63"&gt;here&lt;/a&gt; and PR &lt;a href="https://github.com/BRL-CAD/OGV-meteor/pull/105"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PS I'm writing this blog after the end of week 2 because I wanted to write things in a new format and didn't get time to experiment with it during weekdays. This week my final practical exams were also going on so it was a kind of messy week. Everything went well in the end.&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Getting Selected and Community bonding period in GSoC</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Thu, 17 Jun 2021 17:31:00 +0000</pubDate>
      <link>https://forem.com/theamanjs/getting-selected-and-community-bonding-period-in-gsoc-3ik9</link>
      <guid>https://forem.com/theamanjs/getting-selected-and-community-bonding-period-in-gsoc-3ik9</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I'm glad to share that I've been selected for &lt;a href="https://summerofcode.withgoogle.com/projects/#4662480564912128"&gt;GSoC 2021&lt;/a&gt; under the organization &lt;a href="https://brlcad.org/"&gt;BRL-CAD&lt;/a&gt; for the project &lt;a href="https://github.com/BRL-CAD/OGV-meteor.git"&gt;OGV&lt;/a&gt; and my mentor is &lt;a href="https://www.linkedin.com/in/daniel-rossberg/?locale=en_US"&gt;Dr. Daniel Rossberg&lt;/a&gt;. The moment I read the mail about my selection was endless. I was working for this event since I started my graduation in 2019. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why I choose to participate in GSoC
&lt;/h2&gt;

&lt;p&gt;I'll be honest with this. I always wanted to participate in open source events and when was pursuing mine under graduation diploma. I came to know about GSoC and my first reaction was Yayyy... because we all have dreamt about working with big companies like Google. Though it is very different from that still sounds fascinating to me. &lt;/p&gt;

&lt;p&gt;When I tried to participate in open source contribution. I fixed an issue in a project and sent PR. That was my biggest mistake... I mean not about sending PR it is about not discussing stuff before doing it. Yep, you read it right. I didn't talk about the bug and the solution with anyone. I was being mean and afraid about what if I'll open an issue on this repository and someone fix this before me. BUT it went well my PR got merged and I got fame in that project. HELL NO!!! the next minute I opened PR my PR was closed by the project manager as the bug I was trying to fix was a feature. I learned it the hard way though but that's important, we have to discuss stuff before we start contributing to open source or even in any project. Conversation plays an important part.&lt;/p&gt;

&lt;p&gt;But even after that I still wanted to learn though it took a little bit of time for me to move on from that thing :p I almost dropped the idea to contribute in open source. Then I realize there is no sense going back now. I started learning stuff and started preparing myself so that I can work on real projects that will be on GSoC.&lt;/p&gt;

&lt;p&gt;Well, I almost forgot we are talking about why I choose GSoC. I don't know why talk too much. Anyway, it was awesome to see your name on Google's event. You get to know more about open source and meet new people (which is my favorite part). Also, at that moment I was feeling when I'll go out wearing out Google's Tee I'll be a celebrity :p Kind of childish thought but it motivated me at that time. If I talk about stipend till the end of 2020 I didn't know Google also gives you a stipend. So, these were the reasons why I choose to participate in GSoC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community Bonding Period
&lt;/h2&gt;

&lt;p&gt;I the community bonding period I learned Meteor.js because that was the requirement of a project I need to work on. I took myself a code walk-through that helped a lot in understanding the flow of an application. I talked with my mentor about merging the existing PR's to the project because there was no active project manager before I started. My mentor suggested upgrading the Meteor version to the latest then we will move ahead. The project was using Meteor version 1.8.1 and we had to upgrade the project to 2.2 there was 14 Meteor global release between these two versions. When I searched about upgrading the version I end up having thought in my mind I have to upgrade this one by one and it will take a lot of time. Then my mentor guided me to upgrade the whole application once and he provided me instructions to upgrade. We can see how important and beneficial the conversation part is. &lt;/p&gt;

&lt;p&gt;I learned a lot in the community bonding period itself. The first lesson was conversation, the more you talk about things the more it will be clear but keep in mind it could be pretty annoying sometimes talking about every single thing. Another thing I learned was we should be confident about work. I never worked with a meteor project before though I was working with Vue and React with node.js for a while now but I was kind of afraid to use meteor.&lt;/p&gt;

&lt;p&gt;I'll wind up saying, I enjoyed the learning part of Meteor for the project. Now the real excitement was working on the project. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Real World Learning</title>
      <dc:creator>Amanjot Singh</dc:creator>
      <pubDate>Thu, 18 Jun 2020 17:46:59 +0000</pubDate>
      <link>https://forem.com/theamanjs/real-world-learning-2i33</link>
      <guid>https://forem.com/theamanjs/real-world-learning-2i33</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;Learning new things is the key to success. But if you are waiting for a good time to launch yourself and keep learning till then, apparently you are going to lose a lot of great opportunities. Let's see how Learn and Stack in brain is way different from Learning By Doing. I'll try to emphasis on why learning by doing is better than learn and stack. This post is much useful for the new developer rather than old one.&lt;/p&gt;

&lt;h1&gt;
  
  
  How you are learning things?
&lt;/h1&gt;

&lt;p&gt;Are you one who learn and store data like HDD? Learning from courses and documentation for the purpose of learning new things and stacking them in mind is very popular among new developers. Are you one of them? Perhaps, you are learning new things which are cool and fun to learn. But, are you really making difference to your knowledge for good? Let's see further does it really worthful learning, learning, and learning all the way till job.  &lt;/p&gt;

&lt;p&gt;You may be thinking that learning new things is good then why it is not strongly endorsed yet. Think of the time when things were started creating. When Larry Page and Sergey Brin created Google; they were not experts in dozens of languages. After Google was created and other new technologies came into scene they didn't go back to any course or college learning to learn them and make a pile of them in brain. They learned all the new technologies into action. Either by using in Google or by doing other projects. This is what learn by doing. Just doing the work using the technology by reading the documentation is great rather than just learning and stacking in the brain. This is wastage of time, as your learning growth will be slow by learning, learning, and learning. When you will try these things in action you might need some docs or reference to recall the stored material. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Don't wait for the moment to start working on the things by learning bunch of languages and other technologies. Suppose, you started learning new framework of JavaScript. No doubt, you solved some basic practise assignments. What about real world problems? They are not as real as these tiny things. So, if you find an opportunity to do work on actual projects by freelancing or open-source contribution don't waste it assuming you are learning yet and way behind real world.  &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>developer</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
