Django Day 1

From the 1 month, I was not writing my blogs as I was busy in my college schedule. And some good news I have received in this months that were, I received my final payment from the Outreachy. My mentor allows me to attend the FOSDEM conference which will be held on 1 – 2 Feb 2019 in Brussels, Belgium and sends me the parcel of Haiku CDs. I got the GoogleCloud swags from Google. I have completed the 30DaysOnGCP contest. Then, I was having my exams and so on basic college stuff. uffff!!!!!

Today I decided the Web Technology Lab project which we have to show to our lab instructors at the end of the semester. My brother advised me to use Django and then, I got permission from my teacher and now, started working on it.

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

I am following the tutorial given below to start from the basics about Django:

In this first, we have to make sure that the python and Django are installed in our machine. In this tutorial, we are creating the first poll app using Django. Poll app means

Creation of a basic poll application will consist of two parts: A public site that lets people view polls and vote in them. An admin site that lets you add, change, and delete polls.

To start the project go to the directory where you fetched the Django repository and run the following command:

django-admin startproject mysite

In the above command mysite is the name of the project.

After this what the above command will do?

It will create the structure of files like this:


Here, the is the command-line utility that lets you interact with this Django project in various ways.

mysite/ An empty file that tells Python that this directory should be considered a Python package.

mysite/ Settings/configuration for this Django project.

mysite/ The URL declarations for this Django project; a “table of contents” of your Django-powered site.

mysite/ An entry-point for WSGI-compatible web servers to serve your project.

This is all about I have done today.  Just a little bit because now, I have to prepare my lab files as I have lab test tomorrow. To be continued…… 🙂


This slideshow requires JavaScript.

My Outreachy journey

Today 20 August 2019, I completed my Outreachy internship. 🙂

From the last year, when I came to know about the Outreachy it becomes my dream and yes, finally I achieved it. These three months changed my life. It made me more confident. It was the best experience I have ever experienced.

I was very disappointed by myself before Outreachy because I didn’t find my interest and not doing the great things, just wasting my time here and there. But, when I got selected I start utilizing my time in the work. Seriously, I love my project a lot. 🙂

And planned to work with Haiku after the internship.

I want to thanks Outreachy and my mentor who selected me and help me to show my skills. 🙂

In the starting of my project, I take time to do the things properly and sometimes stuck in the code also, but PulkoMandy always helps me to overcome the problem. Then, as time flies, in the middle of the internship, I was able to do the things properly and slowly understand how to write the code like the good programmer.

Today, my code gets merged and feeling awesome. 🙂 Before Outreachy I was just making small projects but now, I feel very confident and able to work in large projects.

Now, my next dream is to attend the conference and give a presentation there.

I started the Outreachy application process after praying to god. If the god is with us we can do everything we want.

At the end of the blog, I thank you my mentor and the Outreachy. 🙂

Hope so you like it!!


Progress report of Outreachy project

My first evaluation was merged on 23 July 2019 🙂

This commit includes the preferences of the mouse and the touchpad. The second evaluation is on its way. I have added the keyboard settings also but there are some errors which I am trying to resolve.

Commit link:

In the meanwhile, I am working on the connected devices also that I have discussed in the previous blogs. I have done this as I understand but there are also some issues and working on them.

Commit link:

Today, in the Lab I was reading about the Haiku and I came to know about many things.

In my first presentation of the 6 weeks training, there were so many questions asked to me but I was unable to answer those questions in well mannered.

Let’s talk about them in this blog.

What is Haiku OS?

Haiku is an open-source operating system that specifically targets personal computing. When I gave this answer then the question arises what do you mean by personal computing?

Personal Computer: A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use.

Is Linux or other Operating Systems like MS Windows is not used for personal computing?

The other operating systems are also used for both personal and server computing. The server is part of the client–server model. In this model, a server serves data for clients. For example, if files on a device are shared by some process, that process is a file server. Similarly, web server software can run on any capable computer, and so a laptop or a personal computer can host a web server. Mostly Red Hat, Oracle, IBM (International Business Machines) use Linux for server computing and the Linux take the fund from there. As a result, the Linux kernel gets much tweaking and tuning for that, it is very good at network.

If we talk about the Mac and the Microsoft Windows may be they switch their efforts to phones at some point. If we talk about the Apple and Microsoft Windows they focused on the phones more as compare to laptops. There is no issue but now there we are talking about the personal computing. Haiku developers doesn’t want to shift it in any mode. They are just focusing on the personal computing.

Some benefits of Haiku:

Imagine starting up a full-featured Fedora distribution with the speed of a simple Gee X box Linux distribution. In Virtual Box, with 512 RAM base memory and a CPU of 1,83GHz, Haiku boots in exactly ten seconds from the boot loader menu to a ready to be used desktop. Shutting down the operating system takes a full three seconds on the same virtual machine.

