From 5bb5eb3d8efdd25fae18288574b69ea1ec154457 Mon Sep 17 00:00:00 2001
From: Jean-Luc Parouty <Jean-Luc.Parouty@grenoble-inp.fr>
Date: Mon, 11 Jan 2021 01:16:04 +0100
Subject: [PATCH] Add error handling to ci test process

---
 fidle/02 - Running test.ipynb |  56 ++++---------
 fidle/03 - ci_report.ipynb    | 150 +++++++---------------------------
 fidle/ci/smart.yml            |  16 ++--
 fidle/cookci.py               |  84 ++++++++++---------
 fidle/logs/ci_report.html     | 148 +++++++--------------------------
 fidle/logs/ci_report.json     | 117 ++++++--------------------
 6 files changed, 151 insertions(+), 420 deletions(-)

diff --git a/fidle/02 - Running test.ipynb b/fidle/02 - Running test.ipynb
index bce3a25..db2326d 100644
--- a/fidle/02 - Running test.ipynb	
+++ b/fidle/02 - Running test.ipynb	
@@ -100,19 +100,18 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
+      "Finished file has been reset.\n",
+      "\n",
       "\n",
       "Notebook : LINR1\n",
       "    Run notebook.....done.\n",
       "    Duration :  0:00:04\n",
       "    Saved as :  01-Linear-Regression==done==.ipynb\n",
       "\n",
-      "Notebook : GTSRB1\n",
-      "    set overrides :\n",
-      "       FIDLE_OVERRIDE_GTSRB1_scale            = 0.1\n",
-      "       FIDLE_OVERRIDE_GTSRB1_output_dir       = ./data\n",
+      "Notebook : PER57\n",
       "    Run notebook.....done.\n",
-      "    Duration :  0:02:00\n",
-      "    Saved as :  01-Preparation-of-data==done==.ipynb\n",
+      "    Duration :  0:00:02\n",
+      "    Saved as :  01-Simple-Perceptron==done==.ipynb\n",
       "\n",
       "Notebook : GTSRB2\n",
       "    set overrides :\n",
@@ -120,46 +119,19 @@
       "       FIDLE_OVERRIDE_GTSRB2_dataset_name     = set-24x24-L\n",
       "       FIDLE_OVERRIDE_GTSRB2_batch_size       = 32\n",
       "       FIDLE_OVERRIDE_GTSRB2_epochs           = 3\n",
