Sunday, 9 December 2018

Final Post

Open Source was my first professional option course. I took it because

  • I heard from person working in the industry that open source knowledge/skill is important and that I must take this course
  • I heard from other students that this course is taught by a good professor
I am satisfied with this course. I learnt GitHub, gained some experience in open source, improved resume, and so on. Now I am going to try other courses. In the last year at Seneca I will definitely take second open source course.

Release 0.4 Week 3

This week I finished all PRs that were assigned to me last week:
Description of these functions can be found here
Third PR does not pass checks, because it uses function written in one of the previous PRs which was not merged yet.

Monday, 3 December 2018

Release 0.4 Week 2

This week I chose issues in algorithms library I will work on next week and did a research about Math required to implement chosen algorithms. Of course, I am going to write efficient algorithms. These algorithms are:
Modular Multiplicative Inverse - function receives 2 integers a and m and returns smallest positive integer x such that
In simple words this means that ax - 1 is divisible by m
Modular Multiplicative Inverse using Fermets - the same problem but solved using Fermet's Small Theorem.
Fisher Yates - this is algorithm used to generate random permutations of a finite sequence.

Monday, 26 November 2018

Release 0.4 Week 1

This week I was trying to find a project to work on. Small projects are usually too simple and small, so I can't contribute to them 3 or more times. Big projects look incomprehensible, I don't know how to start contributing to them. So, I decided to contribute to consumable algorithms library again. I booked 3 algorithms here.

Monday, 19 November 2018

Release 0.3 Week 3


In release 0.3 I decided to focus on Seneca Blackboard Extension. I created 4 PRs 
and 5 issues (3 solved myself, 2 left for peers)
Before starting work on BB I thought it's very hard project because I had no idea how to do it. But after doing research I realized that Chrome extensions are easy: I even did not need to learn new material.
However, I faced 2 issues. The first issue was that BB developers did not properly specify ids and classes of elements, so it was often hard to access elements (and I did not manage to access some elements). The second issue was that peers also didn't follow same styling and writing principles. For example, all elements on BB have "h2" headers. Someone added Calendar with "caption" instead of "h2", so my code that changes "h2" styling didn't change Calendar header.

Monday, 12 November 2018

Release 0.3 Week 2

This week I am working on Seneca Blackboard Extension.

First Contribution


I already created first pull request. In this PR I added icons of different sizes to our project and included them into manifest.json. Now icons are shown in extensions list, extensions settings, etc.


Current Tasks


I decided to reorganize and restyle Seneca Blackboard, because it looks old-fashioned and we remove old/insert new elements (issue-8).

When we change Seneca Blackboard code, bugs appear, so I decided to fix them.
Examples:
issue-51 issue-52

Monday, 5 November 2018

Release 0.3 Week 1

Hacktoberfest has finished, so it's time to start looking for new projects, bugs, issues. We need to contribute to both "external" and "internal" projects. I haven't found any interesting "external" project yet, but I joined teams working on Seneca Blackboard and Student Centre Extensions for Google Chrome and Unity side-scrolling video game in C#.

Why did I choose these 2? It's pretty obvious that I decided to work on Seneca Services Extensions because Seneca Blackboard and Student Centre annoy most students (and probably professors). It's my chance to do a good deed and help a lot of students. We just created a repo for this project and have to start from the very beginning. This week I'm going to do a research to be able to start contributing to a project, as I need to understand how extensions work. Then I am going to create an initial extension (that just adds/removes and element).

Situation with Unity game is different. I just want to try working with Unity engine. This game already exists, but it's buggy. You can try it. It looks like one of the old 2D games on push-button phones. You can move left or right, jump, open doors to get to the next location, and solve puzzles (there is a lot of them). Again, I need to do a research, as I have never used Unity. Then I might create some new types of puzzles.