Difference between revisions of "Google Summer of Code 2016"

From KolibriOS wiki
Jump to navigation Jump to search
 
(62 intermediate revisions by 6 users not shown)
Line 8: Line 8:
  
 
== Student Requirements ==
 
== Student Requirements ==
Prospective students are required to register [http://board.kolibrios.org/ on our developers forum], join the [http://board.kolibrios.org/chat.php developers chat] and submit a small bugfix / improvement [[Get_source_code|to our SVN]] in order for their application to be considered. Examples of such tasks can be obtained by asking on developers chat or on our IRC channel (#kolibrios @ irc.freenode.net). This requirement is only to show us that you are able to work with [[Get_source_code|our SVN]] and interact with our developers if you are selected. '''This task has to be completed before  [https://developers.google.com/open-source/gsoc/timeline student application deadline] (25 March 19:00 UTC).'''<br><br>
+
Prospective students are required to register [http://board.kolibrios.org/ on our developers forum], register [http://board.kolibrios.org/viewtopic.php?f=7&t=3240 yourself as a student], join the [http://board.kolibrios.org/chat.php developers chat] and submit a small bugfix / improvement [[Get_source_code|to our SVN]] in order for their application to be considered. Examples of such tasks can be obtained by asking on developers chat or on our IRC channel (#kolibrios @ irc.freenode.net). This requirement is only to show us that you are able to work with [[Get_source_code|our SVN]] and interact with our developers if you are selected. '''This task has to be completed before  [https://developers.google.com/open-source/gsoc/timeline student application deadline] (25 March 19:00 UTC).'''<br><br>
 
In addition, students need to answer the following questions when applying:
 
In addition, students need to answer the following questions when applying:
 
# Full Name (First + Last Name).
 
# Full Name (First + Last Name).
Line 35: Line 35:
 
|'''Role'''
 
|'''Role'''
 
|-
 
|-
| vacant
+
|Dmitriy Smirnov
| vacant
+
|Pathoswithin
|Organization Administrator
+
|Administrator for GSoC, mentor
 
|-
 
|-
 
|Jeffrey Amelynck
 
|Jeffrey Amelynck
 
|[[User:Hidnplayr|hidnplayr]]
 
|[[User:Hidnplayr|hidnplayr]]
|Mentor, Backup Administrator
+
|Mentor, backup administrator
 
|-
 
|-
|Ivan Baravy
+
|Kiril Lipatov
|[[User:dunkaist|dunkaist]]
+
|[[User:Leency|Leency]]
 
|Mentor
 
|Mentor
 
|-
 
|-
|Sergey Sakhno
+
|Ashish Gupta
|[[User:Punk Joker|punk_joker]]
+
|[[User:ashmew2|ashmew2]]
 +
|Mentor
 +
|-
 +
|Sergey Kuzmin
 +
|[[User:Wildwest|Wildwest]]
 
|Mentor
 
|Mentor
 
|-
 
|-
Line 54: Line 58:
 
We have discussed "Google Summer of Code 2016" 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 2016" 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.
+
Most 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 2016 ==
 
== Ideas for Google Summer of Code 2016 ==
Line 75: Line 79:
 
| Low
 
| Low
 
| Assembler(FASM)
 
| Assembler(FASM)
| dunkaist
+
| Pathoswithin
 
|-
 
|-
 
| [[#CPUID_tool|CPUID tool]]
 
| [[#CPUID_tool|CPUID tool]]
Line 82: Line 86:
 
| Low
 
| Low
 
| Assembler(FASM)
 
| Assembler(FASM)
| dunkaist
+
| Wildwest
 
|-
 
|-
 
| [[#FTP_client|FTP client]]
 
| [[#FTP_client|FTP client]]
Line 103: Line 107:
 
| Medium
 
| Medium
 
| Assembler(FASM)
 
| Assembler(FASM)
| dunkaist/hidnplayr
+
| hidnplayr
 
|-
 
|-
 
| [[#Music_player|Music player]]
 
| [[#Music_player|Music player]]
Line 110: Line 114:
 
| Medium
 
| Medium
 
| Assembler(FASM)/C/C++
 
| Assembler(FASM)/C/C++
| dunkaist/hidnplayr
+
| hidnplayr
 
|-
 
|-
| [[#Web_browser:_WebView|Web browser: WebView]]
+
| [[#Web_browser|Web browser]]
 
| Application
 
| Application
| intermediate
+
| Intermediate
| Standard
+
| High
 
| [http://www.dev0.de/cmm/indexe.htm Sphinx C--]
 
| [http://www.dev0.de/cmm/indexe.htm Sphinx C--]
| punk_joker
+
| Leency
 
|-
 
|-
 
| [[#Ethernet_driver.28s.29|Ethernet driver(s)]]
 
| [[#Ethernet_driver.28s.29|Ethernet driver(s)]]
Line 131: Line 135:
 
| Low
 
| Low
 
| Assembler(FASM)
 
| Assembler(FASM)
| dunkaist
+
| Pathoswithin
 
|-
 
|-
 
| [[#USB_devices|USB device drivers]]
 
| [[#USB_devices|USB device drivers]]
Line 145: Line 149:
 
| High
 
| High
 
| Assembler(FASM)
 
| Assembler(FASM)
| dunkaist
+
| Pathoswithin
 
|-
 
|-
| [[#Widget_toolkit|Widget toolkit]]
+
| [[#Wi-Fi|Wi-Fi]]
| System wide task
+
| Driver
| intermediate
+
| Expert
| Standard
+
| High
 
| Assembler(FASM)
 
| Assembler(FASM)
| dunkaist
+
| hidnplayr
 
|-
 
|-
| [[#Unit_testing_framework|Unit testing framework]]
+
| [[#Widget_toolkit|Widget toolkit]]
 
| System wide task
 
| System wide task
| intermediate
+
| Intermediate
 
| High
 
| High
| Any
+
| Assembler(FASM)
| dunkaist
+
| Pathoswithin
 
|-
 
|-
 
| [[#QR-code_in_boot_log|QR-code in boot log]]
 
| [[#QR-code_in_boot_log|QR-code in boot log]]
 
| Kernel/Library
 
| Kernel/Library
 
| Basic
 
| Basic
 +
| Low
 +
| Assembler(FASM)
 +
| Pathoswithin
 +
|-
 +
| [[#C layer for KolibriOS|C layer for KolibriOS]]
 +
| Library
 +
| Intermediate / Advanced
 +
| Medium / High
 +
| C
 +
| Ashmew2
 +
|-
 +
| [[#Virtualbox / QEMU support for KolibriOS|Virtualbox support for KolibriOS]]
 +
| Library
 +
| Advanced
 
| Medium
 
| Medium
| Assembler(FASM)
+
| C
| dunkaist
+
| Ashmew2
 +
|-
 +
| [[#Port PolarSSL|Port PolarSSL]]
 +
| Library
 +
| Intermediate / Advanced
 +
| High
 +
| C / FASM
 +
| hidnplayr / ashmew2
 +
|-
 +
| [[#Port ScummVM|Port ScummVM]]
 +
| Library
 +
| Intermediate / Advanced
 +
| Medium
 +
| C / FASM
 +
| hidnplayr / ashmew2
 
|}
 
|}
 
Explanation of required skill level:
 
Explanation of required skill level:
Line 179: Line 211:
 
* Medium: Nice-to-have feature. Will improve everyday life of users and developers.
 
* 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.
 
* 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 192: Line 223:
 
* Additional goal: Support of other dictioinary formats
 
* Additional goal: Support of other dictioinary formats
 
* Language: Assembler/FASM
 
* Language: Assembler/FASM
* Skill level: intermediate
+
* Skill level: basic
* Importance: Standard
+
* Importance: low
* Mentor: dunkaist
+
* Mentor: Pathoswithin
 
* 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 206: Line 237:
 
* Language: Assembler/FASM
 
* Language: Assembler/FASM
 
* Skill level: beginner/intermediate
 
* Skill level: beginner/intermediate
* Importance: Standard
+
* Importance: low
* Mentor: dunkaist / Wildwest
+
* Mentor: Wildwest
* 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], [http://board.kolibrios.org/viewtopic.php?f=42&t=594&start=90 forum topic about application]
 
 
  
 
==== FTP client ====
 
==== FTP client ====
Line 222: Line 252:
 
* Mentor: hidnplayr
 
* Mentor: hidnplayr
 
* 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)]
 
* 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 ====
Line 234: Line 265:
 
* Mentor: hidnplayr
 
* Mentor: hidnplayr
 
* Links: [http://www.bittorrent.org Information about the protocol]
 
* Links: [http://www.bittorrent.org Information about the protocol]
 +
  
 
==== XMPP/Jabber client ====
 
==== XMPP/Jabber client ====
Line 244: Line 276:
 
* Skill level: intermediate/advanced
 
* Skill level: intermediate/advanced
 
* Importance: High
 
* Importance: High
* Mentor: dunkaist/hidnplayr
+
* Mentor: hidnplayr
 
* Links: [http://xmpp.org/xmpp-protocols/rfcs/ XMPP spec], [http://xmpp.org/xmpp-protocols/xmpp-extensions/ XMPP extentions], [http://board.kolibrios.org/viewtopic.php?f=32&t=3111&p=62432#p62433 Unfinished XMPP client for KolibriOS]
 
* Links: [http://xmpp.org/xmpp-protocols/rfcs/ XMPP spec], [http://xmpp.org/xmpp-protocols/xmpp-extensions/ XMPP extentions], [http://board.kolibrios.org/viewtopic.php?f=32&t=3111&p=62432#p62433 Unfinished XMPP client for KolibriOS]
 +
  
 
==== Music player ====
 
==== Music player ====
Line 252: Line 285:
 
'''Details:'''
 
'''Details:'''
 
* Primary goal: Rewrite the current music player (ac97snd), in FASM, and improve its functionality
 
* 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)
+
:* Support for file formats wav, mp3 and xm (using available external libraries)
: * Support for playlists (m3u)
+
:* Support for playlists (m3u)
: * A time display
+
:* A time display
 
* Additional goal:
 
* Additional goal:
: * Use of system wide hotkeys to control player
+
:* Use of system wide hotkeys to control player
: * Support for metadata (ID3, ...)
+
:* Support for metadata (ID3, ...)
: * More codecs (flac, vorbis, ...)
+
:* More codecs (flac, vorbis, ...)
: * Audio indication (oscillograph, bar graph, ...)
+
:* Audio indication (oscillograph, bar graph, ...)
: * Show cover art from files or album folder
+
:* Show cover art from files or album folder
: * Fade in/out and/or crossover
+
:* Fade in/out and/or crossover
: * Streaming radio (at least mp3 over http stream)
+
:* Streaming radio (at least mp3 over http stream)
: * Skins
+
:* Skins
: * Media library
+
:* Media library
 
* Language: Assembler/FASM (C/C++ to port codec)
 
* Language: Assembler/FASM (C/C++ to port codec)
 
* Skill level: intermediate/advanced
 
* Skill level: intermediate/advanced
 
* Importance: High
 
* Importance: High
* Mentors: hidnplayr / dunkaist
+
* Mentors: hidnplayr
 
* 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)]
 
* 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 ====
+
 
'''Summary:''' Improve existing text-only web browser WebView - add more functionality and compatibility
+
==== Web browser ====
 +
'''Summary:''' Improve existing text-only web browser Aelia (ex WebView) - add more functionality and compatibility
  
 
'''Details:'''
 
'''Details:'''
Line 280: Line 314:
 
* Skill level: intermediate/advanced
 
* Skill level: intermediate/advanced
 
* Importance: High
 
* Importance: High
* Mentors: punk_joker
+
* Mentors: Leency
 
'''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]
 +
 +
==== Port ScummVM ====
 +
'''Summary:''' Port ScummVM to KolibriOS.
 +
 +
'''Details:'''
 +
* Primary goal: Port ScummVM to KolibriOS so that users can enjoy a wide range of already available software that runs on it.
 +
* Secondary goal: Optimize for KolibriOS
 +
* Language: C / FASM
 +
* Skill level: intermediate / advanced
 +
* Importance: Medium
 +
* Mentors: hidnplayr / ashmew2
 +
'''Links:'''
 +
* [https://sourceforge.net/projects/scummvm/ ScummVM website], [https://sourceforge.net/projects/menuet/files/CD/A/ Old ScummVM port for MenuetOS]
  
 
=== Drivers ===
 
=== Drivers ===
Writing drivers is about new hardware and filesystems.<br>
+
Writing drivers is about supporting new hardware and filesystems.<br>
 
Knowledge of specifications and previous experience are ''not'' required but surely desirable.
 
Knowledge of specifications and previous experience are ''not'' required but surely desirable.
  
Line 300: Line 347:
 
* Mentor: hidnplayr
 
* Mentor: hidnplayr
 
* Links: [https://www.broadcom.com/collateral/pg/57XX-PG105-R.pdf BCM57xx programmers guide], [[Writing network drivers for KolibriOS]], [https://github.com/UDOOboard/U-Boot_Unico/blob/master/drivers/net/bcm570x.c BCM570x driver for u-boot (in C)], [http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fdrivers%2Funfinished%2Fbcm57xx.asm Stub for BCM57xx driver]
 
* Links: [https://www.broadcom.com/collateral/pg/57XX-PG105-R.pdf BCM57xx programmers guide], [[Writing network drivers for KolibriOS]], [https://github.com/UDOOboard/U-Boot_Unico/blob/master/drivers/net/bcm570x.c BCM570x driver for u-boot (in C)], [http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fdrivers%2Funfinished%2Fbcm57xx.asm Stub for BCM57xx driver]
 +
  
 
==== SD Host Controller ====
 
==== SD Host Controller ====
Line 309: Line 357:
 
* Language: Assembler/FASM
 
* Language: Assembler/FASM
 
* Skill level: intermediate/advanced
 
* Skill level: intermediate/advanced
* Importance: High
+
* Importance: Low
* Mentor: dunkaist
+
* Mentor: Pathoswithin
 
* Links: [https://www.sdcard.org/downloads/pls/simplified_specs/index.html SD specifications]
 
* Links: [https://www.sdcard.org/downloads/pls/simplified_specs/index.html SD specifications]
 
  
 
==== USB devices ====
 
==== USB devices ====
Line 325: Line 372:
 
* Mentor: hidnplayr
 
* Mentor: hidnplayr
 
* Links: [http://en.wikipedia.org/wiki/USB#Device_classes USB device classes]
 
* Links: [http://en.wikipedia.org/wiki/USB#Device_classes USB device classes]
 +
  
 
==== Filesystem support ====
 
==== Filesystem support ====
Line 330: Line 378:
  
 
'''Details:'''
 
'''Details:'''
* Primary goal: Update/fix read-write support for EXT2/3/4 filesystems (partially done)
+
* 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)
+
* Additional goal: Any improvement of filesystem support in KolibriOS
 
* Language: Assembler/FASM
 
* Language: Assembler/FASM
 
* Skill level: intermediate/advanced
 
* Skill level: intermediate/advanced
 
* Importance: High
 
* Importance: High
* Mentor: du