Saturday, January 27, 2018

New semester. New projects. More open source

So I have got thought Open Source Development I course in Seneca College successfully.
Now I am one of not many brave people who are taking Open Source Development II

This course is a bit more different in terms of work load. In previous semester I have completed 2 releases (in other words: my professor marked 2 sets of issues I have attempted to fix on GitHub). And this semester I have bi-weekly releases, which means 7 releases. 
I am not excited to be overwhelmed during my last semester in school and I am not a fan of spoiling my transcript, so I need a plan.

First of all, as our professor has advised, the best way is to stick to one project. Originally I wanted to work in Golang on Golang☺. 

But after several attempts to sell it to my classmates, I was sold on contributing to VS Code. This open source editor is quite popular these days. I even wrote an article about using it and some other IDEs a while ago. A lot of people with whom I work/study are using it daily. This is a perfect opportunity to become involved in a large project that affects me and people I know directly.

So I decided to contribute as both developer and translator. I remember the struggle I had with English version of Visual Studio, when I was about 12-13 years old and was confused not only but English, but also by programming in general. So I hope other kids/people in Ukraine and Russia will have more comfort and I want to help! So while I was installing dependencies for vscode project, I found an instruction on how I can contribute to translations.

I even had a chance to translate and rate a few dozens of lines and strings while waiting for all the dependencies to load.
Setting up vs code at my personal computer was a piece of cake, I followed instructions in the vscode Github repository and everything just worked!

My professor suggested not to stress ourselves out and pick some small "good-first-bug" just to get involved. So that was exactly what I did. I picked this "please remove" bug. It was quite an easy fix: Ctrl+F, Delete. I have submitted pull request and to my surprise one of the tests was failing!

3827 passing (30s)
1 failing
1) FileService "before each" hook for "moveFile - MIX CASE":
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
The command "if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./scripts/ --coverage --reporter dot; else ./scripts/ --reporter dot; fi" exited with 1.

I was confused... That error was not even related to my fix, so I asked for help.

It was on Saturday, so I didn't expect to get the response until Monday. And the first thing I saw in the morning on Monday was an email from GitHub. My PR got merged and it will be shipped with Visual Studio Code for their January 2018 release! I was happy about how not painful this time my experience was. And that was the test that had some issues.

So my first release is done in this semester!

Monday, January 1, 2018

My Christmas / New Year Journey: Fixing bugs. Part 2

Happy New 2018 Year!

First part of the blog is available here.

So I have been looking for some new bug for the last few days. I have found a few interesting once, contacted different project maintainers, but they didn't respond. Probably because of the holidays.

And finally I found something interesting: rmw project.
As it states on GitHub page: "rmw is an OS portable cli trash can utility written in C. It can send files to your "Desktop" trash, or a completely separate folder. It can also: restore files; permanently delete files that were rmw'ed more than xx number of days ago; skip files or directories that have a "PROTECT" directive in the configuration file; and append a unique string to the filenames so they won't be overwritten (duplication protection)."

I was always curious how the different projects are available in multiple languages, I thought it required a lot of copy-pasted text and if statements... But during my experience I found out that one of the ways is to use gettext tool. So I decided to contribute and translate the output messages to Russian and Ukrainian.

It was definitely an interesting experience and welcoming community!

I can now tell that I finally feel comfortable with contributing, creating pull requests and starting to work on the new projects!

During last 4 months I tried to gain confidence as an open source contributor and programmer.

My goal was to learn more "how big programmers code", best practices and explore some technologies, I have never heard/tried before.

I can say with confidence that I have done at all of that.

And since it's impossible to know and try everything in IT field, I will still continue my journey in Open Source, in exploring new technologies and programming languages by myself.

TIL: How to use DatePickerAndroid and TimePickerAndroid in React Native?

While working with React Native, I always tried to use built-in components instead of "reinventing" the bicycle. So today the d...