> How complicated is the driver/what does it do?
It isn't terribly complicated. There's two programs that I wrote in the package, and one I did not. All are based on the "libcue" I wrote, also in the package. The deocder algorithm is a simple modified base-64 XOR 67. Jean-Philippe 'JP' Sugarbroad figured it out, and Colin Cross wrote code based on it and made me aware of it. I re-implemented it for the learning experience. The program named "decode" reads in a line of output from the cuecat for stdin or as first argument. CueCat output looks like this:
decode splits the Cue output into fields separeted buy ".". It ignores the first field and runs the rest through the base64+XOR decoder. This becomes the first line output. Digital Converegence added some additional "encryption" to their Web service; their program takes the output of the cuecat and inverts its case befoe sending it off to http://[server].dcnv.com/CRQ/1..[activation code].04.[cuecat scan].0
[Server] can be a, o, s, t, or u. [activation code] is supposed to be the activation code you get from your registration, but can be simply "ACTIVATIONCODE", which is actually what my spftware puts there. [cuecat scan] is the raw output of the device, minus the ALT-F10, with case inverted. Their servers send back a little blob of text containing several fields, including a suggested URL and description. Libcue parses those out and makes them available to its clients. Here's the scan of an NADA car-guide book:
The output of decode looks like this
DATA 000000001768443202 IB5 978034533392650599
Ringworld Larry Niven
The gnome panel applet reads in CueCat scans, looks up the :Cue at DCNV servers, and redirects Netscape to the suggested site, if any.
> What does their commercial software do exactly?
The same thing mine does, without the amazon lookup and with some annoying GUI features, like a tabbed CueCat panel.
> How many lines of code?
1258 according to "cat cuecat-applet.c cuecat-applet.h decode.c decode.h libcue.c libcue.h | wc -l"
Michael makes another interesting point in a seperate e-mail
When they sent the letter (Aug. 30), my software did not touch the DCNV servers to look up :Cues. It simply decoded the data, and if an ISBN number was scanned, the panel applet made Netscape go to the Amazon page blindly: http://www.amazon.com/exec/obidos/ASIN/[isbn number here].
So it was not the use of DCNV servers they objected to, but the mere decoding of the output of the cuecat. I didn't release the :Cue and Amazon lookup-enabled version until yesterday (Aug. 31), when the FedEx letter arrived by overnight delivery.
Thanks to Michael for taking the time to answer this stuff. It's pretty scary when the stuff that you have can't be poked at without a corporation demanding you stop. Imagine if Ford had said you can't open the hoods of your car a hundred years ago.