From Fedora Project Wiki
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Fedora Infrastructure Web Application Development: Fedora Hubs ==
== GSOC 2016 Project Proposal : Fedora Infrastructure Web Application Development: Fedora Hubs ==


=== Contact Information ===
=== Contact Information ===
Line 8: Line 8:
* '''Code Forges (GitHub, GitLab, BitBucket, etc.)''':  
* '''Code Forges (GitHub, GitLab, BitBucket, etc.)''':  
** Github :  https://github.com/DimuthuLakmal
** Github :  https://github.com/DimuthuLakmal
**
 
* '''Social Media Accounts''':
* '''Social Media Accounts''':
** LinkedIn : https://lk.linkedin.com/in/dimuthukariyawasam
** LinkedIn : https://lk.linkedin.com/in/dimuthukariyawasam
Line 33: Line 33:
==== Why me? ====
==== Why me? ====
As far as I can remember, I have always wanted to do something useful to the world with my knowledge of computer which pushed me to choose computer Science and Engineering as my major in my degree program in University of Moratuwa. <br>
As far as I can remember, I have always wanted to do something useful to the world with my knowledge of computer which pushed me to choose computer Science and Engineering as my major in my degree program in University of Moratuwa. <br>
From there I was able to polish up my knowledge of web application development as well as my soft skills. (See my LinkedIn profile for completed projects. I have included some of them in my github account.) <br><br>
From there I was able to polish up my knowledge of web application development as well as my soft skills. (See my LinkedIn profile for completed projects. I have included some of them in my github account.)  
I believe that Fedora is the place that I can fulfill my vision. <br><br>
I am interested in Fedora hubs as I have a stable and fast-paced knowledge in most of the required technologies used in it (HTML/Javascript/CSS, Python, Bootstrap). <br><br>
I am interested in Fedora hubs as I have a stable and fast-paced knowledge in most of the required technologies used in it (HTML/Javascript/CSS, Python, Bootstrap).  
In addition, I am getting familiarized with Jinja2, Fedmsg and datanommer/grepper. Jinja2 is a template engine very much similar to blade in PHP, laravel and JSP EL which are the technologies that i have worked with previously. <br><br>
 
In addition, I am getting familiarized with Jinja2, Fedmsg and datanommer/grepper, Meetbot and Fedcal. Jinja2 is a template engine very much similar to blade in PHP, laravel and JSP EL which are the technologies that i have worked with previously.  
 
Moreover, I have already researched resources on prototypes I am willing to develop for the GSOC. Therefore it will much easier to continue from there on.
Moreover, I have already researched resources on prototypes I am willing to develop for the GSOC. Therefore it will much easier to continue from there on.
I believe that Fedora is the place that I can fulfill my vision.


==== 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)? ====
==== 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)? ====
No,I have not contributed to any other open source organizations yet.
No,This is the first time that I'm working with an open source organization.
 
==== Do you have any other open source experience (even if not coding-related)? ====
==== Do you have any other open source experience (even if not coding-related)? ====
I'm member of https://ask.fedoraproject.org/en/users/9982/jadd22/, I used to provide solution to some general problems regarding fedora.
I participated in the awareness session for GSoC 2016 organized by the ACM chapter of university of Moratuwa with the aim of explaining the importance of contributing towards FOSS development and guidelines for using IRC and mailing lists. It was conducted by Mr. Andun Sameera Liyanagunawardana who was a GSOC participant for two times and an active open source contributor.


==Proposal Description==
==Proposal Description==


===Overview and The Need===
===Overview and The Need===
*The issue in https://pagure.io/fedora-hubs/issue/47 highlights the need of information about regional places where Fedora already has or would like to have a presence in. It is proposed that a page similar to Teams hubs which contributors will automatically join those regional hubs based on their FAS locations would be suitable for this. <br>
Daily, in Fedora there are many meetings taking place within groups. As mentioned in the idealist, Fedora hub is the new web presence for all of the Fedora users, subprojects, and communities Therefore it is essential to have widgets in Fedora hubs to manage those meetings efficiently and productively without any overheads such as delaying assigned task in meetings. Some of these features have already been integrated with Fedora Hubs, but a greater fraction is still left out. The implemented features too are only completed with regard to the backend implementation and not the front end with good UI designs (Meeting widget).  
*As mentioned in the idealist, Fedora hub is the new web presence for all of the Fedora users, subprojects, and communities and one of my target is to welcome the involvement of the newbies through simplicity. In order to achieve this, I propose to provide tutorial widget for each team hubs describing how to get involved and how to install pre-requirements including topics such as how to make development environment.  Video tutorials with relevant information prove to be more efficient than words and it has a more favorable impact on the audience than reading long text. Therefore it is ideal to create tutorials for each team hub covering at least the initial phases such as setting up the developer environment. It is important to be able to reach out to tutorials with or without videos related to a project rather than going through guidelines that span over hundreds of pages. My colleagues of the university claim that these issues make Fedora very difficult to work with. <br>
 
