Changes between Version 34 and Version 35 of GSoC/Ideas


Ignore:
Timestamp:
03/21/11 16:28:16 (3 years ago)
Author:
blaz
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • GSoC/Ideas

    v34 v35  
    55''Ideas are listed in no particular order.'' 
    66 
    7 == Bridge between Orange and R == 
     7== 3D Widgets in Orange == 
    88 
    9 [http://www.r-project.org/ R] contains many great methods/tools which would be also very useful in Orange. To prevent duplication of work (and implementation) it would be great to be able to use those methods/tools directly in Orange (so that it is not necessary to reimplement them in Orange). 
     9The idea is to support 3D visualizations in Orange Widgets. The task is to develop a 3D Plot class (similar to [http://qwtplot3d.sourceforge.net QwtPlot3D]) that can be used in an arbitrary Orange Widget instead of [http://orange.biolab.si/doc/widgets/graphing.htm OWGraph]. The second task is to develop use case examples, especially Scatterplot 3D and NetExplorer 3D. 
    1010 
    11 The idea is to research possibilities for this and then implement a future-proof bridge between Orange and R. 
     11Useful skills: Knowledge on 3D modeling ([http://doc.qt.nokia.com/latest/qtopengl.html QtOpenGL], [http://pyopengl.sourceforge.net/ PyOpenGL]). Python programming. 
    1212 
    13 Useful skills: Python. C/C++. Experience with R. Experience with program-to-program interfaces. 
    14  
    15 Level from 1 (beginner) to 5 (professional): 4 
    16  
    17 == Widgets in separate processes == 
    18  
    19 Widgets in Orange Canvas currently run in a single process. As they are independent given their inputs, they could frequently work in parallel (in a [wikipedia:Dataflow data-flow manner]). The objective of this task would be to modify Orange Canvas so that each widget would run in its own process. 
    20  
    21 It would be also useful to separate GUI thread from main payload computation of widgets. Currently we are using also just one thread for everything (GUI thread) and we have, while widget is working, to repeatedly callback into the GUI to make it responsive. It would be great to have this separated so that code would be cleaner. 
    22  
    23 Useful skills: Python programming with multiple processes and threads. Qt and PyQt experience. Program design. 
    24  
    25 Level from 1 (beginner) to 5 (professional): 5 
     13Level from 1 (beginner) to 5 (professional): 4.5 
    2614 
    2715== Support for parallel computation for scripting/backend == 
    2816 
    29 One other idea discusses the idea of making GUI process in parallel/separate processes. But this idea talks about having scripting part (backend part) of the Orange support (semi)automatic parallelisation/separation into processes and possible also processes over different computers. For example, [wikipedia:Cross-validation_(statistics) cross-validation] with multiple folds is one simple example of easy parallelized technique, as each fold can be independently computed and then easily combined into the final result. 
     17The project will develop the support for (semi)automatic parallelisation/separation into processes, and possible also distribution of processes over different computers. For example, [wikipedia:Cross-validation_(statistics) cross-validation] with multiple folds is one simple example of easy parallelized technique, as each fold can be independently computed and then easily combined into the final result. Parallelization should be seamless, from the point of view of the user - script writer. 
    3018 
    31 It would be good to analyze such opportunities for parallelization, find what they have in common and maybe devise a small helper library (possibly a wrapper for some existing grid computing system, like Xgrid) to use in code to easily make it run in parallel, if such environment is available, and run normally if not. And the of course move as much of already existing implementations to this new support for parallelization. 
     19It would be good to analyze such opportunities for parallelization, find what they have in common and maybe devise a small helper library (possibly a wrapper for some existing grid computing system) to use in code to easily make it run in parallel, if such environment is available, and run normally if not. And the of course move as much of already existing implementations to this new support for parallelization. 
    3220 
    3321Useful skills: Python. Grid computing experience. 
     
    8573Level from 1 (beginner) to 5 (professional): 3 
    8674 
     75== Widgets in separate processes == 
    8776 
    88 == 3D Widgets in Orange == 
     77Widgets in Orange Canvas currently run in a single process. As they are independent given their inputs, they could frequently work in parallel (in a [wikipedia:Dataflow data-flow manner]). The objective of this task would be to modify Orange Canvas so that each widget would run in its own process. 
    8978 
    90 The idea is to support 3D visualizations in Orange Widgets. The task is to develop a 3D Plot class (similar to [http://qwtplot3d.sourceforge.net QwtPlot3D]) that can be used in an arbitrary Orange Widget instead of [http://orange.biolab.si/doc/widgets/graphing.htm OWGraph]. The second task is to develop use case examples, especially Scatterplot 3D and NetExplorer 3D. 
     79It would be also useful to separate GUI thread from main payload computation of widgets. Currently we are using also just one thread for everything (GUI thread) and we have, while widget is working, to repeatedly callback into the GUI to make it responsive. It would be great to have this separated so that code would be cleaner. 
    9180 
    92 Useful skills: Knowledge on 3D modeling ([http://doc.qt.nokia.com/latest/qtopengl.html QtOpenGL], [http://pyopengl.sourceforge.net/ PyOpenGL]). Python programming. 
     81Useful skills: Python programming with multiple processes and threads. Qt and PyQt experience. Program design. 
    9382 
    94 Level from 1 (beginner) to 5 (professional): 4.5 
     83Level from 1 (beginner) to 5 (professional): 5 
     84 
     85== Bridge between Orange and R == 
     86 
     87[http://www.r-project.org/ R] contains many great methods/tools which would be also very useful in Orange. To prevent duplication of work (and implementation) it would be great to be able to use those methods/tools directly in Orange (so that it is not necessary to reimplement them in Orange). 
     88 
     89The idea is to research possibilities for this and then implement a future-proof bridge between Orange and R. 
     90 
     91Useful skills: Python. C/C++. Experience with R. Experience with program-to-program interfaces. 
     92 
     93Level from 1 (beginner) to 5 (professional): 4