Return-Path: X-Original-To: apmail-falcon-dev-archive@minotaur.apache.org Delivered-To: apmail-falcon-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EB10C114F0 for ; Sun, 13 Jul 2014 02:07:13 +0000 (UTC) Received: (qmail 21052 invoked by uid 500); 13 Jul 2014 02:07:13 -0000 Delivered-To: apmail-falcon-dev-archive@falcon.apache.org Received: (qmail 21010 invoked by uid 500); 13 Jul 2014 02:07:13 -0000 Mailing-List: contact dev-help@falcon.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@falcon.incubator.apache.org Delivered-To: mailing list dev@falcon.incubator.apache.org Received: (qmail 20998 invoked by uid 99); 13 Jul 2014 02:07:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Jul 2014 02:07:12 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ajaynsit@gmail.com designates 209.85.214.174 as permitted sender) Received: from [209.85.214.174] (HELO mail-ob0-f174.google.com) (209.85.214.174) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Jul 2014 02:07:10 +0000 Received: by mail-ob0-f174.google.com with SMTP id vb8so2550832obc.5 for ; Sat, 12 Jul 2014 19:06:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=YO/TDj2T03lOtRevGF2AmjQNQP184Sd5i8ylRXlSnAA=; b=S5Z4FnB3W8Az9zO3YtD96iu3oR04aiLwNqkhAFvPnVb52e/f9JSZ+ftHo/BiS/tWq7 sp4lYQKh5DbBI5NnF+GI28XkMMGm6f1jxN/aLt0fSMYV3r/fYDXGpqRIPkwnIN+DXY1J 6p/pffeTQYDPMcGqhU66Uvi0773H28J+ZdI7dUhw9GgPvsNEwzdXJU12OTQaQ14Ni2Ct NCHIIscb/oA5aqGLwZFt9XzLKdc12boj/3U3uElMBpiLWdsMeD7mWUgysOaLLl6LgfV1 mRchuALnLssNKK0Igl30LtDzlEWR4nfsOseq5DvQw/x7QliIImIoH4kFt0rdRZVmzQ0H JMlw== X-Received: by 10.60.120.98 with SMTP id lb2mr9008430oeb.52.1405217204977; Sat, 12 Jul 2014 19:06:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.76.79.10 with HTTP; Sat, 12 Jul 2014 19:06:14 -0700 (PDT) In-Reply-To: References: From: Ajay Yadav Date: Sun, 13 Jul 2014 07:36:14 +0530 Message-ID: Subject: Re: Admin Dashboard To: dev@falcon.incubator.apache.org Content-Type: multipart/alternative; boundary=047d7b339dbd55c75d04fe09a0c6 X-Virus-Checked: Checked by ClamAV on apache.org --047d7b339dbd55c75d04fe09a0c6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Any comments? I am awaiting your decision to start working on this. On Fri, Jul 11, 2014 at 11:10 AM, Ajay Yadav 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, angular= js > 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 us= e > of database for dashboards, talking to other services,plugins etc. by usi= ng > just dust.js. Things like hardcoding of rest server end points, graceful > degradation, number of parallel connections available in browser will lim= it > pure client side stacks. In other cases it will put a stress on falcon RE= ST > 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 w= ell. > Any future feature is possible to be built without dust.js and bootstr= ap > 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 genera= te > new random passwords when users forget passwords. Same for features li= ke > 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 involv= ed 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 u= se > 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 pars= e > 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 componen= t 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 developm= ent. > > > - *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 maintaini= ng > and extending these components in community if we develop them in djan= go > 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 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 eac= h >> 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 u= p >> 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 >> 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 hav= e >> > > > 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 pret= ty >> > 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 >> > > >> > > =E2=80=9CPerfection (in design) is achieved not when there is nothin= g more to >> > add, >> > > but rather when there is nothing more to take away.=E2=80=9D >> > > - Antoine de Saint-Exup=C3=A9ry >> > > >> > >> >> >> >> -- >> Regards, >> Venkatesh >> >> =E2=80=9CPerfection (in design) is achieved not when there is nothing mo= re to add, >> but rather when there is nothing more to take away.=E2=80=9D >> - Antoine de Saint-Exup=C3=A9ry >> > > --047d7b339dbd55c75d04fe09a0c6--