Google Summer of Code 2010. Ideas
Introduction
Google Summer of Code 2010 has been announced and this year Ultimate++ project really wants to participate as a mentoring organization.
If you like C++ and you want to use a radical focus to more effective programming we would be happy if you come with us.
Here we will describe you our proposals. We hope you will like them! However you can ask for additional information and we would also like to hear your ideas.
You can introduce yourself in our Forum, discuss with the community these ideas and your proposals adding your personal touches.
To prepare your proposal it is worth referencing a nice link in Gcc from a how-to in Drupal project.
This list is a work-in-progress. You can follow discussions in Forum.
Project Ideas
U++ port to KDE
Difficulty
High.
Experience required
U++, Qt.
Description
The goal is to provide a library which wraps Qt theming API and draw U++ widgets using it.
Right now U++ is using gtk+ theming API which make applications look ugly under KDE and gtk+ libs have to be available in order for application to run.
This library will make U++ non-dependent on a theming API but rather selecting proper theming engine at runtime so application look will be changed based on running context - KDE(Qt based) or Gnome(gtk+ based). If Qt or gtk+ do not exist and user have only X11 server U++ will use its own theming API for drawing widgets.
We propose you this roadmap
Learning to work in GNU/Linux U++
Analyzing Gtk+ theming in U++
Applying the right patches to use Qt properly in KDE environments
SVG parser
Difficulty
Medium.
Experience required
U++, SVG.
Description
Scalable vector graphics (SVG) is a format that describes 2D vectorial graphics. U++ "Painter" package includes an antialiased renderer class enough versatile to implement main SVG requirements. However there is only a small SVG parser implementation included in Bazaar/PainterSvg package. The goal would be to implement a state of the art SVG parser.
We propose you this roadmap
Reviewing PainterSvg package including U++ antialiased rendering and Xml parser and generator
SVG is a standard but not all the implementations are the same, We should have to look which are going to be our standards, including a set of test cases. We will define different project landmarks related to them.
Video Player Control
Difficulty
Medium.
Skills
U++, ffmpeg, sdl, gcc/mingw compiling infrastructure.
Description
This control would integrate ffmpeg video decoding and sdl to visualize video files.
We propose you this roadmap
Learning to work in U++ and SDL
Learning to work with DHCtrl
Ffmpeg and ffplay are easy to compile alone. You should have to integrate them into a U++ project. There is an excellent reference here
Web Browser Control
Difficulty
High.
Experience required
U++, webkit, gcc/mingw compiling infrastructure.
Description
This control would integrate a web browser into a control. Possibly the best option would be to use webkit.
We propose you this roadmap
Learning to work in U++ with DHCtrl
Integrate Webkit in a U++ project inside a DHCtrl derived class
U++ as a library
Difficulty
High
Experience required
U++, MSC, gcc/mingw compiling infrastructure.
Description
U++ is actually more than a C++ library as it cannot be integrated easily in projects not developed in the U++ ide TheIde.
The goal would be to develop U++ as a library using TheIde as a resource editor only.
This would imply to create tools and processes that can be integrated with infrastructure server so that U++ can be provided as pure library (or set of libraries).
Create a special mode of TheIDE so that it can be used as resource editor only.
We propose you this roadmap
Study U++ TheIde compiling strategy
Defining and developing the changes in U++ to make projects using make or Visual Studio
Changing TheIde to work with external projects as a resource editor
Project requirements
All U++ community projects have to comply with certain basic requirements. These are included in Bazaar pages.
Package submission and maintenance is described here.
If you need to use community packages you would have to do this.
And if you find any bug or you would like to get any additional feature or improvement, please go here.
As the main U++ platforms are Windows and GNU/Linux it would be important that all projects would support both operating systems leaving open the possibility to, in a future, be implemented in OSX.
Ultimate++ project is proud of its BSD license so we would really prefer that all external libraries to be linked with U++ code would be BSD licensed or similar.
|