Google Summer of Code 2015: Difference between revisions
Jump to navigation
Jump to search
m (add easy task: Update CPUID application) |
(feel free to rollback if there are objections, fix FIXMEs) |
||
Line 1: | Line 1: | ||
== 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]. This page contains our ideas list and some additional information for students and mentors. | 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. | |||
== Student Requirements == | == Student Requirements == | ||
Line 51: | Line 52: | ||
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. | ||
=== CPUID | |||
'''Summary:''' Update existing CPUID application to be | === Applications === | ||
These are userspace tasks. They often require only basic knowledge of algorithms and data structures.<br> | |||
No specific experience is required but welcome. | |||
==== XDXF dictionary ==== | |||
'''Summary:''' Write dictionary application with support of XDXF (XML Dictionary eXchange Format) | |||
'''Details:''' | |||
* Primary goal: Write library and corresponding dictionary application | |||
* Additional goal: Support of other dictioinary formats | |||
* Language: Assembler/FASM | |||
* Skill level: intermediate | |||
* Importance: Standard | |||
* Suggested by: dunkaist | |||
* Mentor: dunkaist | |||
* Links: [http://tibleiz.net/asm-xml/ fasm xml library], [https://en.wikipedia.org/wiki/XDXF XDXF format] | |||
==== CPUID tool ==== | |||
'''Summary:''' Update existing CPUID application to be aware of new CPUs and their features | |||
'''Details:''' | '''Details:''' | ||
* Primary goal: Write code to detect and report new CPUs and features | * Primary goal: Write code to detect and report new CPUs and features | ||
* Additional | * Additional goal: Refactor code as to use system libraries (libimg, box_lib, etc.) | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: beginner/intermediate | * Skill level: beginner/intermediate | ||
* Importance: | * Importance: Standard | ||
* Suggested by: dunkaist | * Suggested by: dunkaist | ||
* 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] | ||
==== FTP client ==== | |||
'''Summary:''' Create a GUI based FTP client or add FTP support to one of the existing file managers | |||
'''Details:''' | '''Details:''' | ||
* | * Primary goal: FTP access (download/upload/etc.) | ||
* Additional goal: Create an FTP client library | |||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: beginner/intermediate | * Skill level: beginner/intermediate | ||
* Suggested by: | * Importance: High | ||
* Suggested by: hidnplayr | |||
* Mentor: hidnplayr | |||
* Links: [https://www.ietf.org/rfc/rfc959.txt File Transfer Protocol (RFC959)] | |||
=== Torrent client === | ==== Torrent client ==== | ||
'''Summary:''' Write a (bit-)torrent client for KolibriOS | '''Summary:''' Write a (bit-)torrent client for KolibriOS | ||
Line 83: | Line 106: | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: High | |||
* Suggested by: People on IRC | * Suggested by: People on IRC | ||
* Mentor: hidnplayr | * Mentor: hidnplayr | ||
* Links: FIXME | |||
=== XMPP/Jabber client === | ==== XMPP/Jabber client ==== | ||
'''Summary:''' Write a XMPP/Jabber library and client for KolibriOS | '''Summary:''' Write a XMPP/Jabber library and client for KolibriOS | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: Write basic xmpp library/client | * Primary goal: Write basic xmpp library/client | ||
* Additional | * Additional goal: Implement some xmpp extentions | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: | * Importance: High | ||
* Suggested by: People on IRC | * Suggested by: People on IRC | ||
* 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] | ||
=== | |||
'''Summary:''' Improve | ==== Music player ==== | ||
'''Summary:''' Improve the current music player in Kolibri | |||
'''Details:''' | '''Details:''' | ||
* Primary goal: | * Primary goal: Rewrite the current music player (ac97snd), in FASM, and improve its functionality | ||
* | : * Support for file formats wav, mp3 and xm (using available external libraries) | ||
* Additional goal | : * Support for playlists (m3u) | ||
* Language: Assembler/FASM | : * A time display | ||
* Additional goal: | |||
: * Use of system wide hotkeys to control player | |||
: * Support for metadata (ID3, ...) | |||
: * More codecs (flac, vorbis, ...) | |||
: * Audio indication (oscillograph, bar graph, ...) | |||
: * Show cover art from files or album folder | |||
: * Fade in/out and/or crossover | |||
: * Streaming radio (at least mp3 over http stream) | |||
: * Skins | |||
: * Media library | |||
* Language: Assembler/FASM (C/C++ to port codec) | |||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Suggested by: dunkaist | * Importance: High | ||
* | * Suggested by: hidnplayr | ||
* Mentors: hidnplayr / dunkaist | |||
* Links: FIXME | |||
=== | ==== Web browser: WebView ==== | ||
'''Summary:''' | '''Summary:''' Improve existing text-only web browser WebView - add more functionality and compatibility | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: | * 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 | ||
* Language: | * Language: [http://c--sphinx.narod.ru/indexe.htm Sphinx C--]. May require writing a few lines in FASM though | ||
* Skill level: | * Skill level: intermediate/advanced | ||
* Suggested by: hidnplayr | * Importance: High | ||
* | * Suggested by: Leency / hidnplayr | ||
* Mentors: punk_joker / hidnplayr | |||
'''Links:''' | |||
* [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] | |||
=== Drivers === | |||
Writing drivers is about new hardware and filesystems.<br> | |||
Knowledge of specifications and previous experience are ''not'' required but surely desirable. | |||
=== Improve Ethernet support === | ==== Improve Ethernet support ==== | ||
'''Summary:''' Write an Ethernet driver | '''Summary:''' Write an Ethernet driver | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: Support for popular Broadcom, Atheros or Marvell Yukon ethernet cards | * Primary goal: Support for popular Broadcom, Atheros or Marvell Yukon ethernet cards | ||
* Additional | * Additional goal: A second driver / Improve documentation / ... | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: High | |||
* Suggested by: hidnplayr | * Suggested by: hidnplayr | ||
* Mentor: hidnplayr | * Mentor: hidnplayr | ||
* Links: FIXME | |||
=== | ==== SD Host Controller ==== | ||
'''Summary:''' | '''Summary:''' Add support for SD Host Controller | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: Write | * Primary goal: Write driver for particular controller | ||
* Additional | * Additional goal: Test and update driver to work for all controllers | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate | * Skill level: intermediate/advanced | ||
* Importance: | * Importance: High | ||
* Suggested by: dunkaist | * Suggested by: dunkaist | ||
* Mentor: dunkaist | * Mentor: dunkaist | ||
* Links: [ | * Links: [https://www.sdcard.org/downloads/pls/simplified_specs/index.html SD specifications] | ||
=== | ==== USB devices ==== | ||
'''Summary:''' | '''Summary:''' Add USB drivers for the new USB stack (webcams, gamepads, joysticks, tablets, etc.) | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: Write | * Primary goal: Write USB driver for currently unsupported device (you should have one) | ||
* Additional | * Additional goal: Adopt code to work with all devices of the same class | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate | * Skill level: intermediate/advanced | ||
* Importance: | * Importance: High | ||
* Suggested by: | * Suggested by: hidnplayr/Asper | ||
* Mentor: | * Mentor: XVilka | ||
* Links: [http | * Links: [http://en.wikipedia.org/wiki/USB#Device_classes USB device classes] | ||
=== | ==== Filesystem support ==== | ||
'''Summary:''' | '''Summary:''' Improve filesystem support in KolibriOS | ||
'''Details:''' | '''Details:''' | ||
* Primary goal: | * Primary goal: Update/fix read-write support for EXT2/3/4 filesystems (partially done) | ||
* | * Alternative goal: Add write support for the NTFS filesystem (read-only support already exists) | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
* Importance: | * Importance: High | ||
* Suggested by: dunkaist | * Suggested by: dunkaist | ||
* Mentor: dunkaist | * Mentor: dunkaist | ||
* Links: [ | * Links: [http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fkernel%2Ftrunk%2Ffs%2F&#a0aa5cede7308db82d4bae78266ed8462 Filesystems in KolibriOS] | ||