Update on Open Source Contribution: April 05

Hey there folks!

Last month I worked on an issue in AntennaPod. Check out my previous blog post to know more about it.

Project Link

Issue link

Pull Request link

Finally, after multiple commits my PR has been merged.

This Month

This week I worked on Microsoft Calculator.

If you are a Windows person you might have came across Microsoft Calculator.

This is how it used to look before
Now it’s the most powerful calculator application

The application is written in C++

The issue that I chose to work on:

Issue link

I found there were several controls (AppBar, OperatorTextBox and OperandTextBox) that were no longer used and were laying in the codebase for no reason. So my task was to remove those controls and its instances from the source code.

I have already submitted my PR, waiting for their review.

Pull request link

Although it was a code cleaning task, I was introduced to an ancient C++ code. I have to say its well written and maintained. Even the setting up the project was a piece of cake.

Overall, It was a great opportunity for me to work on a Microsoft project.

In upcoming weeks, I will be working and fixing more issue in Open Source projects and definitely will post a blog update about it.

Stay Tuned!

Open Source Contribution Summary: March Edition

Here there folks!

This month I am working on an issue in AntennaPod. Check out my previous blog post to know more about it.

Project Link

About Issue

Issue link

My task was to add empty view to the Episodes, Download, Playback History and Queue history pages. At first, I had some troubles figuring out how fragments work. Later, I found my way out and added the empty views to the required pages. Throughout the process, the code maintainers of the project helped me and gave me amazing tips in android development.

Result

I have already submitted my pull request and currently maintainers are reviewing my code. Hopefully, my code will get merge by next week.

Pull Request link

I am also looking forward to fix more issues in this project.

Stay Tuned!

Contribution to AntennaPod: March22

A podcast manager for Android

Hey folks,

This week I am working on an issue in AntennaPod. It’s a podcast manager which allows you to subscribe, download top podcasts available in the market.

The project is written in Java and XML.

For the issue, I am adding empty views to various pages. At first I thought the task will be easy but later I found its not that simple. Especially understanding fragments code was a challenge. For almost two days I was lost I had no idea how fragments work. Not only that fragments can be coded in many different ways which makes it more complex to understand as every developer has its own style of writing code. So, I had to do some digging about it.

Issue link

Later I was able to create empty views for some pages. But I wasn’t sure if
my code is according to their project coding standards. So I sent a pull request of my current work for review. Luckily, it passed all the test (hurray!)

Pull request

Then, one of contributor recommended to create only one empty view(xml) instead of recreating empty views for each page. But, he didn’t said anything about my java code (main code) so I believe it’s a good sign.

Now, I am finishing off remaining work and I believe I will submit my final PR to resolve the issue by next week.

Stay Tuned!

Future Open Source Contribution Plan: March Edition

Hey there folks!

This week I will be working on an WordPress android application.

Personally, I have been using wordpress for a quite some time and I love it. It is just so clean and simple to use. Recently, I found that there is an android app for the WordPress which is an Open Source project(repo). These days I have been investing lot of time learning cool things in android development. Soon, I will be uploading my ongoing android projects on Github as Open Source.

For now, I am going to fix some existing bugs or maybe add some cool feature in WordPress app. In process, I will also try to find some undiscovered bugs.

I have already setup my workspace. Throughout the project, I really loved the variable/function naming convention. But, I have to become more familiar with the codebase and get down to work on bugs.

The issues that I am planning to work are as follows:

Issue 1

Issue 2

Issue 3

I will be still looking out for some other exciting Open Source projects to work on so let me know in comments if you have any recommendations.

Stay Tuned!

Open Source Contribution Summary: Feb Edition

As may have seen my older blog posts in which I posted stuff about my participation in Open Source projects whether it is fixing a small bug, improving UI, fixing typos in a document or implementing a cool feature.

If not, check out my previous posts to get more information about my work on Open Source projects in detail.

Blog post 1

Blog post 2

Blog post 3

Pull Requests

Pull Request 1

Pull Request 2

Pull Request 3

Pull Request 4

Pull Request 5

Github Account

Link to my Github

