Posts

"Good first issue", implementation. Part 3/4.

Image
Status: Success     The third issue, in my list of open source issues I have worked with, will be a fix in a README.md for penguinV project (C++ image processing library, which focuses on work with heterogeneous systems. It works with CUDA and OpenCL ).      The fix would require a simple modernization of a landing page in the repo, just so it would have a better user experience. No special requests have been mentioned, so it was up to the developer to provide creativity and suggest a few changes.     The first thing that I noticed, was a lack of hyperlinks in descriptions of the tool, so I modified those mentions of the docs that appeared there (just simple markup links to the Master repo). I also wanted to practice with git rebase , so after all necessary commits have been done locally (just a bit more than a lot of them), I squashed all the commits that I had into one by running git rebase -i HEAD~10 . The command would pick up 10 ...

"Good-first-issue" search. Part 2/4.

Image
Status: in progress     First issues have been spotted and the work is progressing in full speed. The issues are similar in their nature, which makes it easier for me to pick an approach to solve them. I have found two beautiful projects to contribute to: MochaJS  and AVMFramework . The first is a JavaScript test framework, and the second is a Java framework implementation for Alternating Variable Method, a heuristic local search algorithm.        The issue I am working on at Mocha is an update of the Mocha's site, so it would include an extra badge of one of the sponsors that the team got acquired recently. The issue can be found here .          The Alternating Variable Method framework currently has an issue with documentation. They require an update of the Readme file, so it would also be displaying the logo and a list of the features that the tool can offer, so anyone entering the repo, could decide if AVM ...

"Good-first-issue" for a "good-first-experience". Part 1/4.

Image
Status: In active search     What I have recently found out is the cornerstone of an open source development is not only to be able to contribute to a project, it is also to know what project one should contribute to.    I've been searching mostly on Codetribute , which is a Mozilla's owned web portal to manage open source contributions.     After a couple of hours of searching for the bug, the only and the best, I noticed that the list of the current issues in there is sorted by dates of recent updates only, which makes it harder to find a newly created bug to contribute to, since updated old ones (and sometimes very old ones) get pushed to the top of the list as well. I find it a little challenging for myself (at least for now) to be trying to go over dozens of comments for a specific issue and trying to fix it, when other people have been working on it for a while already.     But let's move the technicalities aside. The job...

Choosing Projects To Work On

And the journey into the Open Source world begins     How should a person start one's experience with open source projects? Well, the answer to this question probably won't be trivial - with oneself.     When contributing to an open source project, we need to know our own skill set and what we are capable of, what we would like to learn and/or research; and, on a base of that analysis, we will be able to narrow down those specific projects, getting the crème fouettée of them, something that we can and would   like to put our attention on. Closer to the the matter please     Alright, to be specific, for me the true joy dwells into low- and high-level back-end programming languages. Please, don't take me wrong, there are incredibly interesting and powerful front end languages as well, it just happened that I don't find myself incredibly excited while working with them. Well, what am I going to be looking for? Something low, something of  ...

Mastering Git

Image
What to focus on?     Today is a scary day. Today is the day of admitting one's faults and learning what I was supposed to long ago. So let's dig into learning curve all together by looking at a couple of Git  functions I personally have never used before, which though, for some of you, might already be very familiar, so I will try to bring more interesting information about them to peak everyone's interest.     What are the two functions that we will be looking at? Shall it be git fetch  and git tag . Let's play Fetch     The purpose of git fetch is to download commits, files, etc. from a remote repo into user's local one (from here , and here ). How is it different from git pull  then? Well, git fetch  does not necessary merge the content with the user's repo, but git pull does. The way to imagine it would be  git pull  =  git fetch  +  git merge .     Here is a graphical representation of...

FilerJS experience

Image
Release 0.1     Today, I would like to tell you about my so far best amateur usage of Git as a part of " Open Source Development " class assignment submission, and I what knowledge I have acquired from it. Well, let's start from the beginning.     The task was to provide a fix to one of the JS files in Filer project files. The "fix" was introduced to all class attendees as a mere move from using "var" (function-scope) upon variable declaration, to "let and "const" (block-scope), which were introduced in ES6 . The main idea of the assignment was to practice with such incredibly needful in programmers' lives Git commands and try (only try) to master them.     The file fs.watch.prec.js  had been randomly chosen as my personal firing field and the issue report/assignment request has been submitted via GitHub. After a prompt response with notification from my professor that I had just gotten assigned to issue #666, the...

Node.js: fs.open()

    Today, I would like to take a look at one of the widely used functions of Node.js ' fs  library -  open() , and its synchronous version -  openSync() .     The function's purpose is to open a file, specified by a path (the first mandatory parameter of the function). The code of the function is following ( source ): function open(path, flags, mode, callback) {   path = toPathIfFileURL(path);   validatePath(path);   if (arguments.length < 3) {     callback = flags;     flags = 'r';     mode = 0o666;   } else if (typeof mode === 'function') {     callback = mode;     mode = 0o666;   }   const flagsNumber = stringToFlags(flags);   if (arguments.length >= 4) {     mode = validateMode(mode, 'mode', 0o666);   }   callback = makeCallback(callback);   const req = new FSReqCallback();   req.oncomplete = callback; ...