Uncategorized

My First Experience Fixing an Open Source Project Bug – I Didn’t Get Far

The moral of this post: it doesn’t hurt to ask, as long as you have done and tried all the possible solutions you are best capable of doing first.

For this lab, we were given the task of contributing to the Visual Studio Code project by searching for good bugs that we can then try to fix.  Setting up the environment was very straightforward, however, I spent most of my two weeks trying to fix a problem that I came across with which turned out to be a bug, and it prevented me from going any further with this lab.  It wasn’t only when I finally caved in and asked my professor and one of my colleagues for help that they told me that I’ve encountered an actual bug that was just recently patched, so they advised me to pull the most recent commit from the VSCode repo and I was able to run, debug and test without any problems.  Unfortunately I have spent too much time stuck in this bug that I had to halt and move on as I need to start working on Release 0.2 that’s due in less than a month.

To give an overview of what happened, I’ll walk through the screenshots I took as I go along the steps and the hiccups of this lab.

The problem was rooted in the error I was having from running the ./scripts/test.bat file.

When I came across this bug the first time, I reacted how you’d expect a first time bug fixer to react – panic.  I thought maybe it was my environment that is not properly set up, so I redid the installation and setting up of my environments.  And to my dismay, it didn’t work again.  Countless times I repeated this resetting the environment, and every time failed to run the test.

So as one week passed by I was very discouraged from continuing any further with this lab.  It wasn’t until I finally caved in and asked on the Slack channel what went wrong.

My professor David came to the rescue, and asked me to run the file on –debug  mode so I can see what is preventing this test from running in the first place.

On the following screenshots of the debug process, you could see that there are a lot of errors that needed deciphering.

 

David suggested that my problem is rooted in the keyboardMapper function as shown below.

He then suggested that I investigate further by looking deeper into the errors and failures of the tests.   Further investigation has led us to believe that the error lies in the equality check of \r and \n, and it was confirmed to be the case when a colleague of mine said that this was in fact a bug that was only recently fixed.

The bug can be found here: https://github.com/Microsoft/vscode/issues/43357

 

 

After pulling in the changes from the VSCode repo, I tried running the tests again, and eventually ran perfectly.  Unfortunately due to the time that was lost in this process, I have to halt this and move on to my release 0.2 assignment.

 

 

Uncategorized

My first experience contributing to Open Source development.

After a hectic two weeks that have come and go, I was finally able to spend some time with my Open Source development course.  But to give a short summary of what took place within the last two weeks, my team won the regional Fishackathon competition that took place on February 10-11 for the city of Toronto, and advanced into the global stage of the competition.  We then had a week to finalize our prototype and submit into a three minute video by last Sunday midnight.  It was a hell of an experience, didn’t get to sleep much from the rush and adrenaline.  Most of my time was spent on finalizing the front-end side of the prototype, therefore I didn’t have time to catch up with school.  Through hard work and determination, we completed everything exceedingly by strike of the midnight’s hour with a sigh of satisfaction given how our submission turned out to be.  Now, we wait for the final verdict.  Whether we win this or not, my team are proud of how far we’ve come.  It was my first hackathon experience, and against all odds with 35 other teams, we won.

Coming back to reality, I had to face a lot of catching up to do with my school work, and OSD600 was no excuse.  I am behind with Lab 3, which hopefully I will complete by tonight.  Thank goodness, I was able to complete Release 0.1 just in the nick of time.

And to finalize my submission for this assignment, I have answered these required questions below.  To sum it up, this course is AMAZING!

What did you build? Discuss your web service (e.g., what is its name, how does it work, etc.) and include links so people can find it?

I built an open source project that utilizes Google’s libphonelibrary to find, validate, and parse and format phone numbers.

The link for my release 0.1 can be found in here: https://github.com/simon-inoc/Open-Source

Which language, dependencies, and tools did you use? Why did you choose them?

I chose NodeJS and ExpressJS as the tools used for the server side scripting because they’re the ones that I have most familiarity with and have the most comfort using

What did you find challenging about your work?

The most challenging thing about this work is figuring out exactly how to utilize the libphonelibrary works, as it is my first time experiencing doing an open source project.  It was exciting venturing into the unknown and figuring out how stuff works and making them work at the end.

Compare the experience of being a maintainer to that of contributing to someone else’s project. Which did you enjoy more? Why?

