GNOME Internship | Danish Prakash



Hello, 

NOTE: The application has also been attached herewith.

                    — BEGIN — 

Do you confirm that you are eligible for this internship as stated in our eligibility rules at https://wiki.gnome.org/Internships#Eligibility?. Answer "yes" or "no".
yes

Do you confirm that you have read and agree with the internship contract linked at https://wiki.gnome.org/Internships#Eligibility?. Answer "yes" or "no".
yes

== Personal Information ==

If you are accepted, fields in this section that are marked "(public)" will be displayed on a public acceptances page. If you prefer different information to be displayed publicly than you want to provide in this form, please provide both a private version visible only to the coordinators and mentors of the internship, and a public version to be displayed publicly.

Name (public): Danish Prakash

Preferred pronoun (e.g. she, he, they): he

E-mail address: grafitykoncept gmail com (Public), danishprakash outlook com (Private)

Blog URL (public, required): https://danishprakash.github.io/

IRC nick (public, optional): prakashdanish/danishprakash

Twitter URL (public, optional):

Website or Portfolio URL (optional): https://danishprakash.github.io/

GitHub, GitLab, or any other code repository URL (optional): https://github.com/danishprakash, https://gitlab.gnome.org/danishprakash, https://gitlab.com/danishprakash

LinkedIn URL (optional):

Any other online presence URL you wish to provide:

Location (city, state/province, and country) (public): New Delhi, Delhi, India

Education completed or in progress (include university, major/concentration, degree level, and graduation year): Undergraduate (to be graduated - 2018)

How did you hear about this internship?
I was looking for open source Python projects to contribute to and I came across gome-tweaks and gnome-music to which I started contributing. After some time, while I was going through the website for some info regarding the IRC channels, I noticed the internship tab on one of the pages, and the whole concept seemed very exciting to me.

== Project Information ==

What project are you interested in?
Credentials Management
https://wiki.gnome.org/Design/Apps/PasswordsAndKeys

Who is a possible mentor for the project you are interested in?
Tobias Mueller - https://wiki.gnome.org/TobiasMueller

Please describe your experience with the GNOME community and GNOME projects as a user and as a contributor. Some experience with GNOME stack and some contributions to GNOME are required for considering the application. Include information and links to the contributions you made:
Experience with GNOME community and GNOME projects
I found the GNOME community to be pretty responsive and I'm a part of many open source communities but members here are very quick in terms of responding back to a question or query. I felt I could approach anyone on the IRC and I did, and to my surprise, I got instant and verbose replies from the members even on private messages. I've used gnome-tweaks for I don't know how long, it was probably back in school when I was learning about ricing my Ubuntu installation.

GNOME stack and contributions
I was looking for a open source Python project to contribute to, as I've said. And when I came across gnome-tweaks as one of the projects, I got really excited since I've used it for so long and I never took the time to figure out how it worked until I got interested in Open Source Software. I looked at the open issues and found a newcomer issue and immediately submitted an MR for that, @jbicha guided me through the whole process and pointed out my mistakes after which it got merged and I felt all the more excited to join this community. In the meanwhile, I looked at other projects within GNOME and I found PasswordSafe and gnome-music to which I also started contributing.

Below are some of my contributions to GNOME projects:

MRs which have been merged:
- https://gitlab.gnome.org/GNOME/gnome-tweaks/merge_requests/14
- https://gitlab.gnome.org/GNOME/gnome-tweaks/merge_requests/15
- https://gitlab.gnome.org/World/PasswordSafe/merge_requests/40

MRs which are still WIP:
- https://gitlab.gnome.org/GNOME/gnome-tweaks/merge_requests/16
- https://gitlab.gnome.org/GNOME/gnome-tweaks/merge_requests/17
- https://gitlab.gnome.org/GNOME/gnome-music/merge_requests/250

Please describe your experience with the project you are interested to participate as a user and as a contributor and relevant areas. Include information and links to the contributions you made:
As a user, I'm very concerned about having strong passwords and and even more converned about keeping them in an organized manner, I currently use Lastpass for the job. I've read about how password managers work but It would be a whole different level of excitement to be able to write one which would potentially be used by a lot of people. As a developer on the other hand, I'm always keen to to develop tools/application which makes it easier for the user to be more productive.

In terms of experience, I'd say I have decent experience in C/C++ and Python among other languages and as far as GTK goes, I'd say I have a basic understanding of it from the simple menubar applications I've developed for my personal use. So, I wrote two applications for my personal use, one was a few years back when I started with Python programming and the other one was recently when I was looking for a pomodoro application for my macOS machine. Since the other applications were either paid or very bloated, I decided to write one using GTK and it worked surprisingly well all the while being easy on the cpu. But, I'll be honest, these projects are far from being published online and hence still reside on my machine locally and are run when need be.

