First part of Release #2

The most difficult part of this release is to actually find a bug. My first idea was to just search through GitHub by use label “Good first issue”. It wasn’t the best idea. This kind of search is so confusing. Some of the issues are just empty or not descriptive at all. After few hours I gave up on this kind of search. The next step was to use some links provided by teacher. First one was Up for grabs. Unfortunately didn’t find anything good on this site. Next site where I tried to find my first bug was GitHub Help Wanted. Found some projects on this one but still didn’t check if I’ll manage to fix these bugs. The main reason is setup of working environment which takes some time.

Also in a slack there are good projects for contribution too. I found 2 good projects in slack in which I’m interested too. One is the project suggested by teacher and the other one is to help other students translate react into Ukrainian language which is a good option cause I’m from Ukraine too.

Even though I didn’t manage to fix my first bug during first week I’ll try to catch up with everyone during next few weeks.

Open source and where to find it.

The best place to find an open source is Github, so I started a hunt for some interesting project from this mysterious place. The goal was simple (it wasn’t) – research a three potential projects on which we probably can work in a future. Sounds simple isn’t it? However for a young student like me it was a little bit tricky, because of two factors which i need to put into a count. Ether I’ll look for a projects which will be interesting to me OR I’ll look for some projects which will be useful for me in a future. After long time thinking about which one to pick I decided to go with interesting part. As a result, all choices which were made are based only on my interests not on how useful these projects will be for me in a future. So here we have these guys:

Golang – i think after this it should be a description or how cool this language is, but not today. The reason for this is that I didn’t work with it at all. The only thing i know about Golang is that this language is very new and that one of my friends almost worship this language. I heard from him about how cool it is so many times that only this fact makes me to choose it as my first option. It always good to learn something new so why not to give it a try.

Playcanvaswas my second project which i chose. It’s a open source game engine which allows to play games in different browses without need to install plugins. It’s something completely new to me too, but I’m little bit curious about games and VR, so decided to choose it as an option.

Angular it was my last project of choice mostly because I currently working with angular on my implementation part of project and want to say I like it.

Lab 2. Git commands.

The main point of the lab two is to write about 2 commands which are new to us. There are two commands which I didn’t use in my first release and about which I want to write here.

First one is git branch. This command will help users to maintain a lot of different branches in one repository. There are two ways of using this command:

  • git branch <name of branch>

If you will use this command like this it will create a new branch with a name you put in. How ever if you will not specify a name and just use this git command like this:

  • git branch

It will show you the list of already created brunches. The one with an asterisk will be the one in which you currently are.

The second command is git grep. This command is very useful for people who want to do a search for some specific strings in a files. There are two ways to use this command. First one is when we specified the file in which we need to find specific string:

  • git grep “some string” <filename>

In this case the command will search for the string we specified in a file which we specified.

In case if we will leave just a command and a string:

  • git grep “some string”

The command will search through all the files in your current directory for this specific line.

Even though we used a lot of commands in during the work on our first release, there are a lot more of them which we need to at lest be aware off. Hope this topic will help anyone who starts working with a git like I do.

First Release.

Short Description:

In our first release our main goal was to become more familiar with GitHub. The most important part was to set up connection with our github account and repository of the project. After that we need to pick up a file and change “var” to “const” or “let”. After all necessary changes were made we need to run a test and check if everything works fine. In a last part we need to make a pull-request to master branch and run test again on github.

Git commands I used to finish first release:

  • git config –global
  • git config –global
  • git init
  • git remote add upstream
  • git clone
  • git checkout -b
  • git status
  • git add
  • git commit -m
  • git push

Final part:

Last part of first release was review of other people pull-requests. To finish this part i pick a pull-request. After that “File changed”. Went through the code to see if there are any places for improvements or errors. Checked if all tests was done and if they had an errors. In my case everything was fine accept one line was missing (“‘use strict’;”). I left a comment about that in pull-request.


Link to PR:

Link to Issue:

Link to Pull-Request:

fs.copyFile() & fs.copyFileSync() in Node.js


fs.copyFile(src, dest[, flags], callback) is asynchronous copying of the file from source to destination. In case if destination already exists it will be overwritten. Callback can return nothing than possible exceptions. In case of errors while file has been opened for writing, Node.js will try to delete destination.

  • src is source file to copy and can be <string>, <URL>, <Buffer>.
  • dest is destination of the copying and can be <string>, <URL>, <Buffer>.
  • flags are modifiers for destination. 0 by default.
  • callback is a function.

Here is a code from Node.js open source side as an example for copying:

In case if we have a third argument and it’s a number we will have this code to perform copying:


 fs.copyFileSync(src, dest[, flags]) is synchronous copying of the file from source to destination. In case if destination already exists it will be overwritten. Returns undefined. In case of errors while file has been opened for writing, Node.js will try to delete destination.

  •  src is source file to copy and be <string>, <URL>, <Buffer>.
  • dest is destination of the copying and can be <string>, <URL>, <Buffer>.
  • flags are modifiers for destination. 0 by default.

And code for synchronous copying looks like example here:

As it was in case of asynchronous copying we have an option when the third parameter is specified as a number: