You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Eugenia Gabrielova (JIRA)" <ji...@apache.org> on 2015/11/10 06:46:10 UTC

[jira] [Comment Edited] (ASTERIXDB-1163) Usability of Asterix front-end examples - Discussion

    [ https://issues.apache.org/jira/browse/ASTERIXDB-1163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14997994#comment-14997994 ] 

Eugenia Gabrielova edited comment on ASTERIXDB-1163 at 11/10/15 5:45 AM:
-------------------------------------------------------------------------

Thanks [~csamak]! I've heard about your projects with LINQ and MongoDB and I appreciate the input. At the moment, the JS AQL library is a bit like that - the base functionality can just handle the AQL string, or functions can be used to form one e.g.,  "new query().where(...).groupBy(...);"

Your point about the lack of benefit if it's just a shell is definitely on my mind. I think these bindings could be really useful from a rapid prototyping perspective. Let's say you have a sweet geospatial dataset in AsterixDB, and you really want to see how it looks without dealing with a bunch of CSS and HTML setup. AsterixDB bindings in Python with modules for matplotlib [1] or ipython [2,3] support would allow the developer to do some fun prototyping and development without needing to touch Javascript/front-end code at all. Here's how I imagine an example looking from the command line, using the matplotlib Basemap [4] tool:

$ python
import asterixdb as a
a.connect("localhost", 19002)
a.dataverse("twitter")
res = a.query("for $t in dataset tweets return $t")
a.matplotlib.basemap(res)
[shiny plot generated]

No Javascript/HTML/CSS and awkward Chrome error messages. Just delicious text on a beautiful clean terminal, and a plot on the side. If you're feeling really fancy, generate an ipython notebook to demonstrate which AQL queries led to the plot. Easier to test automatically with no browser in the picture, so then we can properly integrate examples in the testing pipeline.

[1] matplotlib, a popular and stable BSD-licensed Python graphing library - http://matplotlib.org/
[2] ipython, a popular and stable BSD-licensed dev notebook tool - http://ipython.org/
[3] a nice ipython example with plots in it - http://nbviewer.ipython.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb
[4] Basemap, a geospatial component of matplotlib - http://matplotlib.org/basemap/


was (Author: egabrielova12):
Thanks [~csamak]! I've heard about your projects with LInQ and MongoDB and I appreciate the input. At the moment, the JS AQL library is a bit like that - the base functionality can just handle the AQL string, or functions can be used to form one e.g.,  "new query().where(...).groupBy(...);"

Your point about the lack of benefit if it's just a shell is definitely on my mind. I think these bindings could be really useful from a rapid prototyping perspective. Let's say you have a sweet geospatial dataset in AsterixDB, and you really want to see how it looks without dealing with a bunch of CSS and HTML setup. AsterixDB bindings in Python with modules for matplotlib [1] or ipython [2,3] support would allow the developer to do some fun prototyping and development without needing to touch Javascript/front-end code at all. Here's how I imagine an example looking from the command line, using the matplotlib Basemap [4] tool:

$ python
import asterixdb as a
a.connect("localhost", 19002)
a.dataverse("twitter")
res = a.query("for $t in dataset tweets return $t")
a.matplotlib.basemap(res)
[shiny plot generated]

No Javascript/HTML/CSS and awkward Chrome error messages. Just delicious text on a beautiful clean terminal, and a plot on the side. If you're feeling really fancy, generate an ipython notebook to demonstrate which AQL queries led to the plot. Easier to test automatically with no browser in the picture, so then we can properly integrate examples in the testing pipeline.

[1] matplotlib, a popular and stable BSD-licensed Python graphing library - http://matplotlib.org/
[2] ipython, a popular and stable BSD-licensed dev notebook tool - http://ipython.org/
[3] a nice ipython example with plots in it - http://nbviewer.ipython.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb
[4] Basemap, a geospatial component of matplotlib - http://matplotlib.org/basemap/

> Usability of Asterix front-end examples - Discussion
> ----------------------------------------------------
>
>                 Key: ASTERIXDB-1163
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1163
>             Project: Apache AsterixDB
>          Issue Type: Improvement
>          Components: Other
>         Environment: n/a
>            Reporter: Eugenia Gabrielova
>            Priority: Minor
>              Labels: SDK
>
> Motivation:
> While collaborating with [~javierjia], I observed that the SDK design and existing examples were not ideal for helping him get things done in his project. He mentioned that he found it more straightforward to submit queries directly and the Javascript resources available are too clunky. He wanted more ease of use in communicating with a remote machine.
> Discussion:
> The existing SDK setup and examples aren't great for getting things done and it can be challenging to untangle. I would like to refactor this code with significant design changes with feedback from the community on what is needed.
> Questions:
> - Those who have built (or would like to build) front-end stuff with Asterix - what would help you? What made your life difficult?
> - Thoughts on language-specific libraries? e.g., pysterix (python bridge for Asterix)
> Goal: I'd like to make it easy for people to build cool things on AsterixDB, without a messy front-end learning curve. This change would also make it easier to automatically test the examples (a concern recently mentioned in the mailing list). Drastically reducing the technical debt of the geospatial example is my next step.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)