Google Summer of Code 2015: Difference between revisions
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] | ||
=== System wide tasks === | |||
These tasks comprise both user space and kernel space work. Some developers consider them as of most importance for KolibriOS.<br> | |||
Architecture and algorithm design skills are highly desirable. | |||
=== | |||
''' | ==== Unicode support ==== | ||
'''Summary:''' Write userspace library and font server to handle unicode strings and fonts | |||
'''Details:''' | '''Details:''' | ||
* Primary goal: Write library to decode/encode UTF-8 and sort/compare/etc unicode strings | |||
* | * Additional goal: Write basic font server | ||
* Language: | * Language: Assembler/FASM | ||
* Skill level: intermediate | * Skill level: intermediate | ||
* Suggested by: | * Importance: Vital | ||
* | * Suggested by: dunkaist | ||
* Mentor: dunkaist | |||
* Links: [http://git.suckless.org/libutf/log/ small utf-8 library], [http://grub.gibibit.com/New_font_format good raster font format] | |||
==== Widget toolkit ==== | |||
'''Summary:''' Extend Box_lib (a set of separate widgets) to create a full-featured widget toolkit | |||
=== Widget toolkit === | |||
'''Summary:''' Extend Box_lib to create a widget toolkit | |||
'''Details:''' | '''Details:''' | ||
* Primary goal: Design architecture and implement focus handling, callbacks and other core ideas | |||
* Additional goal: Integrate box_lib widgets to this framework | |||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: beginner/intermediate/advanced | * Skill level: beginner/intermediate/advanced | ||
* Importance: Vital | |||
* Suggested by: XVilka | * Suggested by: XVilka | ||
* Mentor: | * Mentor: dunkaist | ||
* Links: FIXME | |||
<!-- | |||
=== Open Ideas (without appointed mentor) === | |||
=== One core for graphics === | ==== One core for graphics ==== | ||
'''Summary:''' On multi-core systems, dedicate one core for graphics rendering ONLY | '''Summary:''' On multi-core systems, dedicate one core for graphics rendering ONLY | ||
'''Details:''' | '''Details:''' | ||
* Goal: Move graphics subsystem to a single, dedicated core if multicore machine detected | * Goal: Move graphics subsystem to a single, dedicated core if multicore machine detected | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: intermediate/advanced | * Skill level: intermediate/advanced | ||
Line 247: | Line 273: | ||
* Mentor: Serge(?) | * Mentor: Serge(?) | ||
=== Partition editor === | ==== Partition editor ==== | ||
'''Summary:''' Add a partition/HDD editor utility | '''Summary:''' Add a partition/HDD editor utility | ||
'''Details:''' | '''Details:''' | ||
Line 256: | Line 282: | ||
* Mentor: Mario(?) | * Mentor: Mario(?) | ||
=== Rewrite "Table" in Assembler === | ==== Rewrite "Table" in Assembler ==== | ||
'''Summary:''' Rewrite a great Kolibri spreadsheet application [[Table]] from C++ to FASM | '''Summary:''' Rewrite a great Kolibri spreadsheet application [[Table]] from C++ to FASM | ||
'''Details:''' | '''Details:''' | ||
* Goal: Port Table (C++) to Assembler/FASM | * Goal: Port Table (C++) to Assembler/FASM | ||
* Language: Assembler/FASM | * Language: Assembler/FASM | ||
* Skill level: beginner/intermediate/advanced | * Skill level: beginner/intermediate/advanced | ||
Line 266: | Line 292: | ||
* Mentor: ??? | * Mentor: ??? | ||
=== Kernel vulnerabilities === | ==== Kernel vulnerabilities ==== | ||
'''Summary:''' Find and fix as many kernel vulnerabilities as you can | '''Summary:''' Find and fix as many kernel vulnerabilities as you can | ||
'''Details:''' | '''Details:''' | ||
Line 276: | Line 302: | ||
* Mentor: Serge '''(Is not always available to answer questions, so select this task only if you can work fairly independently.)''' | * Mentor: Serge '''(Is not always available to answer questions, so select this task only if you can work fairly independently.)''' | ||
=== Web browser in FASM === | ==== Web browser in FASM ==== | ||
'''Summary:''' Write a proper HTML web browser for KolibriOS | '''Summary:''' Write a proper HTML web browser for KolibriOS | ||
Line 290: | Line 316: | ||
* Mentor: SoUrcerer | * Mentor: SoUrcerer | ||
=== Printing/scanning API === | ==== Printing/scanning API ==== | ||
'''Summary:''' Add a printing and scanning API and drivers. | '''Summary:''' Add a printing and scanning API and drivers. | ||
Revision as of 13:37, 17 February 2015
Introduction
KolibriOS is going to apply as a mentoring organization for Google Summer of Code 2015. This page contains our ideas list and some additional information for students and mentors.
Student Requirements
Prospective students are required to register on our developers forum, join the developers chat and submit a small bugfix / improvement 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 our SVN and interact with our developers if you are selected. This task has to be completed before student application deadline (27 March 19:00 UTC).
In addition, students need to answer the following questions when applying:
- Full Name (First + Last Name).
- E-mail address.
- Nickname you plan to use on our forums, SVN repository or IRC chat.
- Age.
- Country + city of residence.
- Human languages you speak (write 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 program (or faculty, or department) in that college/university you are accepted into or enrolled in.
- Your current timezone in UTC/GMT terms (for example, Paris is UTC/GMT +1 hours right now).
- 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.
- 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).
- What other time commitments, such as school work, another job, planned vacation, etc., will you have between May 19 and August 18?
Organization
You can find the organizers on the IRC channel (#kolibrios @ irc.freenode.net) or at our forum: http://board.kolibrios.org/
Name | Nickname | Role |
Yogev Ezra | yogev_ezra | Organization Administrator |
Jeffrey Amelynck | hidnplayr | Mentor, Backup Administrator |
Ivan Baravy | dunkaist | Mentor |
Sergey Sakhno | punk_joker | Mentor |
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 forum chat, and they will gladly answer any student questions that may arise, even if they haven't volunteered as Mentors themselves.
Ideas for Google Summer of Code 2015
The below list contains ideas suggested by KolibriOS team members. It is neither complete nor final.
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.
Applications
These are userspace tasks. They often require only basic knowledge of algorithms and data structures.
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: fasm xml library, XDXF format
CPUID tool
Summary: Update existing CPUID application to be aware of new CPUs and their features
Details:
- Primary goal: Write code to detect and report new CPUs and features
- Additional goal: Refactor code as to use system libraries (libimg, box_lib, etc.)
- Language: Assembler/FASM
- Skill level: beginner/intermediate
- Importance: Standard
- Suggested by: dunkaist
- Mentor: dunkaist
- Links: CPUID program, Intel cpuid, AMD cpuid
FTP client
Summary: Create a GUI based FTP client or add FTP support to one of the existing file managers
Details:
- Primary goal: FTP access (download/upload/etc.)
- Additional goal: Create an FTP client library
- Language: Assembler/FASM
- Skill level: beginner/intermediate
- Importance: High
- Suggested by: hidnplayr
- Mentor: hidnplayr
- Links: File Transfer Protocol (RFC959)
Torrent client
Summary: Write a (bit-)torrent client for KolibriOS
Details:
- Primary goal: Implement a torrent client similar to µTorrent Free edition
- Language: Assembler/FASM
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: People on IRC
- Mentor: hidnplayr
- Links: FIXME
XMPP/Jabber client
Summary: Write a XMPP/Jabber library and client for KolibriOS
Details:
- Primary goal: Write basic xmpp library/client
- Additional goal: Implement some xmpp extentions
- Language: Assembler/FASM
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: People on IRC
- Mentor: dunkaist
- Links: XMPP spec, XMPP extentions
Music player
Summary: Improve the current music player in Kolibri
Details:
- 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 playlists (m3u)
- * 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
- Importance: High
- Suggested by: hidnplayr
- Mentors: hidnplayr / dunkaist
- Links: FIXME
Web browser: WebView
Summary: Improve existing text-only web browser WebView - add more functionality and compatibility
Details:
- 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: Sphinx C--. May require writing a few lines in FASM though
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: Leency / hidnplayr
- Mentors: punk_joker / hidnplayr
Links:
- HTML 4.01 Specification
- Work done so far on WebView (mostly in Russian). If you don't know Russian, you can read English translation using Google-Translate
Drivers
Writing drivers is about new hardware and filesystems.
Knowledge of specifications and previous experience are not required but surely desirable.
Improve Ethernet support
Summary: Write an Ethernet driver
Details:
- Primary goal: Support for popular Broadcom, Atheros or Marvell Yukon ethernet cards
- Additional goal: A second driver / Improve documentation / ...
- Language: Assembler/FASM
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: hidnplayr
- Mentor: hidnplayr
- Links: FIXME
SD Host Controller
Summary: Add support for SD Host Controller
Details:
- Primary goal: Write driver for particular controller
- Additional goal: Test and update driver to work for all controllers
- Language: Assembler/FASM
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: dunkaist
- Mentor: dunkaist
- Links: SD specifications
USB devices
Summary: Add USB drivers for the new USB stack (webcams, gamepads, joysticks, tablets, etc.)
Details:
- Primary goal: Write USB driver for currently unsupported device (you should have one)
- Additional goal: Adopt code to work with all devices of the same class
- Language: Assembler/FASM
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: hidnplayr/Asper
- Mentor: XVilka
- Links: USB device classes
Filesystem support
Summary: Improve filesystem support in KolibriOS
Details:
- 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
- Skill level: intermediate/advanced
- Importance: High
- Suggested by: dunkaist
- Mentor: dunkaist
- Links: Filesystems in KolibriOS
System wide tasks
These tasks comprise both user space and kernel space work. Some developers consider them as of most importance for KolibriOS.
Architecture and algorithm design skills are highly desirable.
Unicode support
Summary: Write userspace library and font server to handle unicode strings and fonts
Details:
- Primary goal: Write library to decode/encode UTF-8 and sort/compare/etc unicode strings
- Additional goal: Write basic font server
- Language: Assembler/FASM
- Skill level: intermediate
- Importance: Vital
- Suggested by: dunkaist
- Mentor: dunkaist
- Links: small utf-8 library, good raster font format
Widget toolkit
Summary: Extend Box_lib (a set of separate widgets) to create a full-featured widget toolkit
Details:
- Primary goal: Design architecture and implement focus handling, callbacks and other core ideas
- Additional goal: Integrate box_lib widgets to this framework
- Language: Assembler/FASM
- Skill level: beginner/intermediate/advanced
- Importance: Vital
- Suggested by: XVilka
- Mentor: dunkaist
- Links: FIXME