couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antony Blakey <>
Subject Contract: CouchDB, Ruby/Merb, Safari/Mozilla Embedding, Win32 (Open Source).
Date Sun, 25 Jan 2009 21:49:42 GMT

** 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

View raw message