- Name : Harish Anand
- FAS Account: Harishanand
Contact Information
- Email Address: harishanand95 AT gmail DOT com , harishanand AT fedoraproject DOT org
- Blog URL: Will be created soon. :)
- Freenode IRC Nick: harish__ , harish
- Code Forges (GitHub, GitLab, BitBucket, etc.):
- Github : https://github.com/harishanand95
- Social Media Accounts:
Why do you want to work with the Fedora Project?
I started my Linux journey with Fedora in 2011. During those times I was interested in trying out various flavors of Linux distribution. For the past 3 years, I have been using Fedora as my primary workstation. I have spend a lot of my time tweaking Fedora and trying to create new features. Now I look forward to work and be involved with Fedora organization and community to improve my coding abilities and standards. Also I would like to learn a lot during this wonderful period.
Do you have any past involvement with the Fedora Project or another open-source project as a contributor?
Yes, I have been involved with Cockpit Project to get an understanding of their work.
I would love to contribute more in the future.
Have you participated in GSoC in the past? If so, what year(s) and which organization(s)?
No.
Do you plan to continue contributing to the Fedora Project after GSoC? If yes, what sub-project(s) are you interested with?
Yes. Since I have worked with D-BUS services and methods, I would like to learn and improve my understanding in it by contributing more to active project. Cockpit gives me a wonderful opportunity and have very friendly community. I have also subscribed to their mailing list and IRC channel and would love to be part of cockpit in future. Cockpit has around 15 new milestones to work on and would love to do some post GSoC.
Why should we choose you over other applicants?
- Some of the projects (hobby ones) I did in the past are out of love for coding and bringing a new feature to Fedora. Those projects brought interest and helped me learn a lot of new things. This includes gnome extension development, DBUS service and client creation, makefiles and lot more.
- I would like continue this with same interest and enthusiasm by contributing to real projects by following the standards and requirements set by the community.
- I would like to learn a lot from the mentors in the Fedora community and improve my skills to be like them.
- I can give around 50-60 hour per week schedule during the first 2 months of the coding period. From July I will have classes, you can expect around 30 hours per week.
Some other points to consider :
- I thought of creating a prototype for mentors to look at in the limited time(exams). Some of the design decisions I made were wrong and was actively pointed out by both Stef Walter and Dominick Perpeet of Cockpit. https://github.com/harishanand95/cockpit_test_timer
- I have beginner-intermediate level experience with DBUS and its service. I created D-BUS using Python, Gnome JS.
- I am familiar with mailing lists, version control systems. I have used git in my hobby projects as well. I had to squash commits in the very first pull to cockpit to follow their guidelines.
- In addition I have experience in web technologies like Django and Flask. I search a lot to find things out.
I would like take GSoC as a wonderful opportunity to improve my skills during the summer period.
Have you contributed to any other open source organizations or projects? If so, do you have artifacts you can show so we can see your skill set(s)?
Apart from the contribution to cockpit, I have developed a Cortana like application for Fedora. This project depends on external API's like Api.ai for AI processing and Google Speech Engine for NLP. This project involved the creation of DBUS service and extension development for display of notification as cards. https://github.com/harishanand95/Bear
I have also developed a Quora like platform for college students with news-feed where faculty can verify answers . https://github.com/harishanand95/QandA
- I have attended Vulnerability and Penetration Testing training at my college.
- I have volunteered and conducted Linux sessions at my college.
Project Description
A major component of the Fedora Server is the Cockpit Project, a web-based management console for servers. Systemd provides timers for calendar time events and monotonic time events. I would like to implement a module in Cockpit for creation and modification of timers to manage scheduled tasks. This project is also mentioned in the TODO-list of the Cockpit feature roadmap page.
How I plan to implement the proposal
- Understand the design and code-base of Cockpit Project’s systemd files with the help of mentor(s).
- Use of cockpit.file() to create .timer and .service files and use SetUnitProperties() to set values for the timer properties from input.
- Front-end implementation may require bootstrap datetimepicker for selecting date and time values.
- Discussion of how to implement the different corner cases that can arise.
- Regular review of code with the mentor.
- Making sure that the code is complaint with the cockpit's coding standards.
- Integration tests.
Goals
- A working timer interface to unit services in cockpit to create, modify and schedule tasks.
- Addition and modification of timer properties.
- Implement a similar interface like https://trello.com/c/1B2lZViZ/74-timers-and-cron .
Plan of Action
My university examinations completes on April 24th. I will start the work after 24th.
- April 22, 2016 - May 22, 2016
- Familiarize with Cockpit community.
- Understand Cockpit’s code structure.
- Discuss possible ideas and approaches to take.
- Gain familiarity over cockpit.file() by creating files and utilising its read() and replace() functions.
- Discuss about the dbus connection to systemd and implement a function that sets service unit parameter values through cockpit.dbus().
- Create methods to alter already set Timer/Unit properties through cockpit’s dbus connection.
- May 23, 2016 - June 28, 2016
- Development of create timer function and its parameters to set its properties.
- Timer properties to be developed are for calendar and monotonic events.
- Repeat daily, repeat hourly, repeat every minute etc will be created as dropdowns and selection of each would require onCalendar parameter calculated correctly.
- Develop monotonic timers by creating a dropdown option to choose “at a specified time” and “after system boot”. Time given “after system boot” and “at a specified time” can be assigned as such to OnBootSec and OnActiveSec value respectively.
- Development of timer modification web UI and methods. Methods and interface for modification are similar to create timer case with minor changes.
- Code review by the community.
- Development of create timer function and its parameters to set its properties.
- Midterm evaluations
- June 28, 2016 - August 16, 2016
- Complete any pending works from 1st coding period.
- Clean code by following all necessary standards and test for bugs.
- Correcting any variable/function’s name to proper naming convention followed throughout Cockpit.
- Discuss with community over the different user inputs and the corner cases that may arise.
- Submit for related bug tests.
- Prepare documentation.
- Code review by community.
- August 16 24, 2016
- Fix more bugs and submit for final evaluation.
- Post GSoC:
- Fix future timer related bugs and add new features to Cockpit Project.