Google Summer of Code 2015: Difference between revisions
Jump to navigation
Jump to search
(feel free to rollback if there are objections, fix FIXMEs) |
m (Protected "Google Summer of Code 2015": Remains here for historical purposes only ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))) |
||
(37 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:GSoC2015.png|right]] | |||
== Introduction == | == Introduction == | ||
KolibriOS is going to apply as a mentoring organization for [http://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google Summer of Code 2015]. | KolibriOS is going to apply as a mentoring organization for [http://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google Summer of Code 2015]. This page contains our ideas list and some additional information for students and mentors. | ||
This page contains our ideas list and some additional information for students and mentors. | |||
We have previously participated as a Mentoring Organization in [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 Google Summer of Code 2014]. The [[Google Summer of Code 2014|ideas page for 2014]] is available for your reference. Our organization page for GSoC 2014 and successfully completed projects for that year can be accessed [https://www.google-melange.com/gsoc/org2/google/gsoc2014/kolibrios via this link]. To our great delight, both successful students of GSoC2014 stayed with the project and continue contributing to KolibriOS voluntarily in their spare time. | |||
In 2013, we have run an [[KolibriOS Summer of Code 2013|independent Summer of Code]] using money we [http://www.kickstarter.com/projects/kolibrios/kolibrios-help-us-hold-our-own-summer-of-code-2013 collected with Kickstarter]. Two students have worked on KolibriOS, and the results of 2013 Summer of Code were: adding write support for EXT2 filesystem, and adding (read-only) support for XFS filesystem. | |||
== Student Requirements == | == Student Requirements == | ||
Line 8: | Line 12: | ||
# Full Name (First + Last Name). | # Full Name (First + Last Name). | ||
# E-mail address. | # E-mail address. | ||
# Phone (home or mobile). | |||
# Another phone '''for emergency cases''' (if we cannot contact you) - parents, boy/girlfriend, husband/wife etc. | |||
# Nickname you plan to use on our forums, SVN repository or IRC chat. | # Nickname you plan to use on our forums, SVN repository or IRC chat. | ||
# Age. | # Age. | ||
# Country + city of residence. | # Country + city of residence. | ||
# Human languages you speak ( | # Human languages you speak (state all languages and knowledge level - basic/intermediate/expert/mother tongue). | ||
# Name of college or university you are accepted into or enrolled in + link to their website. | # Name of college or university you are accepted into or enrolled in + link to their website. | ||
# Name of program (or faculty, or department) in that college/university you are accepted into or enrolled in. | # Name of program (or faculty, or department) in that college/university you are accepted into or enrolled in. | ||
Line 17: | Line 23: | ||
# Have you been involved with any open-source project in the past? If yes, which one, and what have you done for that project? | # Have you been involved with any open-source project in the past? If yes, which one, and what have you done for that project? | ||
# Code samples - please provide links to code that you have written. It can be your high school project, contribution to open-source organization, your college/university task or anything like that. | # Code samples - please provide links to code that you have written. It can be your high school project, contribution to open-source organization, your college/university task or anything like that. | ||
# The task you are willing to work on from our list of Summer of Code 2015 ideas (or suggest your own idea, if you don't like any of the proposed ideas). | # The task you are willing to work on from our list of Summer of Code 2015 ideas (or suggest your own idea, if you don't like any of the proposed ideas). Please provide an approximate work plan for your task split to 1-week intervals, as well as expected outcome of your work. '''This point should be detailed as much as possible, as your application would be evaluated mainly based on what you write here.''' You are welcome (and even encouraged!) to collaborate with potential mentors on this paragraph. | ||
# What other time commitments, such as school work, another job, planned vacation, etc., will you have between May | # What other time commitments, such as school work, university studies, another job, planned vacation, etc., will you have between May 25 and August 21 (coding period)? Please be as specific as possible. ''Bear in mind that GSoC is like a full-time job, so if you consider taking a summer semester at the university (with more than 1-2 courses), or intend to perform an internship or work elsewhere during the summer in addition to GSoC, you will likely be '''NOT''' accepted.'' | ||
== Organization == | == Organization == | ||
Line 47: | Line 53: | ||
|} | |} | ||
We have discussed "Google Summer of Code 2015" application with all active members of the KolibriOS Project Team, and selected only those 3 (three) people who have both the knowledge, the dedication, and the time to help their students during the entire summer. Each one of them was assigned to mentor projects in his area of specialization only. In a rare event when a Mentor from the above list cannot continue mentoring his student(s) due to personal circumstances, we will try to find a replacement Mentor, or ask the remaining Mentors to cover for the missing one. Additionally, there is always a number of knowledgeable members of our team hanging around our [http://board.kolibrios.org/chat.php forum chat], and they will gladly answer any student questions that may arise, even if they haven't volunteered as Mentors themselves. | We have discussed "Google Summer of Code 2015" application with all active members of the KolibriOS Project Team, and selected only those 3 (three) people who have both the knowledge, the dedication, and the time to help their students during the entire summer. Each one of them was assigned to mentor projects in his area of specialization only. In a rare event when a Mentor from the above list cannot continue mentoring his student(s) due to personal circumstances, we will try to find a replacement Mentor, or ask the remaining Mentors to cover for the missing one. Additionally, there is always a number of knowledgeable members of our team hanging around our [http://board.kolibrios.org/chat.php forum chat], and they will gladly answer any student questions that may arise, even if they haven't volunteered as Mentors themselves. | ||
Mentors selected for this year are the same that were originally proposed for last year, and they have already proved to be responsible, helpful and knowledgeable during GSoC2014. | |||
== Ideas for Google Summer of Code 2015 == | == Ideas for Google Summer of Code 2015 == | ||
Line 52: | Line 60: | ||
Students are welcome ('''and even encouraged''') to suggest their own ideas for GSoC, provided they can find a mentor amongst KolibriOS developers to guide them. | Students are welcome ('''and even encouraged''') to suggest their own ideas for GSoC, provided they can find a mentor amongst KolibriOS developers to guide them. | ||
=== Sortable list of ideas for easy navigation === | |||
{| class="wikitable sortable" border="1" | |||
|- | |||
! Idea Name | |||
! Area | |||
! Required Skill Level | |||
! Importance for KolibriOS | |||
! Programming Language | |||
! Mentor | |||
|- | |||
| [[#XDXF_dictionary|XDXF dictionary]] | |||
| Application | |||
| Basic | |||
| Low | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#CPUID_tool|CPUID tool]] | |||
| Application | |||
| Beginner | |||
| Low | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#FTP_client|FTP client]] | |||
| Application | |||
| Basic | |||
| Medium | |||
| Assembler(FASM) | |||
| hidnplayr | |||
|- | |||
| [[#Torrent_client|Torrent client]] | |||
| Application | |||
| Advanced | |||
| High | |||
| Assembler(FASM)/C/C++ | |||
| hidnplayr | |||
|- | |||
| [[#XMPP.2FJabber_client|XMPP/Jabber client]] | |||
| Application | |||
| Intermediate | |||
| Medium | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#Music_player|Music player]] | |||
| Application | |||
| Advanced | |||
| Medium | |||
| Assembler(FASM)/C/C++ | |||
| dunkaist/hidnplayr | |||
|- | |||
| [[#Web_browser:_WebView|Web browser: WebView]] | |||
| Application | |||
| intermediate | |||
| Standard | |||
| [http://www.dev0.de/cmm/indexe.htm Sphinx C--] | |||
| punk_joker/hidnplayr | |||
|- | |||
| [[#Ethernet_driver.28s.29|Ethernet driver(s)]] | |||
| Driver | |||
| Advanced | |||
| High | |||
| Assembler(FASM) | |||
| hidnplayr | |||
|- | |||
| [[#SD_Host_Controller|SD Host Controller driver]] | |||
| Driver | |||
| Advanced | |||
| Low | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#USB_devices|USB device drivers]] | |||
| Driver | |||
| Expert | |||
| High | |||
| Assembler(FASM) | |||
| hidnplayr | |||
|- | |||
| [[#Filesystem_support|Filesystem support]] | |||
| Driver | |||
| Expert | |||
| High | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#Unicode_support|Unicode support]] | |||
| System wide task | |||
| Intermediate | |||
| Critical | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#Widget_toolkit|Widget toolkit]] | |||
| System wide task | |||
| intermediate | |||
| Standard | |||
| Assembler(FASM) | |||
| dunkaist | |||
|- | |||
| [[#Unit_testing_framework|Unit testing framework]] | |||
| System wide task | |||
| intermediate | |||
| High | |||
| Any | |||
| dunkaist | |||
|- | |||
| [[#QR-code_in_boot_log|QR-code in boot log]] | |||
| Kernel/Library | |||
| Basic | |||
| Medium | |||
| Assembler(FASM) | |||
| dunkaist | |||
|} | |||
Explanation of required skill level: | |||
* Beginner: No knowledge at all of the topic, | |||
* Basic: A very basic knowledge of the topic but no professional usage, | |||
* Intermediate: A basic knowledge of the topic but no regular professional usage, | |||
* Advanced: A good knowledge of the topic and a regular professional usage, | |||
* Expert: a perfect knowledge of the topic and a daily professional usage. | |||
Explanation of importance for the project: | |||
* Low: For sure it doesn't hurt to implement, but if nobody does it, no one will even notice. | |||
* Medium: Nice-to-have feature. Will improve everyday life of users and developers. | |||
* High: This feature is needed for the project to start being adopted by masses. | |||
* Critical: This functionality is vital for the project to become useful. | |||
=== Applications === | === Applications === | ||
Line 66: | Line 201: | ||
* Skill level: intermediate | * Skill level: intermediate | ||
* Importance: Standard | * Importance: Standard | ||
* Mentor: dunkaist | * Mentor: dunkaist | ||
* Links: [http://tibleiz.net/asm-xml/ fasm xml library], [https://en.wikipedia.org/wiki/XDXF XDXF format] | * Links: [http://tibleiz.net/asm-xml/ fasm xml library], [https://en.wikipedia.org/wiki/XDXF XDXF format] | ||
Line 80: | Line 214: | ||
* Skill level: beginner/intermediate | * Skill level: beginner/intermediate | ||
* Importance: Standard | * Importance: Standard | ||
* Mentor: dunkaist | * Mentor: dunkaist | ||
* Links: [http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fcpuid%2Ftrunk%2F&#aec5d374b78ae8f08110b3327c3ba5f56 CPUID program], [http://bochs.sourceforge.net/techspec/24161821.pdf Intel cpuid], [http://support.amd.com/TechDocs/25481.pdf AMD cpuid] | * Links: [http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fsystem%2Fcpuid%2Ftrunk%2F&#aec5d374b78ae8f08110b3327c3ba5f56 CPUID program], [http://bochs.sourceforge.net/techspec/24161821.pdf Intel cpuid], [http://support.amd.com/TechDocs/25481.pdf AMD cpuid] | ||
Line 94: | Line 227: | ||
* Skill level: beginner/intermediate | * Skill level: beginner/intermediate | ||
* Importance: High | * Importance: High | ||
* Mentor: hidnplayr | * Mentor: hidnplayr | ||
* Links: [https://www.ietf.org/rfc/rfc959.txt File Transfer Protocol (RFC959)] | * Links: [https://www.ietf.org/rfc/rfc959.txt File Transfer Protocol (RFC959)], [http://board.kolibrios.org/viewtopic.php?f=40&t=2360 CLI FTP client (demo)] | ||
==== Torrent client ==== | ==== Torrent client ==== | ||
'''Summary:''' Write a (bit-)torrent client for KolibriOS | '''Summary:''' Write a (bit-)torrent client for KolibriOS, or port an existing one | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: Implement a torrent client similar to [http://www.utorrent.com/ µTorrent Free edition] | * Primary goal: Implement a torrent client similar to [http://www.utorrent.com/ µTorrent Free edition] | ||
* Alternative goal (less preferred, but still possible): Port an existing torrent client to KolibriOS | |||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: High | * Importance: High | ||
* Mentor: hidnplayr | * Mentor: hidnplayr | ||
==== XMPP/Jabber client ==== | ==== XMPP/Jabber client ==== | ||
Line 121: | Line 250: | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: High | * Importance: High | ||
* Mentor: dunkaist | * Mentor: dunkaist | ||
* Links: [http://xmpp.org/xmpp-protocols/rfcs/ XMPP spec], [http://xmpp.org/xmpp-protocols/xmpp-extensions/ XMPP extentions] | * Links: [http://xmpp.org/xmpp-protocols/rfcs/ XMPP spec], [http://xmpp.org/xmpp-protocols/xmpp-extensions/ XMPP extentions] | ||
Line 147: | Line 275: | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: High | * Importance: High | ||
* Mentors: hidnplayr / dunkaist | * Mentors: hidnplayr / dunkaist | ||
* Links: | * Links: [http://board.kolibrios.org/viewtopic.php?f=38&t=1596 AC97SND (MP3 player in C)], [http://board.kolibrios.org/viewtopic.php?f=28&t=317 Sound drivers and architecture], [http://board.kolibrios.org/viewtopic.php?f=38&t=3003 Flac decoder],[http://board.kolibrios.org/viewtopic.php?f=38&t=2220 Minimp3 (minimalistic mp3 decoding library)], [http://board.kolibrios.org/viewtopic.php?f=38&t=161 SuperMP3 (IDv3 tag demo)] | ||
==== Web browser: WebView ==== | ==== Web browser: WebView ==== | ||
Line 158: | Line 284: | ||
* Primary goal: Have mostly complete HTML4 support on a good enough level to read non-complex (mobile?) websites | * Primary goal: Have mostly complete HTML4 support on a good enough level to read non-complex (mobile?) websites | ||
* Secondary goal: Add certain elements of CSS, speed optimizations | * Secondary goal: Add certain elements of CSS, speed optimizations | ||
* Language: [http:// | * Language: [http://www.dev0.de/cmm/indexe.htm Sphinx C--]. May require writing a few lines in FASM though | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: High | * Importance: High | ||
* Mentors: punk_joker / hidnplayr | * Mentors: punk_joker / hidnplayr | ||
'''Links:''' | '''Links:''' | ||
* [http://www.w3.org/TR/REC-html40/ HTML 4.01 Specification] | * [http://www.w3.org/TR/REC-html40/ HTML 4.01 Specification] | ||
* [http://board.kolibrios.org/viewtopic.php?f=40&t=1075 Work done so far on WebView (mostly in Russian)]. If you don't know Russian, you can read [http://translate.google.com/translate?hl=en&sl=ru&tl=en&u=http%3A%2F%2Fboard.kolibrios.org%2Fviewtopic.php%3Ff%3D40%26t%3D1075 English translation using Google-Translate] | * [http://board.kolibrios.org/viewtopic.php?f=40&t=1075 Work done so far on WebView (mostly in Russian)]. If you don't know Russian, you can read [http://translate.google.com/translate?hl=en&sl=ru&tl=en&u=http%3A%2F%2Fboard.kolibrios.org%2Fviewtopic.php%3Ff%3D40%26t%3D1075 English translation using Google-Translate] | ||