Jump to content

SoK/Ideas/2014: Difference between revisions

From KDE Community Wiki
< SoK
Stack34 (talk | contribs)
No edit summary
Filipe Saraiva (talk | contribs)
 
(34 intermediate revisions by 13 users not shown)
Line 6: Line 6:


When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!
When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!


If there is no specific contact given you can ask questions on the general KDE development list [email protected]. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe.
If there is no specific contact given you can ask questions on the general KDE development list [email protected]. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe.


=== Project: Sample project ===
=== Project: Sample project ===
Line 31: Line 32:


If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
=== Amarok: CUE sheet support ===
It is a high priority to implement is the CUE sheet support. You can easily
judge that from the number of open bugs and the high number of votes
for this feature. It is partially implemented, and there is already
some work lying around IIRC. Mind you, the implementation of proper
CUE sheet support for files in the collection (CUE sheets already do
work more or less for tracks not in the collection currently) would
solve all the existing bugs at once, or at least most of them.
I suggest some digging in other Qt-based players who already do
implement CUE sheet support which will certainly yield some insight on
what is done wrong in our code.
'''Knowledge Prerequisite:''' C++/Qt, Amarok codebase
'''Mentor:''' Vedant Agarwala (vedant.kota<at>gmail<dot>com)
=== Amarok:  porting the current Nepomuk support to Baloo ===
Another very much needed feature is porting the current Nepomuk
support to Baloo: https://bugs.kde.org/show_bug.cgi?id=336380 There
are links to previous bugs with more information, and the Baloo
specifications are also very helpful in that regard
'''Knowledge Prerequisite:''' C++/Qt, Amarok codebase
'''Mentor:''' [email protected]


=== Project: Live demo for KWin Effects ===
=== Project: Live demo for KWin Effects ===
Line 41: Line 71:


'''Knowledge Prerequisite:''' C++/Qt, Wayland would be preferable
'''Knowledge Prerequisite:''' C++/Qt, Wayland would be preferable
'''Mentor:''' Martin Gräßlin
=== Project: Test framework for KWin Effects ===
'''Brief explanation:''' So far KWin Effects are not under test coverage. But there are quite some effects and bugs which would need a unit test. In the scope of this project a test framework for the effects should be created. It needs to implement a specific EffectsHandler which allows full control over the effect stack and needs to implement a mock EffectWindow which can also be created and tested by the tests. An additional challenge is the OpenGL dependency of several effects. Because of that the framework has to also setup an OpenGL context (might use Qt for it).
'''Expected results:''' Infrastructure in place and at least one Effect which is tested.
'''Knowledge Prerequisite:''' C++/Qt


'''Mentor:''' Martin Gräßlin
'''Mentor:''' Martin Gräßlin
Line 47: Line 87:
=== Project: Theme designing for Pairs ===
=== Project: Theme designing for Pairs ===


'''Brief explanation:''' Pairs is a relatively new educational aplication of KDE Edu family. Pairs stimulates your memory and logic skills. It aims to help the learning for pre-school kids. The student should download, install this application and use it and also improve documentation describing the main elements of the interface, such as how to open a theme, create a new one and add all the needed information to have it ready for usage, apart from developing new creative themes that could be available as add-ons.
'''Brief explanation:''' Pairs is a relatively new educational application of KDE Edu family. Pairs stimulates your memory and logic skills. It aims to help the learning for pre-school kids. The student should download, install this application and use it and also improve documentation describing the main elements of the interface, such as how to open a theme, create a new one and add all the needed information to have it ready for usage, apart from developing new creative themes that could be available as add-ons.


'''Expected results:''' New creative and witty themes for Pairs, improved documentation and proper white space indentation of the code
'''Expected results:''' New creative and witty themes for Pairs, improved documentation and proper white space indentation of the code
Line 53: Line 93:
'''Knowledge Prerequisite:''' Qt, QML, XML would work  
'''Knowledge Prerequisite:''' Qt, QML, XML would work  