Lessons learned…

  • Earlier when I was finding a good first issue, my main concern was about fixing an issue, but later I got to know setting up the project on a personal desktop is the real pain. So, always check if the project dependencies are compatible with your machine prior to the installation process.
  • You need to know basic Git commands like push, pull.
  • Find issue easily by filtering search results using label. My favourite label ones are good first issue and bug
  • There so many ways to fix a problem and there might be times when code maintainers don’t like your fix so don’t feel bad instead learn from it.
  • Writing comments above your code is a good practice.
  • Don’t look around too much for a solution, its okay to ask for help from your fellow developers or Open Source community.
  • At the end of the day Stack overflow will be your best friend.
  • Don’t rush, take it easy and enjoy the process.

Some cool things…

  • My GitHub contribution activity table has started looking green now.
  • I was invited to join Code For Boston community on slack and worked with awesome developers.
  • I was added on MojiScript contributors list by the owner.

Reflection

  • I am getting very comfortable with React and Android.
  • I learned to implement APIs in a web application and it will be very helpful in future projects.
  • While finding issues, I discovered several projects that uses machine learning and I am looking forward to work on it.

Overall, it was a great experience!

In upcoming weeks, I will be working and fixing more issue in Open Source projects and definitely will post a blog update about it.

Stay Tuned!

Update on Open Source Contribution: Mar01

Hey there folks!

This week I worked on two projects and learned a bunch of cool stuff.

MojiScript

The first project that I worked on this week is MojiScript.


MojiScript is an Async First, opinionated, and functional language designed to have 100% compatibility with JavaScript engines. This will allow full access to JavaScript modules (NPM) and all tooling already available to JavaScript. This means that MojiScript language features can run in any JavaScript application and vice-versa.

I worked on the issue given below:

The issue I worked on

Setting up the project was easy.

Even the fix was also pretty simple. I just searched for ‘mojiscript/types/is’ text in VS Code search box and found the file (is.mdx) which contain this line of code. And then, I just changed the line from ‘mojiscript/types/is’ to ‘mojiscript/type/is’.

Later, I also change the same code of line in ‘unless.mdx’ and ‘when.mdx’.

My pull request

In the end, I submitted the pull request with my changes and it got merged.

Project Repo Link

Issue Link

Pull Request Link

And then an amazing thing happened

Joelnet (Main code maintainer) added me on MojiScript’s contributor’s list with a link to my personal website.

Readme.md file of MojiScript

Another project that I worked on this week is the Brewery Finder.

Brewery Finder

This is a website built to find any local or nearby brewer. Currently, it only provides breweries information located in the United States.

The website is written in React.

Again, It was a great opportunity for me to work with React.

Also, in one of my school course, I have to work with a project which uses APIs to fetch data. So, my professor recommended me to check some projects on GitHub which utilize APIs to get an idea of implementing APIs in projects. So, Brewery Finder was a good project to work on.

I worked on the issue given below:

The issue I worked on

The fix was not that easy I had to search for hours to find the best solution. Then suddenly JQuery came across my mind and I fixed the issue in minutes.

The owner seems to like my fix.

I submitted the pull request with my changes and it got merged.

Project Repo Link

Issue Link

Pull Request Link

And then suddenly…

The owner reopened the issue and he fixed the issue without Jquery.

Reopened and closed

He fixed it with just one line i.e. given below:

onMouseDown={e => e.preventDefault()}

Ahhh, I didn’t know we can use ‘OnMouseDown’ method. Before fixing it with Jquery I tried the same way but instead, I used the ‘onClick’ method. However, it didn’t work for me.

Well, now I know.

In upcoming weeks, I will be working and fixing more issue in Open Source projects and definitely will post a blog update about it.

Stay Tuned!

Update on Open Source Contribution: Feb22

Hey there folks!

This week I worked on two projects and got an invitation to join an amazing community on Slack.

Community Connect

The first project that I worked on this week is Community Connect.


“Community Connect” is a health resource web application that aims to consolidate information about businesses and organization available in communities that promote healthy lifestyle choices. A health resource is defined as services or materials that improve the quality of life of others, ranging from affordable child care, substance abuse counseling, domestic violence support, and more. 

The website is written in React.

Again, It was a great opportunity for me to work with React.

I worked on the issue given below:

Setting up the project was easy. I just forked, cloned and did ‘yarn install’.

