falcon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Haohui Mai <h...@hortonworks.com>
Subject Re: Admin Dashboard
Date Sun, 13 Jul 2014 18:10:48 GMT
Thanks for your interests in contributing in Falcon. I am one of the
early contributors in Falcon UI, here are my two cents:

Falcon has a browser-server architecture which needs to address two
requirements:

1. Provide a feature-rich UI (e.g. FALCON-290) to the browser.

2. The server-side logics have to integrate with existing Hadoop
ecosystems (e.g., MapReduce, Hive, Pig, and Oozie) which are heavily
based on Java.

While personally I'm pretty open to any other technologies, but I am
yet to be convinced that how Python+Django will add any values to
address the above requirements. More concretely:

i. JavaScript is (and will continue to be) an essential part of the UI
to meet requirement (1). The python stack cannot replace the
JavaScript part on the client side.

ii. Falcon has to rely on Java to interact with other projects in the
Hadoop ecosystems, as there are few bindings in other languages for
these projects.


Using Python+Django might help attract attentions from the python
community, but I think that from the Falcon points of view, it is much
more important to keep align with the whole Hadoop ecosystems (which are
the main audiences of the Falcon project). Moreover, I don't think that the
merits that you mentioned for server-side technologies have to be coupled
with Python+Django -- in fact, there are many more implementation of
enterprise
features like exporting to Excel in Java.

In short, I think that the current choice of Java+REST+JavaScript is quite
reasonable. Though I'm pretty open to any other technologies, I'm yet to be
convinced that Python+Django can be a superior choice.


Thanks,
Haohui


On Sat, Jul 12, 2014 at 7:06 PM, Ajay Yadav <ajaynsit@gmail.com> wrote:

