Hi,
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
Antony Blakey
-------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787
He who would make his own liberty secure, must guard even his enemy
from repression.
-- Thomas Paine