Difference between revisions of "Summer Of Code 2006"

From GNUstepWiki
Jump to navigation Jump to search
m (open source -> freely available)
 
(11 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
The [http://code.google.com/soc/ Summer Of Code] is a Google program that offers student developers stipends to create new freely available programs or to help currently established projects. It would be an excellent opportunity for GNUstep to fund some developments.
 
The [http://code.google.com/soc/ Summer Of Code] is a Google program that offers student developers stipends to create new freely available programs or to help currently established projects. It would be an excellent opportunity for GNUstep to fund some developments.
  
Here is some ideas:
+
 
 +
Here are some ideas -- Feel free to add more
 +
 
  
 
* '''Bindings, KVO support'''
 
* '''Bindings, KVO support'''
** We need NSController, NSArrayController, NSObjectController, NSTreeController, NSUserDefaultController, NSValueTransformer implementations. NSSortDescriptor has already been implemented by Saso Kiselkov. The current NSController is known to be buggy, as Apple rushed the release of this Class in 10.4. It is widely believed that these shortcomings will be fixed in Leopard (10.5), so perhaps we should wait a while.  
+
** We need NSController, NSArrayController, NSObjectController, NSTreeController, NSUserDefaultController, NSValueTransformer implementations. NSSortDescriptor has already been implemented by Saso Kiselkov. The current NSTreeController is known to be a bit buggy and have an API a bit flawed, as Apple rushed the release of this class in Mac OS 10.4. It is widely believed that these shortcomings will be fixed in Leopard (10.5), so perhaps we should wait a while.  
** The implementation was written by Richard Frith-Macdonald, and is only about 80% finished. Needs completion and testing.
+
** Key Value Observing implementation was written by Richard Frith-Macdonald, and is only about 80% finished. Needs completion and testing.
 +
 
  
 
* '''Porting'''
 
* '''Porting'''
** Port WebCore to GNUstep using gcc4.1
+
** Port [http://developer.apple.com/opensource/internet/webkit.html WebKit] (using GCC 4.x with ObjC++ support)
 +
 
  
 
* '''General Improvements'''
 
* '''General Improvements'''
** The Printing Support (better postcript generation, etc.)
+
** Printing Support (better postcript generation, etc.)
** The Cairo backend
+
** Cairo backend
 
** Windows support
 
** Windows support
 
** GNUstepWeb (add script language support, etc)
 
** GNUstepWeb (add script language support, etc)
 
** Finish input server [http://svn.gna.org/viewcvs/gnustep/libs/gui/branches/kazunobu_input_management/ support]
 
** Finish input server [http://svn.gna.org/viewcvs/gnustep/libs/gui/branches/kazunobu_input_management/ support]
** Compare current API with Tiger API, indicates  which are missing, and the status of the existing ones, then work to complete them... ;)
+
** Compare current API with Tiger's API, indicate which classes are missing, and summarize the current status of the existing ones, then work to complete them... ;) The best would be to have a tool which parses all headers (both from Cocoa and GNUstep) and outputs differences in HTML (XML probably too by the way). This would summarize missing classes, missing or partially implementated methods in existing classes and GNUstep-specific extensions. Eventually we should include links to the related documentation on both GNUstep and Cocoa web sites.
 +
 
  
 
* '''AppKit'''
 
* '''AppKit'''
** A PDFKit wrapper implementation around the Freedesktop Poppler library, which is also used in ViewPDF, a GNUstep PDF Viewer. Afterwards, having a built-in NSImageRep for  NSBitmapImageRep would be great.
+
** PDFKit wrapper implementation around the Freedesktop Poppler library, probably by wrapping PopplerKit (used in ViewPDF/Vindaloo, a GNUstep PDF Viewer). Afterwards, providing support in AppKit trough NSPDFImageRep would be great.
** there is [http://home.gna.org/gsimageapps/ PopplerKit/Vindaloo] which works well, but is currently lacking a maintainer.  
+
*** Here is a link to [http://home.gna.org/gsimageapps/ PopplerKit/Vindaloo] that works well, but is currently lacking a maintainer.  
** The Text System should be cleaned, profiled and finished. Many methods in NSLayoutManager are unfinished or unimplemented, so we currently cannot tweak the test system as much as the one provided by Cocoa. (Quentin Mathe)
+
** Text System should be cleaned, profiled and finished. Many methods in NSLayoutManager are unfinished or unimplemented, so we currently cannot tweak the test system as much as the one provided by Cocoa. (Quentin Mathe)
** We need NSTypeSetter, NSGlyphStorage, NSGlyphInfo, and NSGlyphGenerator implementations. If NSTypeSetter and NSLayoutManager were implemented, I (Quentin Mathe) would use them in Etoile.
+
** We need NSTypeSetter, NSGlyphStorage, NSGlyphInfo, and NSGlyphGenerator implementations. If NSTypeSetter and NSLayoutManager were implemented, they would probably be used in Etoile. (Quentin Mathe)
** NSTextTable, NSTextTableBlock, NSTextList, & NSTextBlock implementations would also bring the GNUstep text system in line with that of Cocoa as of Panther. NSTextList could be useful to build a powerful word processor. (Quentin Mathe)
+
** NSTextTable, NSTextTableBlock, NSTextList, & NSTextBlock implementations would also bring the GNUstep text system in line with that of Cocoa as of Mac OS 10.4. The classes could be useful to build a powerful word processor. (Quentin Mathe)
 
** Finish once and for all the NSTableView class, and have it work properly with any kind of cells. This is a big job, but sorely needed (Quentin Mathe)
 
** Finish once and for all the NSTableView class, and have it work properly with any kind of cells. This is a big job, but sorely needed (Quentin Mathe)
** The NSOpenGL Classes could be improved, made compatible with current Cocoa implementations, and further tested (Quentin Mathe)
+
** NSOpenGL Classes could be improved, made compatible with current Cocoa implementations, and further tested (Quentin Mathe)
 
** NSBitmapImageRep formats: Currenly, we support only reading and writing for TIFF, read-only for GIF, JPEG, PNG, PNM. We would like to have write support for these NSBitmapImageRep categories. Afterwards, SVG reading, then write support, would be nice. (Quentin Mathe)
 
** NSBitmapImageRep formats: Currenly, we support only reading and writing for TIFF, read-only for GIF, JPEG, PNG, PNM. We would like to have write support for these NSBitmapImageRep categories. Afterwards, SVG reading, then write support, would be nice. (Quentin Mathe)
** NSDatePicker, NSLevelIndicator (and obligatory -Cell) implementations.
+
** NSDatePicker, NSLevelIndicator (and obligatory companion NSCell subclasses) implementations.
** Updating NSDocument architecture with numerous modern methods which were introduced in 10.4. In 10.4, Apple deprecated many methods in NSDocument in favor of a more flexible and well-designed implementation.
+
** Updating NSDocument architecture with numerous modern methods which were introduced in Mac OS 10.4. In 10.4, Apple deprecated many methods in NSDocument in favor of a more flexible and well-designed implementation.
 
** NSFormatter isn't working very well at this time (Quentin Mathe)
 
** NSFormatter isn't working very well at this time (Quentin Mathe)
 +
  
 
* '''Base'''
 
* '''Base'''
** NSError improvements to allow better user messages. 10.4's NSDocument uses this.
+
** NSError related improvements to allow better user messages (with the new error responder chain). In Mac OS 10.4, NSDocument version uses this.
 
** NSLocale-compatible locale implementation could be useful for internationalization.
 
** NSLocale-compatible locale implementation could be useful for internationalization.
 
** NSDateComponents implementation.
 
** NSDateComponents implementation.
 
** NSCalendar implementation.
 
** NSCalendar implementation.
** NSIndexPath implementation.
+
** Finish the NSPredicate implementation. This was partially done by Quentin Mathe, but is untested. The most important part is not done, which is to write a parser and lexer for the custom language used by NSPredicate. Also needed for this are NSComparisonPredicate, NSCompoundPredicate, and NSExpression implementations.
** Finish the NSPredicate implementation. This was mostly done by Quentin Mathe, but is untested. The most important part is not done, which is to write a parser and lexer for the custom language used by NSPredicate. Also needed for this are NSComparisonPredicate, NSCompoundPredicate, and NSExpression implementations.
 
 
** Test the NSXMLParser Cocoa class wrapper around GSXML, written by Richard-Frith Macdonald. Once this is thoroughly tested, NSXMLDocument, NSXMLDTD, and NSXMLDTDNode, and NSXMLElement, and NSXMLNode implementations may be useful for compatibility.
 
** Test the NSXMLParser Cocoa class wrapper around GSXML, written by Richard-Frith Macdonald. Once this is thoroughly tested, NSXMLDocument, NSXMLDTD, and NSXMLDTDNode, and NSXMLElement, and NSXMLNode implementations may be useful for compatibility.
 +
  
 
* '''Misc'''
 
* '''Misc'''
 
** Create a AJAX Framework for GNUstepWeb
 
** Create a AJAX Framework for GNUstepWeb
  
Feel free to add other ideas !
 
  
 
== Note ==
 
== Note ==
  
 
We need [http://code.google.com/soc/mentorfaq.html mentor(s)] to manage the volunteers...
 
We need [http://code.google.com/soc/mentorfaq.html mentor(s)] to manage the volunteers...
 +
  
 
=== Mentors ===
 
=== Mentors ===
Line 55: Line 61:
 
- David Wetzel (dave at turbocat dot de) could mentor GSWeb related projects
 
- David Wetzel (dave at turbocat dot de) could mentor GSWeb related projects
  
- Quentin Mathe is willing to mentor GUI/AppKit and some Base related projects.
+
- Adam Fedor (backup mentor)
  
- Adam Fedor (backup mentor)
 
  
 
=== Students ===
 
=== Students ===
  
 
Nicolas Roard
 
Nicolas Roard
 +
 +
Quentin Mathé
 +
 +
[[Category:Summer Of Code]]

Latest revision as of 21:13, 8 March 2009

Summer Of Code 2006

The Summer Of Code is a Google program that offers student developers stipends to create new freely available programs or to help currently established projects. It would be an excellent opportunity for GNUstep to fund some developments.


Here are some ideas -- Feel free to add more


  • Bindings, KVO support
    • We need NSController, NSArrayController, NSObjectController, NSTreeController, NSUserDefaultController, NSValueTransformer implementations. NSSortDescriptor has already been implemented by Saso Kiselkov. The current NSTreeController is known to be a bit buggy and have an API a bit flawed, as Apple rushed the release of this class in Mac OS 10.4. It is widely believed that these shortcomings will be fixed in Leopard (10.5), so perhaps we should wait a while.
    • Key Value Observing implementation was written by Richard Frith-Macdonald, and is only about 80% finished. Needs completion and testing.


  • Porting
    • Port WebKit (using GCC 4.x with ObjC++ support)


  • General Improvements
    • Printing Support (better postcript generation, etc.)
    • Cairo backend
    • Windows support
    • GNUstepWeb (add script language support, etc)
    • Finish input server support
    • Compare current API with Tiger's API, indicate which classes are missing, and summarize the current status of the existing ones, then work to complete them... ;) The best would be to have a tool which parses all headers (both from Cocoa and GNUstep) and outputs differences in HTML (XML probably too by the way). This would summarize missing classes, missing or partially implementated methods in existing classes and GNUstep-specific extensions. Eventually we should include links to the related documentation on both GNUstep and Cocoa web sites.


  • AppKit
    • PDFKit wrapper implementation around the Freedesktop Poppler library, probably by wrapping PopplerKit (used in ViewPDF/Vindaloo, a GNUstep PDF Viewer). Afterwards, providing support in AppKit trough NSPDFImageRep would be great.
    • Text System should be cleaned, profiled and finished. Many methods in NSLayoutManager are unfinished or unimplemented, so we currently cannot tweak the test system as much as the one provided by Cocoa. (Quentin Mathe)
    • We need NSTypeSetter, NSGlyphStorage, NSGlyphInfo, and NSGlyphGenerator implementations. If NSTypeSetter and NSLayoutManager were implemented, they would probably be used in Etoile. (Quentin Mathe)
    • NSTextTable, NSTextTableBlock, NSTextList, & NSTextBlock implementations would also bring the GNUstep text system in line with that of Cocoa as of Mac OS 10.4. The classes could be useful to build a powerful word processor. (Quentin Mathe)
    • Finish once and for all the NSTableView class, and have it work properly with any kind of cells. This is a big job, but sorely needed (Quentin Mathe)
    • NSOpenGL Classes could be improved, made compatible with current Cocoa implementations, and further tested (Quentin Mathe)
    • NSBitmapImageRep formats: Currenly, we support only reading and writing for TIFF, read-only for GIF, JPEG, PNG, PNM. We would like to have write support for these NSBitmapImageRep categories. Afterwards, SVG reading, then write support, would be nice. (Quentin Mathe)
    • NSDatePicker, NSLevelIndicator (and obligatory companion NSCell subclasses) implementations.
    • Updating NSDocument architecture with numerous modern methods which were introduced in Mac OS 10.4. In 10.4, Apple deprecated many methods in NSDocument in favor of a more flexible and well-designed implementation.
    • NSFormatter isn't working very well at this time (Quentin Mathe)


  • Base
    • NSError related improvements to allow better user messages (with the new error responder chain). In Mac OS 10.4, NSDocument version uses this.
    • NSLocale-compatible locale implementation could be useful for internationalization.
    • NSDateComponents implementation.
    • NSCalendar implementation.
    • Finish the NSPredicate implementation. This was partially done by Quentin Mathe, but is untested. The most important part is not done, which is to write a parser and lexer for the custom language used by NSPredicate. Also needed for this are NSComparisonPredicate, NSCompoundPredicate, and NSExpression implementations.
    • Test the NSXMLParser Cocoa class wrapper around GSXML, written by Richard-Frith Macdonald. Once this is thoroughly tested, NSXMLDocument, NSXMLDTD, and NSXMLDTDNode, and NSXMLElement, and NSXMLNode implementations may be useful for compatibility.


  • Misc
    • Create a AJAX Framework for GNUstepWeb


Note

We need mentor(s) to manage the volunteers...


Mentors

- David Wetzel (dave at turbocat dot de) could mentor GSWeb related projects

- Adam Fedor (backup mentor)


Students

Nicolas Roard

Quentin Mathé