Skip to content

Instantly share code, notes, and snippets.

View lpranam's full-sized avatar
😵
Debugging something somewhere

Pranam Lashkari lpranam

😵
Debugging something somewhere
View GitHub Profile
@lpranam
lpranam / squash.md
Last active March 19, 2024 08:36
How to squash commits

What is squashing?

Squashing is a process in which we squeeze multiple commits into one pretending it is only a single commit.

Basically squashing commits means we are rewriting the history of commits to make them look like single commit.

squash-diagram.jpg

Why squashing commits is necessary?

@lpranam
lpranam / gsoc19.md
Created August 25, 2019 05:03
Google Summer of Code 2019 Experience

I worked with Boost C++ Libraries in GSoC 2019 to extend my implementation of new Astronomy Library in C++ using various Boost Libraries and standard libraries which originally started in GSoC 2018. The goal of the GSoC project was to bring this library closer to its first formal review for acceptance in Boost C++ library collection.

Aim of The Library

Development of this library started targeting not only professional C++ developers but also to the scientists and physicists. With simple APIs, this library will help users to speed-up their development process.

Astronomy Library will provide basic functionalities which are required daily in the astronomy like the coordinate system and FITS file handling.

Features Developed/Enhanced During GSoC 2019

@lpranam
lpranam / Stopwatch.md
Created November 24, 2018 15:23
This gist is created for Google Code-In 2018 task "Tutorial 3 - Stopwatch using threading" of KDE.(https://codein.withgoogle.com/dashboard/tasks/4887904280117248/)

Threading is the main concept which every programmer needs to know to write a good program so in this tutorial we will build a stopwatch using threading. Please remember that this tutorial is meant to teach you the concept of threading and not how to build the stopwatch. Actual watches are made in a more efficient way than this.

Overview of task: The stopwatch will display hour, minutes and seconds. It will have a start and a stop push button. Once the clock is stopped and started again it will count from the beginning.

Prerequisites: Basic knowledge of QT class QThread

Steps:

  1. Create a new Qt GUI project with dialog.
@lpranam
lpranam / gsoc18.md
Last active December 23, 2018 16:42
GSoC 2018 Experience

I worked with Boost C++ Libraries in GSoC 2018 to implement new Astronomy Library in C++ using various Boost Libraries and standard libraries. Development of this library started from scratch in GSoC 2018 so only a part of this library is developed under GSoC and remaining development will be continued after GSoC.

Aim of The Library

Development of this library started targeting not only professional C++ developers but also to the scientists and physicists who are not professional programmers and are new to C++ language. So with simple APIs, this library will help non-professional programmers to dedicate their time more to the real work other than programming.

Astronomy Library will provide basic functionalities which are required daily in the astronomy like the coordinate system and FITS file handling.

Features Developed During GSoC

@lpranam
lpranam / File Explorer.md
Created December 12, 2018 05:59
This gist is created for Google Code-In 2018 task "Tutorial 2 - Creating a file explorer" of KDE.(https://codein.withgoogle.com/dashboard/tasks/4925281098792960/)

KDE has its own file manager known as Dolphin. This task will make a little familiar with how the file manager works.

Overview of Task: We will create a file explorer which can help you navigate through files on your computer. This program will be able to show you the only name of file and directories and not able to delete open or modify anything.

Prerequisites: Basic knowledge of QT classes QDir, QListWidget and QFileInfo

Steps:

  1. Create new QtWidget project
@lpranam
lpranam / Signals and Slots.md
Created December 12, 2018 05:58
This gist is created for Google Code-In 2018 task "Tutorial - 1 Understanding signals and slots" of KDE.(https://codein.withgoogle.com/dashboard/tasks/5748060836593664/)

In this task, you are supposed to create a simple dialogue box. This dialogue box will have only a single slider widget in it. This slider will control the background colour of the dialogue box.

Steps:

  1. Create a simple dialogue box
  2. Add a slider to it.
  3. Now create a slot for valueChanged()
  4. Use styleSheet property of dialogue to change its colour (you can use CSS properties in styleSheet)

For submission:

  1. submit GitHub repository link
@lpranam
lpranam / Getting Started with C++ and Qt.md
Created December 12, 2018 05:55
This gist is created for Google Code-In 2018 task "Tutorial 0 - Getting Started with C++ and Qt" of KDE.(https://codein.withgoogle.com/dashboard/tasks/6629022852186112/)

If you are new to C++ or Qt world then this task is designed for you to help you get started.

In this task, you will set up the environment and make and hello world GUI application. (As this tutorial series is to make you familiar with c++ and Qt which is essential to know to contribute to KDE community we recommend you to use Kubuntu or KDE neon but still, you can choose any OS of your choice which supports Qt).

Steps:

  1. Install IDE of your choice which makes you most comfortable (KDevelop or [Qt Creator](https://cta-service-cms2.hubspot.com/ctas/v2/public/cs/c/?cta_guid=6cb0de4f-9bb5-4778-ab02-bfb62735f3e5&placement_guid=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce&portal_id=149513&canon=https%3A%2F%2Fwww.qt.io%2Fdownload&redirect_url=APefjpG2ilihA6LOJhlZxcCQpuJJ0voE14hyT028lfa-mg4DrkV50fcczix5kW1PmfaKAyrdshdmUrHo967sJYEXUJVOl7D3f007rBFKS0iWw8rxZbhGNznxNta8WtAdpzE06Tat6DaTX05qTWaQkqE1DXprGlYLlw_ptZMNBBdebRDoZhfmGot4ULAx7O3BR6dhmJBuRnxwKZaK4GNdhlR_No7-1eyYwo8TQ3tGB_kW2iURyuSt