From 1619acf213aa871d018e66e8c8a051a70e83006f Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Fri, 10 Mar 2017 16:57:19 -0500 Subject: [PATCH] eg 2017 hatch review doc Signed-off-by: Bill Erickson --- hatch-review.adoc | 55 +++++++++++++++++++++++++++++++------------ images/hatch_data_dir.png | Bin 0 -> 18078 bytes images/hatch_ext_warning.png | Bin 0 -> 22555 bytes 3 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 images/hatch_data_dir.png create mode 100644 images/hatch_ext_warning.png diff --git a/hatch-review.adoc b/hatch-review.adoc index f8671ebe5..2bd28b1c3 100644 --- a/hatch-review.adoc +++ b/hatch-review.adoc @@ -8,7 +8,10 @@ == Hatch In a Nutshell -"Hatch is the bionic arm of the Evergreen browser client" --Anonymous. +* Unmediated printing across multiple printers +* File storage free of browser restrictions or garbage collection + +[small]_"Hatch is the bionic arm of the Evergreen browser client." --Anonymous._ == Hatch Install Recap @@ -16,6 +19,28 @@ * Install Java code * Install the Chrome extension +== Testing the Java Install + +[source,sh] +--------------------------------------------------------------------------- +# Linux +% ./hatch.sh test + +# Windows +> C:\Users\berick> hatch.bat test + +2017-03-10 16:42:04 FINEST MessageWriter sending: {"clientid":1,... +2017-03-10 16:42:04 INFO Using data directory: /home/berick/.evergreen +2017-03-10 16:42:04 FINEST MessageReader read: {"clientid":1,... +2017-03-10 16:42:04 INFO Received message id=1 action=keys +2017-03-10 16:42:04 FINEST MessageWriter sending: {"clientid":1,... +2017-03-10 16:42:04 FINEST MessageReader read: {"clientid":1,... +2017-03-10 16:42:04 INFO TestJSON:doReceive(): {"clientid":1,... +2017-03-10 16:42:05 FINEST MessageWriter sending: {"clientid":1,... +... +--------------------------------------------------------------------------- + + == chrome://extensions/ image:images/hatch_chrome_ext.png[Hatch Extension] @@ -24,14 +49,22 @@ image:images/hatch_chrome_ext.png[Hatch Extension] image:images/hatch_icon.png[Hatch Diagram] +== Developer Mode Beware! + +image:images/hatch_ext_warning.png[Hatch Extension Warning] + == Hatch Config UI -image:images/hatch_config.png[Hatch Config] +image:images/hatch_settings.png[Hatch Config] == Hatch Printing UI image:images/hatch_print_config.png[Hatch Print Config] +== Hatch Message Flow + +image:images/Hatch_Flow_Diagram.png[Hatch Diagram] + == A Quick Word on Rendering Print Templates * Browser inserts template HTML into the page DOM. @@ -45,16 +78,6 @@ image:images/hatch_print_config.png[Hatch Print Config] ** Hatch does not inject any JS or CSS (but it can load remote content, i.e. scripts, css, images, etc.). -== Browser Extension Loading / Debugging - -https://developer.chrome.com/extensions/nativeMessaging - -TODO: Extensions running in developer mode can harm your computer... - -== Hatch Message Flow - -image:images/Hatch_Flow_Diagram.png[Hatch Diagram] - == Native Messaging API Sample print message JSON. @@ -80,9 +103,11 @@ egPrint.print({...}) is translated into: == Hatch Data Files -[source,js] ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- +Data is stored by default in the ".evergreen" directory in the user's +home directory. + +image:images/hatch_data_dir.png[Hatch Data Dir] + == Hatch Settings Files diff --git a/images/hatch_data_dir.png b/images/hatch_data_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1130d383e355e2542a942719786dd9ce1f72f2 GIT binary patch literal 18078 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 TXjMr9eZRYGWe=~u;GOV)4ERcR literal 0 HcmV?d00001 -- 2.11.0