<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class="">On Mar 14, 2016, at 9:19 PM, sarthak agarwal <<a href="mailto:sarthak0415@gmail.com" class="">sarthak0415@gmail.com</a>> wrote:</div></blockquote><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="markdown-here-wrapper"><p class="" style="margin: 0px 0px 1.2em !important;">So what I understand from this is that we need some MVC like architecture where the <code class="" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);">controller</code> will be written in <code class="" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);">python</code> which handles the backend and <code class="" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);">view</code> will be in <code class="" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);">js</code> which handles the UI and data needs to flow between them . (correct me if I am wrong).</p></div></div></div></blockquote></div><div class="">Correct, the MVC system in jupyter is handled by ipywidgets [1] which use traitlets [2] to handle the status of a python object (the cesiumwidget uses the “on_change” callback to notice python about state-changes of a variable happening on the js side)</div><div class=""><br class=""></div><div class=""> <a href="https://github.com/ipython/ipywidgets" class="">https://github.com/ipython/ipywidgets</a> </div><div class=""><br class=""></div><div class=""> <a href="http://traitlets.readthedocs.org/en/stable/" class="">http://traitlets.readthedocs.org/en/stable/</a> </div><div class=""><br class=""></div><div class="">in the ipywidgets there are standard GUI elements like buttons, sliders, text input etc.</div><div class="">part of this project will aim to extent the widgets adding a "JS map canvas” which is based on cesium.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="markdown-here-wrapper"><p class="" style="margin: 0px 0px 1.2em !important;">I read the issue and it makes sense to me, but I need to setup the dev env for the project hence I need some time.<br class="">Is the repo of the project same as the issue, or should I clone different repo, and do you have some recommendation before cloning and installing</p></div></div></div></blockquote></div><div class=""><div class=""><br class=""></div><div class="">the main cesiumwidget repository is fine, we can continue the discussion about this specific coding task there.</div><div class=""><br class=""></div><div class="">The development of the GUI part during the GSoC period will be based on master version of both cesiumwidget, ipywidget and jupiter.</div><div class="">For the processing part the idea will make extensive use of the software tools available under the geopython organization <a href="http://geopython.github.io/" class="">http://geopython.github.io/</a></div><div class=""><br class=""></div><div class="">But the time is short, for this coding task you can avoid the installation steps and jump right into development.</div><div class=""><br class=""></div><div class="">Just download the latest OSGeo-Live iso from:</div><div class=""><br class=""></div><div class=""><a href="http://osprey.ucdavis.edu/downloads/osgeo/gisvm/gisvm/9.5rc1/" class="">http://osprey.ucdavis.edu/downloads/osgeo/gisvm/gisvm/9.5rc1/</a></div><div class=""><br class=""></div><div class="">and install it a Virtual Machine.</div><div class="">you will find the 2 main files in:</div><div class=""><br class=""></div><div class="">/usr/local/lib/python2.7/dist-packages/CesiumWidget-0.1.0-py2.7.egg/CesiumWidget/cesiumwidget.py  # for the python code</div><div class=""><br class=""></div><div class="">and in :</div><div class=""><br class=""></div><div class="">/usr/local/share/jupyter/nbextensions/CesiumWidget/cesium_widget.js  # for the JS code</div><div class=""><br class=""></div><div class="">Note:</div><div class=""><br class=""></div><div class="">This GSoC idea is a “Cross Project” development idea, where several tools available in the Open Source Ecosystem are used and development of novel code is required. I will focus on the use of the software tools available under the geopython organization <a href="http://geopython.github.io/" class="">http://geopython.github.io/</a>  </div><div class="">where the JS-cesiumwidget is used as map canvas to expose the capabilities of software libraries like owslib, pywps and pycsw.</div><div class=""><br class=""></div><div class="">The OSGeo-Live here is used as “substrate” where all this tools and data are made available. This will simplify the development of cross projects ideas and focus on “development” of novel tools.</div><div class=""><br class=""></div><div class="">For this idea to be successful a second co-mentor with a good JS background is desired.</div><div class="">I’ll add more details on the GSoC page late today.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Massimo.</div></div></body></html>