Please describe your experience with any other FOSS projects as a user and as a contributor:
- Python: I started programming in Python in my 2nd year of university and it's been an amazing journey so far in a sense that I learn something new almost everyday. Lately, I've been participating in the Python community on and off, be it on the IRC channels and/or the mailing lists and it's always a pleasure to read what senior developers have to say about various programming topics, I've learned an enormous amount solely from this. Shortly after this, I started contributing to CPython where I've got a few trivial fixes merged and one non-trivial fix under WIP. I'm also talking to a core python devs for mentorship regarding contributing to the Python programming language.

- GNU Mailman: I've huge respoect for the GNU project and I was looking for ways to contribute to this other than monetary support to the FSF. After talking with some members from the community, I came across the GNU Mailman project. I've started to look into this project fairly recently and it's really well written. I've got a trivial fix merged here as well and I frequently lurk around looking for issues that I feel I can provide a patch to.

- I've been a Google Code-In (2017) mentor for the Coala organization to which I'm a contributor as well.

- Apart from all of the above mentioned projects, I've contributed to a bunch of other open source projects on Github with PRs addressing feature additions, bug fixes and documentation changes. Also, filing issues whenever I feel necessary and also reviewing PRs. It's a fun way to learn and an even better way to give back to the community.

Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):
In the past two months after my internship, I've worked on developing a few plugins and a plugin manager itself for vim for my personal which I open sourced. Much to my surprise, people supported the project and I get people filing issues and submitting PRs for new features which is really great to see. Apart from that, I've worked on some trivial Python scripts/command-line tools for personal use which I've also put up on Github. Finally, I tried my hands on at Bash and wrote this nifty little program to interact with Goodreads.com which was fairly well received as well.

My main motive to write some of these programs were simply my curiosity about how a certain thing worked and how can I go ahead and do the same. I learned immensely about how vim works, how you can extend it's functionality by writing plugins for it. I learned a great deal of Bash, sed and awk in the process of writing the Goodreads interface. And finally, I learned a lot of new quirks of the Python programming language by writing those command-line tools. Currently, I'm working on implementing a Python module for a Linux system call and I've already learned a lot about extending Python modules with C and how system calls in Linux work and also about file descriptors in general.


Please describe the details and the timeline of the work you plan to accomplish on the project you are most interested in (discuss these first with the mentor of the project):
I would like to say that I was not able to contact the potential mentor for this project, which as per the project page, is Tobias Mueler. I tried to contact via email but probably Tobias never got my email or was busy with something more important. I did not get a chance to discuss this with him but I talked about the projcet with Falk who's working on PasswordSafe and he clarified some of my doubts.

Coming to the project, If I'm selected, this is the timeline that I'm looking at:

November
--------
During this period, We would engage in discussions about the different aspects of the application. The data storage, encryption, and control flow. We can further discuss potential roadblocks earlier in the development cycle as well especially for the primary goals. Since the UI guidelines are readily available for this project, it would be somewhat easier to come up with the UI files using Glade.


December
--------
- We'll work primarily on the 3 primary goals.
- (1) Allowing users to view passwords stored by various GNOME and other OS applications.
- (2) Implementing an efficient search algorithm to allow users to search for passwords(the userid).

January
-------
- (3) Allow users to change stored passwords and apply changes to the respective application as well, if possible. This could act like a one-stop shop for users to view and change all their system and/or application passwords. This would require a little more time as per my estimates.

- Secondly, we'd work on the secondary goals
- (1) Viewing, importing and generating SSH keys, this is fairly straightforward and would require comparatively lesser time than other resources.
- (2) We'll also start working on viewing, importing and generating PGP keys which, in terms of implementation, should be similar to our previous goal.

February
--------
- (3) Allowing users to manually add and store passwords and also implement a sophisticated password generator with some options for length, case, symbols etc in the UI. We can use `pwgen` for the job.
- Before delving into implementing additional functionalities, I'd put more focus into testing the application and also documenting everything that has been implemented hitherto.
- If time is available, we can implement the trivial functionalities from the additional goals such as detection of duplicate passwords and showing password strength in the properties.

                     — END — 

I’ve attached the file below as an attachment too.

Best regards

Danish Prakash
https://prakashdanish.com

:wq!

Attachment: application.txt
Description: application.txt



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]