Differences between revisions 8 and 9
Revision 8 as of 2014-01-25 14:05:56
Size: 334
Editor: MiraHagel
Comment:
Revision 9 as of 2014-02-09 11:39:15
Size: 10587
Comment: Undo vandalism
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Greetings! I'm Elaina Sparling but I don't like when people use my name. Software building is my profession. To enjoy hockey is really an issue that I am totally hooked on. I've always liked residing in Alabama but I'll need to move-in per year or two.<<BR>>
<<BR>>
My web page; [[http://diygiftideas.tumblr.com/|creative zen]]
== 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
     http://article.gmane.org/gmane.comp.python.reportlab.user/4052
 * 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)
 * NotebookInterfaceForIpython
 * ../PygameOnCtypes
 * 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.
 * 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 [[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).
 * 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. [[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.
 * PyGame Projects
  * Implement CodingProjectIdeas/PygameOnCtypes
  * Make a pygame plugin for IE, netscape. CodingProjectIdeas/PythonWebPlugin
  * ../PygameGui
  * ./SimpleNetworkingForPygame
 * 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?)
 * 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 [[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]]).
 * Implement mathematical formula typesetting using TeX algorithms and TeX fonts but without needing a TeX installation.
 * [[http://www.soya3d.org/wiki/Soya|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 [[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)
 * 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 [[http://peak.telecommunity.com/DevCenter/PythonEggs|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 [[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).
 

-----

Less fleshed-out ideas:
 * 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.''

      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

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.