From user-return-16587-apmail-couchdb-user-archive=couchdb.apache.org@couchdb.apache.org Wed Jun 8 22:35:48 2011
Return-Path:
X-Original-To: apmail-couchdb-user-archive@www.apache.org
Delivered-To: apmail-couchdb-user-archive@www.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by minotaur.apache.org (Postfix) with SMTP id 6FA95486C
for ; Wed, 8 Jun 2011 22:35:48 +0000 (UTC)
Received: (qmail 27288 invoked by uid 500); 8 Jun 2011 22:35:46 -0000
Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org
Received: (qmail 27255 invoked by uid 500); 8 Jun 2011 22:35:46 -0000
Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm
Precedence: bulk
List-Help:
List-Unsubscribe:
List-Post:
List-Id:
Reply-To: user@couchdb.apache.org
Delivered-To: mailing list user@couchdb.apache.org
Received: (qmail 27247 invoked by uid 99); 8 Jun 2011 22:35:46 -0000
Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230)
by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2011 22:35:46 +0000
X-ASF-Spam-Status: No, hits=-0.7 required=5.0
tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS
X-Spam-Check-By: apache.org
Received-SPF: pass (nike.apache.org: domain of ryan.ramage@gmail.com designates 74.125.82.54 as permitted sender)
Received: from [74.125.82.54] (HELO mail-ww0-f54.google.com) (74.125.82.54)
by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jun 2011 22:35:41 +0000
Received: by wwd20 with SMTP id 20so946997wwd.23
for ; Wed, 08 Jun 2011 15:35:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:mime-version:date:message-id:subject:from:to
:content-type;
bh=t18IiMxoGF5WM8OeBmSCMbKkWAD+IBGVAKocXuOr9ZM=;
b=fmlL2vzmDMOTjUvofTt4IUSUXfijfbMQIfJF/7VKZX2OeQygvsOLLqdiamW4JKGAd9
vA/x1a3KHYfOW30KH12TwYZzMq8tEjOrIV4jz+Rf/oS4uJZexofdZ/WgQeqFdewOdxbQ
Uhmgi8nqf/uy3HngTJ4IIibdSri73vBKERbl4=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:date:message-id:subject:from:to:content-type;
b=ar4URntX3FfEapggJcWnhy48x8WhuG9h3KrxRvo7iit31fzCyjSoff8g6BQXJQ+kcY
N9I9aLU5Yu2GE/Ou6/cdjoTYRfkuxySipQFWPeOMN/NOSS0YTSWACNpje956du7AlnJ3
J2i6tLUGFQjCpewhxXL+xPFl11hmu/b5xRmnI=
MIME-Version: 1.0
Received: by 10.227.5.194 with SMTP id 2mr8287102wbw.93.1307572520634; Wed, 08
Jun 2011 15:35:20 -0700 (PDT)
Received: by 10.227.145.133 with HTTP; Wed, 8 Jun 2011 15:35:20 -0700 (PDT)
Date: Wed, 8 Jun 2011 16:35:20 -0600
Message-ID:
Subject: Run Local Button - Improving End User Experience
From: Ryan Ramage
To: user
Content-Type: text/plain; charset=ISO-8859-1
X-Virus-Checked: Checked by ClamAV on apache.org
I am in the mist of a idea, and wanted to run it past the community
before I took it too far!
As one of couches main features is the ability to replicate couchapps,
I think it would be cool if couchapps
could have a "Download + Run Local" button. Here is what clicking on
that button would do:
1. Have a branded splash start for the couchapp.
2. Start a process that downloads the latest couchdb for the users os
3. Configures the local couch with some sane desktop defaults.
4. Starts replication with the source db.
5. After replication is complete, launch the local browser to the couchapp.
After that, the user would have:
1. a system tray icon (branded for that app) with some menu options
(open local site, open remote site, exit...)
2. a desktop/system menu launch icon.
The main goal here is a smooth experience for an end user for running
a local couchapp, sync'd with the original couch.
Implementation
I have most of the pieces for this already in some of the apps I have
built. Here is what I imagine:
1. A 'webstart design doc'. A couchapp that would want to use this
would install a design doc. It would look kind of like this:
http://reupholster.iriscouch.com/_utils/document.html?reupholster/_design/app
Yes, it is using java webstart, which is an old technology, but I
have found it working surprisingly well with couchdb.
2. A small java desktop process. Handles downloading, starting,
stopping, and config of the couch.
Yes, many of you will say java, blah blah :) ...but I also can see
having an optional couchdb-lucene, or elastic search, embedded in the
java process, connected with the new externals.
So I send it out there, what do you think. Would this be valuable?
Thoughts? Pitfalls? Duplicate projects?
Ryan
--
http://eckoit.com - Keep what you hear.
Twitter: @eckoit