Differences between revisions 6 and 7
Revision 6 as of 2007-03-07 22:59:04
Size: 10469
Editor: 136-41-112
Comment: Added lxml+xmlsec, rabbitmq interface, and complete tlslite
Revision 7 as of 2008-11-15 14:00:13
Size: 10587
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
 * make [http://www.spread.org/ Spread] Python Binding compile with Python 2.4 on win32 (and possibly other major platforms)
 * Revive the code or idea from [http://www.cosc.canterbury.ac.nz/~greg/python_gui/ PyGUI] or [http://anygui.sourceforge.net/ Anygui]
     These are Python-level cross-toolkit compatibility libraries for GUI work. Currently there is a "live" project called [http://developer.berlios.de/projects/cimarron/ Cimarron] along these lines. (PyGUI is not a dead project, however Anygui is)
 * make [[http://www.spread.org/|Spread]] Python Binding compile with Python 2.4 on win32 (and possibly other major platforms)
 * Revive the code or idea from [[http://www.cosc.canterbury.ac.nz/~greg/python_gui/|PyGUI]] or [[http://anygui.sourceforge.net/|Anygui]]
     These are Python-level cross-toolkit compatibility libraries for GUI work. Currently there is a "live" project called [[http://developer.berlios.de/projects/cimarron/|Cimarron]] along these lines. (PyGUI is not a dead project, however Anygui is)
Line 14: Line 14:
 * Develop the Visual Designer and help update the documentation of [http://dabodev.com/ Dabo].
     Dabo is a framework for creating 3-tier desktop applications. The UI tier is a wrapper around [http://www.wxpython.org/ wxPython] that greatly streamlines and simplifies the wxPython API, and the Designer is a RAD tool for visually developing UI interfaces.
 * Develop the Visual Designer and help update the documentation of [[http://dabodev.com/|Dabo]].
     Dabo is a framework for creating 3-tier desktop applications. The UI tier is a wrapper around [[http://www.wxpython.org/|wxPython]] that greatly streamlines and simplifies the wxPython API, and the Designer is a RAD tool for visually developing UI interfaces.
Line 21: Line 21:
 * Design and implement an interface for manipulating both [http://www.openoffice.org/product/calc.html Calc] and [http://www.gnome.org/projects/gnumeric/ Gnumeric] spreadsheets (in the same way that DB-API allows programs to interact with a variety of databases).  * Design and implement an interface for manipulating both [[http://www.openoffice.org/product/calc.html|Calc]] and [[http://www.gnome.org/projects/gnumeric/|Gnumeric]] spreadsheets (in the same way that DB-API allows programs to interact with a variety of databases).
Line 25: Line 25:
 * Integrate a Javascript interpreter with Python. [http://webcleaner.sourceforge.net/ WebCleaner] has some initial work; so extracting, documenting, and refining that code would be in order. The whole spec is probably too much, but you could focus on langauge support, or on "what typical web pages actually need".
 * Implement [http://www.ieee802.org/1/pages/802.1x.html IEEE Std 802.1X] Authenticator for wired networks,with one of the low-level python networking libraries: [http://www.secdev.org/projects/scapy/ scapy],[http://twistedmatrix.comTwisted.Pair],[http://pycap.sourceforge.net/ pycap] or maybe something else.Probably some python firewall bindings will be needed too.
 * Integrate a Javascript interpreter with Python. [[http://webcleaner.sourceforge.net/|WebCleaner]] has some initial work; so extracting, documenting, and refining that code would be in order. The whole spec is probably too much, but you could focus on langauge support, or on "what typical web pages actually need".
 * Implement [[http://www.ieee802.org/1/pages/802.1x.html|IEEE Std 802.1X]] Authenticator for wired networks,with one of the low-level python networking libraries: [[http://www.secdev.org/projects/scapy/|scapy]],[[http://twistedmatrix.comTwisted.Pair]],[[http://pycap.sourceforge.net/|pycap]] or maybe something else.Probably some python firewall bindings will be needed too.
Line 32: Line 32:
 * Data mining in Python (e.g., adding a new data mining algorithm or tool to the Orange data mining suite, develop a new widget for text mining or 3-D data visualization, develop Orange interface to R or alike, port Orange to Mac OS X, [http://www.ailab.si/orange])
 * Add a wxPython/wax based object browser to the ipipe module which will be part of the next release of [http://ipython.scipy.org/ IPython] (more info on the [http://projects.scipy.org/ipython/ipython/wiki/GoogleSommerOfCode2006 IPython wiki]).
 * Implement a pure python library that handles unicode [http://www.unicode.org/cldr/ CLDR]. (like ICU?)
 * Data mining in Python (e.g., adding a new data mining algorithm or tool to the Orange data mining suite, develop a new widget for text mining or 3-D data visualization, develop Orange interface to R or alike, port Orange to Mac OS X, [[http://www.ailab.si/orange]])
 * Add a wxPython/wax based object browser to the ipipe module which will be part of the next release of [[http://ipython.scipy.org/|IPython]] (more info on the [[http://projects.scipy.org/ipython/ipython/wiki/GoogleSommerOfCode2006|IPython wiki]]).
 * Implement a pure python library that handles unicode [[http://www.unicode.org/cldr/|CLDR]]. (like ICU?)
Line 36: Line 36:
 * Work on [http://sage.scipy.org/sage/ SAGE], which is a Python-based free open source computer algebra system. SAGE is the algebraic analogue of [http://www.scipy.org scipy]---it incorporates and "glues together" a wide range of existing open-source mathematics packages such as Maxima, Matplotlib, and GAP. Here's a [http://sage.scipy.org/sage/projects list of projects] and an [mailto:wstein@gmail.com email contact].
 * Conduct a review of one chunk of functionality in [http://www.scipy.org scipy] similar to the one currently in progress about [http://projects.scipy.org/scipy/scipy/wiki/StatisticsReview the statistics package]. Alternatively, add a chunk of functionality to scipy. Recently discussed requests have been bindings to [http://www.llnl.gov/casc/sundials/ SUNDIALS], sparse matrices in [http://www.netlib.org/lapack/lug/node121.html LAPACK packed storage formats], 3-D Delaunay tetrahedralization and natural neighbour interpolation, and porting the [http://www.ncrg.aston.ac.uk/netlab/index.php Netlab] neural network code to scipy.
 * Add more plot types to the recently refactored [http://code.enthought.com/chaco/ Chaco] plotting library ([mailto:robert.kern@enthought.com contact]).
 * Make [http://code.enthought.com/traits/ Traits UI] available to Qt, Tk, or GTK applications ([mailto:robert.kern@enthought.com contact]).
 * Help make [http://ipython.scipy.org/ IPython's] capabilities available inside a wxPython application.
 * Use [http://www.cs.washington.edu/research/constraints/cassowary/ Cassowary] or some other constraint solving library to implement automatic, "nice" GUI layout.
 * Write general [http://pango.org/ Pango] bindings that can be used by Python libraries to do general text layout outside of PyGTK and pycairo.
 * Help merge the codebases of [http://matplotlib.sourceforge.net matplotlib] and [http://code.enthought.com/chaco/ Chaco] ([mailto:jdhunter@nitace.bsd.uchicago.edu contact], [mailto:robert.kern@enthought.com contact]).
 * Work on [[http://sage.scipy.org/sage/|SAGE]], which is a Python-based free open source computer algebra system. SAGE is the algebraic analogue of [[http://www.scipy.org|scipy]]---it incorporates and "glues together" a wide range of existing open-source mathematics packages such as Maxima, Matplotlib, and GAP. Here's a [[http://sage.scipy.org/sage/projects|list of projects]] and an [[mailto:wstein@gmail.com|email contact]].
 * Conduct a review of one chunk of functionality in [[http://www.scipy.org|scipy]] similar to the one currently in progress about [[http://projects.scipy.org/scipy/scipy/wiki/StatisticsReview|the statistics package]]. Alternatively, add a chunk of functionality to scipy. Recently discussed requests have been bindings to [[http://www.llnl.gov/casc/sundials/|SUNDIALS]], sparse matrices in [[http://www.netlib.org/lapack/lug/node121.html|LAPACK packed storage formats]], 3-D Delaunay tetrahedralization and natural neighbour interpolation, and porting the [[http://www.ncrg.aston.ac.uk/netlab/index.php|Netlab]] neural network code to scipy.
 * Add more plot types to the recently refactored [[http://code.enthought.com/chaco/|Chaco]] plotting library ([[mailto:robert.kern@enthought.com|contact]]).
 * Make [[http://code.enthought.com/traits/|Traits UI]] available to Qt, Tk, or GTK applications ([[mailto:robert.kern@enthought.com|contact]]).
 * Help make [[http://ipython.scipy.org/|IPython's]] capabilities available inside a wxPython application.
 * Use [[http://www.cs.washington.edu/research/constraints/cassowary/|Cassowary]] or some other constraint solving library to implement automatic, "nice" GUI layout.
 * Write general [[http://pango.org/|Pango]] bindings that can be used by Python libraries to do general text layout outside of PyGTK and pycairo.
 * Help merge the codebases of [[http://matplotlib.sourceforge.net|matplotlib]] and [[http://code.enthought.com/chaco/|Chaco]] ([[mailto:jdhunter@nitace.bsd.uchicago.edu|contact]], [[mailto:robert.kern@enthought.com|contact]]).
Line 45: Line 45:
 * [http://www.soya3d.org/wiki/Soya Soya3d] Projects  * [[http://www.soya3d.org/wiki/Soya|Soya3d]] Projects
Line 52: Line 52:
 * Improve [http://yaml.org/ YAML] [http://pyyaml.org/ support in Python], e.g.,
  * make [http://pyyaml.org/wiki/PySyck Python support in Syck] (C extension) as complete as Ruby's
  * make [http://whytheluckystiff.net/syck/ Syck] support Unicode
  * contribute to [http://pyyaml.org/wiki/PyYAML PyYAML] (pure Python version)
 * Improve [[http://yaml.org/|YAML]] [[http://pyyaml.org/|support in Python]], e.g.,
  * make [[http://pyyaml.org/wiki/PySyck|Python support in Syck]] (C extension) as complete as Ruby's
  * make [[http://whytheluckystiff.net/syck/|Syck]] support Unicode
  * contribute to [[http://pyyaml.org/wiki/PyYAML|PyYAML]] (pure Python version)
Line 57: Line 57:
 * Choose some common modules and [http://peak.telecommunity.com/DevCenter/PythonEggs eggsify] them; write about it to promote more eggsification  * Choose some common modules and [[http://peak.telecommunity.com/DevCenter/PythonEggs|eggsify]] them; write about it to promote more eggsification
Line 59: Line 59:
 * Write a [http://www.scipy.org scipy] module that implements black-box, [http://statistik.wu-wien.ac.at/projects/arvag/index.html automatic random number generation] algorithms for the numerous probability distributions defined in [http://www.scipy.org/doc/api_docs/scipy.stats.distributions.html scipy.stats] ([mailto:robert.kern@enthought.com contact]).
 * A more complete CD interface. [http://www.gnu.org/software/libcdio libcdio] is a library for Platform-dependent control and reading of a CD device. There is also some support for reading CD images (BIN/CUE CDRDAO, ISO) as though they were real devices. [http://freshmeat.net/projects/libcdio/?branch_id=62870 Some work] has been done to extend the API to Python, via SWIG. However this OO wrapping is not complete. In particular handling MMC (Multi-media) commands is missing and a CD-Paranoia interface (OO or not) is missing. All of the OO API's are fairly new, so if you feel you want to improve on the API, that's okay too.
 * A python interface to [http://www.rabbitmq.com/ rabbitmq]. They have a java interface right now (the engine itself is written in erlang) so you could use it for "inspiration".
 * Convince/help Trevor Perrin to make a full ssl interface (i.e., make [http://sourceforge.net/projects/tlslite tlslite] feature complete).
 * Implement [http://www.w3.org/TR/xmlenc-core/ Xml Encryption] and [http://www.w3.org/TR/xmldsig-core/ Xml Signature] '''using lxml'''
    * First iterate on a "pure" python prototype (using tlslite or whatever) to create a clean API, and after that use pyrex to bind directly against Aleskey's xmlsec package for better performance (maybe both implementations could live together, a la ElementTree/cElementTree and StringIO/cStringIO). Another option is to use something from the [http://xmlsig.sourceforge.net/ xmlsig project].
    * Another try on the quest for a clean API: Use [http://jcp.org/en/jsr/detail?id=105 jsr105] and [http://jcp.org/en/jsr/detail?id=106 jsr106] for a reference (obviously using python idioms instead of the java ones).
 * Write a [[http://www.scipy.org|scipy]] module that implements black-box, [[http://statistik.wu-wien.ac.at/projects/arvag/index.html|automatic random number generation]] algorithms for the numerous probability distributions defined in [[http://www.scipy.org/doc/api_docs/scipy.stats.distributions.html|scipy.stats]] ([[mailto:robert.kern@enthought.com|contact]]).
 * A more complete CD interface. [[http://www.gnu.org/software/libcdio|libcdio]] is a library for Platform-dependent control and reading of a CD device. There is also some support for reading CD images (BIN/CUE CDRDAO, ISO) as though they were real devices. [[http://freshmeat.net/projects/libcdio/?branch_id=62870|Some work]] has been done to extend the API to Python, via SWIG. However this OO wrapping is not complete. In particular handling MMC (Multi-media) commands is missing and a CD-Paranoia interface (OO or not) is missing. All of the OO API's are fairly new, so if you feel you want to improve on the API, that's okay too.
 * A python interface to [[http://www.rabbitmq.com/|rabbitmq]]. They have a java interface right now (the engine itself is written in erlang) so you could use it for "inspiration".
 * Convince/help Trevor Perrin to make a full ssl interface (i.e., make [[http://sourceforge.net/projects/tlslite|tlslite]] feature complete).
 * Implement [[http://www.w3.org/TR/xmlenc-core/|Xml Encryption]] and [[http://www.w3.org/TR/xmldsig-core/|Xml Signature]] '''using lxml'''
    * First iterate on a "pure" python prototype (using tlslite or whatever) to create a clean API, and after that use pyrex to bind directly against Aleskey's xmlsec package for better performance (maybe both implementations could live together, a la ElementTree/cElementTree and StringIO/cStringIO). Another option is to use something from the [[http://xmlsig.sourceforge.net/|xmlsig project]].
    * Another try on the quest for a clean API: Use [[http://jcp.org/en/jsr/detail?id=105|jsr105]] and [[http://jcp.org/en/jsr/detail?id=106|jsr106]] for a reference (obviously using python idioms instead of the java ones).
Line 71: Line 71:
 * An educational programming environment similar to [http://dewey.soe.berkeley.edu/boxer.html/index.html Boxer] for Python
     Kind of a visual programming environment, where blocks are translated into "boxes" (along with a few other select ideas). One of the more conservative visual programming environments, and it seems very translatable to Python. Or maybe work on a decent programming environment for [http://pylogo.org PyLogo]. ''Boxer isn't a programming environment. I think this idea isn't fleshed out enough.''
 * An educational programming environment similar to [[http://dewey.soe.berkeley.edu/boxer.html/index.html|Boxer]] for Python
     Kind of a visual programming environment, where blocks are translated into "boxes" (along with a few other select ideas). One of the more conservative visual programming environments, and it seems very translatable to Python. Or maybe work on a decent programming environment for [[http://pylogo.org|PyLogo]]. ''Boxer isn't a programming environment. I think this idea isn't fleshed out enough.''

Python library ideas

Suggestions that involve working on various third-party libraries that aren't part of the Python source tree.

  • Create a Pythonic auto-upgrade framework to allow scripts to update themselves to newer versions.
  • Add EPS import to ReportLab PDF library

  • make Spread Python Binding compile with Python 2.4 on win32 (and possibly other major platforms)

  • Revive the code or idea from PyGUI or Anygui

    • These are Python-level cross-toolkit compatibility libraries for GUI work. Currently there is a "live" project called Cimarron along these lines. (PyGUI is not a dead project, however Anygui is)

  • NotebookInterfaceForIpython

  • ../PygameOnCtypes

  • Develop the Visual Designer and help update the documentation of Dabo.

    • Dabo is a framework for creating 3-tier desktop applications. The UI tier is a wrapper around wxPython that greatly streamlines and simplifies the wxPython API, and the Designer is a RAD tool for visually developing UI interfaces.

  • Psyco for MacOSX. PPC, and universal binary versions. (Note: unlikely to find a mentor)
  • Create a bunch of modules like what Squeak has for 3D modeling, events etc. (the exact list may be somewhat different, I haven't researched this in any depth). This is inspired by a recommendation from Alan Kay made at the Shuttleworth workshop. (Would the (GPL) soya3D projects be relevant here?)
  • Design and implement an interface for manipulating both Calc and Gnumeric spreadsheets (in the same way that DB-API allows programs to interact with a variety of databases).

  • Write an IPC or RPC package to allow for concurrent Python execution. Compare with http://rpyc.sourceforge.net

  • Implement ctypes support for GCC ARM platforms. The underlying issue is lack of closure API support for ARM in libffi. A patch available at http://handhelds.org/~pb/arm-libffi.dpatch, that should be hopefully a good starting point. ctypes CVS has a libffi_arm_wince directory, which also seems to support closure API.

  • Create a Python web app server, synthesized from the many options already available, with an eye towards the total developer experience.
  • Integrate a Javascript interpreter with Python. WebCleaner has some initial work; so extracting, documenting, and refining that code would be in order. The whole spec is probably too much, but you could focus on langauge support, or on "what typical web pages actually need".

  • Implement IEEE Std 802.1X Authenticator for wired networks,with one of the low-level python networking libraries: scapy,http://twistedmatrix.comTwisted.Pair,pycap or maybe something else.Probably some python firewall bindings will be needed too.

  • PyGame Projects

  • Data mining in Python (e.g., adding a new data mining algorithm or tool to the Orange data mining suite, develop a new widget for text mining or 3-D data visualization, develop Orange interface to R or alike, port Orange to Mac OS X, http://www.ailab.si/orange)

  • Add a wxPython/wax based object browser to the ipipe module which will be part of the next release of IPython (more info on the IPython wiki).

  • Implement a pure python library that handles unicode CLDR. (like ICU?)

  • Take an existing set of sources for M2Crypto and build a robust distribution from it. This should include comprehensive API documentation, a full test suite, and providing a better Python interface, not just a light wrapper around openssl, for many of the functions like X.509 certificates that are not currently exposed.

  • Work on SAGE, which is a Python-based free open source computer algebra system. SAGE is the algebraic analogue of scipy---it incorporates and "glues together" a wide range of existing open-source mathematics packages such as Maxima, Matplotlib, and GAP. Here's a list of projects and an email contact.

  • Conduct a review of one chunk of functionality in scipy similar to the one currently in progress about the statistics package. Alternatively, add a chunk of functionality to scipy. Recently discussed requests have been bindings to SUNDIALS, sparse matrices in LAPACK packed storage formats, 3-D Delaunay tetrahedralization and natural neighbour interpolation, and porting the Netlab neural network code to scipy.

  • Add more plot types to the recently refactored Chaco plotting library (contact).

  • Make Traits UI available to Qt, Tk, or GTK applications (contact).

  • Help make IPython's capabilities available inside a wxPython application.

  • Use Cassowary or some other constraint solving library to implement automatic, "nice" GUI layout.

  • Write general Pango bindings that can be used by Python libraries to do general text layout outside of PyGTK and pycairo.

  • Help merge the codebases of matplotlib and Chaco (contact, contact).

  • Implement mathematical formula typesetting using TeX algorithms and TeX fonts but without needing a TeX installation.
  • Soya3d Projects

    • add multi-texture support (bump/normals mapping, etc)
    • verse support for shapes and materials
    • improved exporters/importers (blender, etc)
    • cal3d per-bone and morph animations
    • improved ode integration
    • api reference and improved examples/tutorials
  • Improve YAML support in Python, e.g.,

  • Review and consolidate libraries/ modules for, e.g., file metadata reading and writing (MS Word doc, PDF, GIF, MP3/ ID3)
  • Choose some common modules and eggsify them; write about it to promote more eggsification

  • Extend the CodeCoverage module to extend into os.fork() and os.exec('python') calls. Fix Nose to facilitate this.

  • Write a scipy module that implements black-box, automatic random number generation algorithms for the numerous probability distributions defined in scipy.stats (contact).

  • A more complete CD interface. libcdio is a library for Platform-dependent control and reading of a CD device. There is also some support for reading CD images (BIN/CUE CDRDAO, ISO) as though they were real devices. Some work has been done to extend the API to Python, via SWIG. However this OO wrapping is not complete. In particular handling MMC (Multi-media) commands is missing and a CD-Paranoia interface (OO or not) is missing. All of the OO API's are fairly new, so if you feel you want to improve on the API, that's okay too.

  • A python interface to rabbitmq. They have a java interface right now (the engine itself is written in erlang) so you could use it for "inspiration".

  • Convince/help Trevor Perrin to make a full ssl interface (i.e., make tlslite feature complete).

  • Implement Xml Encryption and Xml Signature using lxml

    • First iterate on a "pure" python prototype (using tlslite or whatever) to create a clean API, and after that use pyrex to bind directly against Aleskey's xmlsec package for better performance (maybe both implementations could live together, a la ElementTree/cElementTree and StringIO/cStringIO). Another option is to use something from the xmlsig project.

    • Another try on the quest for a clean API: Use jsr105 and jsr106 for a reference (obviously using python idioms instead of the java ones).


Less fleshed-out ideas:

  • An educational programming environment similar to Boxer for Python

    • Kind of a visual programming environment, where blocks are translated into "boxes" (along with a few other select ideas). One of the more conservative visual programming environments, and it seems very translatable to Python. Or maybe work on a decent programming environment for PyLogo. Boxer isn't a programming environment. I think this idea isn't fleshed out enough.

      • Having something similar to Simulink would be VERY useful in regards to the visual programming environment.
  • A more complete version of Modelica in Python would also be useful http://www.ercim.org/publication/Ercim_News/enw36/ernst.html or http://moncs.cs.mcgill.ca/people/ffan/report.dtml

CodingProjectIdeas/Libraries (last edited 2014-02-09 11:39:15 by MarcAndreLemburg)

Unable to edit the page? See the FrontPage for instructions.