Even the fix was also pretty simple. I just searched for ‘Category’ text in VS Code search box and found the file (CategoryList.js) which contain this form. And then, I just the text from ‘Category’ to ‘Filter by Category’.

My pull request

In the end, I submitted the pull request with my changes and it got merged.

Project Repo Link

Issue Link

Pull Request Link

This is not the END

Since the issue, I fixed was simple. I asked for permission to work on another issue but the issue was already fixed. Later, I got a reply from the code maintainer to join their Slack channel (Code for Boston).

As soon as I joined the Slack channel. I got a text from Galiat (code maintainer) to assist her on contributing.md.

Slack chat
My suggestion regarding contributing.md doc

So I provided her a suggestion to add project setup steps in contributing.md to save some developer’s time.

It’s the first time I got invited by someone to join a developers community to work together. And, I excited and looking forward to fixing more issues on this project with other fellow developers.

Vegeta-Server

Another project that I worked on this week is Vegeta-Server.

A RESTful API server for Vegeta, a load testing tool written in Go.

Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. The Vegeta library is written in Go, which makes it ideal to implement the server in Go.

I worked on the issue given below:

Setting up the project was easy.

For this issue, I moved some code examples from one MD file to a newly created MD file.

Since I haven’t changed any document in an Open-Source project before, it was a good issue for me to work on.

My pull request

In the end, I submitted the pull request with my changes and it got merged.

Project Repo Link

Issue Link

Pull Request Link

In upcoming weeks, I will be working and fixing more issue in Open Source projects and definitely will post a blog update about it.

Stay Tuned!

Update on Open Source Contribution: Feb14

Hey there folks!

This week I worked on The Teacher Fund unreleased website. This website is maintained by Joel Wasserman who also works at Google.


TeacherFund is a charity to support teachers in a way that encourages great teachers to stay, and potentially great teachers to choose to teach as a career path. This includes providing supplemental funds and supplies to school teachers in need.

The website is written in React using Next.js.

So this was a great opportunity for me to work with React and NextJS.

Since I am taking initial steps in contributing to the Open Source projects. I tried finding an issue which is easy to fix. It almost took me four hours to find an issue

Later, I asked for permission to work on the issue and soon, I got assigned to work on it.

The Issue

Setting up the project was easy. I just forked, cloned and did ‘npm install’.

Now the goal is to add a background image to the SignIn/SignUp page.

To add a background image to React, I did some research on google and found an easy way to do it by just adding a style attribute with backgroundImage to the div.

And all I added was just one line to the div element

<div className="main-container" style={{backgroundImage:`url(${"/static/images/abc_blackboard.jpg"})`, backgroundSize:'100% 80%', backgroundRepeat: 'no-repeat'}}>

Voila…

Final Changes
My pull request

In the end, I submitted the pull request with my changes and it got merged.

Project Repo Link

Issue Link

Pull Request Link

In upcoming weeks, I will be working and fixing more issue in Open Source projects and definitely will post a blog update about it.

Stay Tuned!

My Next Steps in Contributing to the Open-Source Society


Photo by Markus Spiske on Unsplash

After successfully getting started with contributing to the Open-Source society. I am planning to work on four new Open-Source projects in the future.

Check out my previous blog post to know more about my first contribution to the Open-Source society.

MICROSOFT – VS CODE

VS Code is a type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. It provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools.

  VS Code is built using Javascript, Typescript, and CSS on top of Electron framework.

I have been using the VS Code for two years and I love this code editor. I usually develop web apps using the VS Code. Currently, the VS Code has around 4500 issues on GitHub. I want to help the VS Code by fixing some of its issues. Also, I will become more familiar with Javascript and TypeScript.

Website

GitHub

BRAVE – BRAVE BROWSER

Brave is a free and open-source web browser available on Windows, MacOS, Linux, Android, and IOS. Brave is designed with a built-in adblocker to provide an ad-free and seamless browsing experience.

The Brave windows browser is built using JavaScript and Brave android app uses Java.

I have been using Brave for six months but never thought of contributing to it. Now, I am planning to resolve potential issues to both the Brave Windows browser and the Brave Android App. I will be able to improve my front end skills with JavaScript. I will also gain a deeper understanding of different functionalities of the web browser.

Website

