From user-return-3103-apmail-couchdb-user-archive=couchdb.apache.org@couchdb.apache.org Sun Jan 25 21:50:19 2009 Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 33427 invoked from network); 25 Jan 2009 21:50:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 25 Jan 2009 21:50:19 -0000 Received: (qmail 81080 invoked by uid 500); 25 Jan 2009 21:50:17 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 81042 invoked by uid 500); 25 Jan 2009 21:50:17 -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 81029 invoked by uid 99); 25 Jan 2009 21:50:17 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 Jan 2009 13:50:17 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of antony.blakey@gmail.com designates 209.85.198.234 as permitted sender) Received: from [209.85.198.234] (HELO rv-out-0506.google.com) (209.85.198.234) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 Jan 2009 21:50:08 +0000 Received: by rv-out-0506.google.com with SMTP id g9so415557rvb.3 for ; Sun, 25 Jan 2009 13:49:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :content-type:content-transfer-encoding:mime-version:subject:date :x-mailer; bh=ArwH3zN8GZJFWFNY6ki/GpAeXazsk3f26pzou4ucS4A=; b=bTzM/UkzAZdNObO4LNdRqCGy3JyxZpn+rgIlYZQXZeazti3Pu8acU3TN99/1qBngbB J1adlQTMgaXzHO4/Svb4F/FnGR2rOqjWc5iTXanmYoWrp+gDPUE3LOzoetTekqN59n08 JYvKGhv2Oh/Aj9TibgTROZnnAIldp3GaqpvyU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:content-type:content-transfer-encoding :mime-version:subject:date:x-mailer; b=NaCifz2gL/rXThXdj66QPSmWUcIXQR6msvac92oL9FMC/VbZsGBylSXFsSUS3F0+Df 6t7wnQQ1arQ8YFi6wmi/ukQOISPRKdpfWfJVdIzAj8cIIb2TuFWMmaShRceTqszS6xK0 7GeAZBZhIn2fYH18jbou2GH5o5o3RTu9hmnZ0= Received: by 10.141.122.20 with SMTP id z20mr4131106rvm.171.1232920186664; Sun, 25 Jan 2009 13:49:46 -0800 (PST) Received: from ?192.168.0.16? (ppp121-45-81-35.lns10.adl6.internode.on.net [121.45.81.35]) by mx.google.com with ESMTPS id g22sm12487412rvb.1.2009.01.25.13.49.44 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 25 Jan 2009 13:49:46 -0800 (PST) Message-Id: <10610619-E149-496E-AFED-CF2971ACA139@gmail.com> From: Antony Blakey To: user@couchdb.apache.org Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Contract: CouchDB, Ruby/Merb, Safari/Mozilla Embedding, Win32 (Open Source). Date: Mon, 26 Jan 2009 08:19:42 +1030 X-Mailer: Apple Mail (2.930.3) X-Virus-Checked: Checked by ClamAV on apache.org Hi, ** Sorry if you see multiple posts of this, it's proving difficult getting it onto the list ** I have a (potential, likely) extension to a CouchDB contract I've been working on for a while. I need some Win32 work done which I'd rather not do myself, even if I had the time. It's similar to CouchDBX, but rather more specialized. It's 1-3 weeks effort based on my experience doing a similar thing on OSX. This is just a preliminary enquiry to see if anyone suitably capable is available and interested in order to get client approval. It would need to be completed by end of March, but RFN would be fine. Rate negotiable. * What is it? ** Part 1. I currently deploy CouchDB as a platform-specific ruby gem. Each of the binary libraries required (erlang, icu, spidermonkey etc) and some other binaries (nginx) are also packaged as individual gems, and requirements are managed using gem dependencies. Each package has a ruby class that knows how to extend the command line environment to include the binary resources (path/env vars/libpath etc) for a given platform, so e.g. the CouchDB ruby class calls the dependencies to set up a command line environment before starting Couch. In the case of Couch, the ruby class also allows you to configure multiple instances, and run/manage them from ruby. The binaries in each package are also location-independent, which is done by some munging in the Rakefile that builds the gem. This means that I can package an application that is isolated from the machine environment, relative to a given baseline. I've done this for OSX and Linux, and all is cool, although it has some flaws, such as not always terminating the OS process. I'm not so concerned about that as I am getting a running system that can be deployed on Windows. I need this done for Windows. Nginx could be Lighttpd, either of which must be configurable and managed via it's ruby wrapper. There must be no native code compilation required on gem install, and if e.g cygwin were required it would have to be hidden and not conflict with an existing cygwin installation. It will use a private Gem repository for the same reason. It needs to work on Windows XP, Vista, 7 and corresponding server versions. ** Part 2 I have a simple OSX wrapper application that provides my server (CouchDB + Merb + Nginx) as an OSX app. It includes an embedded Safari that is coupled to a merb-based webapp. That app will present a purely HTML interface, similar to the OSX Finder or iTunes, but that is not part of this contract. The webapp manages the updating of the gems (including e.g. CouchDB), the server lifecycle, replication and compaction, using XMPP to talk to a presence server etc, none of which is in this contract. I need the GUI portion and installer done for Windows XP, Vista, 7 and corresponding server versions. C++ or Ruby is fine C# at a pinch, although it must not require additional downloads e.g. .NET. It must require no other separate installation (e.g. Ruby must be included) and cannot use a shared Ruby install. The GUI manages/starts/stops/log the admin app and points the embedded Safari or Mozilla to an automatically selected port, and does nothing else. If it fails to start the app it must raise an explanatory dialog, obviously. All other functions are handled by the admin webapp. The app must be fully this-is-just-a-windows-app e.g. about box, help link, but it's pretty trivial. I'm not clear about the tradeoffs for embedding Gecko in a Windows app rather than IE, but I'm concerned about tracking the IE version for different client installs - maybe that's not an issue. This part really has nothing to do with Couch, but I'd want the same person to do both parts on a single contract. ** Legals Copyright would vest with Linkuistics (my company), but with a BSD license with credit to the author and Linkuistics, including the admin webapp and binary gems for each platform, including my OSX version, although the GUI wrapper may not, in the end, be required and hence not finished. ** Process At this stage I am gauging interest/possibility. Open to suggestions/ quotes/offers/enquiries. I haven't done non-local subbing before - I would need to have some way of verifying competence. I'm presuming that this list reaches most of the CouchDB-aware talent. Antony Blakey ------------- CTO, Linkuistics Pty Ltd Ph: 0438 840 787 Some defeats are instalments to victory. -- Jacob Riis