> Any comments? I am awaiting your decision to start working on this.
>
>
> On Fri, Jul 11, 2014 at 11:10 AM, Ajay Yadav <ajaynsit@gmail.com> wrote:
>
> > Hi Venkatesh,
> >
> > Valid question and I am glad that you gave an opportunity to discuss it.
> I
> > have no particular bias towards using django. I have worked with client
> > side templates(not dust.js but more popular alternatives like mustache,
> > handlebars etc.) and client side MV* frameworks like backbone.js,
> angularjs
> > etc. It is completely possible to use both together, most common case.
> >
> > *Note: *I looked at the existing code and saw that the current work in
> > dust.js is very less - around15-25 lines(only dust templates part not
> > html/css). So may I take the liberty of rephrasing your question slightly
> > as below
> >
> > *Question*: Assuming we can choose only one to keep stack mix to minimum
> > - shall we use pure client side framework(like dust.js) or  pure server
> > side framework(like django)?
> >
> > *Answer*:
> > *TLDR Version:*
> > Server side components offer more flexibility and extensibility than  a
> > pure client side framework. Using only client side stack will rule out
> use
> > of database for dashboards, talking to other services,plugins etc. by
> using
> > just dust.js. Things like hardcoding of rest server end points, graceful
> > degradation, number of parallel connections available in browser will
> limit
> > pure client side stacks. In other cases it will put a stress on falcon
> REST
> > API to be modified just for the dashboard. Using python stack instead of
> > javascript, will help in getting more support from community.
> >
> > *Long Version*
> >
> >    - *Convenience vs. Possibility* - Server side components give us
> >    flexibility and extensibility to build for any use case in future as
> well.
> >    Any future feature is possible to be built without dust.js and
> bootstrap
> >    but not other way around. Dust.js and bootstrap just make it easier
> to do
> >    lot of things to enhance user experience.
> >    - *Features* - Consider the login page of the dashboard. We will need
> >    a database to store users/ integrate with ldap. We will need to
> generate
> >    new random passwords when users forget passwords. Same for features
> like
> >    bookmarks, custom dashboards etc. A lot of features like this can't
> be done
> >    if we are not using any server side component.
> >    - *Sanity of  REST API* - REST services of falcon are not only for web
> >    browser consumption. They can be used by command line clients etc. as
> well.
> >    As the use cases for dashboard will evolve, it will become more
> involved to
> >    do things using js alone on client side and it will put lot of stress
> on
> >    modifying REST API to suit just the client. For example consider the
> use
> >    case of allowing an administrator to edit a process from an HTML
> form. REST
> >    API will return plain text/xml and it will be tedious and slow to
> parse
> >    everything in javascript side and then recreate it. Sending a json and
> >    accepting json just to cater to web client will be problem for
> >    - Another use case can be to be able to export the reports like SLAs
> >    missed in last quarter, metrics in pdf/excel format and it will not be
> >    possible to do it on client side and in lack of a server side
> component it
> >    will again put stress on REST API to be modified just for dashboard
> UI.
> >    - *Best Practices* - With just dust.js and simple htmls being served
> >    through a webserver, we will have to deal with naming urls with .html
> >    extensions, hardcoding the REST end points in each HTML etc.
> >    - *Browser constraints* - We will have to deal with browser
> >    constraints like number of parallel connections, cross site requests,
> >    javascript not being enabled etc. This will also restrict the
> development.
> >
> >
> >    - *Community Support* - This is purely my impression and I might be
> >    completely wrong here. I see that more python developers are involved
> with
> >    big data/data science/machine learning eco system than more javascript
> >    developers. Hence it will be easier to find more support for
> maintaining
> >    and extending these components in community if we develop them in
> django
> >    instead of dust.js.
> >
> >
> >
> >
> > On Fri, Jul 11, 2014 at 2:28 AM, Seetharam Venkatesh <
> > venkatesh@innerzeal.com> wrote:
> >
> >> I think we are using bootstrap and dust templates. I'd want to see if we
> >> need to introduce more technologies into the mix. Do we need Python and
> >> Django?
> >>
> >>
> >> On Thu, Jul 10, 2014 at 6:08 PM, Ajay Yadav <ajaynsit@gmail.com> wrote:
> >>
> >> > Thanks Srikanth and Venkatesh.
> >> >
> >> > I had looked at the UI and the graph database related code and I will
> >> reuse
> >> > existing code where ever available. I checked for compatibility of
> each
> >> of
> >> > the software being used and they are all compatible with APL 2.0
> >> (Python,
> >> > Django & Bootstrap).
> >> >
> >> > If you can assign the task to me on JIRA also, it will be
> >> > great(user:ajayyadava) Also, I got the balsamiq account for
> >> falcon(thanks
> >> > Srikant) and I will be asking all my questions on mocks there.
> >> >
> >> >
> >> >
> >> >
> >> > On Thu, Jul 10, 2014 at 2:45 PM, Seetharam Venkatesh <
> >> > venkatesh@innerzeal.com> wrote:
> >> >
> >> > > Welcome aboard Ajay. Please let us know how we can help you to get
> up
> >> and
> >> > > running on this. The REST APIs are documented at:
> >> > > http://falcon.incubator.apache.org/docs/restapi/ResourceList.html
> >> > >
> >> > > Thanks!
> >> > >
> >> > >
> >> > > On Thu, Jul 10, 2014 at 7:12 AM, Ajay Yadav <ajaynsit@gmail.com>
> >> wrote:
> >> > >
> >> > > > Hi,
> >> > > >
> >> > > > I would like to volunteer for
> >> > > > https://issues.apache.org/jira/browse/FALCON-37
> >> > > >
> >> > > > I have more than 7 years of experience in building websites.
I
> have
> >> > > > experience in both client side
> >> technologies(javascript/HTML5/Bootstrap
> >> > > > etc.) and server side technologies(Python/Django).
> >> > > >
> >> > > > I will need some help with iterating on the mocks as they don't
> >> seem to
> >> > > be
> >> > > > complete. I spent couple of hours on building a couple of pages
> >> using
> >> > > > "dummy" data to get an idea of what all APIs are required. Please
> >> find
> >> > > them
> >> > > > attached. They are just a quick and dirty prototype and UI is
> pretty
> >> > raw
> >> > > as
> >> > > > of now, to get quick feedback. I used Django,HTML5 & Bootstrap.
> >> > > >
> >> > > > Please let me know if I can own this task.
> >> > > >
> >> > > >
> >> > >
> >> > >
> >> > > --
> >> > > Regards,
> >> > > Venkatesh
> >> > >
> >> > > “Perfection (in design) is achieved not when there is nothing more
> to
> >> > add,
> >> > > but rather when there is nothing more to take away.”
> >> > > - Antoine de Saint-Exupéry
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> Regards,
> >> Venkatesh
> >>
> >> “Perfection (in design) is achieved not when there is nothing more to
> add,
> >> but rather when there is nothing more to take away.”
> >> - Antoine de Saint-Exupéry
> >>
> >
> >
>

-- 
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby notified that 
any printing, copying, dissemination, distribution, disclosure or 
forwarding of this communication is strictly prohibited. If you have 
received this communication in error, please contact the sender immediately 
and delete it from your system. Thank You.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message