Size: 7366
Comment: Documentation projects are unlikely to be accepted by Google, so we should remove them.
|
Size: 8242
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
Line 7: | Line 6: |
=== wxPython === * Switch the build system to be based on bakefile instead of distutils. (Bakefile is a makefile and project file generator.) |
|
Line 8: | Line 9: |
=== wxPython === | * Develop a mechanism for allowing Python exceptions to pass through the C++ layers and be caught in python layers higher up the call stack. Implement and test. Check with RobinDunn about this first, I have some ideas and notes about how to do this already, it just needs feasibility testing and then actual implementation. |
Line 10: | Line 11: |
* Switch the build system to be based on bakefile instead of distutils. (Bakefile is a makefile and project file generator.) | * Complete the work needed to distribute wxPython as a Python egg. See [[http://lists.wxwidgets.org/cgi-bin/ezmlm-cgi?11:mss:73095:200802:hndcapodnmpbdhbnmgpn|Status of wxPython Eggs]] |
Line 12: | Line 13: |
* Develop a mechanism for allowing Python exceptions to pass through the C++ layers and be caught in python layers higher up the call stack. Implement and test. Check with RobinDunn about this first, I have some ideas and notes about how to do this already, it just needs feasibility testing and then actual implementation. | * Switch wxPython's SWIG interface files to directly using the new wx interface headers rather than manually copying each interface in the SWIG .i file. This would greatly reduce the maintenance work required to keep SWIG files updated. (Check with RobinDunn for more info.) |
Line 14: | Line 15: |
* Complete the work needed to distribute wxPython as a Python egg. See [[http://lists.wxwidgets.org/cgi-bin/ezmlm-cgi?11:mss:73095:200802:hndcapodnmpbdhbnmgpn|Status of wxPython Eggs]] | * wxPython Runtime Environment (Check with RobinDunn for what this means.) |
Line 16: | Line 17: |
* Switch wxPython's SWIG interface files to directly using the new wx interface headers rather than manually copying each interface in the SWIG .i file. This would greatly reduce the maintenance work required to keep SWIG files updated. (Check with RobinDunn for more info.) | * Integrate wxPython with web-based applications. Develop a framework for embedding web-based applications (like Google Docs, calendar, GMail, etc.) into wxPython, likely using wxWebKit as a embedding engine. To the extent possible, make these web-based AJAX/GUI applications look and feel like wxPython components, including having methods and properties (like gcalendar.GetEventsForDay(date=today) or gmail.Contacts) and if possible, support callbacks and user event triggers. This would make it easy to write hybrid web/desktop applications. |
Line 18: | Line 19: |
* wxPython Runtime Environment (Check with RobinDunn for what this means.) | * Extend last year's unit testing project. Tasks include: developing a utility for simulating native mouse and keyboard events, for testing user input handling, integrating the wxPython unit tests into the wxPython build process, so any new regressions can be flagged, setting up a buildbot so that changes in SVN automatically rebuild and run the unit tests, and of course adding code to test additional classes and methods. |
Line 20: | Line 21: |
* Integrate wxPython with web-based applications. Develop a framework for embedding web-based applications (like Google Docs, calendar, GMail, etc.) into wxPython, likely using wxWebKit as a embedding engine. To the extent possible, make these web-based AJAX/GUI applications look and feel like wxPython components, including having methods and properties (like gcalendar.GetEventsForDay(date=today) or gmail.Contacts) and if possible, support callbacks and user event triggers. This would make it easy to write hybrid web/desktop applications. | * Refactor FloatCanvas to make it possible to optionally use wx.!GraphicsContext for nice anti-aliasing and alpha blending effects, and other FloatCanvas tasks as directed by ChrisBarker. More info is [[http://morticia.cs.dal.ca/FloatCanvas/wiki/Refactor|here]] |
Line 22: | Line 23: |
* Extend last year's unit testing project. Tasks include: developing a utility for simulating native mouse and keyboard events, for testing user input handling, integrating the wxPython unit tests into the wxPython build process, so any new regressions can be flagged, setting up a buildbot so that changes in SVN automatically rebuild and run the unit tests, and of course adding code to test additional classes and methods. | * Create an extension module that provides an efficient conversion (at the C level) between wxBitmap and PIL images. |
Line 24: | Line 25: |
* Refactor FloatCanvas to make it possible to optionally use wx.!GraphicsContext for nice anti-aliasing and alpha blending effects, and other FloatCanvas tasks as directed by ChrisBarker. More info is [[http://morticia.cs.dal.ca/FloatCanvas/wiki/Refactor|here]] | * Make it possible for wxPython wrappers to use the "n-d array interface" introduced by the numpy project where appropriate. This would allow copy-free and efficient transfer of data for wx.Image, wx.Bitmap, wx.!PointList, etc, etc. The interface is supported by numpy, PIL, and probably other projects by now. I think it's slated to be a standard part of py3k. This would accomplish the previous one (wxBitmap <-> PIL image) as well. |
Line 26: | Line 27: |
* Create an extension module that provides an efficient conversion (at the C level) between wxBitmap and PIL images. | * Improve/extend or rewrite the implementation of GUI2Exe, so that it can support other exe-builders (other than py2exe), also on Linux and Mac (py2app, cx_Freeze and so on). |
Line 28: | Line 29: |
* Make it possible for wxPython wrappers to use the "n-d array interface" introduced by the numpy project where appropriate. This would allow copy-free and efficient transfer of data for wx.Image, wx.Bitmap, wx.!PointList, etc, etc. The interface is supported by numpy, PIL, and probably other projects by now. I think it's slated to be a standard part of py3k. This would accomplish the previous one (wxBitmap <-> PIL image) as well. | * Create a showcase application for wxPython that can not only be used to learn the basics of application design, but also serve as a starting point or framework for newbies to build their first application upon. See [[http://lists.wxwidgets.org/cgi-bin/ezmlm-cgi?11:mss:73115:200802:fomomhopfbkmejmacohh|this message]] for more details. |
Line 30: | Line 31: |
* Improve/extend or rewrite the implementation of GUI2Exe, so that it can support other exe-builders (other than py2exe), also on Linux and Mac (py2app, cx_Freeze and so on). | * Implement a solid, good looking, multi-threadead (background loading), Thumbnail View Control of a directory. Plug-in friendly architecture for "file actions" like Crop, Resize, Sent in email, etc. Also, plug-in friendly for custom "thumbs" of certain filetypes. |
Line 32: | Line 33: |
* Create a showcase application for wxPython that can not only be used to learn the basics of application design, but also serve as a starting point or framework for newbies to build their first application upon. See [[http://lists.wxwidgets.org/cgi-bin/ezmlm-cgi?11:mss:73115:200802:fomomhopfbkmejmacohh|this message]] for more details. | * A predefined AppFrame framework that will allow rapid creation of applications following a certain user interaction paradigm. Something like what you see in iTunes, IPhoto, Finder: - TopBar+SplitCenter+BottomBar - The Split Center should be a simple 2 sides split with the first taking a "zone/subzone selection" control that is a 2 level tree and a the second panel from the split being the actual zone that is selected. - The way to build applications with this framework would be by defining the Zones and having the framework create the left panel automatically from the zone definition. - The Top and Bottom toolbars should respect FIXED vertical sizes for uniformity. |
Line 35: | Line 40: |
* Using the new plugin facility, add support for a bunch of widgets that aren't there now. | |
Line 36: | Line 42: |
* Using the new plugin facility, add support for a bunch of widgets that aren't there now. | * A series of screencasts and tutorials that demonstrate how to use XRCed effectivly, and how to use and build upon the layouts and code that XRCed produces. |
Line 38: | Line 44: |
* A series of screencasts and tutorials that demonstrate how to use XRCed effectivly, and how to use and build upon the layouts and code that XRCed produces. * See also [[XRCed Wish List]] |
* See also [[XRCed Wish List]] |
Line 45: | Line 47: |
Line 62: | Line 63: |
}}} |
ha}}} |
Line 66: | Line 65: |
Line 69: | Line 67: |
* '''Sell your idea''' - Describe your idea in detail. What is the ultimate goal? What components will it have? What are the benefits for the user? How do you plan to ensure that the project gets completed on time? If a more detailed explanation of the idea already exists, what will you do that will go above and beyond all expectations? | * '''Sell your idea''' - Describe your idea in detail. What is the ultimate goal? What components will it have? What are the benefits for the user? How do you plan to ensure that the project gets completed on time? If a more detailed explanation of the idea already exists, what will you do that will go above and beyond all expectations? |
Line 71: | Line 69: |
* '''Sell yourself''' - Make sure you get across how enthusiastic you are about the project. The more enthusiastic you are, the more assured we will be that you will finish your project. It also indicates that there is a good chance you will stick around even after the Summer of Code has finished. Why are you interested in Open Source and wxPython in particular? What interests do you have, and how do these relate to the project for which you are applying? | * '''Sell yourself''' - Make sure you get across how enthusiastic you are about the project. The more enthusiastic you are, the more assured we will be that you will finish your project. It also indicates that there is a good chance you will stick around even after the Summer of Code has finished. Why are you interested in Open Source and wxPython in particular? What interests do you have, and how do these relate to the project for which you are applying? |
Line 73: | Line 71: |
* '''Be enthusiastic''' - Summer of Code is a very exciting opportunity, and wxPython is a very exciting project, with a long and proven history, to work on. We aren't just looking for someone who wants a summer job to pass their time and earn some money. We want people who have a passion towards open source and are likely to become constant contributors to wxPython and open source also once the summer has passed. The goal of the whole initiative is to have students find their way to open source together with mentoring and a good motivation. | * '''Be enthusiastic''' - Summer of Code is a very exciting opportunity, and wxPython is a very exciting project, with a long and proven history, to work on. We aren't just looking for someone who wants a summer job to pass their time and earn some money. We want people who have a passion towards open source and are likely to become constant contributors to wxPython and open source also once the summer has passed. The goal of the whole initiative is to have students find their way to open source together with mentoring and a good motivation. |
Line 75: | Line 73: |
* '''Don't be afraid''' - Do you have a brilliant idea not covered on the list of project ideas above? Excellent! We'd love to hear it. | * '''Don't be afraid''' - Do you have a brilliant idea not covered on the list of project ideas above? Excellent! We'd love to hear it. |
Line 79: | Line 76: |
Google SoC Project Ideas
This pages lists some suggested projects that could be proposed and implemented by participants of the Google Summer of Code program. Don't take this as restriction however, we will gladly accept work in any of these areas by others not participating in the Summer of Code too!
Proposals for projects not on this list will be gladly reviewed as well.
wxPython
- Switch the build system to be based on bakefile instead of distutils. (Bakefile is a makefile and project file generator.)
Develop a mechanism for allowing Python exceptions to pass through the C++ layers and be caught in python layers higher up the call stack. Implement and test. Check with RobinDunn about this first, I have some ideas and notes about how to do this already, it just needs feasibility testing and then actual implementation.
Complete the work needed to distribute wxPython as a Python egg. See Status of wxPython Eggs
Switch wxPython's SWIG interface files to directly using the new wx interface headers rather than manually copying each interface in the SWIG .i file. This would greatly reduce the maintenance work required to keep SWIG files updated. (Check with RobinDunn for more info.)
wxPython Runtime Environment (Check with RobinDunn for what this means.)
Integrate wxPython with web-based applications. Develop a framework for embedding web-based applications (like Google Docs, calendar, GMail, etc.) into wxPython, likely using wxWebKit as a embedding engine. To the extent possible, make these web-based AJAX/GUI applications look and feel like wxPython components, including having methods and properties (like gcalendar.GetEventsForDay(date=today) or gmail.Contacts) and if possible, support callbacks and user event triggers. This would make it easy to write hybrid web/desktop applications.
- Extend last year's unit testing project. Tasks include: developing a utility for simulating native mouse and keyboard events, for testing user input handling, integrating the wxPython unit tests into the wxPython build process, so any new regressions can be flagged, setting up a buildbot so that changes in SVN automatically rebuild and run the unit tests, and of course adding code to test additional classes and methods.
Refactor FloatCanvas to make it possible to optionally use wx.GraphicsContext for nice anti-aliasing and alpha blending effects, and other FloatCanvas tasks as directed by ChrisBarker. More info is here
- Create an extension module that provides an efficient conversion (at the C level) between wxBitmap and PIL images.
Make it possible for wxPython wrappers to use the "n-d array interface" introduced by the numpy project where appropriate. This would allow copy-free and efficient transfer of data for wx.Image, wx.Bitmap, wx.PointList, etc, etc. The interface is supported by numpy, PIL, and probably other projects by now. I think it's slated to be a standard part of py3k. This would accomplish the previous one (wxBitmap <-> PIL image) as well.
- Improve/extend or rewrite the implementation of GUI2Exe, so that it can support other exe-builders (other than py2exe), also on Linux and Mac (py2app, cx_Freeze and so on).
Create a showcase application for wxPython that can not only be used to learn the basics of application design, but also serve as a starting point or framework for newbies to build their first application upon. See this message for more details.
- Implement a solid, good looking, multi-threadead (background loading), Thumbnail View Control of a directory. Plug-in friendly architecture for "file actions" like Crop, Resize, Sent in email, etc. Also, plug-in friendly for custom "thumbs" of certain filetypes.
A predefined AppFrame framework that will allow rapid creation of applications following a certain user interaction paradigm. Something like what you see in iTunes, IPhoto, Finder:
- - The Split Center should be a simple 2 sides split with the first taking a "zone/subzone selection" control that is a 2 level tree and a the second panel from the split being the actual zone that is selected.
- - The way to build applications with this framework would be by defining the Zones and having the framework create the left panel automatically from the zone definition.
- - The Split Center should be a simple 2 sides split with the first taking a "zone/subzone selection" control that is a 2 level tree and a the second panel from the split being the actual zone that is selected.
XRCed
- Using the new plugin facility, add support for a bunch of widgets that aren't there now.
- A series of screencasts and tutorials that demonstrate how to use XRCed effectivly, and how to use and build upon the layouts and code that XRCed produces.
See also XRCed Wish List
Soc Proposal Guidelines
The application could have similar sections as in the following:
Name: E-mail Address: Project Title: Project Goals: Project Benefits: How does your project benefit wxWidgets and its community? Project Tasks and Deliverables: Break your project into tasks or pieces. Describe in detail what you plan to accomplish and what the results will be. Project Schedule: Estimate how long your project will take and how much time you have to dedicate on it. Try to establish a timed roadmap of the tasks to do. Personal Statement: Tell us about yourself. Describe why you are better than any other applicant for this project. ha
Tips for prospective students
Please try to not underestimate the scope of a project, but also not to overestimate it. Make working on your wxPython project your main activity for the entire summer, as to not go over deadlines. When writing your proposal, keep in mind that you aren't the only one writing one. We will have to accept a certain number of applications, so you have to make your application stand out to be selected.
Sell your idea - Describe your idea in detail. What is the ultimate goal? What components will it have? What are the benefits for the user? How do you plan to ensure that the project gets completed on time? If a more detailed explanation of the idea already exists, what will you do that will go above and beyond all expectations?
Sell yourself - Make sure you get across how enthusiastic you are about the project. The more enthusiastic you are, the more assured we will be that you will finish your project. It also indicates that there is a good chance you will stick around even after the Summer of Code has finished. Why are you interested in Open Source and wxPython in particular? What interests do you have, and how do these relate to the project for which you are applying?
Be enthusiastic - Summer of Code is a very exciting opportunity, and wxPython is a very exciting project, with a long and proven history, to work on. We aren't just looking for someone who wants a summer job to pass their time and earn some money. We want people who have a passion towards open source and are likely to become constant contributors to wxPython and open source also once the summer has passed. The goal of the whole initiative is to have students find their way to open source together with mentoring and a good motivation.
Don't be afraid - Do you have a brilliant idea not covered on the list of project ideas above? Excellent! We'd love to hear it.
Joining SoC
Note: You cannot be both a student and a mentor, the reasons why are available here.
Students who want to join and apply can find more information here.
Anyone who wants to become a mentor can find more information here.