Test PR Before Merge in Github

Today, I got a task to test the PR https://github.com/GreatDevelopers/TCC/pull/2 

Steps to test the PR in separate branch before merge

1. Create and switch to new branch

$git checkout -b <new_branch_name> <remote_name/existing_branch_name>

Here second parameter is optional. If not mentioned then it will create a new branch exact copy of current branch.

In second parameter you have to give two values remote_name and branch name existing in that remote.

If no remote name is mentioned then by default it will account remote_name=origin.

If I am having more than one remotes as shown below.

$ git remote -v
amisha https://github.com/amisha2016/TCC (fetch)
amisha https://github.com/amisha2016/TCC (push)
origin https://github.com/GreatDevelopers/TCC.git (fetch)
origin https://github.com/GreatDevelopers/TCC.git (push)

Now, I want to create a new branch exact copy of existing branch of remote amisha.

$git checkout -b new amisha/master

2. Pull the PR to the new branch

$git pull <remote_URL> <branch_name>

Here remote_URL is the URL of the repository who has opened/send that PR and branch_name is the name of branch where he has committed that changes. In the image the branch _name is HTML_files.


But in my case the situation was not that easy. Actually the person who has send that PR has deleted the fork of that repository.


Here branch name is unknown repository. So, the solution is below.

$git checkout master

$ git fetch -f origin pull/2/head:new

Second command means to fetch the changes from PR #ID(here ID is 2) to the newly created branch new. Remember this command won’t work if you are in the same branch where changes to be applied(here branch name is new). That is why I checkout to master branch initially.

My senior Mandeep Singh helped in it.

Now test the PR and enjoy while merging ūüėõ


Connect to Wifi through Terminal

Today, I learned various new commands of ubuntu.

Command to connect to wifi through terminal.

nmcli d wifi connect <WiFiSSID> password <WiFiPassword>

If you have to login for wifi through browser. You can follow steps listed below.

$nmcli d wifi connect <WifiSSID>                              //WifiSSID means name of Wifi

Then install elink through

$sudo apt install elink

If already done then type


Enter URL of login page and password. Congratulation you are connected through Wifi from terminal. It may seem tedious task but if you know the real power of terminal than this long procedure is worth in.

Inspite of this I used to online tool to edit the properties  like aspect ratio, height and width of image through online tool http://resizeyourimage.com/ . I have used it to fill GATE examination form.













Mutt- Mail User Agent

Mutt is apowerful program for reading and sending electronic mails.

I followed two references to install mutt.



Mutt Installation

$sudo apt install mutt

$ sudo touch $MAIL
$ sudo chmod 660 $MAIL
$ sudo chown `whoami`:mail $MAIL

Create the ~/.muttrc file

set imap_user = "userName@gmail.com"
set imap_pass = "password"

set smtp_url = "smtp://userName@smtp.gmail.com:587/"
set smtp_pass = "password"

set from = "userName@gmail.com"
set realname = "Sender Name"

set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed="+[Gmail]/Drafts"

set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates

set move = no

For furthur usage of Mutt keep in touch with me.




Learn Javascript

Hie everyone and welcome to the Javascript Tutorial. Here I will not hardcode each and every thing. Rather will introduce with the important concepts which you should know about the respective language.

We will start with the concept debugger. What do you mean by debugger in lay-men language. Think about it!

So, bug means fault and debug means to correct fault. Here, debugger is the program(code) which will help to correct errors. I think it is as easy as to understand.

In JS you can debug code in various ways. Here they are illustrated in two ways.

  1. Using Debugger Keyword
  2. Using Console.log

Using Debugger

<!DOCTYPE html>


<p id=”demo”></p>

<p>With the debugger turned on, the code below should stop executing before it executes the third line.</p>

var x = 15 * 5;
document.getElementById(“demo”).innerHTML = x;
x = 15 + 5;
document.getElementById(“demo”).innerHTML = x;
x = 15 + 7;
document.getElementById(“demo”).innerHTML = x;


The execution will be stopped whenever the keyword debugger will be encountered. In the above code it will stop three times. You can check value of x at every breakpoint.

Using console.log

<!DOCTYPE html>

<h2>My First Web Page</h2>

Activate debugging in your browser (Chrome, IE, Firefox) with F12, and select “Console” in the debugger menu.

a = 5;
b = 6;
c = a + b;


You will see the value of variable c in the console window. In firefox and  chrome open console window with F12.

Another Case

While doing experiments on JS forms I got to know very interesting thing.

<!DOCTYPE html>

<form name=”myForm” action=”/action_page_post.php”
onsubmit=”return false” method=”post”>
Name: <input type=”text” name=”fname”>
<input type=”submit” value=”Submit”>


In the “onsubmit” attribute of <form> tag we call some function in the value part. But if return false Boolean value as shown above then the form would not submit. We can use this benefit in some condition like if any field of the form is empty by adding JS code as illustrated below.

<!DOCTYPE html>

