Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C625610B50 for ; Wed, 19 Jun 2013 18:16:44 +0000 (UTC) Received: (qmail 10337 invoked by uid 500); 19 Jun 2013 18:16:44 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 10252 invoked by uid 500); 19 Jun 2013 18:16:44 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 10244 invoked by uid 99); 19 Jun 2013 18:16:44 -0000 Received: from minotaur.apache.org (HELO minotaur.apache.org) (140.211.11.9) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Jun 2013 18:16:44 +0000 Received: from localhost (HELO mail-ob0-f174.google.com) (127.0.0.1) (smtp-auth username chewbranca, mechanism plain) by minotaur.apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Jun 2013 18:16:44 +0000 Received: by mail-ob0-f174.google.com with SMTP id wd20so6338815obb.33 for ; Wed, 19 Jun 2013 11:16:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=Ffbv/rzWSxoemestsRN+LNCb6i2/WT2FkBPTH89A1xU=; b=Y+xNlLssilw2vxO6sTf2dcnjE1bSPaV1p3DmmBJDalSmI9KNllyEN3AoYVwwiJU16C kh3MPCXtaRQtEHbMlCTUa435Zbdh0WNrpiej0uaxe/l7Q9SjB1DzDtSbeuvrQ4jA5eIb PrYovKjYmfaO2FeH3N0amRJq/uWTzc+ltzlN8TyXWI5HB0yyhnpa7O4PulYzsRnaLlhO zEn1nACkH4ENBq3uzuEZn4OLn3xvTTPIoX5gMGEAtqlZRQmS7IZiXMZ37sFbmfmTWCxq nR8+nsHHywujp8oMgMnvcLEhWgLnMUl7fPy8s+tWifS5HNETtFGuF5QRi3OTjoYe8aPB W3MA== MIME-Version: 1.0 X-Received: by 10.60.37.5 with SMTP id u5mr2846403oej.35.1371665803173; Wed, 19 Jun 2013 11:16:43 -0700 (PDT) Received: by 10.60.51.161 with HTTP; Wed, 19 Jun 2013 11:16:42 -0700 (PDT) Date: Wed, 19 Jun 2013 11:16:42 -0700 Message-ID: Subject: Fauxton Tidings From: Russell Branca To: dev@couchdb.apache.org Content-Type: multipart/alternative; boundary=089e013cbe26f2f41d04df85d400 --089e013cbe26f2f41d04df85d400 Content-Type: text/plain; charset=ISO-8859-1 (Also gisted at https://gist.github.com/chewbranca/5816534) # Fauxton Tidings It's been some time since we've had a Fauxton update. There's been a number of exciting updates with active tasks, replication, UI updates and more. So let's dive in. ## Active Tasks Active tasks is an interesting item. Traditionally in Futon, active tasks have been relegated to the status page, but I'm of the opinion Fauxton should not only provide an interactive interface to your data, but also a visual overview of the current pulse of your CouchDB server. Things like active tasks, stats, and logs should be displayed prominently in some sort of dashboard page. Garren has been working on the logs and stats views in Fauxton, and DCH and Banjiewen have been experimenting with new stats collectors. Long term I would love to have a front dashboard showing you live views into this data. To start with, we're making active tasks a first class citizen of the application. Any time you're in Fauxton, it will poll \_active\_tasks and give you an immediate overview of the number of replications, compactions, and indexing jobs currently running, giving you immediate feedback on what is going on behind the scenes. Sue has been working on an initial active tasks page that lists all the current tasks with progress bars and ability to filter on the different types of tasks. Long term I want to extend the active tasks page to do more advanced visualizations and calculate rate of change to give estimates of time to completion. What else would be useful here? How do you want to see an overview of the background tasks running? ## Replication In addition to active tasks, Sue has been working on a replication interface. Step one is to build the transient replicator interface, basically the same interface that is in Futon now, but with a proper interface for all the different options such as choosing a filter function, and specifying doc ids. Step two is build out a proper interface around the _replicator database, allowing you to create new persistent replications, introspect existing replications, look at historic replications, and also to visually expose the powerful advanced options of the new replicator allowing higher throughput replications. What kinds of interfaces sounds useful for interacting with the replicator database? What would you find useful for creating and managing replications through Fauxton? One question I have, are transient replications through _replicate deprecated in favor of interacting with the _replicator database? at least as the default? Given that you can do one time replications through the _replicator database, should we default to creating a doc in _replicator rather than just POSTing to _replicate? We could always have an option for both, but given that it will store stats and allow you to see past history, it seems useful to use the _replicator db as the default option. Thoughts? ## UI Updates I'm excited to report that there are some great new designs for the Fauxton UI. ### _all_dbs page ![]( https://photos-2.dropbox.com/t/0/AACKz5BTiduULDSt2lUn4mFqE2fpsLPNKlJdjswDEQ7-pQ/12/211268/png/1024x768/3/1371668400/0/2/Fauxton_all_dbs.png/N_FfvrQzUmdvIZ4uC-r3S9w1qMSj5Xd7pDVFxxg46-0 ) Notice in the left hand bar the "active tasks" this will live update with the current number of tasks, and then allow you to go see a detailed view. ### Documents and indexes overview ![]( https://photos-4.dropbox.com/t/0/AAA7M3eASsA-aXwLB75fhzQOjsq0m6wphon_SsF5X-vaug/12/211268/png/1024x768/3/1371668400/0/2/Fauxton_all_docs.png/QgzRib3LcBbSpthmE9Fm3PgN4eBut-ZRdqBZ6wSHIS8 ) I'm a big fan of how this page turned out. The idea with the list of items is that the darker grey area with \_id and \_rev are the primary display of elements, and then you can toggle "collapse" above to show the inner content, basically it's a display for ?include\_docs=true. You can also keep it collapsed by default and click on the row to load that doc and display it inline individually. Initially the display is more of a document oriented approach in that it displays the json structure of the rows. The next step is to add a tabular view of the data, which is particularly useful for displaying views with complex array keys and scalar values. ### View editor ![]( https://photos-3.dropbox.com/t/0/AADJ1NUgyYTlo-h0aDkXdrmZ7e5xhAJ3Dk9IQOKDFqT_-A/12/211268/png/1024x768/3/1371668400/0/2/Fauxton_index_view_adv_options.png/tgHqUAghVhA76zZTcLGyFocYq1npgplMeUuoxM-ysWQ ) This is a fun page. The left hand editors for the map and reduce queries both use the CodeMirror editor which does nice syntax highlighting and proper indentation, and then we run every change made through JSHint and do live error notifications, and provide inline alerts right at the line in question. Also note the preview button. We borrowed the in browser map reduce implementation from PouchDB and provide preview functionality by running a subset of your documents through the map reduce functions directly in the browser, allowing us to skip temporary views. Long term it would be great to rebuild the temporary view system to only operate on a subset of the data, but until then, I think this is a better approach for allowing you to write and edit views on live data. Also having the advanced query options is something I've wanted in Futon for quite some time. There's some room for making group_level and the reduce toggle more accessible, but I think initially having all the options available is a big win. ### Document editor ![]( https://photos-3.dropbox.com/t/0/AACIB6p1BRyKljlytTqzi0mIRDjCHQlCYMs0eXQ7xj8FqQ/12/211268/png/1024x768/3/1371668400/0/2/Fauxton_code_editor.png/lfF6vhEXlEivV9QELkNr8EP9bkYAXmQPKLhrWCsHi4Q ) This is a slightly reworked version of the current code editor we have now. Same as above with the view editors, this uses CodeMirror and has all the nice live linting and what not. Not shown here is the work Garren has been doing on attachment uploads, which are currently functional in master. There has been some discussion about removing the stand alone page for the document editor and replacing it with a modal popup, so you can click the edit button directly from the documents and views list and have it show up immediately without losing your place. Thoughts? ## Wrapping up Well my battery is about to die and this turned into quite the update. Overall there are a number of exciting new things in Fauxton, and I'm really stoked with how the UI design turned out, props go out to Sean from Cloudant on that, my CSS is limited to adding Bootstrap elements. There's a lot of good activity going on in Fauxton, and it's quite straightforward to get up and running now. We've also got a number of open JIRA cases for anyone looking for something to work on. Cheers! --089e013cbe26f2f41d04df85d400--