As if we compare it with the Microsoft Windows, it also starts and shows the display in few seconds, but it didn’t becomes smooth instantly after starting. For example when we start the game or any other application they didn’t work smoothly because in Microsoft Windows it download its application after starting its display. So that the user can use it without any delay.

Linux takes some time while starting because I downloads its applications while starting the boot loader.

But, In Haiku it only takes 10 seconds to start and shutdown. Its also the beneficial feature of haiku as compare to Linux and Microsoft Windows.

Now, suppose if we want to use the two keyboards in the Linux then, we have to use the “X Input” extension that manages multiple input devices, we can use the xinput command line tool to configure them, and can also assign them to different “seats” (combinations of keyboard/monitor) or use them alternatively with one monitor.

xinput is a utility to configure and test X input devices, such as mouses, keyboards, and touchpads. It is found in the xorg-xinput package.

But, in Haiku we can use two keyboards or more at a same time without any assignment of seats.

Linux is designed (with separate team working on kernel, various desktop environments, C library, etc) means there will always be dozens of distributions, and even if two persons use the same distribution, their computers will be configured differently. For example: If we are downloading the package in the laptop and it doesn’t have the configuration that are required by the package, then there are some possibilities for issues and make it a nightmare for application developers. At the time when the developer has to check all the possible cases.

In Haiku, there is no issue possible as in Linux. Haiku runs the same application on diffferent configured computers also without any nightmare as same as the Macbook but, its not open source. :p

As now, we moved to the history of the Haiku, Gassee (Jean-Louis Gassée is a business executive. He is best known as a former executive at Apple Computer, where he worked from 1981 to 1990. He also founded Be Inc., creators of the BeOS computer operating system. After leaving Be, he became Chairman of PalmSource, Inc. in November 2004) wanted to create a new operating system from the ground up. BeOS was created with digital media work in mind and was designed to take advantage of the most modern hardware of the time. Originally, Be Inc attempted to create their own platform encompassing both hardware and software. The result was called the BeBox(The BeBox is a dual CPU personal computer, briefly sold by Be Inc. to run the company’s own operating system, BeOS. ). After BeBox failed to sell well, Be turned their attention to BeOS.

In the 1990s, Apple was looking for a new operating system to replace the aging Classic Mac OS. Gassee wanted $300 million. Apple was unwilling to offer any more than $125 million. In the end, Apple went with NeXTSTEP.

This was all I have learnt about Haiku.

Hope so you like it 🙂










Outreachy week 9 Theme: Career Opportunities

Aim of life:

I want to become a successful Software Engineer. I am learning C++ from the past 1 years.


FreeCAD – Programming in Python

After gaining sufficient knowledge about FreeCAD and Python, rather doing from UI, I wrote Python scripts to generate 3D models and 2D drawings. It was really fun to work on those scripts. I made a table, a concrete mixer drum and bishop model through Python programming.

GitHub repositories

Blog posts

A small project in Flutter (using Dart)

I made a simple cross-platform calculator application using Flutter, an open-source, powerful, hybrid mobile application framework by Google. Flutter is written Dart, therefore, through this simple project, I got great exposure to how to develop apps in Dart.

Blog post:

Python and Common Gateway Interface (CGI)

I used the Common Gateway Interface (CGI) along with Python to execute Python programs on the web browser. I made a quiz program, table and the area program (which finds the area of circle, square). All these programs take user input through HTML forms and pass further to Python programs on the server which return the results back to the browser.


Further, I also worked on PyQt which is used to make user interfaces, to develop a dead simple dialog box using Python.

Blog post:


Now, I am working with the Haiku Organization. The name of the project is to Unify the input preferences (mouse, touchpad, keyboard, keymap). The aim of this project is purely related to the user interface.


Currently pursuing B. Tech (2017 – 2021), Computer Science and Engineering, Guru Nanak Dev Engineering College, Ludhiana, Punjab, India
Higher Secondary Education (2017), Baba Isher Singh(Nanaksar) Public School Punjab, India

Matriculation (2015),  Baba Isher Singh(Nanaksar) Public School Punjab, India

Language: English, Punjabi, Hindi


Technology I worked in: C++, CGI, shell scripting, WordPress, HTML, CSS.
Tools: nano editor, git, QtCreator, Sublime, Visual Studio Code.

Job Opportunity:

I am a student till 2021, I will work for part-time if I will get a job. I am available for 4 hours per day and 8 hours on weekends.

Always share your knowledge

Yesterday, suddenly so may friend requests are coming on my LinkedIn. There is one follower from Gujarat and her name is Jahnvi. She is a Computer Science student. She messaged me about the application process of Outreachy. She was very nervous or we say excitedly to take part in the Outreachy in the next time. That’s why she contacted me through my LinkedIn profile which I was mentioned in the Outreachy alums profile. I was very happy because I was also in the same situation as the Jahnvi now. Before 6 months ago I also tried to contact with the past Outreachy alums but no one reply me back don’t know why 😦