function validateForm() {
var x = document.forms[“myForm”][“fname”].value;
if (x == “”) {
alert(“Name must be filled out”);
return false;


<form name=”myForm” action=”/action_page_post.php”
onsubmit=”return validateForm()” method=”post”>
Name: <input type=”text” name=”fname”>
<input type=”submit” value=”Submit”>



That’s all for today. Thank-you for bearing me.:)

WordPress Installation

Well the purpose of this blog is clear from the title only. But it’s not just that. Actually, I want to make my OSM_installation_script just like it or better than it. Moreover, my mentor¬†Dr. H. S. Rai asked me to do so.

I followed the below link to install WordPress.


When done all the steps mentioned on browsing to the http://localhost I got the  error illustrated below.



On googling to solve the error I got to know about installing the following package.

$ sudo apt install php7.0-mysql

It’s all done. Really it’s a job of 5 minutes.



Configure Apache2 Userdir

Scenario#- Consider a situation that you are a normal user rather a sudo user. You are desperate to run php program or anything require of Apache server. Ohho! You don’t have permission to edit anything in the directory /var/www/html(considering it as DocumentRoot Directory).

No worry, Apache2 provides here you a solution. You can even run everything from your home directory. It’s a job of 10 minutes. Believe me. ūüôā

Steps Involved

$cd /home/username/
$mkdir public_html

Don’t make it with sudo as it will come under the owner root.

Change the permissions of certain directories.

 $ chmod 711 /home
 $ chmod 711 /home/username
 $ chmod 755 /home/username/public_html
 $ chmod o+r /home/username/public_html/index.html

Now, move to the directory mods-available

$cd /etc/apache2/mods-available
$sudo touch userdir.load           //don't replace userdir with your username
$sudo vim userdir.conf

Add the following code in it and save.

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS PROPFIND>
                     Require all granted
                <LimitExcept GET POST OPTIONS PROPFIND>
                     Require all granted


$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/userdir.conf userdir.conf
$ sudo ln -s ../mods-available/userdir.load userdir.load
$ sudo a2enmod userdir
$ sudo /etc/init.d/apache2 restart 

And you are done! Now you can browse to http://localhost/~username

Apart from it, I tried to set up Apache virtual hosts using the link.


Expand Your Vision

Today, I read about the difference the two directories sites-available
and sites-enabled. Likewise of mods-available and mods-enabled.

sites-available contain all the configuration files that may be active
or not whereas sites-enabled as it name suggest contain enabled or
active sites. We should never edit files in the sites-enabled
directory as it may create problem.

To manage the two directories simultaneously, edit the files in the
sites-available and create symlink in the sites-enabled. After that
run the command

$a2ensite abc.com

Similarly, substitute a2ensite with “a2enconf” for configuration file
and for .load file with “a2enmod”

Apart from this I tried to create passport size photograph and arranged it in a sheet using the online tools.







Heating Saturday

So, here the presentation day came again, though entirely different. Before the session begins almost all trainees and new comers including me were demotivated, frustrated from last two weeks. Keeping all in mind there was General Body Meeting(GBM) cum motivation seminar.

My senior Vigasdeep shared some adventurous experiences with us. The moral of all the experiences was to execute it what you want to do, don’t think of anybody.

In-spite of all these knowledge, my senior Mandeep Singh gave a presentation on the the topic Password Manager- Pass

You can view it’s documentation from here


Osmosis in OSM

Till now, whatever changes I do in the OSM data, I again download the latest data from OSM or from http://extract.bbbike.org/ and import the fresh data in the database. But this is not the efficient approach.

So Today, I am going to introduce you with the term osmosis. You can read it in detail from here

Osmosis Installation

$sudo apt install osmosis

$osmosis -v                          //tell version

INFO: Osmosis Version 0.44.1

Now, it’s time to use the tool. The first command I tried to check the difference in the changesets of the two files was

$ osmosis –read-xml file=”ludh.osm” –read-xml file=”ludhiana.pbf” –derive-change –write-xml-change file=”planetdiff-1-2.osc”

Luckily, I encountered with an error.;)

SEVERE: Thread for task 1-read-xml failed
org.openstreetmap.osmosis.core.OsmosisRuntimeException: An output error has occurred, aborting.

After browsing on the internet then I came to know about my silly mistake. For the file ludhiana.pbf I was using the flag –read-xml instead of –read-pbf. The correct command is

$ osmosis –read-xml file=”ludh.osm” –read-pbf file=”ludhiana.pbf” –derive-change –write-xml-change file=”planetdiff-1-2.osc”

Similarly, we can explore osmosis a lot.



FEM Presentation 2

As I have already mentioned in my previous blog I am taking course on Finite Element Method. I have given presentation on the topic Galerkin Form or Finite Dimensional Weak Form. I don’t know how much fruitful it was to the audience over there.

But the one who is reading this blog and was present over there can comment and questions for the same.

The documentation for the same is stored in zoho docs

After that I have put the whole code of webmap in my Github repository under the branch webmap.


Now the task I am going to do is how to update data of OSM rather import it from scratch again and again. What I think it will be done through osmosis. But I am not sure.

Today, I tried was trying to make wiki page for pbOSM project and from that I came to to know that it is made with the Markup language. Again I have to learn one new language.:(

Now, it’s time to actualize the thing. So, bye bye for a time being.