GSoC 2014. Ideas
Google Summer of Code 2014 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. You can also contact the mentors whose skills can match with your project ideas. This way you can do your own proposals with more possibilities to be approved.
U++ Independent Audio Module
Proposed by
Zbigniew Rębacz (Student)
Difficulty
Hard
Required skills/knowledge
C++, C, minimal U++ knowledge, debugging, low-level programing, understanding somebody's code, reading & understanding documentation, creating multiplatform code.
Expected result
U++ audio module works on multiple operating system such as Microsoft Windows, GNU/Linux, FreeBSD. But, we will be happy if the code will work at least on two platforms.
Brief Explanation
U++ currently handle audio only with other high level libraries for instance SDL. The main task is to create independent module. To achieve this you will need to use low level API for each operating system which U++ supports such as WinAPI or ALSA.
Mentor
Jan Dolinár
Roadmap
Investigate audio libraries for each operating system which Ultimate++ supports.
Study U++ API design
Design U++ audio API
Write audio code for each platform
Android SDK/NDK TheIDE builder
Proposed by
Miroslav Fídler
Difficulty
Medium
Required skills/knowledge
C++, U++, Java, debugging.
Expected result
TheIDE is capable of building Android projects, from Java/C/C++ sources.
Brief Explanation
TheIDE builder is module of TheIDE development environment responsible for building projects defined by U++ package system into executable form. Currently, TheIDE supports builders based on Win32 SDK (using Microsoft C++ compiler and Windows SDK) and builders targeting general POSIX/X11/Gtk desktops.
The aim of this proposal is create a new builder targeting Android platform.
Mentors
Miroslav Fídler
Roadmap
Investigate Android building techniques
Decide how to implement U++ builder (should we use provided ANT based scripts?)
Implement Android builder
Android U++ support
Proposed by
Miroslav Fídler
Difficulty
Hard
Required skills/knowledge
C++, U++, Java, JNI, SDL, debugging.
Expected result
We are capable of running existing U++ applications on Android, with attached mouse and keyboard (as possible intermediate step); adapting U++ to touch interface is another step.
Brief Explanation
U++ provides cross-platform GUI library that is relatively easy adaptable to various platforms. The aim of this proposal is to create a backend for Android platform.
Mentors
Miroslav Fídler
Roadmap
Investigate Android SDK
Decide the method of support (we could possibly use SDL, or just use JNI to interface with Java API).
Implement Android backend
TheIDE (P)NaCl builder
Proposed by
Miroslav Fídler
Difficulty
Medium
Required skills/knowledge
C++, U++, debugging.
Expected result
TheIDE is capable of building (P)NaCl projects, from C/C++ sources.
Brief Explanation
TheIDE builder is module of TheIDE development environment responsible for building projects defined by U++ package system into executable form. Currently, TheIDE supports builders based on Win32 SDK (using Microsoft C++ compiler and Windows SDK) and builders targeting general POSIX/X11/Gtk desktops.
The aim of this proposal is create a new builder targeting (P)NaCl platform.
Mentors
Miroslav Fídler
Roadmap
Investigate (P)NaCl building techniques
Decide how to implement U++ builder
Implement (P)NaCl builder
(P)NaCl U++ support
Proposed by
Miroslav Fídler
Difficulty
Hard
Required skills/knowledge
C++, U++, JavaScript, debugging.
Expected result
We are capable of running existing U++ applications on (P)NaCl, with attached mouse and keyboard (as possible intermediate step); adapting U++ to touch interface is another step.
Brief Explanation
U++ provides cross-platform library that is relatively easy adaptable to various platforms. The aim of this proposal is to create a backend for (P)NaCl platform.
Mentors
Miroslav Fídler
Roadmap
Investigate Pepper API
Decide the method of support
Implement backend
Touch support
Proposed by
Miroslav Fídler
Difficulty
Medium
Required skills/knowledge
C++, U++
Expected result
U++ widget API gains methods for dealing with touch screens. Individual widgets gain support for this API.
Brief Explanation
U++ currently only supports input using mouse and keyboard. The task here is to add virtual methods to Ctrl class to support touch screens and to detect and support a common list of touch gestures. Default implementations of virtual methods might convert these gestures to mouse events for sort of backward compatibility. Once the touch API is implemented, it would be possible to add relevant behaviour to U++ widgets.
Mentors
Miroslav Fídler
Roadmap
Investigate touch based inputs, make a list of getures we want to support
Implement core touch input API (might be based on HTML5 touchstart, touchmove, touchend interfaces) for TURTLE (javascript terminal to U++) backend.
Implement getures API
Add support to CtrlLib widgets
Web Browser Control
Proposed by
Jan Dolinár
Difficulty
High
Experience required
U++, webkit (or any other engine), gcc compiling infrastructure.
Description
This tasks main goal is to create a GUI widget allowing to integrate a web browser engine into U++ applications. Webkit engine is a good candidate for this task as it is fast and reliable, written in C++ and actively developed by large community, but other engines might be used as well.
Mentors
Jan Dolinár
Roadmap
Explore possibility to use libwebkit
Decide how to integrate Webkit in a U++ project (most straightforward possibilities are direct rendering in DHCtrl or rendering into buffer first)
Write a widget binding U++ events to the rendering engine
Project Name
Proposed by
Your name
Difficulty
Piece of cake/Easy/Medium/Hard.
Required skills/knowledge
Like C++, Ultimate++, PHP, Java, Ruby, Python, C#, Objective-C, debugging, networking (sockets etc.).
Expected result
What should be the end result of the project for example "Ultimate++ works on Android platform".
Brief Explanation
Short project description. Explanation can posses link to additional resources like forum discussion about topic.
Remember that you as student can propose your own projects. We advice you to read our Forum and contact the mentors that can match with your project.
Mentors
Your name
Roadmap
Main project phases
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.
Return to GSoC 2014 Home page
|