-      "       FIDLE_OVERRIDE_GTSRB2_scale            = 1\n",
-      "    Run notebook..."
-     ]
-    },
-    {
-     "ename": "DeadKernelError",
-     "evalue": "Kernel died",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mCancelledError\u001b[0m                            Traceback (most recent call last)",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/client.py\u001b[0m in \u001b[0;36masync_execute_cell\u001b[0;34m(self, cell, cell_index, execution_count, store_history)\u001b[0m\n\u001b[1;32m    815\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 816\u001b[0;31m             \u001b[0mexec_reply\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtask_poll_for_reply\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    817\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0masyncio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCancelledError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/futures.py\u001b[0m in \u001b[0;36m__await__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    262\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_asyncio_future_blocking\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 263\u001b[0;31m             \u001b[0;32myield\u001b[0m \u001b[0mself\u001b[0m  \u001b[0;31m# This tells Task to wait for completion.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    264\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdone\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/tasks.py\u001b[0m in \u001b[0;36m__wakeup\u001b[0;34m(self, future)\u001b[0m\n\u001b[1;32m    317\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 318\u001b[0;31m             \u001b[0mfuture\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    319\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/futures.py\u001b[0m in \u001b[0;36mresult\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    175\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_state\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0m_CANCELLED\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 176\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mCancelledError\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    177\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_state\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0m_FINISHED\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mCancelledError\u001b[0m: ",
-      "\nDuring handling of the above exception, another exception occurred:\n",
-      "\u001b[0;31mDeadKernelError\u001b[0m                           Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-4-36d9a3afb9e4>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mcookci\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_profile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msmart_profile\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;32m~/dev/fidle/fidle/cookci.py\u001b[0m in \u001b[0;36mrun_profile\u001b[0;34m(profile, top_dir)\u001b[0m\n\u001b[1;32m    165\u001b[0m         \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'    Run notebook...'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m''\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    166\u001b[0m         \u001b[0mep\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mExecutePreprocessor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m600\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkernel_name\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"python3\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 167\u001b[0;31m         \u001b[0mep\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpreprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnotebook\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    168\u001b[0m         \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'..done.'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    169\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbconvert/preprocessors/execute.py\u001b[0m in \u001b[0;36mpreprocess\u001b[0;34m(self, nb, resources, km)\u001b[0m\n\u001b[1;32m     77\u001b[0m         \u001b[0mNotebookClient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     78\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_assign_resources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 79\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     80\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     81\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/util.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m     72\u001b[0m     \"\"\"\n\u001b[1;32m     73\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mjust_run\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoro\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     75\u001b[0m     \u001b[0mwrapped\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     76\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/util.py\u001b[0m in \u001b[0;36mjust_run\u001b[0;34m(coro)\u001b[0m\n\u001b[1;32m     51\u001b[0m         \u001b[0mnest_asyncio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     52\u001b[0m         \u001b[0mcheck_patch_tornado\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 53\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_until_complete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoro\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nest_asyncio.py\u001b[0m in \u001b[0;36mrun_until_complete\u001b[0;34m(self, future)\u001b[0m\n\u001b[1;32m     96\u001b[0m                 raise RuntimeError(\n\u001b[1;32m     97\u001b[0m                     'Event loop stopped before Future completed.')\n\u001b[0;32m---> 98\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     99\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    100\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_thread_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mold_thread_id\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/futures.py\u001b[0m in \u001b[0;36mresult\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    179\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__log_traceback\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    180\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 181\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    182\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    183\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/tasks.py\u001b[0m in \u001b[0;36m__step\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m    247\u001b[0m                 \u001b[0;31m# We use the `send` method directly, because coroutines\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    248\u001b[0m                 \u001b[0;31m# don't have `__iter__` and `__next__` methods.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 249\u001b[0;31m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    250\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    251\u001b[0m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/client.py\u001b[0m in \u001b[0;36masync_execute\u001b[0;34m(self, reset_kc, **kwargs)\u001b[0m\n\u001b[1;32m    539\u001b[0m                 \u001b[0;31m# when store_history is False\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    540\u001b[0m                 await self.async_execute_cell(\n\u001b[0;32m--> 541\u001b[0;31m                     \u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexecution_count\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcode_cells_executed\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    542\u001b[0m                 )\n\u001b[1;32m    543\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_widgets_metadata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbconvert/preprocessors/execute.py\u001b[0m in \u001b[0;36masync_execute_cell\u001b[0;34m(self, cell, cell_index, execution_count, store_history)\u001b[0m\n\u001b[1;32m    121\u001b[0m         \u001b[0;31m# Copied and intercepted to allow for custom preprocess_cell contracts to be fullfilled\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    122\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstore_history\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstore_history\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 123\u001b[0;31m         \u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresources\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpreprocess_cell\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell_index\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    124\u001b[0m         \u001b[0;31m# Apply rules from nbclient for where to apply execution counts\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    125\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mexecution_count\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcell_type\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'code'\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msource\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbconvert/preprocessors/execute.py\u001b[0m in \u001b[0;36mpreprocess_cell\u001b[0;34m(self, cell, resources, index, **kwargs)\u001b[0m\n\u001b[1;32m    144\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_assign_resources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    145\u001b[0m         \u001b[0;31m# Because nbclient is an async library, we need to wrap the parent async call to generate a syncronous version.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 146\u001b[0;31m         \u001b[0mcell\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun_sync\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mNotebookClient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masync_execute_cell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstore_history\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstore_history\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    147\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/util.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m     72\u001b[0m     \"\"\"\n\u001b[1;32m     73\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mjust_run\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoro\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     75\u001b[0m     \u001b[0mwrapped\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     76\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/util.py\u001b[0m in \u001b[0;36mjust_run\u001b[0;34m(coro)\u001b[0m\n\u001b[1;32m     51\u001b[0m         \u001b[0mnest_asyncio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     52\u001b[0m         \u001b[0mcheck_patch_tornado\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 53\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_until_complete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoro\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nest_asyncio.py\u001b[0m in \u001b[0;36mrun_until_complete\u001b[0;34m(self, future)\u001b[0m\n\u001b[1;32m     96\u001b[0m                 raise RuntimeError(\n\u001b[1;32m     97\u001b[0m                     'Event loop stopped before Future completed.')\n\u001b[0;32m---> 98\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     99\u001b[0m         \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    100\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_thread_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mold_thread_id\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/futures.py\u001b[0m in \u001b[0;36mresult\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    179\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__log_traceback\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    180\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 181\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    182\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    183\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/asyncio/tasks.py\u001b[0m in \u001b[0;36m__step\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m    249\u001b[0m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    250\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 251\u001b[0;31m                 \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoro\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mthrow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    252\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    253\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_must_cancel\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m~/anaconda3/envs/fidle/lib/python3.7/site-packages/nbclient/client.py\u001b[0m in \u001b[0;36masync_execute_cell\u001b[0;34m(self, cell, cell_index, execution_count, store_history)\u001b[0m\n\u001b[1;32m    818\u001b[0m             \u001b[0;31m# can only be cancelled by task_poll_kernel_alive when the kernel is dead\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    819\u001b[0m             \u001b[0mtask_poll_output_msg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcancel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 820\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mDeadKernelError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Kernel died\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    821\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    822\u001b[0m             \u001b[0;31m# Best effort to cancel request if it hasn't been resolved\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mDeadKernelError\u001b[0m: Kernel died"
+      "       FIDLE_OVERRIDE_GTSRB2_scale            = 0.1\n",
+      "    Run notebook...\n",
+      "    ************************************************************\n",
+      "    ** AAARG.. An error occured :  CellExecutionError\n",
+      "    ** See notebook :  02-First-convolutions==ERROR==.ipynb for details.\n",
+      "    ************************************************************\n",
+      "    Duration :  0:00:02\n",
+      "    Saved as :  02-First-convolutions==ERROR==.ipynb\n"
      ]
     }
    ],
    "source": [
+    "cookci.reset_ci_report()\n",
     "cookci.run_profile(smart_profile)"
    ]
   },
diff --git a/fidle/03 - ci_report.ipynb b/fidle/03 - ci_report.ipynb
index 6403c5a..1bb74c8 100644
--- a/fidle/03 - ci_report.ipynb	
+++ b/fidle/03 - ci_report.ipynb	
@@ -19,149 +19,59 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
        "<style  type=\"text/css\" >\n",
-       "    #T_15a01_ td {\n",
+       "    #T_58cf4_ td {\n",
        "          font-size: 110%;\n",
        "          text-align: left;\n",
-       "    }    #T_15a01_ th {\n",
+       "    }    #T_58cf4_ th {\n",
        "          font-size: 110%;\n",
        "          text-align: left;\n",
-       "    }#T_15a01_row4_col5,#T_15a01_row13_col5,#T_15a01_row14_col5{\n",
+       "    }#T_58cf4_row2_col7{\n",
        "            background-color:  OrangeRed;\n",
        "             color: white;\n",
        "            background-color:  OrangeRed;\n",
        "             color: white;\n",
-       "        }</style><table id=\"T_15a01_\" ><thead>    <tr>        <th class=\"col_heading level0 col0\" >id</th>        <th class=\"col_heading level0 col1\" >Repo</th>        <th class=\"col_heading level0 col2\" >Name</th>        <th class=\"col_heading level0 col3\" >Start</th>        <th class=\"col_heading level0 col4\" >End</th>        <th class=\"col_heading level0 col5\" >Duration</th>    </tr></thead><tbody>\n",
+       "        }</style><table id=\"T_58cf4_\" ><thead>    <tr>        <th class=\"col_heading level0 col0\" >id</th>        <th class=\"col_heading level0 col1\" >dir</th>        <th class=\"col_heading level0 col2\" >src</th>        <th class=\"col_heading level0 col3\" >out</th>        <th class=\"col_heading level0 col4\" >start</th>        <th class=\"col_heading level0 col5\" >end</th>        <th class=\"col_heading level0 col6\" >duration</th>        <th class=\"col_heading level0 col7\" >state</th>    </tr></thead><tbody>\n",
        "                <tr>\n",
-       "                                <td id=\"T_15a01_row0_col0\" class=\"data row0 col0\" ><a href=\"../LinearReg/01-Linear-Regression.ipynb\">LINR1</a></td>\n",
-       "                        <td id=\"T_15a01_row0_col1\" class=\"data row0 col1\" >LinearReg</td>\n",
-       "                        <td id=\"T_15a01_row0_col2\" class=\"data row0 col2\" ><a href=\"../LinearReg/01-Linear-Regression.ipynb\"><b>01-Linear-Regression.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row0_col3\" class=\"data row0 col3\" >Sunday 10 January 2021, 22:54:49</td>\n",
-       "                        <td id=\"T_15a01_row0_col4\" class=\"data row0 col4\" >Sunday 10 January 2021, 22:54:53</td>\n",
-       "                        <td id=\"T_15a01_row0_col5\" class=\"data row0 col5\" >0:00:04</td>\n",
+       "                                <td id=\"T_58cf4_row0_col0\" class=\"data row0 col0\" ><a href='../LinearReg/01-Linear-Regression.ipynb'>LINR1</a></td>\n",
+       "                        <td id=\"T_58cf4_row0_col1\" class=\"data row0 col1\" >LinearReg</td>\n",
+       "                        <td id=\"T_58cf4_row0_col2\" class=\"data row0 col2\" ><a href='../LinearReg/01-Linear-Regression.ipynb'>01-Linear-Regression.ipynb</a></td>\n",
+       "                        <td id=\"T_58cf4_row0_col3\" class=\"data row0 col3\" ><a href='../LinearReg/01-Linear-Regression==done==.ipynb'>01-Linear-Regression==done==.ipynb</a></td>\n",
+       "                        <td id=\"T_58cf4_row0_col4\" class=\"data row0 col4\" >11/01/21 01:07:35</td>\n",
+       "                        <td id=\"T_58cf4_row0_col5\" class=\"data row0 col5\" >11/01/21 01:07:39</td>\n",
+       "                        <td id=\"T_58cf4_row0_col6\" class=\"data row0 col6\" >0:00:04</td>\n",
+       "                        <td id=\"T_58cf4_row0_col7\" class=\"data row0 col7\" >ok</td>\n",
        "            </tr>\n",
        "            <tr>\n",
-       "                                <td id=\"T_15a01_row1_col0\" class=\"data row1 col0\" ><a href=\"../BHPD/01-DNN-Regression.ipynb\">BHPD1</a></td>\n",
-       "                        <td id=\"T_15a01_row1_col1\" class=\"data row1 col1\" >BHPD</td>\n",
-       "                        <td id=\"T_15a01_row1_col2\" class=\"data row1 col2\" ><a href=\"../BHPD/01-DNN-Regression.ipynb\"><b>01-DNN-Regression.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row1_col3\" class=\"data row1 col3\" >Friday 8 January 2021, 01:09:13</td>\n",
-       "                        <td id=\"T_15a01_row1_col4\" class=\"data row1 col4\" >Friday 8 January 2021, 01:09:24</td>\n",
-       "                        <td id=\"T_15a01_row1_col5\" class=\"data row1 col5\" >00:00:11 984ms</td>\n",
+       "                                <td id=\"T_58cf4_row1_col0\" class=\"data row1 col0\" ><a href='../IRIS/01-Simple-Perceptron.ipynb'>PER57</a></td>\n",
+       "                        <td id=\"T_58cf4_row1_col1\" class=\"data row1 col1\" >IRIS</td>\n",
+       "                        <td id=\"T_58cf4_row1_col2\" class=\"data row1 col2\" ><a href='../IRIS/01-Simple-Perceptron.ipynb'>01-Simple-Perceptron.ipynb</a></td>\n",
+       "                        <td id=\"T_58cf4_row1_col3\" class=\"data row1 col3\" ><a href='../IRIS/01-Simple-Perceptron==done==.ipynb'>01-Simple-Perceptron==done==.ipynb</a></td>\n",
+       "                        <td id=\"T_58cf4_row1_col4\" class=\"data row1 col4\" >11/01/21 01:07:39</td>\n",
+       "                        <td id=\"T_58cf4_row1_col5\" class=\"data row1 col5\" >11/01/21 01:07:42</td>\n",
+       "                        <td id=\"T_58cf4_row1_col6\" class=\"data row1 col6\" >0:00:02</td>\n",
+       "                        <td id=\"T_58cf4_row1_col7\" class=\"data row1 col7\" >ok</td>\n",
        "            </tr>\n",
        "            <tr>\n",
-       "                                <td id=\"T_15a01_row2_col0\" class=\"data row2 col0\" ><a href=\"../BHPD/02-DNN-Regression-Premium.ipynb\">BHPD2</a></td>\n",
-       "                        <td id=\"T_15a01_row2_col1\" class=\"data row2 col1\" >BHPD</td>\n",
-       "                        <td id=\"T_15a01_row2_col2\" class=\"data row2 col2\" ><a href=\"../BHPD/02-DNN-Regression-Premium.ipynb\"><b>02-DNN-Regression-Premium.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row2_col3\" class=\"data row2 col3\" >Friday 8 January 2021, 01:10:28</td>\n",
-       "                        <td id=\"T_15a01_row2_col4\" class=\"data row2 col4\" >Friday 8 January 2021, 01:10:39</td>\n",
-       "                        <td id=\"T_15a01_row2_col5\" class=\"data row2 col5\" >00:00:12 582ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row3_col0\" class=\"data row3 col0\" ><a href=\"../GTSRB/01-Preparation-of-data.ipynb\">GTSRB1</a></td>\n",
-       "                        <td id=\"T_15a01_row3_col1\" class=\"data row3 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row3_col2\" class=\"data row3 col2\" ><a href=\"../GTSRB/01-Preparation-of-data.ipynb\"><b>01-Preparation-of-data.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row3_col3\" class=\"data row3 col3\" >Sunday 10 January 2021, 22:54:53</td>\n",
-       "                        <td id=\"T_15a01_row3_col4\" class=\"data row3 col4\" >Sunday 10 January 2021, 22:56:54</td>\n",
-       "                        <td id=\"T_15a01_row3_col5\" class=\"data row3 col5\" >0:02:00</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row4_col0\" class=\"data row4 col0\" ><a href=\"../GTSRB/02-First-convolutions.ipynb\">GTSRB2</a></td>\n",
-       "                        <td id=\"T_15a01_row4_col1\" class=\"data row4 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row4_col2\" class=\"data row4 col2\" ><a href=\"../GTSRB/02-First-convolutions.ipynb\"><b>02-First-convolutions.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row4_col3\" class=\"data row4 col3\" >Sunday 10 January 2021, 22:56:54</td>\n",
-       "                        <td id=\"T_15a01_row4_col4\" class=\"data row4 col4\" ></td>\n",
-       "                        <td id=\"T_15a01_row4_col5\" class=\"data row4 col5\" >Unfinished...</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row5_col0\" class=\"data row5 col0\" ><a href=\"../GTSRB/03-Tracking-and-visualizing.ipynb\">GTSRB3</a></td>\n",
-       "                        <td id=\"T_15a01_row5_col1\" class=\"data row5 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row5_col2\" class=\"data row5 col2\" ><a href=\"../GTSRB/03-Tracking-and-visualizing.ipynb\"><b>03-Tracking-and-visualizing.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row5_col3\" class=\"data row5 col3\" >Thursday 7 January 2021, 12:15:52</td>\n",
-       "                        <td id=\"T_15a01_row5_col4\" class=\"data row5 col4\" >Thursday 7 January 2021, 12:20:01</td>\n",
-       "                        <td id=\"T_15a01_row5_col5\" class=\"data row5 col5\" >00:04:09 711ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row6_col0\" class=\"data row6 col0\" ><a href=\"../GTSRB/04-Data-augmentation.ipynb\">GTSRB4</a></td>\n",
-       "                        <td id=\"T_15a01_row6_col1\" class=\"data row6 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row6_col2\" class=\"data row6 col2\" ><a href=\"../GTSRB/04-Data-augmentation.ipynb\"><b>04-Data-augmentation.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row6_col3\" class=\"data row6 col3\" >Thursday 7 January 2021, 13:40:52</td>\n",
-       "                        <td id=\"T_15a01_row6_col4\" class=\"data row6 col4\" >Thursday 7 January 2021, 13:41:31</td>\n",
-       "                        <td id=\"T_15a01_row6_col5\" class=\"data row6 col5\" >00:00:39 161ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row7_col0\" class=\"data row7 col0\" ><a href=\"../GTSRB/05-Full-convolutions.ipynb\">GTSRB5</a></td>\n",
-       "                        <td id=\"T_15a01_row7_col1\" class=\"data row7 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row7_col2\" class=\"data row7 col2\" ><a href=\"../GTSRB/05-Full-convolutions.ipynb\"><b>05-Full-convolutions.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row7_col3\" class=\"data row7 col3\" >Thursday 7 January 2021, 14:47:12</td>\n",
-       "                        <td id=\"T_15a01_row7_col4\" class=\"data row7 col4\" >Thursday 7 January 2021, 14:48:44</td>\n",
-       "                        <td id=\"T_15a01_row7_col5\" class=\"data row7 col5\" >00:01:32 269ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row8_col0\" class=\"data row8 col0\" ><a href=\"../GTSRB/06-Notebook-as-a-batch.ipynb\">GTSRB6</a></td>\n",
-       "                        <td id=\"T_15a01_row8_col1\" class=\"data row8 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row8_col2\" class=\"data row8 col2\" ><a href=\"../GTSRB/06-Notebook-as-a-batch.ipynb\"><b>06-Notebook-as-a-batch.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row8_col3\" class=\"data row8 col3\" >Thursday 7 January 2021, 15:41:17</td>\n",
-       "                        <td id=\"T_15a01_row8_col4\" class=\"data row8 col4\" >Thursday 7 January 2021, 15:41:18</td>\n",
-       "                        <td id=\"T_15a01_row8_col5\" class=\"data row8 col5\" >00:00:01 101ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row9_col0\" class=\"data row9 col0\" ><a href=\"../GTSRB/07-Show-report.ipynb\">GTSRB7</a></td>\n",
-       "                        <td id=\"T_15a01_row9_col1\" class=\"data row9 col1\" >GTSRB</td>\n",
-       "                        <td id=\"T_15a01_row9_col2\" class=\"data row9 col2\" ><a href=\"../GTSRB/07-Show-report.ipynb\"><b>07-Show-report.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row9_col3\" class=\"data row9 col3\" >Thursday 7 January 2021, 15:16:05</td>\n",
-       "                        <td id=\"T_15a01_row9_col4\" class=\"data row9 col4\" >Thursday 7 January 2021, 15:16:06</td>\n",
-       "                        <td id=\"T_15a01_row9_col5\" class=\"data row9 col5\" >00:00:00 116ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row10_col0\" class=\"data row10 col0\" ><a href=\"../SYNOP/01-Preparation-of-data.ipynb\">SYNOP1</a></td>\n",
-       "                        <td id=\"T_15a01_row10_col1\" class=\"data row10 col1\" >SYNOP</td>\n",
-       "                        <td id=\"T_15a01_row10_col2\" class=\"data row10 col2\" ><a href=\"../SYNOP/01-Preparation-of-data.ipynb\"><b>01-Preparation-of-data.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row10_col3\" class=\"data row10 col3\" >Saturday 9 January 2021, 10:04:28</td>\n",
-       "                        <td id=\"T_15a01_row10_col4\" class=\"data row10 col4\" >Saturday 9 January 2021, 10:04:34</td>\n",
-       "                        <td id=\"T_15a01_row10_col5\" class=\"data row10 col5\" >00:00:05 236ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row11_col0\" class=\"data row11 col0\" ><a href=\"../SYNOP/02-First-predictions.ipynb\">SYNOP2</a></td>\n",
-       "                        <td id=\"T_15a01_row11_col1\" class=\"data row11 col1\" >SYNOP</td>\n",
-       "                        <td id=\"T_15a01_row11_col2\" class=\"data row11 col2\" ><a href=\"../SYNOP/02-First-predictions.ipynb\"><b>02-First-predictions.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row11_col3\" class=\"data row11 col3\" >Saturday 9 January 2021, 10:30:55</td>\n",
-       "                        <td id=\"T_15a01_row11_col4\" class=\"data row11 col4\" >Saturday 9 January 2021, 10:31:11</td>\n",
-       "                        <td id=\"T_15a01_row11_col5\" class=\"data row11 col5\" >00:00:16 248ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row12_col0\" class=\"data row12 col0\" ><a href=\"../SYNOP/03-12h-predictions.ipynb\">SYNOP3</a></td>\n",
-       "                        <td id=\"T_15a01_row12_col1\" class=\"data row12 col1\" >SYNOP</td>\n",
-       "                        <td id=\"T_15a01_row12_col2\" class=\"data row12 col2\" ><a href=\"../SYNOP/03-12h-predictions.ipynb\"><b>03-12h-predictions.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row12_col3\" class=\"data row12 col3\" >Saturday 9 January 2021, 10:27:54</td>\n",
-       "                        <td id=\"T_15a01_row12_col4\" class=\"data row12 col4\" >Saturday 9 January 2021, 10:27:59</td>\n",
-       "                        <td id=\"T_15a01_row12_col5\" class=\"data row12 col5\" >00:00:05 249ms</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row13_col0\" class=\"data row13 col0\" ><a href=\"../VAE/01-VAE-with-MNIST.ipynb\">VAE1</a></td>\n",
-       "                        <td id=\"T_15a01_row13_col1\" class=\"data row13 col1\" >VAE</td>\n",
-       "                        <td id=\"T_15a01_row13_col2\" class=\"data row13 col2\" ><a href=\"../VAE/01-VAE-with-MNIST.ipynb\"><b>01-VAE-with-MNIST.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row13_col3\" class=\"data row13 col3\" >Thursday 7 January 2021, 09:37:44</td>\n",
-       "                        <td id=\"T_15a01_row13_col4\" class=\"data row13 col4\" ></td>\n",
-       "                        <td id=\"T_15a01_row13_col5\" class=\"data row13 col5\" >Unfinished...</td>\n",
-       "            </tr>\n",
-       "            <tr>\n",
-       "                                <td id=\"T_15a01_row14_col0\" class=\"data row14 col0\" ><a href=\"../VAE/08-VAE-with-CelebA.ipynb\">VAE8</a></td>\n",
-       "                        <td id=\"T_15a01_row14_col1\" class=\"data row14 col1\" >VAE</td>\n",
-       "                        <td id=\"T_15a01_row14_col2\" class=\"data row14 col2\" ><a href=\"../VAE/08-VAE-with-CelebA.ipynb\"><b>08-VAE-with-CelebA.ipynb</b></a></td>\n",
-       "                        <td id=\"T_15a01_row14_col3\" class=\"data row14 col3\" >Wednesday 6 January 2021, 22:17:12</td>\n",
-       "                        <td id=\"T_15a01_row14_col4\" class=\"data row14 col4\" ></td>\n",
-       "                        <td id=\"T_15a01_row14_col5\" class=\"data row14 col5\" >Unfinished...</td>\n",
+       "                                <td id=\"T_58cf4_row2_col0\" class=\"data row2 col0\" ><a href='../GTSRB/02-First-convolutions.ipynb'>GTSRB2</a></td>\n",
+       "                        <td id=\"T_58cf4_row2_col1\" class=\"data row2 col1\" >GTSRB</td>\n",
+       "                        <td id=\"T_58cf4_row2_col2\" class=\"data row2 col2\" ><a href='../GTSRB/02-First-convolutions.ipynb'>02-First-convolutions.ipynb</a></td>\n",
+       "                        <td id=\"T_58cf4_row2_col3\" class=\"data row2 col3\" ><a href='../GTSRB/02-First-convolutions==ERROR==.ipynb'>02-First-convolutions==ERROR==.ipynb</a></td>\n",
+       "                        <td id=\"T_58cf4_row2_col4\" class=\"data row2 col4\" >11/01/21 01:07:42</td>\n",
+       "                        <td id=\"T_58cf4_row2_col5\" class=\"data row2 col5\" >11/01/21 01:07:44</td>\n",
+       "                        <td id=\"T_58cf4_row2_col6\" class=\"data row2 col6\" >0:00:02</td>\n",
+       "                        <td id=\"T_58cf4_row2_col7\" class=\"data row2 col7\" >ERROR</td>\n",
        "            </tr>\n",
        "    </tbody></table>"
       ],
       "text/plain": [
-       "<pandas.io.formats.style.Styler at 0x7ff03f60f5d0>"
+       "<pandas.io.formats.style.Styler at 0x7f1cf038af10>"
       ]
      },
      "metadata": {},
diff --git a/fidle/ci/smart.yml b/fidle/ci/smart.yml
index 8f97028..c1b6c73 100644
--- a/fidle/ci/smart.yml
+++ b/fidle/ci/smart.yml
@@ -6,13 +6,17 @@ LINR1:
   notebook_dir: LinearReg
   notebook_src: 01-Linear-Regression.ipynb
   notebook_out: default
-GTSRB1:
-  notebook_dir: GTSRB
-  notebook_src: 01-Preparation-of-data.ipynb
+PER57:
+  notebook_dir: IRIS
+  notebook_src: 01-Simple-Perceptron.ipynb
   notebook_out: default
-  overrides:
-    scale: 0.1
-    output_dir: ./data
+# GTSRB1:
+#   notebook_dir: GTSRB
+#   notebook_src: 01-Preparation-of-data.ipynb
+#   notebook_out: default
+#   overrides:
+#     scale: 0.1
+#     output_dir: ./data
 GTSRB2:
   notebook_dir: GTSRB
   notebook_src: 02-First-convolutions.ipynb
diff --git a/fidle/cookci.py b/fidle/cookci.py
index 7cc8d22..6d7485e 100644
--- a/fidle/cookci.py
+++ b/fidle/cookci.py
@@ -158,19 +158,29 @@ def run_profile(profile, top_dir='..'):
         # ---- Top chrono
         #
         chrono_start()
-        update_ci_report(id, start=True)
+        update_ci_report(id, notebook_dir, notebook_src, notebook_out, start=True)
 
-        # ---- Run, run, run...
+        # ---- Try to run...
         #
         print('    Run notebook...',end='')
-        ep = ExecutePreprocessor(timeout=600, kernel_name="python3")
-        ep.preprocess(notebook)
-        print('..done.')
+        try:
+            ep = ExecutePreprocessor(timeout=600, kernel_name="python3")
+            ep.preprocess(notebook)
+        except Exception as e:
+            happy_end = False
+            notebook_out = notebook_src.replace('.ipynb', '==ERROR==.ipynb')
+            print('\n   ','*'*60)
+            print( '    ** AAARG.. An error occured : ',type(e).__name__)
+            print(f'    ** See notebook :  {notebook_out} for details.')
+            print('   ','*'*60)
+        else:
+            happy_end = True
+            print('..done.')
 
         # ---- Top chrono
         #
-        chrono_stop()
-        update_ci_report(id, end=True)
+        chrono_stop()        
+        update_ci_report(id, notebook_dir, notebook_src, notebook_out, end=True, happy_end=happy_end)
         print('    Duration : ',chrono_delay() )
     
         # ---- Save notebook
@@ -212,7 +222,7 @@ def reset_ci_report(verbose=True):
     if verbose : print(f'Finished file has been reset.\n')
     
     
-def update_ci_report(notebook_id, start=False, end=False):
+def update_ci_report(notebook_id, notebook_dir, notebook_src, notebook_out, start=False, end=False, happy_end=True):
     global start_time, end_time
 
     if not os.access(config.CI_REPORT_JSON, os.W_OK):
@@ -220,57 +230,51 @@ def update_ci_report(notebook_id, start=False, end=False):
     
     # ---- Load it
     with open(config.CI_REPORT_JSON) as fp:
-        data = json.load(fp)
+        report = json.load(fp)
         
     # ---- Update as a start
     if start is True:
-        data[notebook_id]             = {}
-        data[notebook_id]['path']     = os.getcwd()
-        data[notebook_id]['start']    = start_time.strftime("%A %-d %B %Y, %H:%M:%S")
-        data[notebook_id]['end']      = ''
-        data[notebook_id]['duration'] = 'Unfinished...'
+        report[notebook_id]             = {}
+        report[notebook_id]['dir']      = notebook_dir
+        report[notebook_id]['src']      = notebook_src
+        report[notebook_id]['out']      = notebook_out
+        report[notebook_id]['start']    = start_time.strftime("%d/%m/%y %H:%M:%S")
+        report[notebook_id]['end']      = ''
+        report[notebook_id]['duration'] = 'Unfinished...'
+        report[notebook_id]['state']    = 'Unfinished...'
 
     # ---- Update as an end
     if end is True:
-        data[notebook_id]['end']      = end_time.strftime("%A %-d %B %Y, %H:%M:%S")
-        data[notebook_id]['duration'] = chrono_delay()
+        report[notebook_id]['end']      = end_time.strftime("%d/%m/%y %H:%M:%S")
+        report[notebook_id]['duration'] = chrono_delay()
+        report[notebook_id]['state']    = 'ok' if happy_end else 'ERROR'
+        report[notebook_id]['out']      = notebook_out     # changeg in case of error
 
     # ---- Save it
     with open(config.CI_REPORT_JSON,'wt') as fp:
-        json.dump(data,fp,indent=4)
+        json.dump(report,fp,indent=4)
 
 
 
 def build_ci_report(display_output=True, save_html=True):
     
-    # ---- Load catalog (notebooks descriptions)
-    #
-    with open(config.CATALOG_FILE) as fp:
-        catalog = json.load(fp)
-
     # ---- Load ci report
     #
     with open(config.CI_REPORT_JSON) as infile:
         ci_report = json.load( infile )
 
-    # ---- For each entry
+    # ---- Create a nice DataFrame
     #
-    col_id, col_repo, col_name, col_start, col_end, col_dur = [],[],[],[],[],[]
-    for id,about in catalog.items():
-        if id in ci_report.keys():
-            ci_entry  = ci_report[id]
-            dirname   = about['dirname'] 
-            basename  = about['basename'] 
-            
-            col_id.append(   f'<a href="../{dirname}/{basename}">{id}</a>'               )
-            col_repo.append( dirname )
-            col_name.append( f'<a href="../{dirname}/{basename}"><b>{basename}</b></a>'  )
-            col_start.append( ci_entry['start'] )
-            col_end.append(   ci_entry['end']   )
-            col_dur.append(   ci_entry['duration']   )
-                   
-    df = pd.DataFrame( {'id':col_id, 'Repo':col_repo, 'Name':col_name, 'Start':col_start, 'End':col_end, 'Duration':col_dur} )
-
+    df=pd.DataFrame(ci_report)
+    df=df.transpose()
+    df = df.rename_axis('id').reset_index()
+    
+    # ---- Change text columns, for nice html links
+    #
+    df['id']  = df.apply(lambda r: f"<a href='../{r['dir']}/{r['src']}'>{r['id']}</a>", axis=1)
+    df['src'] = df.apply(lambda r: f"<a href='../{r['dir']}/{r['src']}'>{r['src']}</a>", axis=1)
+    df['out'] = df.apply(lambda r: f"<a href='../{r['dir']}/{r['out']}'>{r['out']}</a>", axis=1)
+        
     # ---- Add styles to be nice
     #
     styles = [
@@ -278,7 +282,7 @@ def build_ci_report(display_output=True, save_html=True):
         dict(selector="th", props=[("font-size", "110%"), ("text-align", "left")])
     ]
     def still_pending(v):
-        return 'background-color: OrangeRed; color:white' if v == 'Unfinished...' else ''
+        return 'background-color: OrangeRed; color:white' if v == 'ERROR' else ''
 
     output = df[df.columns.values].style.set_table_styles(styles).hide_index().applymap(still_pending)
 
diff --git a/fidle/logs/ci_report.html b/fidle/logs/ci_report.html
index 374544b..323f0ce 100644
--- a/fidle/logs/ci_report.html
+++ b/fidle/logs/ci_report.html
@@ -24,138 +24,48 @@
         <body>
             <br>Hi,
             <p>Below is the result of the continuous integration tests of the Fidle project:</p>
-            <div class="header"><b>Report date :</b> Sunday 10 January 2021, 22:58:46</div>
+            <div class="header"><b>Report date :</b> Monday 11 January 2021, 01:07:55</div>
             <div class="result">   
                 <style  type="text/css" >
-    #T_15a01_ td {
+    #T_58cf4_ td {
           font-size: 110%;
           text-align: left;
-    }    #T_15a01_ th {
+    }    #T_58cf4_ th {
           font-size: 110%;
           text-align: left;
-    }#T_15a01_row4_col5,#T_15a01_row13_col5,#T_15a01_row14_col5{
+    }#T_58cf4_row2_col7{
             background-color:  OrangeRed;
              color: white;
-        }</style><table id="T_15a01_" ><thead>    <tr>        <th class="col_heading level0 col0" >id</th>        <th class="col_heading level0 col1" >Repo</th>        <th class="col_heading level0 col2" >Name</th>        <th class="col_heading level0 col3" >Start</th>        <th class="col_heading level0 col4" >End</th>        <th class="col_heading level0 col5" >Duration</th>    </tr></thead><tbody>
+        }</style><table id="T_58cf4_" ><thead>    <tr>        <th class="col_heading level0 col0" >id</th>        <th class="col_heading level0 col1" >dir</th>        <th class="col_heading level0 col2" >src</th>        <th class="col_heading level0 col3" >out</th>        <th class="col_heading level0 col4" >start</th>        <th class="col_heading level0 col5" >end</th>        <th class="col_heading level0 col6" >duration</th>        <th class="col_heading level0 col7" >state</th>    </tr></thead><tbody>
                 <tr>
-                                <td id="T_15a01_row0_col0" class="data row0 col0" ><a href="../LinearReg/01-Linear-Regression.ipynb">LINR1</a></td>
-                        <td id="T_15a01_row0_col1" class="data row0 col1" >LinearReg</td>
-                        <td id="T_15a01_row0_col2" class="data row0 col2" ><a href="../LinearReg/01-Linear-Regression.ipynb"><b>01-Linear-Regression.ipynb</b></a></td>
-                        <td id="T_15a01_row0_col3" class="data row0 col3" >Sunday 10 January 2021, 22:54:49</td>
-                        <td id="T_15a01_row0_col4" class="data row0 col4" >Sunday 10 January 2021, 22:54:53</td>
-                        <td id="T_15a01_row0_col5" class="data row0 col5" >0:00:04</td>
+                                <td id="T_58cf4_row0_col0" class="data row0 col0" ><a href='../LinearReg/01-Linear-Regression.ipynb'>LINR1</a></td>
+                        <td id="T_58cf4_row0_col1" class="data row0 col1" >LinearReg</td>
+                        <td id="T_58cf4_row0_col2" class="data row0 col2" ><a href='../LinearReg/01-Linear-Regression.ipynb'>01-Linear-Regression.ipynb</a></td>
+                        <td id="T_58cf4_row0_col3" class="data row0 col3" ><a href='../LinearReg/01-Linear-Regression==done==.ipynb'>01-Linear-Regression==done==.ipynb</a></td>
+                        <td id="T_58cf4_row0_col4" class="data row0 col4" >11/01/21 01:07:35</td>
+                        <td id="T_58cf4_row0_col5" class="data row0 col5" >11/01/21 01:07:39</td>
+                        <td id="T_58cf4_row0_col6" class="data row0 col6" >0:00:04</td>
+                        <td id="T_58cf4_row0_col7" class="data row0 col7" >ok</td>
             </tr>
             <tr>
-                                <td id="T_15a01_row1_col0" class="data row1 col0" ><a href="../BHPD/01-DNN-Regression.ipynb">BHPD1</a></td>
-                        <td id="T_15a01_row1_col1" class="data row1 col1" >BHPD</td>
-                        <td id="T_15a01_row1_col2" class="data row1 col2" ><a href="../BHPD/01-DNN-Regression.ipynb"><b>01-DNN-Regression.ipynb</b></a></td>
-                        <td id="T_15a01_row1_col3" class="data row1 col3" >Friday 8 January 2021, 01:09:13</td>
-                        <td id="T_15a01_row1_col4" class="data row1 col4" >Friday 8 January 2021, 01:09:24</td>
-                        <td id="T_15a01_row1_col5" class="data row1 col5" >00:00:11 984ms</td>
+                                <td id="T_58cf4_row1_col0" class="data row1 col0" ><a href='../IRIS/01-Simple-Perceptron.ipynb'>PER57</a></td>
+                        <td id="T_58cf4_row1_col1" class="data row1 col1" >IRIS</td>
+                        <td id="T_58cf4_row1_col2" class="data row1 col2" ><a href='../IRIS/01-Simple-Perceptron.ipynb'>01-Simple-Perceptron.ipynb</a></td>
+                        <td id="T_58cf4_row1_col3" class="data row1 col3" ><a href='../IRIS/01-Simple-Perceptron==done==.ipynb'>01-Simple-Perceptron==done==.ipynb</a></td>
+                        <td id="T_58cf4_row1_col4" class="data row1 col4" >11/01/21 01:07:39</td>
+                        <td id="T_58cf4_row1_col5" class="data row1 col5" >11/01/21 01:07:42</td>
+                        <td id="T_58cf4_row1_col6" class="data row1 col6" >0:00:02</td>
+                        <td id="T_58cf4_row1_col7" class="data row1 col7" >ok</td>
             </tr>
             <tr>
-                                <td id="T_15a01_row2_col0" class="data row2 col0" ><a href="../BHPD/02-DNN-Regression-Premium.ipynb">BHPD2</a></td>
-                        <td id="T_15a01_row2_col1" class="data row2 col1" >BHPD</td>
-                        <td id="T_15a01_row2_col2" class="data row2 col2" ><a href="../BHPD/02-DNN-Regression-Premium.ipynb"><b>02-DNN-Regression-Premium.ipynb</b></a></td>
-                        <td id="T_15a01_row2_col3" class="data row2 col3" >Friday 8 January 2021, 01:10:28</td>
-                        <td id="T_15a01_row2_col4" class="data row2 col4" >Friday 8 January 2021, 01:10:39</td>
-                        <td id="T_15a01_row2_col5" class="data row2 col5" >00:00:12 582ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row3_col0" class="data row3 col0" ><a href="../GTSRB/01-Preparation-of-data.ipynb">GTSRB1</a></td>
-                        <td id="T_15a01_row3_col1" class="data row3 col1" >GTSRB</td>
-                        <td id="T_15a01_row3_col2" class="data row3 col2" ><a href="../GTSRB/01-Preparation-of-data.ipynb"><b>01-Preparation-of-data.ipynb</b></a></td>
-                        <td id="T_15a01_row3_col3" class="data row3 col3" >Sunday 10 January 2021, 22:54:53</td>
-                        <td id="T_15a01_row3_col4" class="data row3 col4" >Sunday 10 January 2021, 22:56:54</td>
-                        <td id="T_15a01_row3_col5" class="data row3 col5" >0:02:00</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row4_col0" class="data row4 col0" ><a href="../GTSRB/02-First-convolutions.ipynb">GTSRB2</a></td>
-                        <td id="T_15a01_row4_col1" class="data row4 col1" >GTSRB</td>
-                        <td id="T_15a01_row4_col2" class="data row4 col2" ><a href="../GTSRB/02-First-convolutions.ipynb"><b>02-First-convolutions.ipynb</b></a></td>
-                        <td id="T_15a01_row4_col3" class="data row4 col3" >Sunday 10 January 2021, 22:56:54</td>
-                        <td id="T_15a01_row4_col4" class="data row4 col4" ></td>
-                        <td id="T_15a01_row4_col5" class="data row4 col5" >Unfinished...</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row5_col0" class="data row5 col0" ><a href="../GTSRB/03-Tracking-and-visualizing.ipynb">GTSRB3</a></td>
-                        <td id="T_15a01_row5_col1" class="data row5 col1" >GTSRB</td>
-                        <td id="T_15a01_row5_col2" class="data row5 col2" ><a href="../GTSRB/03-Tracking-and-visualizing.ipynb"><b>03-Tracking-and-visualizing.ipynb</b></a></td>
-                        <td id="T_15a01_row5_col3" class="data row5 col3" >Thursday 7 January 2021, 12:15:52</td>
-                        <td id="T_15a01_row5_col4" class="data row5 col4" >Thursday 7 January 2021, 12:20:01</td>
-                        <td id="T_15a01_row5_col5" class="data row5 col5" >00:04:09 711ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row6_col0" class="data row6 col0" ><a href="../GTSRB/04-Data-augmentation.ipynb">GTSRB4</a></td>
-                        <td id="T_15a01_row6_col1" class="data row6 col1" >GTSRB</td>
-                        <td id="T_15a01_row6_col2" class="data row6 col2" ><a href="../GTSRB/04-Data-augmentation.ipynb"><b>04-Data-augmentation.ipynb</b></a></td>
-                        <td id="T_15a01_row6_col3" class="data row6 col3" >Thursday 7 January 2021, 13:40:52</td>
-                        <td id="T_15a01_row6_col4" class="data row6 col4" >Thursday 7 January 2021, 13:41:31</td>
-                        <td id="T_15a01_row6_col5" class="data row6 col5" >00:00:39 161ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row7_col0" class="data row7 col0" ><a href="../GTSRB/05-Full-convolutions.ipynb">GTSRB5</a></td>
-                        <td id="T_15a01_row7_col1" class="data row7 col1" >GTSRB</td>
-                        <td id="T_15a01_row7_col2" class="data row7 col2" ><a href="../GTSRB/05-Full-convolutions.ipynb"><b>05-Full-convolutions.ipynb</b></a></td>
-                        <td id="T_15a01_row7_col3" class="data row7 col3" >Thursday 7 January 2021, 14:47:12</td>
-                        <td id="T_15a01_row7_col4" class="data row7 col4" >Thursday 7 January 2021, 14:48:44</td>
-                        <td id="T_15a01_row7_col5" class="data row7 col5" >00:01:32 269ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row8_col0" class="data row8 col0" ><a href="../GTSRB/06-Notebook-as-a-batch.ipynb">GTSRB6</a></td>
-                        <td id="T_15a01_row8_col1" class="data row8 col1" >GTSRB</td>
-                        <td id="T_15a01_row8_col2" class="data row8 col2" ><a href="../GTSRB/06-Notebook-as-a-batch.ipynb"><b>06-Notebook-as-a-batch.ipynb</b></a></td>
-                        <td id="T_15a01_row8_col3" class="data row8 col3" >Thursday 7 January 2021, 15:41:17</td>
-                        <td id="T_15a01_row8_col4" class="data row8 col4" >Thursday 7 January 2021, 15:41:18</td>
-                        <td id="T_15a01_row8_col5" class="data row8 col5" >00:00:01 101ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row9_col0" class="data row9 col0" ><a href="../GTSRB/07-Show-report.ipynb">GTSRB7</a></td>
-                        <td id="T_15a01_row9_col1" class="data row9 col1" >GTSRB</td>
-                        <td id="T_15a01_row9_col2" class="data row9 col2" ><a href="../GTSRB/07-Show-report.ipynb"><b>07-Show-report.ipynb</b></a></td>
-                        <td id="T_15a01_row9_col3" class="data row9 col3" >Thursday 7 January 2021, 15:16:05</td>
-                        <td id="T_15a01_row9_col4" class="data row9 col4" >Thursday 7 January 2021, 15:16:06</td>
-                        <td id="T_15a01_row9_col5" class="data row9 col5" >00:00:00 116ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row10_col0" class="data row10 col0" ><a href="../SYNOP/01-Preparation-of-data.ipynb">SYNOP1</a></td>
-                        <td id="T_15a01_row10_col1" class="data row10 col1" >SYNOP</td>
-                        <td id="T_15a01_row10_col2" class="data row10 col2" ><a href="../SYNOP/01-Preparation-of-data.ipynb"><b>01-Preparation-of-data.ipynb</b></a></td>
-                        <td id="T_15a01_row10_col3" class="data row10 col3" >Saturday 9 January 2021, 10:04:28</td>
-                        <td id="T_15a01_row10_col4" class="data row10 col4" >Saturday 9 January 2021, 10:04:34</td>
-                        <td id="T_15a01_row10_col5" class="data row10 col5" >00:00:05 236ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row11_col0" class="data row11 col0" ><a href="../SYNOP/02-First-predictions.ipynb">SYNOP2</a></td>
-                        <td id="T_15a01_row11_col1" class="data row11 col1" >SYNOP</td>
-                        <td id="T_15a01_row11_col2" class="data row11 col2" ><a href="../SYNOP/02-First-predictions.ipynb"><b>02-First-predictions.ipynb</b></a></td>
-                        <td id="T_15a01_row11_col3" class="data row11 col3" >Saturday 9 January 2021, 10:30:55</td>
-                        <td id="T_15a01_row11_col4" class="data row11 col4" >Saturday 9 January 2021, 10:31:11</td>
-                        <td id="T_15a01_row11_col5" class="data row11 col5" >00:00:16 248ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row12_col0" class="data row12 col0" ><a href="../SYNOP/03-12h-predictions.ipynb">SYNOP3</a></td>
-                        <td id="T_15a01_row12_col1" class="data row12 col1" >SYNOP</td>
-                        <td id="T_15a01_row12_col2" class="data row12 col2" ><a href="../SYNOP/03-12h-predictions.ipynb"><b>03-12h-predictions.ipynb</b></a></td>
-                        <td id="T_15a01_row12_col3" class="data row12 col3" >Saturday 9 January 2021, 10:27:54</td>
-                        <td id="T_15a01_row12_col4" class="data row12 col4" >Saturday 9 January 2021, 10:27:59</td>
-                        <td id="T_15a01_row12_col5" class="data row12 col5" >00:00:05 249ms</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row13_col0" class="data row13 col0" ><a href="../VAE/01-VAE-with-MNIST.ipynb">VAE1</a></td>
-                        <td id="T_15a01_row13_col1" class="data row13 col1" >VAE</td>
-                        <td id="T_15a01_row13_col2" class="data row13 col2" ><a href="../VAE/01-VAE-with-MNIST.ipynb"><b>01-VAE-with-MNIST.ipynb</b></a></td>
-                        <td id="T_15a01_row13_col3" class="data row13 col3" >Thursday 7 January 2021, 09:37:44</td>
-                        <td id="T_15a01_row13_col4" class="data row13 col4" ></td>
-                        <td id="T_15a01_row13_col5" class="data row13 col5" >Unfinished...</td>
-            </tr>
-            <tr>
-                                <td id="T_15a01_row14_col0" class="data row14 col0" ><a href="../VAE/08-VAE-with-CelebA.ipynb">VAE8</a></td>
-                        <td id="T_15a01_row14_col1" class="data row14 col1" >VAE</td>
-                        <td id="T_15a01_row14_col2" class="data row14 col2" ><a href="../VAE/08-VAE-with-CelebA.ipynb"><b>08-VAE-with-CelebA.ipynb</b></a></td>
-                        <td id="T_15a01_row14_col3" class="data row14 col3" >Wednesday 6 January 2021, 22:17:12</td>
-                        <td id="T_15a01_row14_col4" class="data row14 col4" ></td>
-                        <td id="T_15a01_row14_col5" class="data row14 col5" >Unfinished...</td>
+                                <td id="T_58cf4_row2_col0" class="data row2 col0" ><a href='../GTSRB/02-First-convolutions.ipynb'>GTSRB2</a></td>
+                        <td id="T_58cf4_row2_col1" class="data row2 col1" >GTSRB</td>
+                        <td id="T_58cf4_row2_col2" class="data row2 col2" ><a href='../GTSRB/02-First-convolutions.ipynb'>02-First-convolutions.ipynb</a></td>
+                        <td id="T_58cf4_row2_col3" class="data row2 col3" ><a href='../GTSRB/02-First-convolutions==ERROR==.ipynb'>02-First-convolutions==ERROR==.ipynb</a></td>
+                        <td id="T_58cf4_row2_col4" class="data row2 col4" >11/01/21 01:07:42</td>
+                        <td id="T_58cf4_row2_col5" class="data row2 col5" >11/01/21 01:07:44</td>
+                        <td id="T_58cf4_row2_col6" class="data row2 col6" >0:00:02</td>
+                        <td id="T_58cf4_row2_col7" class="data row2 col7" >ERROR</td>
             </tr>
     </tbody></table>
             </div>
diff --git a/fidle/logs/ci_report.json b/fidle/logs/ci_report.json
index 933e2a7..2e8a686 100644
--- a/fidle/logs/ci_report.json
+++ b/fidle/logs/ci_report.json
@@ -1,98 +1,29 @@
 {
-    "VAE8": {
-        "path": "/home/pjluc/dev/fidle/VAE",
-        "start": "Wednesday 6 January 2021, 22:17:12",
-        "end": "",
-        "duration": "Unfinished..."
-    },
-    "VAE1": {
-        "path": "/home/pjluc/dev/fidle/VAE",
-        "start": "Thursday 7 January 2021, 09:37:44",
-        "end": "",
-        "duration": "Unfinished..."
-    },
-    "GTSRB1": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Sunday 10 January 2021, 22:54:53",
-        "end": "Sunday 10 January 2021, 22:56:54",
-        "duration": "0:02:00"
-    },
-    "GTSRB2": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Sunday 10 January 2021, 22:56:54",
-        "end": "",
-        "duration": "Unfinished..."
-    },
-    "GTSRB3": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Thursday 7 January 2021, 12:15:52",
-        "end": "Thursday 7 January 2021, 12:20:01",
-        "duration": "00:04:09 711ms"
-    },
-    "GTSRB4": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Thursday 7 January 2021, 13:40:52",
-        "end": "Thursday 7 January 2021, 13:41:31",
-        "duration": "00:00:39 161ms"
-    },
-    "GTSRB5": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Thursday 7 January 2021, 14:47:12",
-        "end": "Thursday 7 January 2021, 14:48:44",
-        "duration": "00:01:32 269ms"
-    },
-    "GTSRB6": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Thursday 7 January 2021, 15:41:17",
-        "end": "Thursday 7 January 2021, 15:41:18",
-        "duration": "00:00:01 101ms"
-    },
-    "GTSRB7": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Thursday 7 January 2021, 15:16:05",
-        "end": "Thursday 7 January 2021, 15:16:06",
-        "duration": "00:00:00 116ms"
-    },
-    "BHPD1": {
-        "path": "/home/pjluc/dev/fidle/BHPD ",
-        "start": "Friday 8 January 2021, 01:09:13",
-        "end": "Friday 8 January 2021, 01:09:24",
-        "duration": "00:00:11 984ms"
-    },
-    "BHPD2": {
-        "path": "/home/pjluc/dev/fidle/BHPD ",
-        "start": "Friday 8 January 2021, 01:10:28",
-        "end": "Friday 8 January 2021, 01:10:39",
-        "duration": "00:00:12 582ms"
-    },
-    "SYNOP1": {
-        "path": "/home/pjluc/dev/fidle/SYNOP",
-        "start": "Saturday 9 January 2021, 10:04:28",
-        "end": "Saturday 9 January 2021, 10:04:34",
-        "duration": "00:00:05 236ms"
-    },
-    "SYNOP2": {
-        "path": "/home/pjluc/dev/fidle/SYNOP",
-        "start": "Saturday 9 January 2021, 10:30:55",
-        "end": "Saturday 9 January 2021, 10:31:11",
-        "duration": "00:00:16 248ms"
-    },
-    "SYNOP3": {
-        "path": "/home/pjluc/dev/fidle/SYNOP",
-        "start": "Saturday 9 January 2021, 10:27:54",
-        "end": "Saturday 9 January 2021, 10:27:59",
-        "duration": "00:00:05 249ms"
-    },
     "LINR1": {
-        "path": "/home/pjluc/dev/fidle/LinearReg",
-        "start": "Sunday 10 January 2021, 22:54:49",
-        "end": "Sunday 10 January 2021, 22:54:53",
-        "duration": "0:00:04"
+        "dir": "LinearReg",
+        "src": "01-Linear-Regression.ipynb",
+        "out": "01-Linear-Regression==done==.ipynb",
+        "start": "11/01/21 01:07:35",
+        "end": "11/01/21 01:07:39",
+        "duration": "0:00:04",
+        "state": "ok"
+    },
+    "PER57": {
+        "dir": "IRIS",
+        "src": "01-Simple-Perceptron.ipynb",
+        "out": "01-Simple-Perceptron==done==.ipynb",
+        "start": "11/01/21 01:07:39",
+        "end": "11/01/21 01:07:42",
+        "duration": "0:00:02",
+        "state": "ok"
     },
-    "GTSRB0": {
-        "path": "/home/pjluc/dev/fidle/GTSRB",
-        "start": "Saturday 9 January 2021, 19:34:14",
-        "end": "",
-        "duration": "Unfinished..."
+    "GTSRB2": {
+        "dir": "GTSRB",
+        "src": "02-First-convolutions.ipynb",
+        "out": "02-First-convolutions==ERROR==.ipynb",
+        "start": "11/01/21 01:07:42",
+        "end": "11/01/21 01:07:44",
+        "duration": "0:00:02",
+        "state": "ERROR"
     }
 }
\ No newline at end of file
-- 
GitLab