Changes between Version 74 and Version 75 of GoogleSummerOfCodeIdeas


Ignore:
Timestamp:
Feb 26, 2012 9:20:44 PM (7 years ago)
Author:
mmadia
Comment:

setting read-only, during migration to Drupal.

Legend:

Unmodified
Added
Removed
Modified
  • GoogleSummerOfCodeIdeas

    v74 v75  
    11----
    22= Info =
    3 '''Google has announced plans for Google Summer of Code™ 2012'''. This page collects ideas on acceptable projects for students to undertake.
     3'''Google has announced plans for Google Summer of Code™ 2012'''. Haiku is applying as a Mentoring Organization.
    44----
    5 
    6 = Work-in-Progress: 2012 =
    7 The contents of this page are for brainstorming of suggested project ideas for Google Summer of Code. See http://www.haiku-os.org/gsoc for more information on participating with Haiku in Google Summer of Code.
    8 
    9 == Project Areas ==
    10 
    11  * [#apps Applications]
    12  * [#drivers Drivers]
    13  * [#kernel Kernel/Filesystems]
    14  * [#media Media]
    15  * [#network Network]
    16  * [#ui User interface]
    17  * [#other Other]
    18 
    19 [=#apps]
    20 === Applications ===
    21 
    22 ==== Updating AbiWord ====
    23    
    24     Even though an [http://www.abisource.com/ older AbiWord port] is being hosted at [http://dev.osdrawer.net OSDrawer : AbiWord Project Page (2.0)], the AbiWord project would prefer the port to use their current sources (2.8.x).  The student is responsible for determining which aspects of this project to pursue.  AbiWord/AbiSource has participated in past GSoCs and we expect that they will again this year.  This could be a possible cross project with a co-mentor from each org, so if interested in this one you may want to apply to both orgs.
    25 
    26     AbiWord: Official 2012 ideas page http://www.abisource.com/wiki/Google_Summer_of_Code_2012
    27     http://www.abisource.com/wiki/Google_Summer_of_Code_2012#Haiku_Port_for_AbiWord
    28    
    29     Skill set: userland development, usability basics
    30 
    31 ==== Updating and Extending WebPositive ====
    32        
    33         Haiku uses a WebKit based browser called WebPositive. This task would involve:
    34                 * Update to newer WebKit codebase
    35                 * Update (jam) build system to package WebKit as an OptionalBuildFeature, to be used by Haiku's build system
    36                 * Native network backend. Currently we use the Curl backend, which is slow and has some other problems. Use the (unfinished) "Services Kit" instead.
    37                 * various webpositive tickets.
    38            
    39     Skill set: userland development, kernel development, possibly x86 assembly
    40        
    41 ==== VirtualBox port to Haiku ====
    42 
    43     A port of VirtualBox to Haiku, would allow developers and users to run another operating system within Haiku. [http://article.gmane.org/gmane.comp.emulators.virtualbox.devel/3384 Preliminary VirtualBox port to Haiku]
    44 
    45     Skill set: userland development
    46  
    47 ==== Other applications ====
    48   * Caya
    49   * More ?
    50 
    51 [=#kernel]
    52 === Kernel/Filesystems ===
    53 
    54 ==== Filesystems: general improvements ====
    55 
    56     Haiku has great support for its own filesystem, but most others are only available read-only, or not at all. It is way better for interoperability with other systems to be able to read and write to these disks.
    57 
    58         * ReiserFS, BTRFS, exFAT: write support
    59         * UFS2, ZFS: Read (& Write) support
    60         * SMB, Windows shares: Read (& Write) support
    61         * HAMMER FS: Read (& Write) support
    62         * SquashFS: To support booting Haiku off SquashFS on a CD/DVD
    63 
    64     Skill set: kernel and driver development
    65 
    66 ==== IMAP FS: File system access to an IMAP account ====
    67     In Haiku emails are stored as individual file with extended attributes. Mounting an IMAP account as a local file system is therefore a natural fit. The file system should have full read and write support (deleting mails (files), creating folders, and moving mails between folders, etc.) with local caching for better performance.
    68 
    69     Skill set: kernel and file system (driver) development, network development
    70 
    71 ==== NFSv4 client with xattr support and caching ====
    72 
    73     Haiku has an NFS client, but using the out of date NFSv2 specification and the old file system API. This makes it unusable for any practical purpose. Also, the current implementation doesn't support caching, which makes it slow, and lacks xattr handling, which is very important in Haiku.
    74 
    75     Skill set: network protocols, maybe kernel development, userland development 
    76        
    77 ==== BFS Partition Resizer ====
    78 
    79    An often requested feature.  This includes being able to resize the filesystem and it's descriptive structures (eg, think of resizing an image file) and being able to resize the partitions on the drive.  Ideally integrated within DriveSetup.
    80 
    81    Skill set: driver development
    82 
    83 [=#drivers]
    84 === Drivers ===
    85 
    86 
    87 ==== ACPI Video Extensions ====
    88         ACPI Video Extensions, as specified in ACPI Spec 4.0a Appendix B, adds special support to handle multiple output devices such as panels and TV-out capabilities, brightness control as well as special power management features.
    89 
    90         Suggested work: Detect attached devices for display adapters, implement a basic driver for a display, allow display switching and brightness control.
    91 
    92         Requirements: computer with ACPI that has Acpi Video Extentions (_DOS _DOD and so on)
    93 
    94         Skill set: kernel development, general C/C++, userland development
    95 
    96 ==== AV/1394 support ====
    97    
    98     Our Firewire stack supports DV receiving, but not controlling the A/V device (ie play/stop). This requires to modify the Firewire stack for FCP frame support. See AV/C Digital Interface Command Set General Specification for reference.
    99    
    100         Requirements: a DV camera, a machine with a Firewire port.   
    101        
    102         Skill set: kernel development, API design, general C/C++, userland development
    103 
    104 ==== TTY Layer ====
    105 
    106     The TTY layer is needed for proper serial port support in Haiku.
    107     Until now the serial port was reserved for kernel debugging,
    108     but it is now time for proper userland support.
    109     Rewrite the API that was available in BeOS R5,
    110     and make sure it can be used with a real serial port.
    111     USB to serial converter may or may not be included.
    112 
    113     Currently, the TTY layer is written mostly with the usb_serial
    114     in mind, so it uses stuff that might not be easy or possible at all to
    115     use in more low-level drivers (like pc_serial).
    116     The API could use improvements. Locking issues exist.
    117     Also the generic module is not yet in the image due to these.
    118 
    119     Note: This task could include finishing phoudoin's libusb port, which would help to make the driver more feature complete.
    120        
    121         Skill set: kernel, and driver development
    122        
    123         Tickets: #35 #3232
    124 
    125 [=#network]
    126 === Network ===
    127 
    128 ==== Bluetooth Stack Improvements ====
    129 
    130     Haiku Bluetooth Stack implements basic functionality on lower and middle layers, this functionality needs to be completed and Bluetooth 2.X possibilities explored.
    131    
    132     Requirements: Bluetooth enabled Haiku system
    133    
    134     Skill set: C++, kernel development, userland development, global bluetooth stack knowledge(optional)
    135    
    136     Tasks: RemoteDevices Database, UserLand tools(Preferences), Pairing/Auth/Encryption use cases, etc.   
    137 
    138 ==== Integrate our PPP implementation ====
    139 
    140     Port the PPP implementation to our new network stack. Add phone-line modem support, including HDLC framing and VJC compression (porting both algorithms is sufficient, but make sure the license is compatible to MIT). Implement CHAP authentication. Find and fix bugs.
    141 
    142     Tickets: #812, #869, #873, #922, #923, #1059, maybe: #1057, #1058
    143    
    144     Skill set: multi-threading basics, maybe network protocols and some kernel/drivers development, maybe userland development
    145 
    146 ==== IPv6 Polish ====
    147 
    148     GSOC 2010 added the base framework for IPv6 support. There is a lot of smaller cleanup/polish projects left however!
    149 
    150     * #8293  -- BNetworkAddress needs to check if there is an available IPv6 connection.
    151     * #7228  -- RFC: BNetworkInterfaceAddress needs to store auto-configuration flags
    152     * #6489  -- ifconfig needs to validate availability of ipv6 module prior to utilization
    153     * #2632  -- Possible redefinition for struct sockaddr_in, related to IPv6
    154     * ~~#8316  -- Haiku needs IPv6 link scope Auto Configuration~~
    155     * #8319  -- Haiku needs IPv6 duplicate address detection during link scope ip configuration.
    156     * #8317  -- Haiku needs IPv6 global scope Auto Configuration (router advertisement + DHCPv6)
    157 
    158     Skill set: IPv4 and IPv6 protocols, kernel and network stack development
    159 
    160 [=#ui]
    161 === User Interface ===
    162 
    163 ==== Preflet GUI refactoring ====
    164 
    165     Several preference applications (aka preflets) could be redesigned. This includes (but not limited to)
    166         * combining Keymap and Keyboard
    167         * #6983 Printer
    168         * #6206 integrate scrollbar options into a new Appearance preflet
    169         * Shortcuts & Notifications
    170         * Network (todo, link to work-in-progress preflet)
    171         * ...,
    172 
    173     Skill set: c++, userland development
    174 
    175 
    176 ==== Modular edit view (BIG) ====
    177     Many Haiku applications are using their own edit view to provide basic editor functionalities. All these implementations work a little bit different and create an inconsistent user experience.
    178     One solution is to provide a modular and powerful editor view that could be used in various Haiku applications.
    179 
    180     The edit view design should be modular and extensible to make it easy to implement e.g. following features:
    181 
    182         * syntax highlighting
    183         * spell checker
    184         * code completion, word completion
    185         * line numbers, ruler, 80 character limit line, hyper links
    186         * working on an input stream rather than on a input file e.g. to be able to open files ~100Mb without loading them into memory in one go.
    187         * interface to external applications e.g. to jump from a compiler error to the according line in the code
    188 
    189     Skill set: C++, userland development
    190 
    191 [=#media]
    192 === Media ===
    193 
    194 ==== Merge CDPlayer into MediaPlayer ====
    195 
    196     The functionality of CDPlayer could be migrated into MediaPlayer, allowing the play back of audio cd's. An alternative to CDPlayer's way of controlling the device in a low-level fashion would be to make it use the wave files as presented by the cdda-fs, subscribe to volume mounts via BVolumeRoster, present a menuitem for the CD similar to one for DVDs in the VLC Media Player, having this option populate a playlist and start playing.
    197    
    198     Skill set: general C/C++, userland development
    199    
    200 ==== Streaming support for Media Kit and applications ====
    201 The media kit and related applications in Haiku relies a lot on the BMediaFile being seekable. This makes it difficult to use with non-seekable media sources such as internet streams or DVD media. Rework what's needed to get them working properly.
    202 
    203 [=#other]
    204 === Others ===
    205 
    206 ==== Fix and improve Haiku's mail system ====
    207 
    208     Haiku features an integrated mail management system allowing to manage your mail using Tracker, the file explorer. This system needs some improvements and updates. '''See this [http://www.freelists.org/post/haiku-commits/r40398-in-haikutrunksrc-addonsmail-daemon-addonsmail-daemoninbound-filters-addonsmail-daemoninbound-filtersmatch-header-addonsmail-daemoninbound-filtersnotifier-addonsmail-daemoninbound-filtersspam-filter,2 mailing list post] for a list of TODO and related ideas'''
    209 
    210 ==== Trac Plugin: "Test and Commit Patch" functionality ====
    211    
    212     Several developers have requested the ability to simply press a button that would trigger an automatic system to test and (conditionally commit) a supplied patch.
    213 
    214         Skill set: Python
    215 
    216 ==== Add Haiku support to Allegro 5.0 ====
    217    
    218     Allegro is a gaming library, it has support for BeOS/Zeta/Haiku in the 4.4 branch, but they dropped BeOS from the 5.x branch.  Now that Haiku is in a usable state it would be nice to get the latest builds of Allegro 5.0 working on Haiku.  It's still unclear if Allegro will be applying for GSoC but they do have a developer who'd be willing to co-mentor this with a Haiku mentor.
    219 
    220 ==== Graphical project manager tool ====
    221 
    222     BeOS had CodeWarrior IDE built-in, which makes it easy to create a new project and get started on development. Haiku currently only provide make and jam in the
    223 default installation, which is far less easy to use for starting developpers. The makefile engine is somewhat simpler, but more limited. All of these tools are to be used in text mode, not so good for beginners. ~~Also see : http://www.marmida.org/blog/2010/10/27/9/ ~~^(url broken)^
    224     Create some graphical tool to easily get started on 3rd party development in a few clicks. No need for a full-blown IDE.
    225 ==== Tracker add-on for source control ====
    226 Windows has TortoiseSVN and TortoiseGIT. Do something similar with Haiku Tracker.
    227   * Write a Tracker add-on that has the functionality
    228   * Extend support in Tracker itself where needed : icon overlays, ...
     5== This page is now being migrated to Drupal. ==
     6 * http://www.haiku-os.org/community/gsoc/2012/ideas
     7 * [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=74 Last work-in-progress page for 2012]
    2298----
    2309= Previous Years =
    23110== 2011 ==
    232 See official page here: [http://www.haiku-os.org/community/gsoc/2011/ideas]
    233 [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=59 Last work-in-progress page for 2011 ]
     11 * [http://www.haiku-os.org/community/gsoc/2011/ideas official page for 2011]
     12 * [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=59 Last work-in-progress page for 2011 ]
    23413== 2010 ==
    235 See official page here: [http://www.haiku-os.org/community/gsoc/2010/ideas]
     14 * [http://www.haiku-os.org/community/gsoc/2010/ideas  official page for 2010]
    23615[http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=26 Last work-in-progress page for 2010 ]
    23716== 2009 ==
    238 See official page here: [http://www.haiku-os.org/community/gsoc/2009/ideas]
    239 [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=7 Last work-in-progress page for 2009]
     17 * [http://www.haiku-os.org/community/gsoc/2009/ideas  official page for 2009]
     18 * [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=7 Last work-in-progress page for 2009]