Both were fun, because each were a completely different experience.

It’s great having to contribute to someone else’s project because you get to be exposed to other coders’ programming style, and more often than not you learn new things just by reading their code, and also how they think logically when solving different problems.

What did you learn as you did this work?

Don’t be intimidated, at least that was my experience at first.  But then I started to realize that everyone else is on the same page, and they understand if you don’t know what the answer is, or how to solve the problem.  The open source community is huge, and thus there is a lot of resources to help you out, and as the community gets bigger, so does the amount of people available and willing to help you out.

What do you still want to learn more about in subsequent releases?

For release 0.2, I would like to work on blockchain projects and learn more about this exciting technology.

Uncategorized

My first experience forking an Open Source project: Visual Studio Code

As my OSD600 course dwells deeper into the core foundations of Open Source development, our next task would be to participate into the development of Visual Studio code by contributing fixes and solutions to bugs and issues that are either published, or more excitingly, that we can find on our own.

Beforehand, it was our task to familiarize with the editor itself, which requires us to download it as a user, and then navigate through the functionalities and features of the software.

As I have already been using VSCode as my main Windows Editor for the last two years, I am already familiar with this editor, wherein I still discover new features everyday which really enhances my programming efficiency.  I have installed quite of extensions which I use a lot, mostly Angular and Ionic oriented, and I hope to do a future post on this later on when I have time.

Now, going through the task of forking the entire VSCode repository from MS’s GitHub profile was pretty straightforward, amidst a little hiccups of going through some of the steps I have never encountered before, such as installing and running Yarn, which is a package manager for Javascript.

After that, following the instructions to build, run and test the VSCode as a developer works like magic.

vscodedebug

I am now ready for the next task of actually choosing a bug and fixing it, and it’s going to be ahelluva fun.

 

Uncategorized

Oh CRUD! It’s my 0th post. What Open Source Frameworks have I used in the past, and what are my experiences with them? PART 1

Update: As I’m writing this, I didn’t thought it would become such a lengthy discussion, therefore I am going to divide this post into at least 2 parts.

I’m Abel… or Simon… doesn’t matter which one you prefer to call me.  Funny story is that I only started using Simon as my name for the reason that because my first name Abel starts with ‘A’ and then ‘b’, I often land first on people’s contact list.  And with the privilege of being first in line, comes the drawback of being pocket or butt dialed many times.  And that was the unfunny story of this post.  Bravo.

But anyways, enough about this introduction that is unrelated to the objectives of this post.  Creative writing is a curse I was born with, often and many times going off on different tangents that defer from the main course… and I did it again!  Let’s get down to business.

An open source software is a type of software in which through various licenses allows for it to be publicly used, modified, and distributed commercially by just about anyone.  In today’s day and age, the open source community has grown so tremendously that open source software has become the dominant engine that power most applications that we use of today.  Even the big tech corporations that have once relied on private and proprietary software has adapted into integrating their core infrastructure with open source code.  For example, a dedicated team at Google has led the creation and development of Angular, which is an typescript based open source front end framework that is widely used today along with its other open source counterparts such as React, Ember, and Vue just to name a few.

Throughout the duration of my web development series at my college, our course curriculum was overhauled and reshaped to keep up with the fast pace of today’s technology.  We were trained how to design, construct and develop modern intuitive and dynamic web applications and web services using various modern JavaScript based frameworks.  Our primary focus was to use the popular MEAN stack which is a collection of open source frameworks that fulfill to develop a full-stack web application.

MEAN stands for (and no, this doesn’t relate to MEAN Girls… maybe MEAN coders but that’s subjective):

M – MongoDB – an open source NoSQL database framework.

E – Express – an open source web application framework that is used with NodeJS

A – Angular – as mentioned, is an open source front end web application framework

N – NodeJS – an open source runtime engine built on Google Chrome’s V8 Javascript engine.

 

There are different variations of the MEAN stack, such as MERN which uses React instead of Angular.  React is another open source framework developed by Facebook.  The difference between React and Angular is that Angular is typescript based, and React is much more similar to Javascript that we know of.  My professor suggested that React is more of a library due to it’s miniature size in comparison to other frameworks like Angular.

In my next post, I will be discussing more about open source frameworks I have worked with and will discuss what I personally like using more than the other, some of the challenges I faced using them, and what my future plans are using them

Until then, see you!  🙂