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


Reply via email to