Changes between Version 60 and Version 61 of GoogleSummerOfCodeIdeas


Ignore:
Timestamp:
Jan 8, 2012, 6:54:22 PM (12 years ago)
Author:
mmadia
Comment:

updated content for 2012. Basically removed some tasks from 2011's list. edits encouraged.

Legend:

Unmodified
Added
Removed
Modified
  • GoogleSummerOfCodeIdeas

    v60 v61  
     1----
    12= Notice =
    2 
    3 The 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.
    4 
     3'''So far, Google has not announced plans for Google Summer of Code™ 2012'''. Here are some initial ideas, just in case they do.
     4----
     5
     6= Work-in-Progress: 2012 =
     7The 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 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.
     25
     26    AbiWord: Official 2011 ideas page http://www.abisource.com/wiki/Google_Summer_of_Code_2011
     27   
     28    Skill set: userland development, usability basics
     29
     30==== Updating and Extending WebPositive ====
     31       
     32        Haiku uses a WebKit based browser called WebPositive. This task would involve:
     33                * Update to newer WebKit codebase
     34                * Update (jam) build system to package WebKit as an OptionalBuildFeature, to be used by Haiku's build system
     35                * various webpositive tickets.
     36           
     37    Skill set: userland development, kernel development, possibly x86 assembly
     38       
     39==== VirtualBox port to Haiku ====
     40
     41    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]
     42
     43    Skill set: userland development
     44 
     45
     46[=#kernel]
     47=== Kernel/Filesystems ===
     48
     49==== Filesystems: general improvements ====
     50
     51    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.
     52
     53        * ReiserFS, BTRFS, exFAT: write support
     54        * UFS2, ZFS: Read (& Write) support
     55        * SMB, Windows shares: Read (& Write) support
     56        * HAMMER FS: Read (& Write) support
     57        * SquashFS: To support booting Haiku off SquashFS on a CD/DVD
     58
     59    Skill set: kernel and driver development
     60
     61==== IMAP FS: File system access to an IMAP account ====
     62    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.
     63
     64    Skill set: kernel and file system (driver) development, network development
     65
     66==== NFSv4 client with xattr support and caching ====
     67
     68    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.
     69
     70    Skill set: network protocols, maybe kernel development, userland development 
     71       
     72==== BFS Partition Resizer ====
     73
     74   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.
     75
     76   Skill set: driver development
     77
     78[=#drivers]
     79=== Drivers ===
     80
     81
     82==== ACPI Video Extensions ====
     83        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.
     84
     85        Suggested work: Detect attached devices for display adapters, implement a basic driver for a display, allow display switching and brightness control.
     86
     87        Requirements: computer with ACPI that has Acpi Video Extentions (_DOS _DOD and so on)
     88
     89        Skill set: kernel development, general C/C++, userland development
     90
     91==== AV/1394 support ====
     92   
     93    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.
     94   
     95        Requirements: a DV camera, a machine with a Firewire port.   
     96       
     97        Skill set: kernel development, API design, general C/C++, userland development
     98
     99==== TTY Layer ====
     100
     101    The TTY layer is needed for proper serial port support in Haiku.
     102    Until now the serial port was reserved for kernel debugging,
     103    but it is now time for proper userland support.
     104    Rewrite the API that was available in BeOS R5,
     105    and make sure it can be used with a real serial port.
     106    USB to serial converter may or may not be included.
     107
     108    Currently, the TTY layer is written mostly with the usb_serial
     109    in mind, so it uses stuff that might not be easy or possible at all to
     110    use in more low-level drivers (like pc_serial).
     111    The API could use improvements. Locking issues exist.
     112    Also the generic module is not yet in the image due to these.
     113
     114    Note: This task could include finishing phoudoin's libusb port, which would help to make the driver more feature complete.
     115       
     116        Skill set: kernel, and driver development
     117       
     118        Tickets: #35 #3232
     119
     120[=#network]
     121=== Network ===
     122
     123==== Bluetooth Stack Improvements ====
     124
     125    Haiku Bluetooth Stack implements basic functionality on lower and middle layers, this functionality needs to be completed and Bluetooth 2.X possibilities explored.
     126   
     127    Requirements: Bluetooth enabled Haiku system
     128   
     129    Skill set: C++, kernel development, userland development, global bluetooth stack knowledge(optional)
     130   
     131    Tasks: RemoteDevices Database, UserLand tools(Preferences), Pairing/Auth/Encryption use cases, etc.   
     132
     133==== Integrate our PPP implementation ====
     134
     135    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.
     136
     137    Tickets: #812, #869, #873, #922, #923, #1059, maybe: #1057, #1058
     138   
     139    Skill set: multi-threading basics, maybe network protocols and some kernel/drivers development, maybe userland development
     140
     141[=#ui]
     142=== User Interface ===
     143
     144==== Preflet GUI refactoring ====
     145
     146    Several preference applications (aka preflets) could be redesigned. This includes (but not limited to)
     147        * combining Keymap and Keyboard
     148        * #6983 Printer
     149        * #6206 integrate scrollbar options into a new Appearance preflet
     150        * Shortcuts
     151        * Network (todo, link to work-in-progress preflet)
     152        * ...,
     153
     154    Skill set: c++, userland development
     155
     156
     157===== Modular edit view (BIG) ====
     158    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.
     159    One solution is to provide a modular and powerful editor view that could be used in various Haiku applications.
     160
     161    The edit view design should be modular and extensible to make it easy to implement e.g. following features:
     162
     163        * syntax highlighting
     164        * spell checker
     165        * code completion, word completion
     166        * line numbers, ruler, 80 character limit line, hyper links
     167        * 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.
     168        * interface to external applications e.g. to jump from a compiler error to the according line in the code
     169
     170    Skill set: C++, userland development
     171
     172[=#media]
     173=== Media ===
     174
     175==== Merge CDPlayer into MediaPlayer ====
     176
     177    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.
     178   
     179    Skill set: general C/C++, userland development
     180   
     181[=#other]
     182
     183==== Fix and improve Haiku's mail system ====
     184
     185    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'''
     186
     187==== Hardware 3D acceleration ====
     188
     189    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.
     190
     191    Skill set: graphics drivers, API design
     192
     193    Related code: [http://dev.haiku-os.org/browser/haiku/branches/components/gallium3d development branch, containing gallium3d port]
     194
     195==== Trac Plugin: "Test and Commit Patch" functionality ====
     196   
     197    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.
     198
     199        Skill set: Python
     200
     201==== Add Haiku support to Allegro 5.0 ====
     202   
     203    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.
     204
     205==== Graphical project manager tool ====
     206
     207    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
     208default 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/
     209    Create some graphical tool to easily get started on 3rd party development in a few clicks. No need for a full-blown IDE.
     210
     211----
    5212= 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]
    9 
    10213== 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 ]
    13 
     214See official page here: [http://www.haiku-os.org/community/gsoc/2010/ideas]
     215[http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=26 Last work-in-progress page for 2010 ]
    14216== 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]
    17 
     217See official page here: [http://www.haiku-os.org/community/gsoc/2009/ideas]
     218[http://dev.haiku-os.org/wiki/GoogleSummerOfCodeIdeas?version=7 Last work-in-progress page for 2009]