Google Play Store

GitHub – Web

GitHub – Android

DUCK DUCK GO – ANDROID

Duck Duck Go is an Internet search engine available on Web, Android, and IOS platforms. The astonishing thing about this search engine is to protect the user’s privacy. It avoids the filter bubble of personalized search results and shows all users the same search results for a given search term.

The Duck Duck Go Android app is built using Kotlin.

It has been a month since I started developing on Android apps using Java but never worked with Kotlin. It will be a great opportunity for me to learn about Kotlin. I am planning to resolve the backend related issues of the project. I will also learn about how a search engine works.

Website

Google Play Store

GitHub

TEAMMATES

TEAMMATES is a free online tool for managing peer evaluations and other feedback paths of your students. It is provided as a cloud-based service for educators/students and is currently used by hundreds of universities across the world.

The Teammates website uses both Java and TypeScript.

I am really good at Java programming and want to contribute my skills and time to resolve issues on the project. Moreover, I will be able to develop my programming skills with TypeScript. I will be able to further develop my knowledge/understanding of the Java production-ready applications.

Website

Github

Let me know if you want to recommend any Open-Source projects related to JavaScript, Android and Machine Learning.

Git Commands that can come in handy

You may be using Git for a long time or new to it. But, today I am going to introduce you to Git Log and Git Remote commands which might come very useful in your day to day interaction with the Git and can make your life pretty simple.

But first, you need to know the difference between Git and Github.

Git is Version Control System.

GitHub is a web-based service for version control using Git.

In easy words…

Git helps us to keep track of our files and any changes made to those files on our local machine.

Github is a website that contains source code in different repositories managed through Git

Alright now, let’s get started with Git Log

Git Log

Shows the commit logs.

Functions

  • It allows us to keep track of our works.
  • This command helps give context and history for a repository.
  • It let users customize the formatting of each commit output of the log.
  • It also lets users filter commits in the log output.

Let us explore some options that can be helpful with Git Log command:

Draws a text-based graphical representation of the commit history on the left-hand side of the output.

git log --graph

Here is an example of the log output with –graph keyword.

(The output is a big list, not just five commits) As shown in the above image, the “git log –graph” retrieved the commit history on the branch (issue-667) of the filer project.
(The list continues) As shown in the above image, the “–graph” shows you previous merge represented by a different color for each branch.

Link to view my pull request. Also, check out my previous post to know more.

The standard “git log” command isn’t very terminal friendly as it displays lots of text. So, if you want to view commit history with only commit message then, oneline can be very convenient.

As shown in the above image, with “–online” shows the commit history with just commit message.

To filter commits by their commit message


As shown in the above image, with “–grep” shows only those commits which include “fs.readdir.spec.js” in their commit message.

Click on this link to know other options of Git Log.

Git Remote

This Git command is used to manage your Central servers for hosting your git repositories.

Function

  • It lets you create, view, and delete connections to other repositories.
  • This command is also responsible for syncing change.
  • The git remote command is essentially an interface for managing a list of remote entries that are stored in the repository’s ./.git/config file.
Using git remote to connect other repositories

For example, the above diagram shows two remote connections from your repo into the central repo and another developer’s repo. Instead of referencing them by their full URLs, you can pass the origin and john shortcuts to other Git commands. (Source)
git remote

This command shows the list of all remote connections you have to other repositories.

To add a connection to John’s repo

git remote add john http://dev.example.com/john.git

To remove John’s connection

git remote rm john

It has only one option i.e.

git remote -v

This command shows the list of all remote connections you have to other repositories with the URL of each remote connection.

Sample output(Source)

git remote -v
origin  git@bitbucket.com:origin_user/reponame.git (fetch)
origin  git@bitbucket.com:origin_user/reponame.git (push)
upstream  https://bitbucket.com/upstream_user/reponame.git (fetch)
upstream  https://bitbucket.com/upstream_user/reponame.git (push)
other_users_repo  https://bitbucket.com/other_users_repo/reponame  (fetch)
other_users_repo  https://bitbucket.com/other_users_repo/reponame  (push)

Official Documentation links

Git Log

Git Remote

Some Cool Videos

Check out this video to learn some cool tricks with git-log

This is the best video if you want to become master of Git remote