Changes between Version 59 and Version 60 of GoogleSummerOfCodeIdeas


Ignore:
Timestamp:
Mar 2, 2011, 10:28:53 PM (9 years ago)
Author:
mmadia
Comment:

cleaned up the page, to reflect the migration of content to drupal.

Legend:

Unmodified
Added
Removed
Modified
  • GoogleSummerOfCodeIdeas

    v59 v60  
     1= Notice =
    12
    2 ----
     3The contents of this page have been migrated to our [http://www.haiku-os.org/community/gsoc Google Summer of Code] section on our http://www.haiku-os.org . Feel free to look at this [https://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=59 page's history] for additional ideas.
    34
    4 = This page is now being migrated to Drupal. =
     5= Previous Years =
     6== 2011 ==
     7 * [http://www.haiku-os.org/community/gsoc/2011/ideas Official 2011 ideas page]
     8 * [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=59 Last work-in-progess page for 2011]
    59
    6 ----
     10== 2010 ==
     11 * [http://www.haiku-os.org/community/gsoc/2010/ideas Official 2010 ideas page]
     12 * [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=26 Last work-in-progress page for 2010 ]
    713
     14== 2009 ==
     15 * [http://www.haiku-os.org/community/gsoc/2009/ideas Official 2009 ideas page]
     16 * [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=7 Last work-in-progress page for 2009]
    817
    9 
    10 = Work-in-Progress: 2011 =
    11 Google has announced Google Summer of Code 2011, here are some project ideas for Haiku.
    12 
    13 == Project Areas ==
    14 
    15  * [#apps Applications]
    16  * [#drivers Drivers]
    17  * [#kernel Kernel/Filesystems]
    18  * [#media Media]
    19  * [#network Network]
    20  * [#ui User interface]
    21  * [#other Other]
    22 
    23 [=#apps]
    24 === Applications ===
    25 
    26 ==== Updating AbiWord ====
    27    
    28     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 persue.  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.
    29 
    30         Skill set: UI development, usability basics
    31 
    32 ==== VirtualBox port to Haiku ====
    33 
    34     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]
    35 
    36         Skill set: userland development
    37  
    38 ==== Enhancements for Virtualization Software ====
    39 
    40     Haiku works nicely both on real hardware and virtualized machines, but lacks most of the so-called "guest additions" that allows smoother integration with the host. This include changing resolution on window resize, mouse automatically switching from host to guest and back, file sharing. Write such a guest addition package for virtualbox or/and vmware
    41 
    42         Skill set: userland development, driver development
    43 
    44 [=#kernel]
    45 === Kernel/Filesystems ===
    46 
    47 ==== Filesystems: general improvements ====
    48         * ReiserFS, BTRFS, exFAT: write support
    49         * UFS2, ZFS: Read (& Write) support
    50         * SMB, Windows shares: Read (& Write) support
    51         * HAMMER FS: Read (& Write) support
    52         * SquashFS: To support booting Haiku off SquashFS on a CD/DVD
    53 
    54     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.
    55 
    56     Skill set: kernel, and driver development
    57 
    58 ==== NFSv4 client with xattr support and caching ====
    59 
    60     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.
    61 
    62     Skill set: network protocols, maybe kernel development, userland development 
    63        
    64 ==== BFS Partition Resizer ====
    65 
    66    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.
    67 
    68 
    69 [=#drivers]
    70 === Drivers ===
    71 
    72 ==== USB 3.0 support ====
    73         * XHCI implementation
    74         Haiku has already some support for UHCI, OHCI and EHCI.
    75        
    76         Requirements: acquiring a PCI-e USB 3.0 board (30$).
    77 
    78         Skill set: kernel, and driver development
    79 
    80 ==== USB Video (UVC) ====
    81         This driver will support higher end webcams and other devices. This should be designed with portability to other OSes, which encourages the re-use of coding efforts for both Haiku and non-Haiku operating systems.
    82        
    83         Requirements: owning an UVC webcam.
    84        
    85         Related code: [http://dev.haiku-os.org/browser/haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc skeleton driver]
    86 
    87         Skill set: kernel, and driver development
    88 
    89 ==== ACPI Video Extensions ====
    90         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.
    91 
    92         Suggested work: Detect attached devices for display adapters, implement a basic driver for a display, allow display switching and brightness control.
    93 
    94         Requirements: computer with ACPI that has Acpi Video Extentions (_DOS _DOD and so on)
    95 
    96         Skill set: kernel development, general C/C++, userland development
    97 
    98 ==== AV/1394 support ====
    99    
    100     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.
    101    
    102         Requirements: a DV camera, a machine with a Firewire port.   
    103        
    104         Skill set: kernel development, API design, general C/C++, userland development
    105 
    106 ==== TTY Layer ====
    107 
    108     The TTY layer is needed for proper serial port support in Haiku.
    109     Until now the serial port was reserved for kernel debugging,
    110     but it is now time for proper userland support.
    111     Rewrite the API that was available in BeOS R5,
    112     and make sure it can be used with a real serial port.
    113     USB to serial converter may or may not be included.
    114 
    115     Currently, the TTY layer is written mostly with the usb_serial
    116     in mind, so it uses stuff that might not be easy or possible at all to
    117     use in more low-level drivers (like pc_serial).
    118     The API could use improvements. Locking issues exist.
    119     Also the generic module is not yet in the image due to these.
    120 
    121     Note: This task could include finishing phoudoin's libusb port, which would help to make the driver more feature complete.
    122        
    123         Skill set: kernel, and driver development
    124        
    125         Tickets: #35 #3232
    126 
    127 [=#network]
    128 === Network ===
    129 
    130 ==== Bluetooth Stack Improvements ====
    131 
    132     Haiku Bluetooth Stack implements basic functionality on lower and middle layers, this functionality needs to be completed and Bluetooth 2.X possibilities explored.
    133    
    134     Requirements: Bluetooth enabled Haiku system
    135    
    136     Skill set: C++, kernel development, userland development, global bluetooth stack knowledge(optional)
    137    
    138     Tasks: RemoteDevices Database, UserLand tools(Preferences), Pairing/Auth/Encryption use cases, etc.   
    139 
    140 ==== Integrate our PPP implementation ====
    141 
    142     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.
    143 
    144     Tickets: #812, #869, #873, #922, #923, #1059, maybe: #1057, #1058
    145    
    146     Skill set: multi-threading basics, maybe network protocols and some kernel/drivers development, maybe UI development
    147 
    148 [=#ui]
    149 === User Interface ===
    150 
    151 ==== Multi-monitor support for the app_server ====
    152 
    153     The app_server needs to handle multiple monitors in its internal screen representation and configuration. The drawing call dispatching would need to be split up, so that drawing commands are dispatched to different Accelerants.
    154    
    155     To ease development, having two graphics cards in your computer is recommended, as none of the existing Haiku drivers currently support dual head output correctly (as the accelerant interface does not define a way to use it).
    156 
    157     Skill set: graphics drivers, application design
    158 
    159 ==== Preflet GUI refactoring ====
    160 
    161     Several preference applications (aka preflets) could be redesigned. This includes (but not limited to)
    162         * combining Keymap and Keyboard
    163         * #6983 Printer
    164         * #6206 integrate scrollbar options into a new Appearance preflet
    165         * Shortcuts
    166         * Network (todo, link to work-in-progress preflet)
    167         * ...,
    168 
    169     Skill set: c++, UI development, usability basics
    170 
    171 [=#media]
    172 === Media ===
    173 
    174 ==== Merge CDPlayer into MediaPlayer ====
    175 
    176     The functionality of CDPlayer could be migrated into MediaPlayer, allowing the play back of audio cd's.
    177 
    178 [=#other]
    179 
    180 ==== Fix and improve Haiku's mail system ====
    181 
    182     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'''
    183 
    184 ==== Hardware 3D acceleration ====
    185 
    186     Design or port an existing 3D driver interface. See for example the Gallium3D project. Another option is to write a compatibility layer to load binary Linux 3D graphics drivers. There should probably still be our own 3D acceleration API for drivers.
    187 
    188     Skill set: graphics drivers, API design
    189 
    190     Related code: [http://dev.haiku-os.org/browser/haiku/branches/components/gallium3d development branch, containing gallium3d port]
    191 
    192 ==== [http://buildbot.net BuildBot] for Haiku's source tree ====
    193 
    194     Currently Haiku uses an in-house continuous integration solution [http://dev.osdrawer.net/projects/haikubuildomatic/repository/show/branches/rewrite2 Haiku Build-O-Matic].  Implementing a BuildBot would provide numerous features over Build-O-Matic. Some basic requirements would be to supporting building the various aspects of Haiku from source on numerous platforms (FreeBSD, linux based OS's, Haiku, ...,) [http://www.freelists.org/post/haiku/ATTN-Python-Developers-opportunities-for-contributing related thread]
    195 
    196         Skill set: Python
    197 
    198 ==== Trac Plugin: "Test and Commit Patch" functionality ====
    199    
    200     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.
    201 
    202         Skill set: Python
    203 
    204 ==== Create Language Bindings to Haiku's C++ API ====
    205 
    206     Scripting languages should be able to use the system API directly. Python and Perl have an object-oriented approach that would allow using the Be API and using the full power of the Be API right inside your scripts. This includes displaying windows, but also accessing the locale kit, or other native stuff.
    207 
    208     In previous years, it has been discussed to utilize a dual-layer approach: First to use SWIG to generate uniform bindings and then to have a more natural syntax that binds to the SWIG bindings.   
    209 
    210 ==== Update Haiku support in SDL 1.3 ====
    211    
    212     SDL 1.2 branch works on Haiku, but is a bit buggy still.  The new development is now focused on 1.3, which does not yet have native Haiku support.  Since the code in the 1.2 branch is so buggy, this may need a complete rewrite.
    213 
    214 ==== Add Haiku support to Allegro 5.0 ====
    215    
    216     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.
    217 
    218 ==== Graphical project manager tool ====
    219 
    220     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
    221 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/
    222     Create some graphical tool to easily get started on 3rd party development in a few clicks. No need for a full-blown IDE.
    223 
    224 ----
    225 = Previous Years =
    226 == 2010 ==
    227 See official page here: [http://www.haiku-os.org/community/gsoc/2010/ideas]
    228 [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=26 Last work-in-progress page for 2010 ]
    229 == 2009 ==
    230 See official page here: [http://www.haiku-os.org/community/gsoc/2009/ideas]
    231 [http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=7 Last work-in-progress page for 2009]