Chris
 
I've not looked at the V4 Signature rules in detail, but the V1 & V2 rules were implemented in this SimpleDB Client that I created years ago for use with both AWS SimpleDB and my M/DB clone:

https://s3.amazonaws.com/rtweeddata/simpleDBClient.xml

Not sure if that helps, but feel free to adapt as needed if it provides a useful starting point - start around line 426 which is the createHTTPRequest() function that creates a signed HTTP request

Rob

You could go a further step and run a JavaScript-based terminal console in a browser and hooking it up to Cache via Node.js.

See https://robtweed.wordpress.com/2014/03/03/ewd-js-and-vista-adding-a-java... for an example implementation

These days, you could use something like Electron to create what appears to be a Windows application, but in fact is a packaged up Chrome & Node.js environment.  In fact, IMO, this is how Atelier should have been implemented.

Remember that as soon as you have something such as this running in a browser, security (ie who has / hasn't access to the application running in the browser) becomes a major issue - you're giving command-line access to your Cache database!

"Perhaps the most difficult concept in Caché/MUMPS is its Global Structure."

A diagram or two might help get the concept of Global structure and the purpose of the $order function, as I've done here in explaining its cache.node implementation:

http://www.slideshare.net/robtweed/ewd-3-training-course-part-19-the-cachenode-apis

from slide 31

IMO that's a depressingly risk-averse approach.  The whole point of the IoT area and the Raspberry Pi is that it's still largely unexplored "solution looking for a problem" territory, where people try novel ideas out because they can and because it's cheap and easy to do so.  Sure, you can wait until the market-place is clearly defined and then provide your own "we can do that too" option (and effectively miss the boat as a result), or you can be truly innovative and put it out there and see what happens, potentially catalysing ideas as a result of it being there.  

That's been my philosophy for the last 20 years - if I'd been waiting for people to give me use cases, I'd not have developed a thing in all that time.

In answer to your question: 

"Can anyone recommend any tutorial or code example with installation instructions?"

I'd recommend reading through the comprehensive training course on EWD 3 at http://www.mgateway.com - click the Training tab there for details

The EWD 3 module called ewd-xpress provides a ready-to-run and easy-to-use Node.js-based platform for your Cache applications.  It uses cache.node to provide the connection to Cache and abstracts its APIs to make Cache behave as persistent JavaScript objects and a fine-grained Document Database. The online course will explain all!

I assume that as part of the initiative to enter the IoT marketplace, an ARM port of Cache is on the cards anyway?

if so, it might as well also run on the Raspberry Pi!

Needless to say, people are wanting to use databases, for all sorts of reasons, on the RPi - eg https://www.raspberrypi.org/forums/viewtopic.php?f=34&t=142506

and of course, they're ending up using the other usual databases that have made the investment to port to it.  So the RPi community remains unaware of what Cache could potentially do for them instead.

Seems like a missed opportunity to me, but there you go.

With Node.js versions coming in thick and fast, the question: "where do I get the appropriate version of cache.node?" is increasingly a problem for people who want to use Cache with Node.js.  

Bundling the latest versions of cache.node with build kits for the latest versions of Cache makes little sense - people need to use Node.js with whatever version of Cache they currently have installed and use.  If they update Node.js (which, as I say, is a frequent requirement these days), they won't want or expect to update Cache too.  So currently you have to download a Cache kit and install it on some temporary machine just to extract the latest cache.node files.

Instead, can I request that the cache.node kits are distributed separately in a location that users can know to look for?

Anyone else agree?

Rob