anchor.diff:  Data flow is as follows:
   
   * The test data sample is loaded into the simple MNIST data browser writtein in Qt/C++.
  -* Upon the user click on the selected image, image is sent to Infinispan via REST.
  +* Upon the user click on the selected image, image is sent to the Infinispan server via REST.
   * Once the data arrives into Infinispan, custom cache event (containing image ID and its byte content) is sent to TensorFlow classifier - a separate application which contains remote Infinispan client and TF classifier itself.
   * The result is sent back to Infinispan.
  -* Having the result, Infinispan notifies NodeJS application listening for the new results, which sends the result of the classification together with original image to users web browers.
  -* Behind the scene Infinispan offloads the data into Ceph data store as the amount of data grows. Eviction policy is set to keep 5 most recent entries in Infispan, rest is moved into the Ceph as new data arrivies.
  +* Having the result, Infinispan notifies NodeJS application listening for the new results, which sends the result of the classification together with original image to the web brower of the user.
  +* Behind the scene, Infinispan offloads the data into Ceph data store as the amount of data grows. Eviction policy is set to keep 5 most recent entries in Infispan, rest is moved into the Ceph as new data arrivies.
   
   == Setup
   === Prerequisities
  
positive.code: * Infinispan server converter in `hr-server-converter` by simple `mvn clean package`.
    Copy the resulting bits (`target/hr-server-converter-0.0.1-SNAPSHOT.jar`) into `$ISPN_HOME/standalone/deployments`.
  * TF classifier app in `img-classifier` again by simple `mvn clean package`
  * Build MNIST sender app by
  [source,bash]
  ----
  mkdir build && cd build
  /opt/qt/5.7/gcc_64/bin/qmake ../mnist-sender.pro
  make
  ----
  * Clone https://github.com/vjuranek/infinispan-cachestore-ceph[Infinispan Ceph Cachestore] and build by `mvn package -Puberjar`.
    Copy the resulting bits (`target/infinispan-cachestore-ceph-1.0-SNAPSHOT-jar-with-dependencies.jar`) into `$ISPN_HOME/standalone/deployments`.
  
  === Configuring the app
  
  * Copy `conf/standalone.xml` into `$ISPN_HOME/standalone/configuration`.
  * In `standalone.xml` find element `<store class="org.infinispan.persistence.ceph.CephStore">` and setup correct IP addres Ceph monitor and credentials in properties of this element.
  
  === Running the app
  To avoid problem, start the pieces of the app in the following order:
  
  * Start Ceph data store.
  * Start Infinispan server.
  * Run TF classifierin `img-classifier` by `java -Djava.library.path=/opt/lib/tensorflow/r0.11 -jar target/tf-ispn-classifier-0.0.1-SNAPSHOT.jar`
  * Run NodeJs app
  * Run `mnist-sender` in `qt-sender/build`
  * Start the web browser and connect to `http://localhost:3000`
  
negative.code: For training NN and creating checkpoint file you can use script `img-classifier/src/main/python/nn2h.py`.
  Simply run the script, it will download required data automatically.
  Once the NN is trained, checkpoint file is store in `/tmp/my-model/nn2h.ckpt`.
  You should see success rate of the NN on the standard output.
  
  === Building the app
  You need to build following pieces:
  