*Fedora has many various projects which require varying skill sets. Therefore sometimes it can be quite difficult to find a suitable proposal for a newbie that suits his/her skill set. It would be very helpful if they have a widget in their profile page that suggests suitable projects according to their skill set.
In Fedora Hubs issue Queue, There are numerous issues regarding the meetings yet to be implemented (#24,#25,#26,#28,#29,#30,#31,#33 and more). Functionalities such as Meeting Nag Widget, One-Off Meeting Organization Widget, Meetbot action items and UI mockups are well defined and have to be implemented according to Duffy. Most of backend part can be achieved by integrating Fedocal and Meetbot with these widgets.
 
According to the guidelines of my mentor, if I could achieve implementing Meeting widgets before the end of the given period of time, I can work on other unimplemented widgets such as Fedora Welcome Hubs widgets( which are yet to be made into mockups).
 
===Some drawbacks in the currently implemented Meeting functionalities===
*No other functionalities have been implemented yet in both frontend and backend.
*Poor user interfaces in implemented meeting widget.
*Lack of mobile responsiveness (See the attachments)
 
===What the project fulfills===
*Above mentioned problems will be solved.
*Proposed widgets regarding meetings will be implemented both in backend and frontend.


===Any relevant experience you have===
===Any relevant experience you have===
As a contributor to glusterfs I have prior knowledge of the codebase,this would be helping me in integrating the new feature build for the geo-replication over the current features using C and Python wherever required.
*I have worked on multiple web-based applications using HTML, Javascript/CSS, Bootstrap, PHP laravel framework and JSP (See Github and LinkedIn profiles).
 
*All those projects have used MVC architecture which is the base for the Fedora Hubs project. MVC acts as the foundation for the jinja template engine which is based on django. The expressions and variables statements are more like jsp, EL and laravel blade framework. Therefore, I believe I have sufficient knowledge and resources to deal with jinja2 and I’m currently getting familiarized with jinja2, Fedmsg, Fedcal and Metbot.
 
*I have already worked out UI designs using Fedora-hubs resources related to Meeting widgets. (#22, #26, #28, #29, #30, #31, #33). See attachments and hosted solutions.
 
*I have expertise in Python and I have worked on customizing MakeHuman open source project build using Python. I have already got the knowledge of the structure of the backend codebase and fixed issue (#113) and proposed a mockup for regional hub (#47).
 
*In the idealist there is an idea to integrate some of the features of the fedora hubs with the developer portal. I have already setup the developer portal and started working on it.
 
*I am a 3rd year undergraduate from the Department of Computer Science and Engineering, University of Moratuwa and with a "deanlist" Grade Point Average(GPA) (3.96 out of 4.2) 
 
*I participated in the awareness session for GSoC 2016 which was held in our university with the aim of explaining the importance of contributing towards FOSS development and guidelines for using IRC and mailing lists. It was conducted by Mr. Andun Sameera Liyanagunawardana who was a GSOC participant for two times and an active open source contributor.


===How do you intend to implement your proposal===
===How do you intend to implement your proposal===
'''Step 1:'''
*I have already created prototypes. Modification can be added to the prototypes according to the mentors' feedback.
*The comments of stakeholders of the project play a significant role in this project. So I hope to get feedback/requirements from other fedora contributors and modify the prototype.


Refactoring will be done in the code base to a certain extent as discussed with the mentor and also the journaling feature - 'changelog' of glusterfs will be customised to serve the file-level synchronization.
'''Step 2:'''
*Polish up already implemented meeting widgets and finish the implementation of backend by adding proposed functionalities to it. (Integrating it with fedcal and meetbot.)
*Test and prepare final documentation for those widgets.
 
'''Step 3:'''
*Merge other proposed new meeting widgets and functionalities at the front end.
*Implement backend of the new widgets.
*Perform final testing and final documenting.


===A rough timeline for your progress===
===A rough timeline for your progress===
'''Before April 22 (Announce accepted proposals):'''
*Get more familiarized with Jinja2, Fedmsg and datanomer/grepper, Fedcal and meetbot.
'''April 22-May 23(Community bonding period):'''
*Present the ideas and prototype to mentors and get advices from mentors.
*Analyze requirements with other stakeholders such as regular as well as new contributors.
'''May 23 - June 20(Working period):'''
*'''Week 1-2:'''
**Polish up already implemented meeting widgets and finish the implementation of backend by adding proposed functionalities to it.
*'''Week 3:'''
**Test and prepare final documentation for those widgets.
'''June 20 - 27(submitting period for mid evaluations):'''
*Complete and submit mid-term evaluations.
'''June 27 - August 15(Working period):'''
*'''Week 1:'''
**Modify prototype of widgets according to feedback. hub.
*'''Week 2-5:'''
**Merge prototypes with the system.
**Implement the backend as required.
*'''Week 6:'''
**Perform testing and bug fixing
**Prepare final documents.
'''August 15-23(Final week):'''
*Extra week in case of completing missed worked due to unavoidable reasons.
*Polish up final documents.


Note: According to my mentor’s advice, if I could finish the proposed workload in time, I would be able to and I am intended to support to develop welcome hub which is still in at very imitative state.


===Final deliverable===
===Final deliverable===
*The final goal of this project is to deliver a completely functional and fully tested meeting widgets in order to strengthen communication in fedora hubs.
*Project documentation lists all the things that I have done in accomplishing the project targets which can be included in my personal blog.
===My current approach towards the project===
*I have already subscribed to the Fedora summer-coding mailing list, Fedora developers mailing as well as the relevant IRC channels. I also discussed with mentors about the feasibility of my project and they provided me with influential advice. Especially mizmo gave us lots of advice towards making this proposal.
*I have already set up the local machine for development and I must go through the codebase and understand the data flow.
*I identified an issue in Fedora hubs (ticket #113) and solved it. In Fedora developer portal, identified issue (ticked #32) and solved it. Other than that I have worked out working UIs for (#22, #26, #28, #29, #30, #31, #33) which are related to Fedora Meetings and currently merging them with the system. See attachments and hosted solutions.
*Additionally I watched meetup videos and went through all mockups to expand my knowledge about needs of contributes and their ideas.
*I have already created prototypes for most of the meeting widgets according to mockups in issue queue(#22, #26, #28, #29, #30, #31, #33). (http://titansmora.org/fedoraproposal/templates/me.html , http://titansmora.org/fedoraproposal/templates/designteam.html)
Following images are taken from developed prototype
*Personal Notification in feed for action items and minutes
[http://www.titansmora.org/fedoraproposal/uploads/actiona_item_notification.png]


*Edit Meeting Request modal
[http://www.titansmora.org/fedoraproposal/uploads/Edit%20meeting%20request.png]


===My current approach towards the project===
*Event Reminder widget with modifications
*I have already subscribed into the Fedora summer-coding mailing list, Fedora developers mailing as well as the relevant IRC channels. I also discussed with mentors about the feasibility of my project and they provided me with influential advices. <br>
[http://www.titansmora.org/fedoraproposal/uploads/event%20reminder.png]
*I have already set up the local machine for development and I must go through the codebase and understand the data flow. <br>
 
*I identified an issue in Fedora hubs (ticket #113) and solved it. In Fedora developer portal, identified issue (ticked #32) and solved it. <br>
*Create New Meeting modal
*Additionally I watched all meetup videos and went through all mockups to get an idea about needs of contributes and their ideas. <br>
[http://www.titansmora.org/fedoraproposal/uploads/Request%20new%20Meeting.png]
*I have made up mockup for regional hubs in Fedora hubs (#ticket 47). I have already created prototypes using the said mockup. ( http://www.titansmora.org/Fedora/templates/fedora_regional.html ) <br>
 
*I have also created prototypes for project matching widget and tutorial widget.  <br>
*Meting announcements and meeting request notifications in feed
Project matching widget: http://www.titansmora.org/Fedora/templates/search_projects.html <br>
[http://www.titansmora.org/fedoraproposal/uploads/meeting_announcement.png]
Tutorial widget: http://www.titansmora.org/Fedora/templates/tutorials.html (I used same regional hub page that I created for regional hub since it is very similar to the teams hub)
 
*Add meeting reminder and Add meeting data widget
[http://www.titansmora.org/fedoraproposal/uploads/add%20meeting%20data%20widget.png]
 
I have also uploaded the UI source codes for these widgets in github.
[https://github.com/DimuthuLakmal/fedora-proposal]


===Any other details you feel we should consider===
===Any other details you feel we should consider===
I have keen interest increasing my Fedora and FOSS contribution. I also possess good knowledge of the project's codebase and I have been in regular touch with my mentor since path 2 months.
'''How to avoid potential risks?'''
[http://www.example.com link title]
*My main goal is to develop the meeting widgets for fedora hubs. In case I sense that I might not be able to complete the scheduled work within the time limit, I will double the time that I am going to allocate on the project in the next steps and complete the missed work as soon as possible.
 
*I also allocated an extra week at the end of the timeline in order to finish incomplete work.
 
*I was able to reduce my other work load in order to contribute to FOSS development.
 
*I used fedora hubs CSS and javascript resources when creating prototypes. So there is no risk of merging them with the system and currently merged some of them with the system.
 
 
'''Miscellaneous Information'''
*I am an enthusiast of open source software development and volunteer programs and love to contribute to FOSS continuously even after GSOC. I am contributing for voluntary organizations in the university such as Rotaract club. (See my LinkedIn profile).
 
*I am the team leader of Team Titans which is a renowned hackathon team of University Of Moratuwa and we have won several hackathons in Sri Lanka. Therefore I have good experience in teamwork and collaborating to teamwork.
 
*Department of Computer Science and Engineering of University of Moratuwa promotes GSOC and open source software development and organize awareness events regarding those topics. Therefore if I get an opportunity to work on this project, I would get a chance to increase awareness about FOSS development and encourage junior colleagues to contribute to FOSS development.
 


[[Category:Summer coding 2016]]
[[Category:Summer coding 2016]]

Latest revision as of 16:09, 25 March 2016

GSOC 2016 Project Proposal : Fedora Infrastructure Web Application Development: Fedora Hubs

Contact Information

NOTE: My blog was not updated for quite a while. But I hope to blog about the progress of this project continuously in my blog.

Questions to answer

Why Fedora?

I am an enthusiast of open source software development and was exploring new open source software projects to work on as a long-term contributor. When I discovered that Fedora has many projects which are suit with my passion and interest of web application development, my attention was instantly drawn to it and I found out that it is a great place to learn something new. Also it consists of a very helpful community which supports new contributors who are willing to contribute with their knowledge.

Do you have any past involvement with the Fedora Project or another open-source project as a contributor?

I am participating in a FOSS project for the first time and I do not have past open source project experience. However, I am willing to work on it with my full effort as a long-term contributor of Fedora.

Have you participated in GSoC in the past? If so, what year(s) and which organization(s)?

This is my first experience in participating in GSoC.

Do you plan to continue contributing to the Fedora Project after GSoC? If yes, what sub-project(s) are you interested with?

I have already planned to contribute to Fedora projects continuously. I am fascinated with Fedora-hubs and Fedora developer portal and I have already started to contribute. Since there are a lot to complete in the said projects, Fedora will need the commitment and the support of the contributors even after GSOC. Also I have found interest in learning kernel programming too. Undoubtedly, Fedora is the best way to seek my desired paths.

Why me?

As far as I can remember, I have always wanted to do something useful to the world with my knowledge of computer which pushed me to choose computer Science and Engineering as my major in my degree program in University of Moratuwa.
From there I was able to polish up my knowledge of web application development as well as my soft skills. (See my LinkedIn profile for completed projects. I have included some of them in my github account.)

I am interested in Fedora hubs as I have a stable and fast-paced knowledge in most of the required technologies used in it (HTML/Javascript/CSS, Python, Bootstrap).

In addition, I am getting familiarized with Jinja2, Fedmsg and datanommer/grepper, Meetbot and Fedcal. Jinja2 is a template engine very much similar to blade in PHP, laravel and JSP EL which are the technologies that i have worked with previously.

Moreover, I have already researched resources on prototypes I am willing to develop for the GSOC. Therefore it will much easier to continue from there on.

I believe that Fedora is the place that I can fulfill my vision.

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)?

No,This is the first time that I'm working with an open source organization.

Do you have any other open source experience (even if not coding-related)?

I participated in the awareness session for GSoC 2016 organized by the ACM chapter of university of Moratuwa with the aim of explaining the importance of contributing towards FOSS development and guidelines for using IRC and mailing lists. It was conducted by Mr. Andun Sameera Liyanagunawardana who was a GSOC participant for two times and an active open source contributor.

Proposal Description

Overview and The Need

Daily, in Fedora there are many meetings taking place within groups. As mentioned in the idealist, Fedora hub is the new web presence for all of the Fedora users, subprojects, and communities Therefore it is essential to have widgets in Fedora hubs to manage those meetings efficiently and productively without any overheads such as delaying assigned task in meetings. Some of these features have already been integrated with Fedora Hubs, but a greater fraction is still left out. The implemented features too are only completed with regard to the backend implementation and not the front end with good UI designs (Meeting widget).

In Fedora Hubs issue Queue, There are numerous issues regarding the meetings yet to be implemented (#24,#25,#26,#28,#29,#30,#31,#33 and more). Functionalities such as Meeting Nag Widget, One-Off Meeting Organization Widget, Meetbot action items and UI mockups are well defined and have to be implemented according to Duffy. Most of backend part can be achieved by integrating Fedocal and Meetbot with these widgets.

According to the guidelines of my mentor, if I could achieve implementing Meeting widgets before the end of the given period of time, I can work on other unimplemented widgets such as Fedora Welcome Hubs widgets( which are yet to be made into mockups).

Some drawbacks in the currently implemented Meeting functionalities

  • No other functionalities have been implemented yet in both frontend and backend.
  • Poor user interfaces in implemented meeting widget.
  • Lack of mobile responsiveness (See the attachments)

What the project fulfills

  • Above mentioned problems will be solved.
  • Proposed widgets regarding meetings will be implemented both in backend and frontend.

Any relevant experience you have

  • I have worked on multiple web-based applications using HTML, Javascript/CSS, Bootstrap, PHP laravel framework and JSP (See Github and LinkedIn profiles).
  • All those projects have used MVC architecture which is the base for the Fedora Hubs project. MVC acts as the foundation for the jinja template engine which is based on django. The expressions and variables statements are more like jsp, EL and laravel blade framework. Therefore, I believe I have sufficient knowledge and resources to deal with jinja2 and I’m currently getting familiarized with jinja2, Fedmsg, Fedcal and Metbot.
  • I have already worked out UI designs using Fedora-hubs resources related to Meeting widgets. (#22, #26, #28, #29, #30, #31, #33). See attachments and hosted solutions.
  • I have expertise in Python and I have worked on customizing MakeHuman open source project build using Python. I have already got the knowledge of the structure of the backend codebase and fixed issue (#113) and proposed a mockup for regional hub (#47).
  • In the idealist there is an idea to integrate some of the features of the fedora hubs with the developer portal. I have already setup the developer portal and started working on it.
  • I am a 3rd year undergraduate from the Department of Computer Science and Engineering, University of Moratuwa and with a "deanlist" Grade Point Average(GPA) (3.96 out of 4.2)
  • I participated in the awareness session for GSoC 2016 which was held in our university with the aim of explaining the importance of contributing towards FOSS development and guidelines for using IRC and mailing lists. It was conducted by Mr. Andun Sameera Liyanagunawardana who was a GSOC participant for two times and an active open source contributor.

How do you intend to implement your proposal

Step 1:

  • I have already created prototypes. Modification can be added to the prototypes according to the mentors' feedback.
  • The comments of stakeholders of the project play a significant role in this project. So I hope to get feedback/requirements from other fedora contributors and modify the prototype.

Step 2:

  • Polish up already implemented meeting widgets and finish the implementation of backend by adding proposed functionalities to it. (Integrating it with fedcal and meetbot.)
  • Test and prepare final documentation for those widgets.

Step 3:

  • Merge other proposed new meeting widgets and functionalities at the front end.
  • Implement backend of the new widgets.
  • Perform final testing and final documenting.

A rough timeline for your progress

Before April 22 (Announce accepted proposals):

  • Get more familiarized with Jinja2, Fedmsg and datanomer/grepper, Fedcal and meetbot.

April 22-May 23(Community bonding period):

  • Present the ideas and prototype to mentors and get advices from mentors.
  • Analyze requirements with other stakeholders such as regular as well as new contributors.


May 23 - June 20(Working period):

  • Week 1-2:
    • Polish up already implemented meeting widgets and finish the implementation of backend by adding proposed functionalities to it.
  • Week 3:
    • Test and prepare final documentation for those widgets.

June 20 - 27(submitting period for mid evaluations):

  • Complete and submit mid-term evaluations.

June 27 - August 15(Working period):

  • Week 1:
    • Modify prototype of widgets according to feedback. hub.
  • Week 2-5:
    • Merge prototypes with the system.
    • Implement the backend as required.
  • Week 6:
    • Perform testing and bug fixing
    • Prepare final documents.

August 15-23(Final week):

  • Extra week in case of completing missed worked due to unavoidable reasons.
  • Polish up final documents.

Note: According to my mentor’s advice, if I could finish the proposed workload in time, I would be able to and I am intended to support to develop welcome hub which is still in at very imitative state.

Final deliverable

  • The final goal of this project is to deliver a completely functional and fully tested meeting widgets in order to strengthen communication in fedora hubs.
  • Project documentation lists all the things that I have done in accomplishing the project targets which can be included in my personal blog.

My current approach towards the project

  • I have already subscribed to the Fedora summer-coding mailing list, Fedora developers mailing as well as the relevant IRC channels. I also discussed with mentors about the feasibility of my project and they provided me with influential advice. Especially mizmo gave us lots of advice towards making this proposal.
  • I have already set up the local machine for development and I must go through the codebase and understand the data flow.
  • I identified an issue in Fedora hubs (ticket #113) and solved it. In Fedora developer portal, identified issue (ticked #32) and solved it. Other than that I have worked out working UIs for (#22, #26, #28, #29, #30, #31, #33) which are related to Fedora Meetings and currently merging them with the system. See attachments and hosted solutions.
  • Additionally I watched meetup videos and went through all mockups to expand my knowledge about needs of contributes and their ideas.

Following images are taken from developed prototype

  • Personal Notification in feed for action items and minutes

[1]

  • Edit Meeting Request modal

[2]

  • Event Reminder widget with modifications

[3]

  • Create New Meeting modal

[4]

  • Meting announcements and meeting request notifications in feed

[5]

  • Add meeting reminder and Add meeting data widget

[6]

I have also uploaded the UI source codes for these widgets in github. [7]

Any other details you feel we should consider

How to avoid potential risks?

  • My main goal is to develop the meeting widgets for fedora hubs. In case I sense that I might not be able to complete the scheduled work within the time limit, I will double the time that I am going to allocate on the project in the next steps and complete the missed work as soon as possible.
  • I also allocated an extra week at the end of the timeline in order to finish incomplete work.
  • I was able to reduce my other work load in order to contribute to FOSS development.
  • I used fedora hubs CSS and javascript resources when creating prototypes. So there is no risk of merging them with the system and currently merged some of them with the system.


Miscellaneous Information

  • I am an enthusiast of open source software development and volunteer programs and love to contribute to FOSS continuously even after GSOC. I am contributing for voluntary organizations in the university such as Rotaract club. (See my LinkedIn profile).
  • I am the team leader of Team Titans which is a renowned hackathon team of University Of Moratuwa and we have won several hackathons in Sri Lanka. Therefore I have good experience in teamwork and collaborating to teamwork.
  • Department of Computer Science and Engineering of University of Moratuwa promotes GSOC and open source software development and organize awareness events regarding those topics. Therefore if I get an opportunity to work on this project, I would get a chance to increase awareness about FOSS development and encourage junior colleagues to contribute to FOSS development.