Then, after 2 months of my message, one girl replies to me who’s name is Kate. She guided me a little bit. I was also happy while reading his reply.

But, I reply to Jahnvi as possible as fast. Because I don’t want that she wait for my reply as I was waiting 6 months ago.

Then, I try my best to guide her properly. 🙂 I was very happy while replying to her mail.

So many students in the class underestimated me sometimes. But now, they reach me out and start a discussion about the valuable things like ideas about their projects their skills. But some students are jealous also :p Lolz!!

No doubt, When I was trying to be the part of Outreachy I adviced all the girls in my class but, they all made me fool. No one take it seriously.

Time passes now, they reached to me ask for help about the Outreachy process. Lolzzz!!

Moral: Do not underestimate the determination of a quiet man. 🙂




Squash the commits with the same Change-Id or ensure Change-Ids are unique for each commit)

Today I while sending the commit on Gerrit. I used the commit “git log -p” to see the extra spaces in the code. Solving the space issues I added the files again but forget to amend that changes in the same change-Id. After adding all the files when I saw on the Gerrit page there were 4 commits with the same name. Then, I abandoned the other 3 commits which were added by mistake. Then, when I added the next file and amend it in the same change-Id, I got the error below:

“Squash the commits with the same Change-Id or ensure Change-Ids are unique for each commit)”

Which means that  I pushed the 3 commits with the same change-Id. Oops!!!!!

Then, I search on the internet and got the solution for this. For a while I was scared what will I do now???? 😦

Error message:



Use the command “git log” which will give you the information regarding the commits.


To squash the commit uses the command below:

git rebase -i

But, I used the command, because I want to squash the second commit.

git rebase -i HEAD~2

because I want to squash the second commit that’s why I used HEAD~2.

It will squash (crush or squeeze with force) the commit with the same change-Id, and now we are able to amend the commit message and push the code to Gerrit.

For more information refer the link below:



Started working on Padblocker

Yesterday the result was announced and I cleared all the exams with very good marks. 🙂

Also yesterday and tomorrow, I just resolved all the issues that were mentioned by the reviewers on Gerrit.

Now, I start working on the padblocker. It is the new enhancement ticket in which,

We have to add the mouse down filter in the touchpad preferences. Sometimes, while typing we accidently create the mouse clicks on the touchpad or in some case while typing our cursor goes on another line and we came to know later.

In the BeOS, there is the input_filter which will prevent us from this kind of situation.

The work is started by the Oishika which was also participated in the Outreachy. Now, I will continue her work and try to finish it quickly. I understand the code from her commits on Gerrit.  But, I want to go through it one more time. Tomorrow, I will start making changes on it. 🙂

Received the first payment from Outreachy

Today I received my first payment from Outreachy. I was full of happiness when my father calls me and said congratulations!!!! your money received. All family members are very happy. They congrats to me and start giving blessings.

The first time I went to the bank to withdraw some money. Then, I went to the shop for buying Rumala Sahib. Then, I went to the Sikh Temple (Sri Alamgir Sahib) to say thank you to god for this opportunity in my life. Then, I celebrated this good news with my family.

But, now I came to know that the result is declared by tomorrow. Start feeling worried now. I got the marks according to what I have written in the exam. Still, the worrying feeling comes. 😦

Hope so everyone will clear their exams with good marks. 🙂

Finished Working of Pointing Devices

Today, I write yesterday’s blog in the morning. As I mentioned in the previous blog, I was facing the problem regarding the default and the revert button. In the afternoon, I received the mail from my mentor. He told me not to use global buttons for all the problems, it becomes complex. Then, I add both the buttons in the individual cards. Like the mouse window, its own default and revert button and touchpad have its own.

In the evening, finished with pointing devices work.

Now, when I was sending the patch to Gerrit, by mistake I amend the commit in the previous patch which was not the right way. Then, I abandon the patch from Gerrit and made the new branch by which I add all the supported files. But the files didn’t add because I already commit than in another branch. I again abandon that patch.

While trying and searching on the internet I came to know about some commands which help me to solve my problem. Commands below:

1.) If the user wants to check the history of the git commands that we used previously the, try the command below:

history | grep git


git commands

2.) If the user wants to switch  from one branch to another, then try the command below:

git checkout "Branch name"

3.) If the user wants to uncommit the commit patch:

git reset --soft HEAD~1

By using the above command you will remove the last commit from the current branch.

git status

The git status command displays the state of the working directory and the staging area.

git reset HEAD "filename"

The above command will unstage the file to the current commit (HEAD).

4.) If the user wants to remove the files from the Gerrit but not from the local system:

git rm -cached "filename"

5.) If the user wants to see the generated patch use the command below:

git log -p

6.) If the user wants to see the amended commit history:

git reflog

7.) If the user wants to copy the file from one branch to another:

git checkout "Branch name" 'filename'

Thank you for reading  🙂

Blog at

Up ↑