''' Expected mentors:''' Marco Calignano (marco.calignano@gmail.com) | Aleix Pol ( [email protected] ) | Heena Mahour ([email protected] )
''' Expected mentors:''' [mailto:heena393@gmail.com Heena Mahour]


=== Project: Route to KF5 ===
'''Brief explanation:''' Kde-edu applications are getting ported to KF5 [1]. Have a look at [2], the student can work on the idea in case the app has no maintainer.
'''Expected results:''' Shiny kde-edu app ported to KF5
'''Knowledge Prerequisite:''' Qt, QML, KF5
'''References:'''
                        [1] https://www.kde.org/announcements/kde-frameworks-5.0.php
                        [2] https://community.kde.org/KDEEdu/RouteToKF5
''' Expected mentors:''' [mailto:[email protected] Marco Calignano] | [mailto:[email protected] Aleix Pol]
=== Project: Finish test.kubuntu.co.uk ===
Update: This project has a likely student to do it
'''Brief explanation:''' We want a new website for Kubuntu, it is half completed, finish it off
'''Expected results:''' A shiny new kubuntu.org
'''Knowledge Prerequisite:''' PHP, Wordpress, web server sysadmin including benchmarking, databases, website design
'''Mentor:''' Jonathan Riddell
Kubuntu wants a new website and we have a setup half done at test.kubuntu.co.uk.  The final thing should complete the import of data from the current website, pick a theme which looks good on desktop and mobile, integrate with social media and contain content which helps people quickly get into using Kubuntu.  It should be benchmarked to ensure it works under load.
You should be familiar with Wordpress and PHP coding and with the needs of a user of the website.
We are at #kubuntu-devel IRC on Freenode.
[[Category:Mentoring]]
[[Category:Mentoring]]
=== Project: Improve/refresh KHangMan ui ===
'''Brief explanation:''' KHangMan has been ported to Qt5/kf5 but the ui is still svg based for the desktop version. It would be good to update it to use qml and have one ui for desktop and mobile/touch rather than three uis similar to how KAnagram recently got one qml based ui. This project would combine the best of the desktop/plasma-active/harmattan uis into one qml based ui that is still themable.
'''Expected results:''' KHangMan with one qml based ui that works on desktop and touch devices.
'''Knowledge Prerequisite:''' Qt, QML, KF5
'''References:'''
''' Expected mentors:''' [mailto:[email protected] Jeremy Whiting] | [mailto:[email protected] Heena Mahour]
=== Project: DLNA/UPnP support for Plasma Media Center ===
'''Brief explanation:''' Plasma Media Center (PMC) currently exists as a functional media center application which can be used with Plasma Desktop. It already integrates with Desktop Search to fetch and play your media and DVB TV support is on its way. As part of PMC BoF at Akademy 2014, the attendees realized that PMC needs to become more relevant for a modern user's needs.
For this, one such feature which is required is DLNA/UPnP support so that a user can play media on other devices to a big screen device running PMC or play media from PMC to a Smart TV.
'''Expected results:''' The following features should be working at the end of the project:
# Using gupnp-av-cp (from gupnp-tools), the user will browse media on a media server (lets say MediaTomb etc) and be able to play it on PMC.
# PMC should be able to show stats about (current progress/duration etc.) and control (play/pause etc.) the media played in the previous step.
# PMC is able to act as a media server which appears in gupnp-av-cp and lists the media files that would normally be listed in PMC.
'''Knowledge Prerequisite:''' Qt/QML knowledge is mandatory, the student must research about DLNA/UPnP libraries available and the proposal must include which ones are to be used. Working demo Qt app with one of the above features would be a huge plus, though not mandatory.
''' Expected mentors:''' [mailto:[email protected] Shantanu Tushar] | [mailto:[email protected] Sinny Kumari]| [mailto:[email protected] Sujith H]
=== Project: Accessibility Support in Kubuntu ===
'''Brief explanation:'''Get accessibility profiles working in Kubuntu, featuring Orca for the blind and other use cases
'''Expected results:'''Kubuntu CD should have a boot option to switch between accessibilty profiles
'''Knowledge Prerequisite:'''fiddling with settings, compiling programmes and packages to get them to work
'''Mentor:'''Jonathan Riddell chat in #kubuntu-devel
=== Project: Adding GCompris activities ===
'''Brief explanation:''' GCompris is a software suite comprising educational software for children aged 2 to 10.
It includes many activities and there is room to add many more to the collection. You have to think of some innovative activities that makes children learn a concept as well as having fun. Some initial thoughts of new activities could be Series of numbers, Encoding-Decoding, Puzzles, Arrangements, Blood Relations, Directions, Map of India, Hindi Alphabets/Vowels (specifically for Indian Users), Multiplication tables, Squares, Cubes, Prime / Composite, Percentage and Fractions, Simple Interest, Compound Interest, Profit and Loss, Decision Making etc.
'''Expected results:''' At the end of the project, the student is expected to create, test and merge a couple of new activities to GCompris.
'''Knowledge Prerequisite:'''  Any structured language, especially basic knowledge in algorithm and object programming.
'''Learning outcome:''' You will learn Qt Quick, Javascript, Git.
''' Expected mentors:'''  Bruno Coudoin, Kesha Shah
=== Project: Revamp the Continuous Integration system ===
'''Brief explanation:''' The continuous integration system is a piece of KDE.org infrastructure which compiles KDE software, executes tests included with the software and performs software quality tests. This is done when developers make commits to git.kde.org, and is used to ensure our software is in a releasable state and to detect regressions which are accidentally introduced from time to time. It can be found at build.kde.org. As part of this project you will be revamping the system to allow us to expand it to cover additional operating systems in the future, standardise the configuration of jobs and to improve the flexibility of the builds we perform. In addition you'll also be responsible for setting up a new foundation for our Linux builds as the current one is running on a distribution which will soon be out of date.
'''Expected results:''' The CI system is prepared for future expansion, is able to use a new format for dependency and branching information, and is optionally able to communicate with Reviewboard.
'''Knowledge Prerequisite:''' Object oriented programming is mandatory. Student should also be aware of how to build KDE software by hand (using CMake). Familiarity with Python is a significant plus, as well as the JSON, XML and YAML data storage formats. The student should ideally be comfortable accessing a system over SSH, installing packages there and compiling software remotely without a graphical terminal.
'''Mentor:''' Ben Cooksley (chat in #kde-sysadmin please)
=== Kdenlive: bring back GLSL effects ===
'''Brief explanation:''' GPU powered effects library Movit was quickly integrated by its author for demo at FOSDEM. However it broke many functionalities here and there, also due to Kdenlive's poor handling of multithreading. Consequently, these patches have been temporarly moved to a side branch. The goal is to restore this GLSL workflow and multithreaded UI with more time and attention to make it stable enough for regular use.
'''Expected results:''' Having fluid HD editing with complex filters enabled thanks to GPU power, and polished Kdenlive code regarding multithreading.
'''Knowledge Prerequisite:''' C++ (Qt) and a general understanding GPU & multithreading concepts.
'''Learning outcome:''' You will learn how to handle these impressive multimedia, GPU & multithreading stuff, simplified by the nice MLT, Movit & Qt libraries.
''' Expected mentors:''' [mailto:[email protected] Vincent Pinon], [mailto:[email protected] kdenlive list]
=== Kdenlive: new features and evolutions ===
'''Brief explanation:''' several easy features and UI suggestions in [https://bugs.kdenlive.org issue tracker] are waiting for implementation (eg. Keeping aspect ratio with pan and zoom, Mute all but selected track, Duplicate Title Clip, Replace Clips in Project Tree)... This is a good start to explore Kdenlive code with rapid rewards, and opening to more involving contributions, like participating in code reorganization, porting to KF5, re-enabling ports for other OS...
'''Expected results:''' Integrate as many users wishes as possible, and having fun with video editor!
'''Knowledge Prerequisite:''' C++ (Qt) and XML file format (used for Kdenlive).
'''Learning outcome:''' Get confident with this large multimedia application codebase at all levels (backend, user interface, document handling).
''' Expected mentors:''' [mailto:[email protected] Vincent Pinon], [mailto:[email protected] kdenlive list]
=== Cantor: Backend for Python 3 ===
'''Brief explanation:''' This projects aim to provide a additional Python 3 backend for Cantor, with the basic features of the Cantor backends: syntax highlithing, tab-complete, variable management, support to show plot figures in the worksheet, support to some extensions like linear algebra and plot generation, and more.
'''Expected results:''' A new Python 3 backend for Cantor.
'''Knowledge Prerequisite:''' Qt, KF5, Python/C API.
''' Expected mentors:''' [mailto:[email protected] Filipe Saraiva]

Latest revision as of 16:50, 9 November 2014

Ideas

Information for students

These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!


If there is no specific contact given you can ask questions on the general KDE development list [email protected]. See the KDE mailing lists page for information on available mailing lists and how to subscribe.

Project: Sample project

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

Amarok: CUE sheet support

It is a high priority to implement is the CUE sheet support. You can easily judge that from the number of open bugs and the high number of votes for this feature. It is partially implemented, and there is already some work lying around IIRC. Mind you, the implementation of proper CUE sheet support for files in the collection (CUE sheets already do work more or less for tracks not in the collection currently) would solve all the existing bugs at once, or at least most of them.

I suggest some digging in other Qt-based players who already do implement CUE sheet support which will certainly yield some insight on what is done wrong in our code.

Knowledge Prerequisite: C++/Qt, Amarok codebase

Mentor: Vedant Agarwala (vedant.kota<at>gmail<dot>com)

Amarok: porting the current Nepomuk support to Baloo

Another very much needed feature is porting the current Nepomuk support to Baloo: https://bugs.kde.org/show_bug.cgi?id=336380 There are links to previous bugs with more information, and the Baloo specifications are also very helpful in that regard

Knowledge Prerequisite: C++/Qt, Amarok codebase

Mentor: [email protected]

Project: Live demo for KWin Effects

Brief explanation: The idea is to offer a live demo for the available KWin effects. This would consists of starting a nested KWin instance as a sub-session and completely control it from the outside. E.g. for the Present Windows Effect it would be needed to have several windows open, control the mouse cursor to demonstrate the screen edge activation, support faking keyboard input for the filtering, etc.

The demo mode would have to use the Wayland backend in KWin as that's the only way to get OpenGL in a nested session (Xephyr doesn't reliable support it). This means part of the project would involve implementing missing features in the Wayland backend like for example a windowed mode and the interfaces to fake keyboard input (needed for e.g. on-screen displays). It also requires to complement the work on running nested KWin instances and better separate it. At the moment it's possible to control the DBus service name, similarly it would be needed to change the config file and kglobalaccel module name, etc.

Expected results: Infrastructure in place and at least one Effect which can be run in a live demo.

Knowledge Prerequisite: C++/Qt, Wayland would be preferable

Mentor: Martin Gräßlin

Project: Test framework for KWin Effects

Brief explanation: So far KWin Effects are not under test coverage. But there are quite some effects and bugs which would need a unit test. In the scope of this project a test framework for the effects should be created. It needs to implement a specific EffectsHandler which allows full control over the effect stack and needs to implement a mock EffectWindow which can also be created and tested by the tests. An additional challenge is the OpenGL dependency of several effects. Because of that the framework has to also setup an OpenGL context (might use Qt for it).

Expected results: Infrastructure in place and at least one Effect which is tested.

Knowledge Prerequisite: C++/Qt

Mentor: Martin Gräßlin


Project: Theme designing for Pairs

Brief explanation: Pairs is a relatively new educational application of KDE Edu family. Pairs stimulates your memory and logic skills. It aims to help the learning for pre-school kids. The student should download, install this application and use it and also improve documentation describing the main elements of the interface, such as how to open a theme, create a new one and add all the needed information to have it ready for usage, apart from developing new creative themes that could be available as add-ons.

Expected results: New creative and witty themes for Pairs, improved documentation and proper white space indentation of the code

Knowledge Prerequisite: Qt, QML, XML would work

Expected mentors: Heena Mahour

Project: Route to KF5

Brief explanation: Kde-edu applications are getting ported to KF5 [1]. Have a look at [2], the student can work on the idea in case the app has no maintainer.

Expected results: Shiny kde-edu app ported to KF5

Knowledge Prerequisite: Qt, QML, KF5

References:

                        [1] https://www.kde.org/announcements/kde-frameworks-5.0.php
                        [2] https://community.kde.org/KDEEdu/RouteToKF5


Expected mentors: Marco Calignano | Aleix Pol

Project: Finish test.kubuntu.co.uk

Update: This project has a likely student to do it

Brief explanation: We want a new website for Kubuntu, it is half completed, finish it off

Expected results: A shiny new kubuntu.org

Knowledge Prerequisite: PHP, Wordpress, web server sysadmin including benchmarking, databases, website design

Mentor: Jonathan Riddell

Kubuntu wants a new website and we have a setup half done at test.kubuntu.co.uk. The final thing should complete the import of data from the current website, pick a theme which looks good on desktop and mobile, integrate with social media and contain content which helps people quickly get into using Kubuntu. It should be benchmarked to ensure it works under load.

You should be familiar with Wordpress and PHP coding and with the needs of a user of the website.

We are at #kubuntu-devel IRC on Freenode.

Project: Improve/refresh KHangMan ui

Brief explanation: KHangMan has been ported to Qt5/kf5 but the ui is still svg based for the desktop version. It would be good to update it to use qml and have one ui for desktop and mobile/touch rather than three uis similar to how KAnagram recently got one qml based ui. This project would combine the best of the desktop/plasma-active/harmattan uis into one qml based ui that is still themable.

Expected results: KHangMan with one qml based ui that works on desktop and touch devices.

Knowledge Prerequisite: Qt, QML, KF5

References:

Expected mentors: Jeremy Whiting | Heena Mahour

Project: DLNA/UPnP support for Plasma Media Center

Brief explanation: Plasma Media Center (PMC) currently exists as a functional media center application which can be used with Plasma Desktop. It already integrates with Desktop Search to fetch and play your media and DVB TV support is on its way. As part of PMC BoF at Akademy 2014, the attendees realized that PMC needs to become more relevant for a modern user's needs. For this, one such feature which is required is DLNA/UPnP support so that a user can play media on other devices to a big screen device running PMC or play media from PMC to a Smart TV.

Expected results: The following features should be working at the end of the project:

  1. Using gupnp-av-cp (from gupnp-tools), the user will browse media on a media server (lets say MediaTomb etc) and be able to play it on PMC.
  2. PMC should be able to show stats about (current progress/duration etc.) and control (play/pause etc.) the media played in the previous step.
  3. PMC is able to act as a media server which appears in gupnp-av-cp and lists the media files that would normally be listed in PMC.

Knowledge Prerequisite: Qt/QML knowledge is mandatory, the student must research about DLNA/UPnP libraries available and the proposal must include which ones are to be used. Working demo Qt app with one of the above features would be a huge plus, though not mandatory.

Expected mentors: Shantanu Tushar | Sinny Kumari| Sujith H

Project: Accessibility Support in Kubuntu

Brief explanation:Get accessibility profiles working in Kubuntu, featuring Orca for the blind and other use cases

Expected results:Kubuntu CD should have a boot option to switch between accessibilty profiles

Knowledge Prerequisite:fiddling with settings, compiling programmes and packages to get them to work

Mentor:Jonathan Riddell chat in #kubuntu-devel

Project: Adding GCompris activities

Brief explanation: GCompris is a software suite comprising educational software for children aged 2 to 10. It includes many activities and there is room to add many more to the collection. You have to think of some innovative activities that makes children learn a concept as well as having fun. Some initial thoughts of new activities could be Series of numbers, Encoding-Decoding, Puzzles, Arrangements, Blood Relations, Directions, Map of India, Hindi Alphabets/Vowels (specifically for Indian Users), Multiplication tables, Squares, Cubes, Prime / Composite, Percentage and Fractions, Simple Interest, Compound Interest, Profit and Loss, Decision Making etc.

Expected results: At the end of the project, the student is expected to create, test and merge a couple of new activities to GCompris.

Knowledge Prerequisite: Any structured language, especially basic knowledge in algorithm and object programming. Learning outcome: You will learn Qt Quick, Javascript, Git.

Expected mentors: Bruno Coudoin, Kesha Shah

Project: Revamp the Continuous Integration system

Brief explanation: The continuous integration system is a piece of KDE.org infrastructure which compiles KDE software, executes tests included with the software and performs software quality tests. This is done when developers make commits to git.kde.org, and is used to ensure our software is in a releasable state and to detect regressions which are accidentally introduced from time to time. It can be found at build.kde.org. As part of this project you will be revamping the system to allow us to expand it to cover additional operating systems in the future, standardise the configuration of jobs and to improve the flexibility of the builds we perform. In addition you'll also be responsible for setting up a new foundation for our Linux builds as the current one is running on a distribution which will soon be out of date.

Expected results: The CI system is prepared for future expansion, is able to use a new format for dependency and branching information, and is optionally able to communicate with Reviewboard.

Knowledge Prerequisite: Object oriented programming is mandatory. Student should also be aware of how to build KDE software by hand (using CMake). Familiarity with Python is a significant plus, as well as the JSON, XML and YAML data storage formats. The student should ideally be comfortable accessing a system over SSH, installing packages there and compiling software remotely without a graphical terminal.

Mentor: Ben Cooksley (chat in #kde-sysadmin please)

Kdenlive: bring back GLSL effects

Brief explanation: GPU powered effects library Movit was quickly integrated by its author for demo at FOSDEM. However it broke many functionalities here and there, also due to Kdenlive's poor handling of multithreading. Consequently, these patches have been temporarly moved to a side branch. The goal is to restore this GLSL workflow and multithreaded UI with more time and attention to make it stable enough for regular use.

Expected results: Having fluid HD editing with complex filters enabled thanks to GPU power, and polished Kdenlive code regarding multithreading.

Knowledge Prerequisite: C++ (Qt) and a general understanding GPU & multithreading concepts.

Learning outcome: You will learn how to handle these impressive multimedia, GPU & multithreading stuff, simplified by the nice MLT, Movit & Qt libraries.

Expected mentors: Vincent Pinon, kdenlive list


Kdenlive: new features and evolutions

Brief explanation: several easy features and UI suggestions in issue tracker are waiting for implementation (eg. Keeping aspect ratio with pan and zoom, Mute all but selected track, Duplicate Title Clip, Replace Clips in Project Tree)... This is a good start to explore Kdenlive code with rapid rewards, and opening to more involving contributions, like participating in code reorganization, porting to KF5, re-enabling ports for other OS...

Expected results: Integrate as many users wishes as possible, and having fun with video editor!

Knowledge Prerequisite: C++ (Qt) and XML file format (used for Kdenlive).

Learning outcome: Get confident with this large multimedia application codebase at all levels (backend, user interface, document handling).

Expected mentors: Vincent Pinon, kdenlive list

Cantor: Backend for Python 3

Brief explanation: This projects aim to provide a additional Python 3 backend for Cantor, with the basic features of the Cantor backends: syntax highlithing, tab-complete, variable management, support to show plot figures in the worksheet, support to some extensions like linear algebra and plot generation, and more.

Expected results: A new Python 3 backend for Cantor.

Knowledge Prerequisite: Qt, KF5, Python/C API.

Expected mentors: Filipe Saraiva