You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@senssoft.apache.org by le...@apache.org on 2018/03/12 15:58:15 UTC

[01/40] incubator-senssoft git commit: Initial (probably broken) commit of ported docker build

Repository: incubator-senssoft
Updated Branches:
  refs/heads/asf-site 6f2379b27 -> 9f8090077


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/tap/neon_graph.js
----------------------------------------------------------------------
diff --git a/docker/tap/neon_graph.js b/docker/tap/neon_graph.js
new file mode 100644
index 0000000..c84ce9b
--- /dev/null
+++ b/docker/tap/neon_graph.js
@@ -0,0 +1,2 @@
+var graphData = {"out_degree": {"blt": [{"index": 0, "value": 26}, {"index": 1, "value": 3}, {"index": 2, "value": 5}, {"index": 3, "value": 6}, {"index": 4, "value": 4}, {"index": 5, "value": 8}, {"index": 6, "value": 18}, {"index": 7, "value": 18}, {"index": 8, "value": 7}, {"index": 9, "value": 11}, {"index": 10, "value": 12}, {"index": 11, "value": 2}, {"index": 12, "value": 1}, {"index": 13, "value": 4}, {"index": 14, "value": 32}, {"index": 15, "value": 37}, {"index": 16, "value": 5}, {"index": 17, "value": 1}, {"index": 18, "value": 3}, {"index": 19, "value": 7}, {"index": 20, "value": 10}, {"index": 21, "value": 9}, {"index": 22, "value": 4}, {"index": 23, "value": 8}, {"index": 24, "value": 11}, {"index": 25, "value": 4}, {"index": 26, "value": 18}, {"index": 27, "value": 3}, {"index": 28, "value": 3}, {"index": 29, "value": 3}, {"index": 30, "value": 28}, {"index": 31, "value": 27}, {"index": 32, "value": 11}, {"index": 33, "value": 17}, {"index": 34, "value": 9}, {"index"
 : 35, "value": 7}, {"index": 36, "value": 16}, {"index": 37, "value": 13}, {"index": 38, "value": 5}, {"index": 39, "value": 3}, {"index": 40, "value": 13}, {"index": 41, "value": 11}, {"index": 42, "value": 5}, {"index": 43, "value": 1}, {"index": 44, "value": 10}, {"index": 45, "value": 2}, {"index": 46, "value": 3}, {"index": 47, "value": 39}, {"index": 48, "value": 27}, {"index": 49, "value": 1}, {"index": 50, "value": 5}, {"index": 51, "value": 1}, {"index": 52, "value": 29}, {"index": 53, "value": 30}, {"index": 54, "value": 4}, {"index": 55, "value": 1}, {"index": 56, "value": 8}, {"index": 57, "value": 18}, {"index": 58, "value": 23}], "out": [{"action": "mouseover", "index": 0, "name": "chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "mouseover_INTERVAL", "index": 1, "name": "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "elementId": "linechart", "
 elementGroup": "chart_group"}, {"action": "click", "index": 2, "name": "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 3, "name": "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 4, "name": "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "drag", "index": 5, "name": "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "elementId": "linechart-brush", "elementGroup": "chart_group"}, {"action": "click", "index": 6, "name": "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "elementId": "linechart-clear-range", "elementGroup": "chart_group"}, {"action": "click", "index": 7, "name":
  "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart-day", "elementGroup": "chart_group"}, {"action": "click", "index": 8, "name": "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart-hour", "elementGroup": "chart_group"}, {"action": "click", "index": 9, "name": "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "elementId": "linechart-range", "elementGroup": "chart_group"}, {"action": "click", "index": 10, "name": "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "elementId": "tag-cloud", "elementGroup": "chart_group"}, {"action": "click", "index": 11, "name": "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "elementId": "tag-cloud", "elementGroup": "chart_group"}, {"action": "click", "index": 12, "name": "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_gr
 oup"}, {"action": "click", "index": 13, "name": "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "click", "index": 14, "name": "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "mouseover", "index": 15, "name": "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "mouseover_INTERVAL", "index": 16, "name": "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 17, "name": "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 18, "name": "chart_group,timeline
 ,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 19, "name": "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "drag", "index": 20, "name": "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "elementId": "timeline-brush", "elementGroup": "chart_group"}, {"action": "click", "index": 21, "name": "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "elementId": "timeline-clear-range", "elementGroup": "chart_group"}, {"action": "click", "index": 22, "name": "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-day", "elementGroup": "chart_group"}, {"action": "click", "index": 23, "name": "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timelin
 e-hour", "elementGroup": "chart_group"}, {"action": "click", "index": 24, "name": "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-month", "elementGroup": "chart_group"}, {"action": "click", "index": 25, "name": "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "elementId": "timeline-range", "elementGroup": "chart_group"}, {"action": "click", "index": 26, "name": "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-year", "elementGroup": "chart_group"}, {"action": "click", "index": 27, "name": "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 28, "name": "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 29, "name": "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "elementId": "map", "element
 Group": "map_group"}, {"action": "drag", "index": 30, "name": "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "panstart", "index": 31, "name": "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "zoom", "index": 32, "name": "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 33, "name": "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "elementId": "map-layer-active-button", "elementGroup": "map_group"}, {"action": "click", "index": 34, "name": "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "elementId": "filter-builder-add-filter", "elementGroup": "query_group"}, {"action": "click", "index": 35, "name": "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "
 filter-builder-and-clauses", "elementGroup": "query_group"}, {"action": "click", "index": 36, "name": "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "elementId": "filter-builder-clear-all", "elementGroup": "query_group"}, {"action": "click", "index": 37, "name": "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "elementId": "filter-builder-remove-filter", "elementGroup": "query_group"}, {"action": "click", "index": 38, "name": "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "elementId": "filter-builder-selected-field", "elementGroup": "query_group"}, {"action": "click", "index": 39, "name": "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "elementId": "filter-builder-selectedOperator", "elementGroup": "query_group"}, {"action": "keydown", "index": 40, "name": "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER
 ,-,filter-builder,USER", "elementId": "filter-builder-selectedValue", "elementGroup": "query_group"}, {"action": "keydown_INTERVAL", "index": 41, "name": "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "elementId": "filter-builder-selectedValue", "elementGroup": "query_group"}, {"action": "click", "index": 42, "name": "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-0", "elementGroup": "query_group"}, {"action": "click", "index": 43, "name": "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-1", "elementGroup": "query_group"}, {"action": "click", "index": 44, "name": "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-2", "elementGroup": "query_group"}, {"action": "click", "index": 45, "name":
  "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "drag", "index": 46, "name": "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "drag", "index": 47, "name": "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "scroll", "index": 48, "name": "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "scroll_INTERVAL", "index": 49, "name": "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "keydown_INTERVAL", "index": 50, "name": "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "elementId": "datagrid-limit", "elementGroup": "table_gr
 oup"}, {"action": "click", "index": 51, "name": "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "elementId": "datagrid-refresh", "elementGroup": "table_group"}, {"action": "click", "index": 52, "name": "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "elementId": "datagrid-sort-direction", "elementGroup": "table_group"}, {"action": "click", "index": 53, "name": "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "elementId": "chart-options", "elementGroup": "top"}, {"action": "click", "index": 54, "name": "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "elementId": "chart-options", "elementGroup": "top"}, {"action": "click", "index": 55, "name": "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "elementId": "dataset-menu", "elementGroup": "top"}, {"action": "onload", "index": 56, "name": "top,window,-,WINDOW,onload,SHOW,-,-,USER", "elementId": "window", "elementGroup": "top"}, {"action": "click", "index": 57, "
 name": "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "elementId": "workspace", "elementGroup": "top"}, {"action": "dragstart", "index": 58, "name": "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER", "elementId": "workspace", "elementGroup": "top"}], "outMatrix": [[0.0, 0.0, 0.0, 0.0, 59.0, 51.0, 3.0, 6.0, 50.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 20.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 50.0, 0.0, 0.0, 0.0, 2.0, 0.0, 4.0, 2.0, 1.0, 3.0, 22.0, 10.0, 0.0, 0.0, 4.0, 0.0, 0.0, 28.0, 44.0, 0.0, 0.0, 0.0, 26.0, 88.0, 2.0, 0.0, 0.0, 81.0, 6.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 1.0, 0.0, 0.0, 0.0, 0.0, 3.0], [52.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [12.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 33.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 1.0, 2.0], [16.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 14.0, 14.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 87.0, 4.0, 0.0, 0.0, 0.0, 3.0, 3.0, 1.0, 0.0, 0.0, 0.0, 3.0], [6.0, 0.0, 0.0, 2.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 21.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 146.0, 7.0, 0.0, 0.0, 0.0, 3.0, 1.0, 1.0, 0.0, 0.0, 1.0, 5.0], [28.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 27.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 8.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 5.0, 8.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 110.0, 14.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 64.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 87.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 7.0, 12.0, 0.0, 20.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 105.0, 11.0, 2.0, 0.0, 1.0, 32.0, 1.0, 3.0, 10.0, 0.0, 0.0, 53.0, 0.0, 3.0, 5.0, 2.0, 6.0, 29.0, 11.0, 1.0, 0.0, 49.0, 31.0, 1.0, 0.0, 1.0, 0.0, 0.0, 90.0, 45.0, 0.0, 0.0, 0.0, 23.0, 39.0, 4.0, 0.0, 0.0, 10.0, 0.0], [0.0, 0.0, 0.0, 1.0, 5.0, 4.0, 28.0, 49.0, 0.0, 36.0, 19.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 289.0, 90.0, 1.0, 1.0, 0.0, 122.0, 1.0, 12.0, 13.0, 4.0, 1.0, 100.0, 0.0, 3.
 0, 4.0, 7.0, 18.0, 55.0, 16.0, 4.0, 6.0, 56.0, 76.0, 6.0, 0.0, 2.0, 0.0, 0.0, 124.0, 89.0, 0.0, 0.0, 0.0, 21.0, 103.0, 7.0, 0.0, 0.0, 20.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 33.0, 120.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 382.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 30.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 18.0, 10.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 6.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 23.0, 95.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 89.0, 190.0, 0.0, 0.0, 0.0, 71.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 64.0, 6.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0,
  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 1.0, 19.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.0, 1.0, 0.0, 158.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 6.0, 11.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 294.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 14.0, 0.0, 0.0, 0
 .0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 16.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 13.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 6.0, 3.0, 0.0, 0.0, 0.0, 39.0, 83.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 224.0, 128.0, 1.0, 19.0, 0.0, 1655.0, 3.0, 0.0, 1.0, 0.0, 8.0, 2.0, 0.0, 2.0, 20.0, 12.0, 0.0, 0.0, 2.0, 0.0, 1.0, 11.0, 43.0, 0.0, 0.0, 0.0, 6.0, 28.0, 4.0, 0.0, 0.0, 3.0, 3.0], [43.0, 2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 34.0, 80.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 45.0, 2.0, 6.0, 1116.0, 0.0, 6.0, 0.0, 2.0, 1.0, 11.0, 1.0, 0.0, 1.0, 10.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 110.0, 83.0, 0.0, 0.0, 0.0, 20.0, 44.0, 0.0, 0.0, 0.0, 7.0, 11.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 65.0, 2.0, 0.0, 0.0, 0.0, 2.0, 1.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 19.0, 34.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0, 6.0, 0.0, 0.0, 0.0, 2.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 199.0, 31.0, 0.0, 0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 1.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 11.0, 12.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 1.0, 19.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 125.0, 8.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 2.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 24.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 6.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 278.0, 3.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 14.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 1.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 149.0, 15.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [108.0, 3.0, 0.0, 0.0, 8.0, 4.0, 35.0, 15.0, 2.0, 55.0, 38.0, 0.0, 0.0, 0.0, 206.0, 496.0, 0.0, 0.0, 0.0, 44.0, 11.0, 0.0, 3.0, 1.0, 5.0, 0.0, 13.0, 24.0, 5.0, 1.0, 154.0, 1.0, 0.0, 5.0, 0.0, 2.0, 50.0, 2.0, 0.0, 9.0, 84.0, 45.0, 5.0, 1.0, 3.0, 0.0, 0.0, 0.0, 6.0, 0.0, 4.0, 0.0, 23.0, 21.0, 3.0, 0.0, 0.0, 16.0, 25.0], [68.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.0, 2.0, 0.0, 0.0, 0.0, 38.0, 106.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 13.0, 3.0, 2.0, 97.0, 0.0, 0.0, 0.0, 1.0, 3.0, 10.0, 0.0, 0.0, 0.0, 21.0, 
 15.0, 0.0, 0.0, 10.0, 2.0, 3.0, 1.0, 0.0, 0.0, 2.0, 0.0, 5.0, 24.0, 3.0, 0.0, 0.0, 14.0, 15.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 7.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [83.0, 0.0
 , 1.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 6.0, 2.0, 0.0, 0.0, 0.0, 35.0, 92.0, 0.0, 0.0, 0.0, 3.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 13.0, 1.0, 1.0, 66.0, 0.0, 0.0, 1.0, 0.0, 1.0, 3.0, 1.0, 2.0, 0.0, 5.0, 2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 5.0, 22.0, 0.0, 1.0, 0.0, 0.0, 45.0, 3.0, 0.0, 0.0, 7.0, 8.0], [26.0, 0.0, 2.0, 10.0, 1.0, 0.0, 5.0, 6.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 9.0, 20.0, 3.0, 0.0, 0.0, 0.0, 0.0, 13.0, 7.0, 18.0, 0.0, 7.0, 4.0, 0.0, 0.0, 0.0, 32.0, 0.0, 71.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 8.0, 3.0, 14.0, 0.0, 151.0, 0.0, 3.0, 0.0, 1.0, 12.0, 6.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 94.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 5.0, 4.0], [75.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 8.0, 13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 1.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 24.0, 0.0, 0.0, 0.0, 7.0, 6.0, 0.0, 0.0, 29.0, 0.0, 17.0], [12.0, 0.0, 1.0, 2.0, 13.0, 8.0, 4.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.
 0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0, 9.0, 0.0, 0.0, 0.0, 11.0, 12.0, 0.0, 0.0, 1.0, 16.0, 0.0]], "inMatrix": [[0.0, 0.0, 0.0, 0.0, 59.0, 51.0, 3.0, 6.0, 50.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 20.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 50.0, 0.0, 0.0, 0.0, 2.0, 0.0, 4.0, 2.0, 1.0, 3.0, 22.0, 10.0, 0.0, 0.0, 4.0, 0.0, 0.0, 28.0, 44.0, 0.0, 0.0, 0.0, 26.0, 88.0, 2.0, 0.0, 0.0, 81.0, 6.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0,
  0.0, 0.0, 0.0, 0.0, 1.0], [5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 1.0, 0.0, 0.0, 0.0, 0.0, 3.0], [52.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [12.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 33.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 1.0, 2.0], [16.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 14
 .0, 14.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 87.0, 4.0, 0.0, 0.0, 0.0, 3.0, 3.0, 1.0, 0.0, 0.0, 0.0, 3.0], [6.0, 0.0, 0.0, 2.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 21.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 146.0, 7.0, 0.0, 0.0, 0.0, 3.0, 1.0, 1.0, 0.0, 0.0, 1.0, 5.0], [28.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 27.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 5.0, 8.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0,
  0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 110.0, 14.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 64.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 87.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 7.0, 12.0, 0.0, 20.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 105.0, 11.0, 2.0, 0.0, 1.0, 32.0, 1.0, 3.0, 10.0, 0.0, 0.0, 53.0, 0.0, 3.0, 5.0, 2.0, 6.0, 29.0, 11.0, 1.0, 0.0, 49.0, 31.0, 1.0, 0.0, 1.0, 0.0, 0.0, 90.0, 45.0, 0.0, 0.0, 0.0, 23.0, 39.0, 4.0, 0.0, 0.0, 10.0, 0.0], [0.0, 0.0, 0.0, 1.0, 5.0, 4.0, 28.0, 49.0, 0.0, 36.0, 19.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 289.0, 90.0, 1.0, 1.0, 0.0, 122.0, 1.0, 12.0, 13.0, 4.0, 1.0, 100.0, 0.0, 3.0, 4.0, 7.0, 18.0, 55.0, 16.0, 4.0, 6.0, 56.0, 76.0, 6.0, 0.0, 2.0, 0.0, 0.0, 124.0, 89.0, 0.0, 0.0, 0.0, 21.0, 103.0, 7.0, 0.0, 0.0, 20.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 33.0, 120.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 382.0, 0.0, 0.0, 0.0
 , 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 30.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 18.0, 10.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 6.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 23.0, 95.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 89.0, 190.0, 0.0, 0.0, 0.0, 71.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 64.0, 6.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0
 .0, 2.0, 2.0, 0.0, 0.0, 0.0, 1.0, 19.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.0, 1.0, 0.0, 158.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 6.0, 11.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 294.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
 , 0.0, 0.0, 16.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 13.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 6.0, 3.0, 0.0, 0.0, 0.0, 39.0, 83.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 224.0, 128.0, 1.0, 19.0, 0.0, 1655.0, 3.0, 0.0, 1.0, 0.0, 8.0, 2.0, 0.0, 2.0, 20.0, 12.0, 0.0, 0.0, 2.0, 0.0, 1.0, 11.0, 43.0, 0.0, 0.0, 0.0, 6.0, 28.0, 4.0, 0.0, 0.0, 3.0, 3.0], [43.0, 2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 34.0, 80.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 45.0, 2.0, 6.0, 1116.0, 0.0, 6.0, 0.0, 2.0, 1.0, 11.0, 1.0, 0.0, 1.0, 10.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 110.0, 83.0, 0.0, 0.0, 0.0, 20.0, 44.0, 0.0, 0.0, 0.0, 7.0, 11.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 65.0, 2.0, 0.0, 0.0, 0.0, 2.0, 1.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 19.0, 34.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0, 6.0, 0.0, 0.0, 0.0, 2.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 199.0, 31.0, 0.0, 0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 1.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0
 , 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 11.0, 12.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 1.0, 19.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 125.0, 8.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 2.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 24.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 6.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 278.0, 3.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 14.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 1.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 149.0, 15.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0
 , 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [108.0, 3.0, 0.0, 0.0, 8.0, 4.0, 35.0, 15.0, 2.0, 55.0, 38.0, 0.0, 0.0, 0.0, 206.0, 496.0, 0.0, 0.0, 0.0, 44.0, 11.0, 0.0, 3.0, 1.0, 5.0, 0.0, 13.0, 24.0, 5.0, 1.0, 154.0, 1.0, 0.0, 5.0, 0.0, 2.0, 50.0, 2.0, 0.0, 9.0, 84.0, 45.0, 5.0, 1.0, 3.0, 0.0, 0.0, 0.0, 6.0, 0.0, 4.0, 0.0, 23.0, 21.0, 3.0, 0.0, 0.0, 16.0, 25.0], [68.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.0, 2.0, 0.0, 0.0, 0.0, 38.0, 106.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 13.0, 3.0, 2.0, 97.0, 0.0, 0.0, 0.0, 1.0, 3.0, 10.0, 0.0, 0.0, 0.0, 21.0, 15.0, 0.0, 0.0, 10.0, 2.0, 3.0, 1.0, 0.0, 0.0, 2.0, 0.0, 5.0, 24.0, 3.0, 0.0, 0.0, 14.0, 15.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 7.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [83.0, 0.0, 1.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 6.0, 2.0, 0.0, 0.0, 0.0, 35.0, 92.0, 0.0, 0.0, 0.0, 3.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 13.0, 1.0, 1.0, 66.0, 0.0, 0.0, 1.0, 0.0, 1.0, 3.0, 1.0
 , 2.0, 0.0, 5.0, 2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 5.0, 22.0, 0.0, 1.0, 0.0, 0.0, 45.0, 3.0, 0.0, 0.0, 7.0, 8.0], [26.0, 0.0, 2.0, 10.0, 1.0, 0.0, 5.0, 6.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 9.0, 20.0, 3.0, 0.0, 0.0, 0.0, 0.0, 13.0, 7.0, 18.0, 0.0, 7.0, 4.0, 0.0, 0.0, 0.0, 32.0, 0.0, 71.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 8.0, 3.0, 14.0, 0.0, 151.0, 0.0, 3.0, 0.0, 1.0, 12.0, 6.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 94.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  0.0, 0.0, 0.0], [13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 5.0, 4.0], [75.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 8.0, 13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 1.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 24.0, 0.0, 0.0, 0.0, 7.0, 6.0, 0.0, 0.0, 29.0, 0.0, 17.0], [12.0, 0.0, 1.0, 2.0, 13.0, 8.0, 4.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0, 9.0, 0.0, 0.0, 0.0, 11.0, 12.0, 0.0, 0.0, 1.0, 16.0, 0.0]], "in": [{"action": "mouseover", "index": 0, "name": "chart_group,linechart,li
 nechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "mouseover_INTERVAL", "index": 1, "name": "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 2, "name": "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 3, "name": "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 4, "name": "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "drag", "index": 5, "name": "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "elementId": "linech
 art-brush", "elementGroup": "chart_group"}, {"action": "click", "index": 6, "name": "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "elementId": "linechart-clear-range", "elementGroup": "chart_group"}, {"action": "click", "index": 7, "name": "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart-day", "elementGroup": "chart_group"}, {"action": "click", "index": 8, "name": "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart-hour", "elementGroup": "chart_group"}, {"action": "click", "index": 9, "name": "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "elementId": "linechart-range", "elementGroup": "chart_group"}, {"action": "click", "index": 10, "name": "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "elementId": "tag-cloud", "elementGroup": "chart_group"}, {"action": "click", "index": 11, "name": "chart_group,tag-cloud,-,TAG
 ,click,REMOVE,-,filter,USER", "elementId": "tag-cloud", "elementGroup": "chart_group"}, {"action": "click", "index": 12, "name": "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "click", "index": 13, "name": "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "click", "index": 14, "name": "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "mouseover", "index": 15, "name": "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "mouseover_INTERVAL", "index": 16, "name": "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "elementId": "timeline", "elementG
 roup": "chart_group"}, {"action": "click", "index": 17, "name": "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 18, "name": "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 19, "name": "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "drag", "index": 20, "name": "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "elementId": "timeline-brush", "elementGroup": "chart_group"}, {"action": "click", "index": 21, "name": "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "elementId": "timeline-clear-range", "elementGroup": "chart_group"}, {"action": "click", "index": 22, "name": "chart_gr
 oup,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-day", "elementGroup": "chart_group"}, {"action": "click", "index": 23, "name": "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-hour", "elementGroup": "chart_group"}, {"action": "click", "index": 24, "name": "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-month", "elementGroup": "chart_group"}, {"action": "click", "index": 25, "name": "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "elementId": "timeline-range", "elementGroup": "chart_group"}, {"action": "click", "index": 26, "name": "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-year", "elementGroup": "chart_group"}, {"action": "click", "index": 27, "name": "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"
 action": "click", "index": 28, "name": "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 29, "name": "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "drag", "index": 30, "name": "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "panstart", "index": 31, "name": "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "zoom", "index": 32, "name": "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 33, "name": "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "elementId": "map-layer-active-button", "elementGroup": "map_group"}, {"action": "click", "index": 34, "name": "query_group,filter-builder-
 add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "elementId": "filter-builder-add-filter", "elementGroup": "query_group"}, {"action": "click", "index": 35, "name": "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-and-clauses", "elementGroup": "query_group"}, {"action": "click", "index": 36, "name": "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "elementId": "filter-builder-clear-all", "elementGroup": "query_group"}, {"action": "click", "index": 37, "name": "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "elementId": "filter-builder-remove-filter", "elementGroup": "query_group"}, {"action": "click", "index": 38, "name": "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "elementId": "filter-builder-selected-field", "elementGroup": "query_group"}, {"action": "click", "index": 39, "name": "query_group,
 filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "elementId": "filter-builder-selectedOperator", "elementGroup": "query_group"}, {"action": "keydown", "index": 40, "name": "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "elementId": "filter-builder-selectedValue", "elementGroup": "query_group"}, {"action": "keydown_INTERVAL", "index": 41, "name": "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "elementId": "filter-builder-selectedValue", "elementGroup": "query_group"}, {"action": "click", "index": 42, "name": "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-0", "elementGroup": "query_group"}, {"action": "click", "index": 43, "name": "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-1", "elementGroup
 ": "query_group"}, {"action": "click", "index": 44, "name": "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-2", "elementGroup": "query_group"}, {"action": "click", "index": 45, "name": "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "drag", "index": 46, "name": "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "drag", "index": 47, "name": "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "scroll", "index": 48, "name": "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "scroll_INTERVAL", "index": 49, "name": "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,
 -,scroll-datagrid,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "keydown_INTERVAL", "index": 50, "name": "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "elementId": "datagrid-limit", "elementGroup": "table_group"}, {"action": "click", "index": 51, "name": "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "elementId": "datagrid-refresh", "elementGroup": "table_group"}, {"action": "click", "index": 52, "name": "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "elementId": "datagrid-sort-direction", "elementGroup": "table_group"}, {"action": "click", "index": 53, "name": "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "elementId": "chart-options", "elementGroup": "top"}, {"action": "click", "index": 54, "name": "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "elementId": "chart-options", "elementGroup": "top"}, {"action": "click", "index": 55, "name": "top,data
 set-menu,-,BUTTON,click,SELECT,-,dataset,USER", "elementId": "dataset-menu", "elementGroup": "top"}, {"action": "onload", "index": 56, "name": "top,window,-,WINDOW,onload,SHOW,-,-,USER", "elementId": "window", "elementGroup": "top"}, {"action": "click", "index": 57, "name": "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "elementId": "workspace", "elementGroup": "top"}, {"action": "dragstart", "index": 58, "name": "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER", "elementId": "workspace", "elementGroup": "top"}]}, "degree": {"blt": [{"index": 0, "value": 53}, {"index": 1, "value": 6}, {"index": 2, "value": 10}, {"index": 3, "value": 12}, {"index": 4, "value": 12}, {"index": 5, "value": 15}, {"index": 6, "value": 29}, {"index": 7, "value": 34}, {"index": 8, "value": 11}, {"index": 9, "value": 26}, {"index": 10, "value": 25}, {"index": 11, "value": 3}, {"index": 12, "value": 2}, {"index": 13, "value": 6}, {"index": 14, "value": 67}, {"index": 15
 , "value": 73}, {"index": 16, "value": 11}, {"index": 17, "value": 2}, {"index": 18, "value": 5}, {"index": 19, "value": 20}, {"index": 20, "value": 20}, {"index": 21, "value": 15}, {"index": 22, "value": 9}, {"index": 23, "value": 13}, {"index": 24, "value": 16}, {"index": 25, "value": 9}, {"index": 26, "value": 30}, {"index": 27, "value": 18}, {"index": 28, "value": 11}, {"index": 29, "value": 9}, {"index": 30, "value": 57}, {"index": 31, "value": 30}, {"index": 32, "value": 16}, {"index": 33, "value": 26}, {"index": 34, "value": 20}, {"index": 35, "value": 16}, {"index": 36, "value": 35}, {"index": 37, "value": 25}, {"index": 38, "value": 11}, {"index": 39, "value": 12}, {"index": 40, "value": 33}, {"index": 41, "value": 26}, {"index": 42, "value": 9}, {"index": 43, "value": 2}, {"index": 44, "value": 20}, {"index": 45, "value": 3}, {"index": 46, "value": 6}, {"index": 47, "value": 77}, {"index": 48, "value": 56}, {"index": 49, "value": 2}, {"index": 50, "value": 9}, {"index": 51
 , "value": 2}, {"index": 52, "value": 62}, {"index": 53, "value": 56}, {"index": 54, "value": 18}, {"index": 55, "value": 2}, {"index": 56, "value": 11}, {"index": 57, "value": 44}, {"index": 58, "value": 42}], "out": [{"action": "mouseover", "index": 0, "name": "chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "mouseover_INTERVAL", "index": 1, "name": "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 2, "name": "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 3, "name": "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "click", "index": 4, "name": "cha
 rt_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart", "elementGroup": "chart_group"}, {"action": "drag", "index": 5, "name": "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "elementId": "linechart-brush", "elementGroup": "chart_group"}, {"action": "click", "index": 6, "name": "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "elementId": "linechart-clear-range", "elementGroup": "chart_group"}, {"action": "click", "index": 7, "name": "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart-day", "elementGroup": "chart_group"}, {"action": "click", "index": 8, "name": "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "elementId": "linechart-hour", "elementGroup": "chart_group"}, {"action": "click", "index": 9, "name": "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER",
  "elementId": "linechart-range", "elementGroup": "chart_group"}, {"action": "click", "index": 10, "name": "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "elementId": "tag-cloud", "elementGroup": "chart_group"}, {"action": "click", "index": 11, "name": "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "elementId": "tag-cloud", "elementGroup": "chart_group"}, {"action": "click", "index": 12, "name": "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "click", "index": 13, "name": "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "click", "index": 14, "name": "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "elementId": "tag-cloud-options", "elementGroup": "chart_group"}, {"action": "mouseover", "index": 15, "name": "chart_g
 roup,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "mouseover_INTERVAL", "index": 16, "name": "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 17, "name": "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 18, "name": "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "click", "index": 19, "name": "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline", "elementGroup": "chart_group"}, {"action": "drag", "index": 20, "name": "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "elementI
 d": "timeline-brush", "elementGroup": "chart_group"}, {"action": "click", "index": 21, "name": "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "elementId": "timeline-clear-range", "elementGroup": "chart_group"}, {"action": "click", "index": 22, "name": "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-day", "elementGroup": "chart_group"}, {"action": "click", "index": 23, "name": "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-hour", "elementGroup": "chart_group"}, {"action": "click", "index": 24, "name": "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-month", "elementGroup": "chart_group"}, {"action": "click", "index": 25, "name": "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "elementId": "timeline-range", "elementGroup": "chart_group"}, {"action": "click", "index": 26, "n
 ame": "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "elementId": "timeline-year", "elementGroup": "chart_group"}, {"action": "click", "index": 27, "name": "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 28, "name": "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "click", "index": 29, "name": "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "drag", "index": 30, "name": "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "panstart", "index": 31, "name": "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "elementId": "map", "elementGroup": "map_group"}, {"action": "zoom", "index": 32, "name": "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "elementId": "m
 ap", "elementGroup": "map_group"}, {"action": "click", "index": 33, "name": "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "elementId": "map-layer-active-button", "elementGroup": "map_group"}, {"action": "click", "index": 34, "name": "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "elementId": "filter-builder-add-filter", "elementGroup": "query_group"}, {"action": "click", "index": 35, "name": "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-and-clauses", "elementGroup": "query_group"}, {"action": "click", "index": 36, "name": "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "elementId": "filter-builder-clear-all", "elementGroup": "query_group"}, {"action": "click", "index": 37, "name": "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "elementId": "filter-builder-remove-filter", "element
 Group": "query_group"}, {"action": "click", "index": 38, "name": "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "elementId": "filter-builder-selected-field", "elementGroup": "query_group"}, {"action": "click", "index": 39, "name": "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "elementId": "filter-builder-selectedOperator", "elementGroup": "query_group"}, {"action": "keydown", "index": 40, "name": "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "elementId": "filter-builder-selectedValue", "elementGroup": "query_group"}, {"action": "keydown_INTERVAL", "index": 41, "name": "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "elementId": "filter-builder-selectedValue", "elementGroup": "query_group"}, {"action": "click", "index": 42, "name": "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,fil
 ter-builder,USER", "elementId": "filter-builder-update-filter-0", "elementGroup": "query_group"}, {"action": "click", "index": 43, "name": "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-1", "elementGroup": "query_group"}, {"action": "click", "index": 44, "name": "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "elementId": "filter-builder-update-filter-2", "elementGroup": "query_group"}, {"action": "click", "index": 45, "name": "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "drag", "index": 46, "name": "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "drag", "index": 47, "name": "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "elementId": "datagrid", "elementGroup": "tab
 le_group"}, {"action": "scroll", "index": 48, "name": "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "scroll_INTERVAL", "index": 49, "name": "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "elementId": "datagrid", "elementGroup": "table_group"}, {"action": "keydown_INTERVAL", "index": 50, "name": "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "elementId": "datagrid-limit", "elementGroup": "table_group"}, {"action": "click", "index": 51, "name": "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "elementId": "datagrid-refresh", "elementGroup": "table_group"}, {"action": "click", "index": 52, "name": "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "elementId": "datagrid-sort-direction", "elementGroup": "table_group"}, {"action": "click", "index": 53, "name": "top,chart-options,-,BU
 TTON,click,HIDE,-,options,USER", "elementId": "chart-options", "elementGroup": "top"}, {"action": "click", "index": 54, "name": "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "elementId": "chart-options", "elementGroup": "top"}, {"action": "click", "index": 55, "name": "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "elementId": "dataset-menu", "elementGroup": "top"}, {"action": "onload", "index": 56, "name": "top,window,-,WINDOW,onload,SHOW,-,-,USER", "elementId": "window", "elementGroup": "top"}, {"action": "click", "index": 57, "name": "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "elementId": "workspace", "elementGroup": "top"}, {"action": "dragstart", "index": 58, "name": "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER", "elementId": "workspace", "elementGroup": "top"}], "outMatrix": [[0.0, 0.0, 0.0, 0.0, 59.0, 51.0, 3.0, 6.0, 50.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 20.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1
 .0, 0.0, 0.0, 0.0, 50.0, 0.0, 0.0, 0.0, 2.0, 0.0, 4.0, 2.0, 1.0, 3.0, 22.0, 10.0, 0.0, 0.0, 4.0, 0.0, 0.0, 28.0, 44.0, 0.0, 0.0, 0.0, 26.0, 88.0, 2.0, 0.0, 0.0, 81.0, 6.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 1.0, 0.0, 0.0, 0.0, 0.0, 3.0], [52.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [12.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 33.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 1.0, 2.0], [16.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 14.0, 14.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 87.0, 4.0, 0.0, 0.0, 0.0, 3.0, 3.0, 1.0, 0.0, 0.0, 0.0, 3.0], [6.0, 0.0, 0.0, 2.0, 1.0, 0.0,
  2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 21.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 146.0, 7.0, 0.0, 0.0, 0.0, 3.0, 1.0, 1.0, 0.0, 0.0, 1.0, 5.0], [28.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 27.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 5.0, 8.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 110.0, 14.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0
 .0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 64.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 87.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 7.0, 12.0, 0.0, 20.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 105.0, 11.0, 2.0, 0.0, 1.0, 32.0, 1.0, 3.0, 10.0, 0.0, 0.0, 53.0, 0.0, 3.0, 5.0, 2.0, 6.0, 29.0, 11.0, 1.0, 0.0, 49.0, 31.0, 1.0, 0.0, 1.0, 0.0, 0.0, 90.0, 45.0, 0.0, 0.0, 0.0, 23.0, 39.0, 4.0, 0.0, 0.0, 10.0, 0.0], [0.0, 0.0, 0.0, 1.0, 5.0, 4.0, 28.0, 49.0, 0.0, 36.0, 19.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 289.0, 90.0, 1.0, 1.0, 0.0, 122.0, 1.0, 12.0, 13.0, 4.0, 1.0, 100.0, 0.0, 3.0, 4.0, 7.0, 18.0, 55.0, 16.0, 4.0, 6.0, 56.0, 76.0, 6.0, 0.0, 2.0, 0.0, 0.0, 124.0, 89.0, 0.0, 0.0, 0.0, 21.0, 103.0, 7.0, 0.0, 0.0, 20.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
 , [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 33.0, 120.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 382.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 30.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 18.0, 10.0, 0.0, 0.0, 0.0, 
 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 56.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 6.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0,
  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 23.0, 95.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 89.0, 190.0, 0.0, 0.0, 0.0, 71.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 64.0, 6.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 1.0, 19.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.0, 1.0, 0.0, 158.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 6.0, 11.0, 1.0, 0.0, 0.0, 0.0, 0.0
 ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 294.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 16.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 13.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 6.0, 3.0, 0.0, 0.0, 0.0, 39.0, 83.0, 0.0, 0.0, 0.0
 , 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 224.0, 128.0, 1.0, 19.0, 0.0, 1655.0, 3.0, 0.0, 1.0, 0.0, 8.0, 2.0, 0.0, 2.0, 20.0, 12.0, 0.0, 0.0, 2.0, 0.0, 1.0, 11.0, 43.0, 0.0, 0.0, 0.0, 6.0, 28.0, 4.0, 0.0, 0.0, 3.0, 3.0], [43.0, 2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 34.0, 80.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 45.0, 2.0, 6.0, 1116.0, 0.0, 6.0, 0.0, 2.0, 1.0, 11.0, 1.0, 0.0, 1.0, 10.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 110.0, 83.0, 0.0, 0.0, 0.0, 20.0, 44.0, 0.0, 0.0, 0.0, 7.0, 11.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 65.0, 2.0, 0.0, 0.0, 0.0, 2.0, 1.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 19.0, 34.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0
 , 0.0, 1.0, 6.0, 0.0, 0.0, 0.0, 2.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 199.0, 31.0, 0.0, 0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 1.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 22.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 11.0, 12.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 1.0, 19.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 125.0, 8.0, 0.0, 0.0, 0.0, 1.0, 
 1.0, 1.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 2.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 24.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 6
 .0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 278.0, 3.0, 0.0, 1.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 14.0, 20.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 1.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 149.0, 15.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 14.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 
 0.0, 0.0, 1.0, 0.0], [108.0, 3.0, 0.0, 0.0, 8.0, 4.0, 35.0, 15.0, 2.0, 55.0, 38.0, 0.0, 0.0, 0.0, 206.0, 496.0, 0.0, 0.0, 0.0, 44.0, 11.0, 0.0, 3.0, 1.0, 5.0, 0.0, 13.0, 24.0, 5.0, 1.0, 154.0, 1.0, 0.0, 5.0, 0.0, 2.0, 50.0, 2.0, 0.0, 9.0, 84.0, 45.0, 5.0, 1.0, 3.0, 0.0, 0.0, 0.0, 6.0, 0.0, 4.0, 0.0, 23.0, 21.0, 3.0, 0.0, 0.0, 16.0, 25.0], [68.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.0, 2.0, 0.0, 0.0, 0.0, 38.0, 106.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 13.0, 3.0, 2.0, 97.0, 0.0, 0.0, 0.0, 1.0, 3.0, 10.0, 0.0, 0.0, 0.0, 21.0, 15.0, 0.0, 0.0, 10.0, 2.0, 3.0, 1.0, 0.0, 0.0, 2.0, 0.0, 5.0, 24.0, 3.0, 0.0, 0.0, 14.0, 15.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.
 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.0, 7.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [83.0, 0.0, 1.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 6.0, 2.0, 0.0, 0.0, 0.0, 35.0, 92.0, 0.0, 0.0, 0.0, 3.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 13.0, 1.0, 1.0, 66.0, 0.0, 0.0, 1.0, 0.0, 1.0, 3.0, 1.0, 2.0, 0.0, 5.0, 2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 5.0, 22.0, 0.0, 1.0, 0.0, 0.0, 45.0, 3.0, 0.0, 0.0, 7.0, 8.0], [26.0, 0.0, 2.0, 10.0, 1.0, 0.0, 5.0, 6.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 9.0, 20.0, 3.0, 0.0, 0.0, 0.0, 0.0, 13.0, 7.0, 18.0, 0.0, 7.0, 4.0, 0.0, 0
 .0, 0.0, 32.0, 0.0, 71.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 8.0, 3.0, 14.0, 0.0, 151.0, 0.0, 3.0, 0.0, 1.0, 12.0, 6.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 94.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 53.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0
 , 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 5.0, 4.0], [75.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 8.0, 13.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 1.0, 0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.0, 24.0, 0.0, 0.0, 0.0, 7.0, 6.0, 0.0, 0.0, 29.0, 0.0, 17.0], [12.0, 0.0, 1.0, 2.0, 13.0, 8.0, 4.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0, 9.0, 0.0, 0.0, 0.0, 11.0, 12.0, 0.0, 0.0, 1.0, 16.0, 0.0]], "inMatrix": [[0.0, 0.0, 0.0, 0.0, 59.0, 51.0, 3.0, 6.0, 50.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 20.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 50.0, 0.0, 0.0, 0.0, 2.0, 0.0, 4.0, 2.0, 1.0, 3.0, 22.0, 10.0, 0.0, 0.0, 4.0, 0.0, 0.0, 28.0, 44.0, 0.0, 0.0, 0.0, 26.0, 88.0, 2.0, 0.0, 0.0, 81.0, 6.0], [0.0, 0.0, 
 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,

<TRUNCATED>


[08/40] incubator-senssoft git commit: Updated port for logstash. Updated distill context. Added startup script for TAP

Posted by le...@apache.org.
Updated port for logstash. Updated distill context. Added startup script for TAP


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/6b884a9a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/6b884a9a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/6b884a9a

Branch: refs/heads/asf-site
Commit: 6b884a9a66742db077372bd1f741b1b2ec6eec55
Parents: d8f0f7c
Author: Rob Foley <ro...@gmail.com>
Authored: Wed Mar 22 17:17:40 2017 -0400
Committer: Rob Foley <ro...@gmail.com>
Committed: Wed Mar 22 17:17:40 2017 -0400

----------------------------------------------------------------------
 docker/docker-compose.yml | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6b884a9a/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 97ee0cb..b1e552b 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -42,7 +42,7 @@ services:
     container_name: senssoft-userale-forwarder
     command: -f /etc/logstash/conf.d
     ports:
-      - 8000:8000
+      - 8080:8080
     volumes: 
       - ./logstash/config/logstash-userale.conf:/etc/logstash/conf.d/logstash-userale.conf
       - ./logstash/templates/userale.json:/usr/share/logstash/templates/userale.json
@@ -51,9 +51,7 @@ services:
     environment:
       LS_HEAP_SIZE: "2048m"
   distill:
-    build: 
-      context: .
-      dockerfile: ./distill/Dockerfile
+    build: ./distill
     container_name: distill
     ports:
       - 8090:8090
@@ -69,7 +67,7 @@ services:
   tap:
     container_name: tap-web
     build: ./tap
-    command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
+    command: ["bash", "./wait-for-postgres.sh"]
     ports:
       - "8000:8000"
     depends_on:


[30/40] incubator-senssoft git commit: Fixed bug in tap's dockerfile

Posted by le...@apache.org.
Fixed bug in tap's dockerfile


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/87d7e09c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/87d7e09c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/87d7e09c

Branch: refs/heads/asf-site
Commit: 87d7e09cb5d89805aec700511cf74f7e75b6eab7
Parents: 109b14a
Author: msbeard <ms...@apache.org>
Authored: Thu Oct 5 09:48:47 2017 -0400
Committer: msbeard <ms...@apache.org>
Committed: Thu Oct 5 09:48:47 2017 -0400

----------------------------------------------------------------------
 docker/tap/Dockerfile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/87d7e09c/docker/tap/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
index f705fb3..0089f95 100644
--- a/docker/tap/Dockerfile
+++ b/docker/tap/Dockerfile
@@ -51,7 +51,8 @@ RUN npm install
 RUN pip install -r requirements.txt
 
 # Add application files
-ADD secret.py /usr/src/app/tap/settings
+RUN cp secrets/secret.py tap/settings
+#ADD secret.py /usr/src/app/tap/settings
 #ADD secrets/neon_counts.js /usr/src/app/public
 #ADD secrets/neon_graph.js /usr/src/app/public
 


[24/40] incubator-senssoft git commit: using tap docker

Posted by le...@apache.org.
using tap docker


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/2f186ed3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/2f186ed3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/2f186ed3

Branch: refs/heads/asf-site
Commit: 2f186ed3aeb321d18568ea7cc1e992a096cf695e
Parents: f4d5ba4
Author: msb3399 <mb...@draper.com>
Authored: Wed Aug 9 11:47:06 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Wed Aug 9 11:47:06 2017 -0400

----------------------------------------------------------------------
 docker/docker-compose.yml | 36 +++++++++++++++++++-----------------
 docker/tap/Dockerfile     | 11 +++++------
 2 files changed, 24 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/2f186ed3/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index b1337f2..09580a7 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -130,6 +130,25 @@ services:
     networks:
       - esnet
 
+  # TAP's Database
+  db:
+    container_name: tap-db
+    build: ./db
+    ports:
+      - "5432:5432"
+
+  # TAP
+  tap:
+    container_name: tap-web
+    build: ./tap
+    command: ["bash", "./wait-for-postgres.sh"]
+    ports:
+      - "8010:8010"
+    depends_on:
+      - db
+    links:
+      - db:db
+
 volumes:
   esdata1:
     driver: local
@@ -138,20 +157,3 @@ volumes:
 
 networks:
   esnet: 
-
-  # db:
-  #   container_name: tap-db
-  #   build: ./db
-  #   ports:
-  #     - "5432:5432"
-
-  # tap:
-  #   container_name: tap-web
-  #   build: ./tap
-  #   command: ["bash", "./wait-for-postgres.sh"]
-  #   ports:
-  #     - "8000:8000"
-  #   depends_on:
-  #     - db
-  #   links:
-  #     - db:db

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/2f186ed3/docker/tap/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
index 5fa380f..e0dd445 100644
--- a/docker/tap/Dockerfile
+++ b/docker/tap/Dockerfile
@@ -40,9 +40,8 @@ RUN sudo -E apt-get -yqq install \
   git
 
 # Clone TAP
-RUN git clone -b master https://github.com/apache/incubator-senssoft-tap.git app
+RUN git clone -b tapdocker https://github.com/apache/incubator-senssoft-tap.git app
 WORKDIR /usr/src/app
-RUN git pull
 
 # Install packages
 RUN npm install 
@@ -51,9 +50,9 @@ RUN npm install
 RUN pip install -r requirements.txt
 
 # Add application files
-ADD secret.py /usr/src/app/tap/settings
-ADD neon_counts.js /usr/src/app/public
-ADD neon_graph.js /usr/src/app/public
+ADD secrets/secret.py /usr/src/app/tap/settings
+ADD secrets/neon_counts.js /usr/src/app/public
+ADD secrets/neon_graph.js /usr/src/app/public
 
 # Add startup script
 ADD wait-for-postgres.sh /usr/src/app
@@ -62,4 +61,4 @@ ADD wait-for-postgres.sh /usr/src/app
 RUN gulp build
 
 # Export port
-EXPOSE 8000
+EXPOSE 8010


[07/40] incubator-senssoft git commit: Initial commit for script to retry server startup until Postgres is ready

Posted by le...@apache.org.
Initial commit for script to retry server startup until Postgres is ready


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/d8f0f7c6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/d8f0f7c6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/d8f0f7c6

Branch: refs/heads/asf-site
Commit: d8f0f7c6930cd17f042c8a188e57abc166e9fedb
Parents: 00c99eb
Author: Rob Foley <ro...@gmail.com>
Authored: Wed Mar 22 17:16:48 2017 -0400
Committer: Rob Foley <ro...@gmail.com>
Committed: Wed Mar 22 17:16:48 2017 -0400

----------------------------------------------------------------------
 docker/tap/wait-for-postgres.sh | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/d8f0f7c6/docker/tap/wait-for-postgres.sh
----------------------------------------------------------------------
diff --git a/docker/tap/wait-for-postgres.sh b/docker/tap/wait-for-postgres.sh
new file mode 100644
index 0000000..96084c7
--- /dev/null
+++ b/docker/tap/wait-for-postgres.sh
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+
+#   http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!/bin/bash
+
+delay=2
+sleep $delay
+n=0
+until [ $n -ge 3 ]
+do
+  python manage.py migrate && python manage.py runserver 0.0.0.0:8000 && break
+  echo "Retrying connection in $delay seconds..."
+  n=$[$n+1]
+  sleep 2
+done


[33/40] incubator-senssoft git commit: Updated copyright attribution

Posted by le...@apache.org.
Updated copyright attribution


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/fabb9a55
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/fabb9a55
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/fabb9a55

Branch: refs/heads/asf-site
Commit: fabb9a55e465d6fc4d358b42b44ecf1d89b5d9a3
Parents: 23dfae2
Author: Rob Foley <rg...@users.noreply.github.com>
Authored: Fri Dec 1 12:58:01 2017 -0500
Committer: Rob Foley <rg...@users.noreply.github.com>
Committed: Fri Dec 1 12:58:01 2017 -0500

----------------------------------------------------------------------
 LICENSE                                        |  2 +-
 docker/README.md                               | 14 ++++++++++----
 site/_includes/footer.html                     |  2 +-
 site/_site/community/index.html                |  2 +-
 site/_site/distill/index.html                  |  2 +-
 site/_site/docs/contributing.html              |  2 +-
 site/_site/docs/contributing/index.html        |  2 +-
 site/_site/docs/distill/analytics.html         |  2 +-
 site/_site/docs/distill/api.html               |  2 +-
 site/_site/docs/distill/changelog.html         |  2 +-
 site/_site/docs/distill/http.html              |  2 +-
 site/_site/docs/distill/index.html             |  2 +-
 site/_site/docs/distill/models.html            |  2 +-
 site/_site/docs/distill/start.html             |  2 +-
 site/_site/docs/distill/utilities.html         |  2 +-
 site/_site/docs/index.html                     |  2 +-
 site/_site/docs/stout/index.html               |  2 +-
 site/_site/docs/stout/start.html               |  2 +-
 site/_site/docs/system/index.html              |  2 +-
 site/_site/docs/tap/index.html                 |  2 +-
 site/_site/docs/userale/index.html             |  2 +-
 site/_site/docs/useralejs/contributing.html    |  2 +-
 site/_site/docs/useralejs/index.html           |  2 +-
 site/_site/docs/useralejs/testing.html         |  2 +-
 site/_site/docs/useralejs/troubleshooting.html |  2 +-
 site/_site/docs/useralepy/api.html             |  2 +-
 site/_site/docs/useralepy/changelog.html       |  2 +-
 site/_site/docs/useralepy/index.html           |  2 +-
 site/_site/docs/useralepy/start.html           |  2 +-
 site/_site/docs/useralepyqt/api.html           |  2 +-
 site/_site/docs/useralepyqt/changelog.html     |  2 +-
 site/_site/docs/useralepyqt/index.html         |  2 +-
 site/_site/docs/useralepyqt/start.html         |  2 +-
 site/_site/index.html                          |  2 +-
 site/_site/releases/index.html                 |  2 +-
 site/_site/stout/index.html                    |  2 +-
 site/_site/system/index.html                   |  2 +-
 site/_site/tap/index.html                      |  2 +-
 site/_site/userale/index.html                  |  2 +-
 39 files changed, 48 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index c9857e3..761b178 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright 2016 The Charles Stark Draper Laboratory, Inc.
+   © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/docker/README.md
----------------------------------------------------------------------
diff --git a/docker/README.md b/docker/README.md
index 2669bdb..1d84c2c 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -14,22 +14,28 @@ How to Build Docker Containers
    # For Linux systems
    $ sysctl -w vm.max_map_count=262144
    ```
-4. To build and run all ``Docker`` containers.
+4. Additionally, ensure that your kernel setting for the maximum number of file descriptions is at least 65536.
+   ```
+   # For Linux systems
+   $ sysctl -w fs.file-max=65536
+   ```
+5. To build and run all ``Docker`` containers.
     ```
     $ docker-compose up -d
     ```
-5. To run a specific ``Docker`` container.
+6. To run a specific ``Docker`` container.
     ```
     $ docker-compose up -d site
     # Note: site container is instrumented w/ userale; all userale logs will be sent to the
     # elasticsearch docker container.
     ```
-6. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
+7. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
+   Please note that Kibana can take upwards of several minutes to start, depending on the available system resources.
     ```sh
     http://localhost:5601
     ```
 
-7. Stop all the containers.
+8. Stop all the containers.
     ```sh
     $ docker-compose stop
     ```

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_includes/footer.html
----------------------------------------------------------------------
diff --git a/site/_includes/footer.html b/site/_includes/footer.html
index 6c7359c..be4dedc 100644
--- a/site/_includes/footer.html
+++ b/site/_includes/footer.html
@@ -53,7 +53,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/community/index.html
----------------------------------------------------------------------
diff --git a/site/_site/community/index.html b/site/_site/community/index.html
index 6cb5e85..bc974e1 100644
--- a/site/_site/community/index.html
+++ b/site/_site/community/index.html
@@ -220,7 +220,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/distill/index.html
----------------------------------------------------------------------
diff --git a/site/_site/distill/index.html b/site/_site/distill/index.html
index 7cf571c..f958c27 100644
--- a/site/_site/distill/index.html
+++ b/site/_site/distill/index.html
@@ -213,7 +213,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/contributing.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/contributing.html b/site/_site/docs/contributing.html
index 83e43cf..4461299 100644
--- a/site/_site/docs/contributing.html
+++ b/site/_site/docs/contributing.html
@@ -322,7 +322,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/contributing/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/contributing/index.html b/site/_site/docs/contributing/index.html
index 68c1fcf..dfcb261 100644
--- a/site/_site/docs/contributing/index.html
+++ b/site/_site/docs/contributing/index.html
@@ -322,7 +322,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/analytics.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/analytics.html b/site/_site/docs/distill/analytics.html
index b596e34..8d77ac4 100644
--- a/site/_site/docs/distill/analytics.html
+++ b/site/_site/docs/distill/analytics.html
@@ -392,7 +392,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/api.html b/site/_site/docs/distill/api.html
index f386b18..92a8387 100644
--- a/site/_site/docs/distill/api.html
+++ b/site/_site/docs/distill/api.html
@@ -323,7 +323,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/changelog.html b/site/_site/docs/distill/changelog.html
index 5ac4c9f..8afdf04 100644
--- a/site/_site/docs/distill/changelog.html
+++ b/site/_site/docs/distill/changelog.html
@@ -327,7 +327,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/http.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/http.html b/site/_site/docs/distill/http.html
index 0a565c3..b764dad 100644
--- a/site/_site/docs/distill/http.html
+++ b/site/_site/docs/distill/http.html
@@ -626,7 +626,7 @@ testing/?stat<span class="o">=</span>terms&amp;elem<span class="o">=</span>signu
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/index.html b/site/_site/docs/distill/index.html
index f045787..8a67206 100644
--- a/site/_site/docs/distill/index.html
+++ b/site/_site/docs/distill/index.html
@@ -467,7 +467,7 @@ When the package is installed via easy_install or pip this function will be boun
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/models.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/models.html b/site/_site/docs/distill/models.html
index 29d0c6d..650a869 100644
--- a/site/_site/docs/distill/models.html
+++ b/site/_site/docs/distill/models.html
@@ -611,7 +611,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/start.html b/site/_site/docs/distill/start.html
index 47cba1b..9d50ec3 100644
--- a/site/_site/docs/distill/start.html
+++ b/site/_site/docs/distill/start.html
@@ -310,7 +310,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/distill/utilities.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/utilities.html b/site/_site/docs/distill/utilities.html
index d1fd4c8..4725c02 100644
--- a/site/_site/docs/distill/utilities.html
+++ b/site/_site/docs/distill/utilities.html
@@ -397,7 +397,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/index.html b/site/_site/docs/index.html
index c95e804..d3c8f64 100644
--- a/site/_site/docs/index.html
+++ b/site/_site/docs/index.html
@@ -300,7 +300,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/stout/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/stout/index.html b/site/_site/docs/stout/index.html
index db49f46..aed0ede 100644
--- a/site/_site/docs/stout/index.html
+++ b/site/_site/docs/stout/index.html
@@ -320,7 +320,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/stout/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/stout/start.html b/site/_site/docs/stout/start.html
index de2d231..86d84dc 100644
--- a/site/_site/docs/stout/start.html
+++ b/site/_site/docs/stout/start.html
@@ -400,7 +400,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/system/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/system/index.html b/site/_site/docs/system/index.html
index bdd9cce..96f9c79 100644
--- a/site/_site/docs/system/index.html
+++ b/site/_site/docs/system/index.html
@@ -337,7 +337,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/tap/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/tap/index.html b/site/_site/docs/tap/index.html
index 344372b..305dc90 100644
--- a/site/_site/docs/tap/index.html
+++ b/site/_site/docs/tap/index.html
@@ -302,7 +302,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/userale/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/userale/index.html b/site/_site/docs/userale/index.html
index 18208a9..8cd3468 100644
--- a/site/_site/docs/userale/index.html
+++ b/site/_site/docs/userale/index.html
@@ -312,7 +312,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralejs/contributing.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/contributing.html b/site/_site/docs/useralejs/contributing.html
index 477ad10..b652880 100644
--- a/site/_site/docs/useralejs/contributing.html
+++ b/site/_site/docs/useralejs/contributing.html
@@ -319,7 +319,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralejs/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/index.html b/site/_site/docs/useralejs/index.html
index 2096118..2adf48e 100644
--- a/site/_site/docs/useralejs/index.html
+++ b/site/_site/docs/useralejs/index.html
@@ -382,7 +382,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralejs/testing.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/testing.html b/site/_site/docs/useralejs/testing.html
index 8c03562..d73d6fc 100644
--- a/site/_site/docs/useralejs/testing.html
+++ b/site/_site/docs/useralejs/testing.html
@@ -319,7 +319,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralejs/troubleshooting.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/troubleshooting.html b/site/_site/docs/useralejs/troubleshooting.html
index faaf63b..78e9aa3 100644
--- a/site/_site/docs/useralejs/troubleshooting.html
+++ b/site/_site/docs/useralejs/troubleshooting.html
@@ -304,7 +304,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepy/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/api.html b/site/_site/docs/useralepy/api.html
index 024eebc..3fef1fc 100644
--- a/site/_site/docs/useralepy/api.html
+++ b/site/_site/docs/useralepy/api.html
@@ -580,7 +580,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepy/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/changelog.html b/site/_site/docs/useralepy/changelog.html
index 9967257..a6aacab 100644
--- a/site/_site/docs/useralepy/changelog.html
+++ b/site/_site/docs/useralepy/changelog.html
@@ -367,7 +367,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepy/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/index.html b/site/_site/docs/useralepy/index.html
index 6312b9a..12e5eec 100644
--- a/site/_site/docs/useralepy/index.html
+++ b/site/_site/docs/useralepy/index.html
@@ -411,7 +411,7 @@ When the package is installed via easy_install3 or pip3 this function will be bo
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepy/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/start.html b/site/_site/docs/useralepy/start.html
index a53f293..bba039f 100644
--- a/site/_site/docs/useralepy/start.html
+++ b/site/_site/docs/useralepy/start.html
@@ -352,7 +352,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepyqt/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepyqt/api.html b/site/_site/docs/useralepyqt/api.html
index 67b3e91..6c4cfb1 100644
--- a/site/_site/docs/useralepyqt/api.html
+++ b/site/_site/docs/useralepyqt/api.html
@@ -580,7 +580,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepyqt/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepyqt/changelog.html b/site/_site/docs/useralepyqt/changelog.html
index 26c3ba0..9bf3c81 100644
--- a/site/_site/docs/useralepyqt/changelog.html
+++ b/site/_site/docs/useralepyqt/changelog.html
@@ -367,7 +367,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepyqt/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepyqt/index.html b/site/_site/docs/useralepyqt/index.html
index ec58548..55fcdf9 100644
--- a/site/_site/docs/useralepyqt/index.html
+++ b/site/_site/docs/useralepyqt/index.html
@@ -411,7 +411,7 @@ When the package is installed via easy_install3 or pip3 this function will be bo
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/docs/useralepyqt/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepyqt/start.html b/site/_site/docs/useralepyqt/start.html
index d107e34..5e86167 100644
--- a/site/_site/docs/useralepyqt/start.html
+++ b/site/_site/docs/useralepyqt/start.html
@@ -352,7 +352,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/index.html
----------------------------------------------------------------------
diff --git a/site/_site/index.html b/site/_site/index.html
index bc0dee3..a50f481 100644
--- a/site/_site/index.html
+++ b/site/_site/index.html
@@ -446,7 +446,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/releases/index.html
----------------------------------------------------------------------
diff --git a/site/_site/releases/index.html b/site/_site/releases/index.html
index e45307f..27a9152 100644
--- a/site/_site/releases/index.html
+++ b/site/_site/releases/index.html
@@ -138,7 +138,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/stout/index.html
----------------------------------------------------------------------
diff --git a/site/_site/stout/index.html b/site/_site/stout/index.html
index e63c5aa..f40ff14 100644
--- a/site/_site/stout/index.html
+++ b/site/_site/stout/index.html
@@ -227,7 +227,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/system/index.html
----------------------------------------------------------------------
diff --git a/site/_site/system/index.html b/site/_site/system/index.html
index 2359a8d..24cd1c6 100644
--- a/site/_site/system/index.html
+++ b/site/_site/system/index.html
@@ -209,7 +209,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/tap/index.html
----------------------------------------------------------------------
diff --git a/site/_site/tap/index.html b/site/_site/tap/index.html
index a18acc6..0c72281 100644
--- a/site/_site/tap/index.html
+++ b/site/_site/tap/index.html
@@ -293,7 +293,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/fabb9a55/site/_site/userale/index.html
----------------------------------------------------------------------
diff --git a/site/_site/userale/index.html b/site/_site/userale/index.html
index 7ae08ac..0ba9c5a 100644
--- a/site/_site/userale/index.html
+++ b/site/_site/userale/index.html
@@ -376,7 +376,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>


[36/40] incubator-senssoft git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-senssoft

Posted by le...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-senssoft


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/18d45be0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/18d45be0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/18d45be0

Branch: refs/heads/asf-site
Commit: 18d45be0f3c2cc35a034ed57694d57bfe5bd6ff9
Parents: 29a4109 eaae53a
Author: msbeard <ms...@apache.org>
Authored: Fri Jan 26 18:26:12 2018 -0500
Committer: msbeard <ms...@apache.org>
Committed: Fri Jan 26 18:26:12 2018 -0500

----------------------------------------------------------------------
 LICENSE                                        | 2 +-
 docker/README.md                               | 4 +++-
 site/_includes/footer.html                     | 2 +-
 site/_site/community/index.html                | 2 +-
 site/_site/distill/index.html                  | 2 +-
 site/_site/docs/contributing.html              | 2 +-
 site/_site/docs/contributing/index.html        | 2 +-
 site/_site/docs/distill/analytics.html         | 2 +-
 site/_site/docs/distill/api.html               | 2 +-
 site/_site/docs/distill/changelog.html         | 2 +-
 site/_site/docs/distill/http.html              | 2 +-
 site/_site/docs/distill/index.html             | 2 +-
 site/_site/docs/distill/models.html            | 2 +-
 site/_site/docs/distill/start.html             | 2 +-
 site/_site/docs/distill/utilities.html         | 2 +-
 site/_site/docs/index.html                     | 2 +-
 site/_site/docs/stout/index.html               | 2 +-
 site/_site/docs/stout/start.html               | 2 +-
 site/_site/docs/system/index.html              | 2 +-
 site/_site/docs/tap/index.html                 | 2 +-
 site/_site/docs/userale/index.html             | 2 +-
 site/_site/docs/useralejs/contributing.html    | 2 +-
 site/_site/docs/useralejs/index.html           | 2 +-
 site/_site/docs/useralejs/testing.html         | 2 +-
 site/_site/docs/useralejs/troubleshooting.html | 2 +-
 site/_site/docs/useralepy/api.html             | 2 +-
 site/_site/docs/useralepy/changelog.html       | 2 +-
 site/_site/docs/useralepy/index.html           | 2 +-
 site/_site/docs/useralepy/start.html           | 2 +-
 site/_site/docs/useralepyqt/api.html           | 2 +-
 site/_site/docs/useralepyqt/changelog.html     | 2 +-
 site/_site/docs/useralepyqt/index.html         | 2 +-
 site/_site/docs/useralepyqt/start.html         | 2 +-
 site/_site/index.html                          | 2 +-
 site/_site/releases/index.html                 | 2 +-
 site/_site/stout/index.html                    | 2 +-
 site/_site/system/index.html                   | 2 +-
 site/_site/tap/index.html                      | 2 +-
 site/_site/userale/index.html                  | 2 +-
 39 files changed, 41 insertions(+), 39 deletions(-)
----------------------------------------------------------------------



[19/40] incubator-senssoft git commit: Updated README.md

Posted by le...@apache.org.
Updated README.md


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/b999347e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/b999347e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/b999347e

Branch: refs/heads/asf-site
Commit: b999347e61fdc88eb4b4710f6e0a4349bb9af55b
Parents: 49ec905
Author: msb3399 <mb...@draper.com>
Authored: Tue Jul 11 16:07:15 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Tue Jul 11 16:07:15 2017 -0400

----------------------------------------------------------------------
 README.md        |  5 +++++
 docker/README.md | 30 ++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/b999347e/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c1558ec
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+SensSoft Docker Containers and Website
+--------------------------------------
+
+Specific build instructions located in docker and site folders.
+

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/b999347e/docker/README.md
----------------------------------------------------------------------
diff --git a/docker/README.md b/docker/README.md
new file mode 100644
index 0000000..c5a015b
--- /dev/null
+++ b/docker/README.md
@@ -0,0 +1,30 @@
+How to Build Docker Containers
+------------------------------
+
+1. Install [``Docker``](http://docker.com)
+2. Install ``docker-compose``.
+    ```
+    $ mkdir env
+    $ virtualenv env
+    $ source env/bin/activate 
+    $ pip install -e .[docker]
+    ```
+3. Build and run all ``Docker`` containers.
+    ```
+    $ docker-compose up -d
+    ```
+4. Run a specific ``Docker`` container.
+    ```
+    $ docker-compose up -d site
+    # Note: site container is instrumented w/ userale; all userale logs will be sent to the
+    # elasticsearch docker container. 
+    ```
+5. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
+    ```sh
+    http://localhost:5601
+    ```
+    
+6. Stop all the containers.
+    ```sh
+    $ docker-compose stop 
+    ```
\ No newline at end of file


[09/40] incubator-senssoft git commit: Added startup script

Posted by le...@apache.org.
Added startup script


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/93d96dc9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/93d96dc9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/93d96dc9

Branch: refs/heads/asf-site
Commit: 93d96dc91f98ee3d88b9abba1df14eb45ee2022d
Parents: 6b884a9
Author: Rob Foley <ro...@gmail.com>
Authored: Wed Mar 22 17:18:05 2017 -0400
Committer: Rob Foley <ro...@gmail.com>
Committed: Wed Mar 22 17:18:05 2017 -0400

----------------------------------------------------------------------
 docker/tap/Dockerfile | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/93d96dc9/docker/tap/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
index 24f7291..5fa380f 100644
--- a/docker/tap/Dockerfile
+++ b/docker/tap/Dockerfile
@@ -55,6 +55,8 @@ ADD secret.py /usr/src/app/tap/settings
 ADD neon_counts.js /usr/src/app/public
 ADD neon_graph.js /usr/src/app/public
 
+# Add startup script
+ADD wait-for-postgres.sh /usr/src/app
 
 # Startup Application
 RUN gulp build


[34/40] incubator-senssoft git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-senssoft

Posted by le...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-senssoft


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/eaae53a9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/eaae53a9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/eaae53a9

Branch: refs/heads/asf-site
Commit: eaae53a909617355d66c0e0db50bf297a1e49ccc
Parents: fabb9a5 2b93e9b
Author: Rob Foley <rg...@users.noreply.github.com>
Authored: Fri Dec 1 13:00:03 2017 -0500
Committer: Rob Foley <rg...@users.noreply.github.com>
Committed: Fri Dec 1 13:00:03 2017 -0500

----------------------------------------------------------------------
 docker/README.md                              | 156 +++++++++++++++++----
 docker/docker-compose.yml                     | 141 ++++++++++---------
 docker/elasticsearch/Dockerfile               |  27 ++++
 docker/elasticsearch/config/elasticsearch.yml |  48 +++++++
 docker/elasticsearch/config/log4j2.properties |  24 ++++
 docker/es/elasticsearch.yml                   | 114 ---------------
 docker/images/configure_index.png             | Bin 0 -> 116678 bytes
 docker/images/confirmation.png                | Bin 0 -> 158876 bytes
 docker/images/dashboard.png                   | Bin 0 -> 172635 bytes
 docker/images/management.png                  | Bin 0 -> 60954 bytes
 docker/kibana/Dockerfile                      |  23 +++
 docker/kibana/config/kibana.yml               |  18 +++
 docker/kibana/dashboard.json                  |  21 +--
 docker/kibana/visualizations.json             |  58 ++++++++
 docker/logstash/Dockerfile                    |   9 +-
 docker/logstash/config/logstash-userale.conf  |   2 +-
 docker/logstash/templates/userale.json        |   5 +-
 docker/requirements.txt                       |   1 +
 docker/startup/entrypoint.sh                  |   3 +-
 docker/tap/Dockerfile                         |  15 +-
 20 files changed, 425 insertions(+), 240 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/eaae53a9/docker/README.md
----------------------------------------------------------------------
diff --cc docker/README.md
index 1d84c2c,df1f84e..036a995
--- a/docker/README.md
+++ b/docker/README.md
@@@ -39,3 -109,27 +109,29 @@@ How to Build SensSoft Docker Container
      ```sh
      $ docker-compose stop
      ```
+  
+ Having Issues?
+ --------------
+ 1. Check out the docker-compose logs for the service(s) that are having issues.
+ 
+    ```bash
+    $ docker-compose ps 
+    ```
+ 1. Make sure to send us the docker-compose logs to help diagnose your issues please!
+    
+    ```bash
+    $ docker-compose logs > err.dump 
+    ```
+ 
+ Todo
+ ---- 
+ - [ ] TAP docker deployment instructions.
+ - [ ] Distill docker deployment instructions. 
+ - [ ] Apache SensSoft Docker + Kubernetes instructions.
+ 
+ [configure_index]: ./images/configure_index.png "Configure Kibana index"
+ [confirmation]: ./images/confirmation.png "Confirm index pattern conflicts"
+ [dashboard]: ./images/dashboard.png "Apache Senssoft Dashboard"
 -[management]: ./images/management.png "Kibana management console"
++[management]: ./images/management.png "Kibana management console"
++
++© Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved.


[10/40] incubator-senssoft git commit: Cleaned up docker. Removed distill source code. Simplfied ELK deployment. Added init process to launch Kibana once Elasticsearch is online. Added LICENSE headers.

Posted by le...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/logstash/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
index 3a9533a..d676e62 100644
--- a/docker/logstash/Dockerfile
+++ b/docker/logstash/Dockerfile
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 FROM logstash:5
 MAINTAINER Michelle Beard <ms...@apache.org>
 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/logstash/config/logstash-apache.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-apache.conf b/docker/logstash/config/logstash-apache.conf
deleted file mode 100644
index c95882b..0000000
--- a/docker/logstash/config/logstash-apache.conf
+++ /dev/null
@@ -1,82 +0,0 @@
-input {
-  # file {
-  #   path => "/var/log/server_logs/access.log"
-  #   start_position => "beginning"
-  #   sincedb_path => "/dev/null"
-  # }
-
-  file {
-      path => [ "/var/log/server_logs/access.log" ]  
-      start_position => "beginning"
-      sincedb_path => "/dev/null"
-      type => "apache-access"
-  }
-  # file {
-  #     path => "/var/log/server_logs/error.log"
-  #     start_position => "beginning"
-  #     sincedb_path => "/dev/null"
-  #     type => "apache-error"
-  # }
-}
-
-filter {
-  # ------------------------ Parse services logs into fields ---------------------------
-  # APACHE 2
-  if [type] == "apache-access" {
-    # To process log data (message's content) using some regex or precompiled GROK pattern
-    grok {
-      match => [ "message", "%{COMBINEDAPACHELOG}"]
-    }
-    # To extract log's time according to a date pattern
-    date {
-      match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z"]
-    }
-    # Extract browser information, if available.
-    if [agent] != "" {
-      useragent {
-        source => "agent"
-      }
-    }
-    # Extract client ip information, if available.
-    # if [clientip] != "" {
-    #   geoip {
-    #     source => "clientip"      
-    #     database => "/usr/share/logstash/GeoIP/GeoIP.dat"  
-    #     target => "apache_clientip"
-    #     add_tag => [ "geoip" ]
-    #   }
-    # }
-  }
-
-  # if [type] == "apache-error" {
-  #   grok {
-  #     match => [ "message", "%{APACHEERRORLOG}"]
-  #     # Directory where to find the custom patterns
-  #     patterns_dir => ["/etc/logstash/grok"]
-  #   }
-  #  if [clientip] != "" {
-  #     geoip {
-  #       source => "clientip"        
-  #       target => "apache_clientip"
-  #       add_tag => [ "geoip" ]
-  #     }
-  #   } 
-  # }
-}
-
-output {
-  # Output data to Elasticsearch instance
-  elasticsearch {
-    hosts => "elasticsearch:9200"
-    index => "apache"
-    user => "elastic"
-    password => "changeme"
-    manage_template => true
-    template_overwrite => true
-    template => "/usr/share/logstash/templates/apache.json"
-    template_name => "apache"
-  }
-
-  # Debug
-  stdout { codec => rubydebug }
-}

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index 217a4dd..79a69d0 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 input {
 	http {
 		codec => "json"
@@ -42,8 +57,6 @@ output {
 		hosts => "elasticsearch:9200"
 		index => "userale"
 		document_type => "logs"
-    user => "elastic"
-    password => "changeme"
 		manage_template => true
 		template_overwrite => true
 		template => "/usr/share/logstash/templates/userale.json"

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/logstash/templates/apache.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/apache.json b/docker/logstash/templates/apache.json
deleted file mode 100644
index 10552e3..0000000
--- a/docker/logstash/templates/apache.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-    "template": "apache",
-    "settings": {
-        "index.refresh_interval": "5s"
-    },
-    "mappings": {
-        "_default_": {
-            "dynamic_templates": [{
-                "string_fields": {
-                    "match_mapping_type": "string",
-                    "match": "*",
-                    "mapping": {
-                        "omit_norms": true,
-                        "type": "text",
-                        "fields": {
-                            "raw": {
-                                "ignore_above": 256,
-                                "type": "keyword"
-                            }
-                        }
-                    }
-                }
-            }],
-            "properties": {
-                "geoip": {
-                    "dynamic": true,
-                    "path": "full",
-                    "properties": {
-                        "location": {
-                            "type": "geo_point"
-                        }
-                    },
-                    "type": "object"
-                },
-                "@version": {
-                    "type": "keyword"
-                },
-                "referer": {
-                    "type": "keyword"
-                },
-                "request": {
-                    "type": "keyword"
-                },
-                "responsetime": {
-                    "type": "long"
-                },
-                "bytes": {
-                    "type": "long"
-                }
-            },
-            "_all": {
-                "enabled": true
-            }
-        }
-    },
-    "aliases": {
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/startup/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/startup/Dockerfile b/docker/startup/Dockerfile
new file mode 100644
index 0000000..ea8757d
--- /dev/null
+++ b/docker/startup/Dockerfile
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM ubuntu:latest
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+RUN apt-get update && apt-get install -y wget curl && apt-get clean
+
+RUN wget https://github.com/jwilder/dockerize/releases/download/v0.1.0/dockerize-linux-amd64-v0.1.0.tar.gz
+
+RUN tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.1.0.tar.gz
+
+# Copy Files Over
+COPY ./entrypoint.sh /opt/entrypoint.sh
+
+# Make executable
+RUN chmod +x /opt/*.sh

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/startup/entrypoint.sh
----------------------------------------------------------------------
diff --git a/docker/startup/entrypoint.sh b/docker/startup/entrypoint.sh
new file mode 100644
index 0000000..5686d9d
--- /dev/null
+++ b/docker/startup/entrypoint.sh
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!/bin/bash
+
+# Wait for the Elasticsearch container to be ready before starting Kibana.
+echo "Stalling for Elasticsearch"
+dockerize -wait http://elasticsearch:9200 


[14/40] incubator-senssoft git commit: Updated ApacheSenssoft site pages

Posted by le...@apache.org.
Updated ApacheSenssoft site pages


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/f4abbc9b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/f4abbc9b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/f4abbc9b

Branch: refs/heads/asf-site
Commit: f4abbc9b0885f253d8b69c5a7d88239461ef489e
Parents: df5e92b
Author: msb3399 <mb...@draper.com>
Authored: Thu May 25 17:46:40 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Thu May 25 17:46:40 2017 -0400

----------------------------------------------------------------------
 site/CHANGELOG.md                       |  12 ++
 site/Dockerfile                         |  26 ++++
 site/README.md                          |  12 ++
 site/_docs/contributing.md              |   5 +-
 site/_docs/distill/http.md              |   2 +-
 site/_docs/index.md                     |   2 +-
 site/_docs/userale/index.md             |   8 +-
 site/_docs/useralejs/contributing.md    |  26 ----
 site/_docs/useralejs/index.md           |   6 +-
 site/_docs/useralejs/testing.md         |  26 ++++
 site/_docs/useralejs/troubleshooting.md |   2 +-
 site/_docs/useralepy/api.md             | 183 +++++++++++++++++++++++++++
 site/_docs/useralepy/changelog.md       |  53 ++++++++
 site/_docs/useralepy/index.md           | 111 ++++++++++++++++
 site/_docs/useralepy/start.md           |  59 +++++++++
 site/_docs/useralepyqt/api.md           | 183 ---------------------------
 site/_docs/useralepyqt/changelog.md     |  53 --------
 site/_docs/useralepyqt/index.md         | 111 ----------------
 site/_docs/useralepyqt/start.md         |  59 ---------
 site/_includes/doc_sidebar.html         |  10 +-
 site/_includes/footer.html              |   2 +-
 site/_includes/header.html              |   2 +-
 site/_pages/community.html              |   4 +-
 site/_pages/tap.html                    |   2 +-
 site/index.html                         |   2 +-
 site/package.json                       |   4 +-
 26 files changed, 508 insertions(+), 457 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/site/CHANGELOG.md b/site/CHANGELOG.md
new file mode 100644
index 0000000..d97729f
--- /dev/null
+++ b/site/CHANGELOG.md
@@ -0,0 +1,12 @@
+CHANGELOG
+---------
+
+### 1.0.1 (2017-05-25)
+- Updated contributing guide
+- Fixed broken links
+- Added Dockerfile to show how to build site
+- Added README and CHANGELOG
+- Updated UserALE.pyqt5 name to UserALE.py
+
+### 1.0.0 (2017-01-12)
+- Initial commit.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/Dockerfile
----------------------------------------------------------------------
diff --git a/site/Dockerfile b/site/Dockerfile
new file mode 100644
index 0000000..d7d3628
--- /dev/null
+++ b/site/Dockerfile
@@ -0,0 +1,26 @@
+FROM starefossen/ruby-node
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Cache bundle
+COPY Gemfile* /tmp/
+WORKDIR /tmp
+RUN bundle install
+
+ENV app /app
+
+# Install npm modules
+COPY package.json /tmp/
+WORKDIR /tmp
+RUN npm install -g
+
+# Add src code
+RUN mkdir $app
+WORKDIR $app
+ADD . $app
+
+# Jekyll buld
+RUN jekyll build
+
+WORKDIR $app/_site
+
+EXPOSE 8000
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/README.md
----------------------------------------------------------------------
diff --git a/site/README.md b/site/README.md
new file mode 100644
index 0000000..daecf07
--- /dev/null
+++ b/site/README.md
@@ -0,0 +1,12 @@
+How to Build Site
+-----------------
+
+1. Download and Install [``Docker``](http://docker.com)
+2. Build site
+    ```
+    docker build -t apache-site .
+    ```
+3. Deploy site on localhost:8000
+    ```
+    docker run -p 8000:8000 -it apache-site python -m SimpleHTTPServer 
+    ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/contributing.md
----------------------------------------------------------------------
diff --git a/site/_docs/contributing.md b/site/_docs/contributing.md
index be16672..581565b 100644
--- a/site/_docs/contributing.md
+++ b/site/_docs/contributing.md
@@ -1,6 +1,7 @@
 ---
 title: Contributing
 component: senssoft
+permalink: /docs/contributing/
 ---
 
 First, thank you for contributing to Apache SensSoft!
@@ -13,13 +14,13 @@ To report a bug or other issue, simply create an issue in JIRA, as described in
 
 #### 1. Create an issue in JIRA
 
-   All changes to Apache Distill must have a corresponding issue in [JIRA](https://issues.apache.org/jira/browse/SENSSOFT) so the change can be properly tracked.  If you do not already have an account on Apache JIRA, you will need to create one before creating your new issue.
+   All changes to Apache SensSoft must have a corresponding issue in [JIRA](https://issues.apache.org/jira/browse/SENSSOFT) so the change can be properly tracked.  If you do not already have an account on JIRA, you will need to create one before creating your new issue.
 
 #### 2. Make and test your changes locally
 
    The Apache SensSoft source code is maintained in [several git repositories](https://git-wip-us.apache.org/repos/asf?s=senssoft) hosted by Apache.  These repositories are mirrored and more easily available [on GitHub](https://github.com/apache?q=senssoft).  To make your changes, fork the appropriate GitHub repository and make commits to a topic branch in your fork.  Commits should be made in logical units and must reference the JIRA issue number:
    ```shell
-   git commit -m "#SENSSOFT-123: #High-level message describing the changes."
+   git commit -m "#SENSSOFT-123: High-level message describing the changes."
    ```
    Avoid commits which cover multiple, distinct goals that could (and should) be handled separately.  If you do not already have an account on JIRA, you will need to create one to claim an issue, discuss development, or report results.
 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/distill/http.md
----------------------------------------------------------------------
diff --git a/site/_docs/distill/http.md b/site/_docs/distill/http.md
index 81983d2..1dcaa99 100644
--- a/site/_docs/distill/http.md
+++ b/site/_docs/distill/http.md
@@ -182,7 +182,7 @@ $ curl -XGET https://localhost:8090/status/xdata_v3
   "status": "open"
 }
 ```
-
+w
 > **Parameters:**
 - app_id – Application name
 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/index.md
----------------------------------------------------------------------
diff --git a/site/_docs/index.md b/site/_docs/index.md
index a1ccbcc..06b3c6a 100644
--- a/site/_docs/index.md
+++ b/site/_docs/index.md
@@ -5,4 +5,4 @@ permalink: /docs/
 priority: 0
 ---
 
-The Apache SensSoft docs are organized by product.  Each product's documentation includes information like quick start guides, tutorials, full API descriptions, and contributing guides.  
+The Apache SensSoft docs are organized by product.  Each product's documentation includes information like quick start guides, tutorials, full API descriptions, and contribution guides.  

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/userale/index.md
----------------------------------------------------------------------
diff --git a/site/_docs/userale/index.md b/site/_docs/userale/index.md
index de968d9..704ae99 100644
--- a/site/_docs/userale/index.md
+++ b/site/_docs/userale/index.md
@@ -9,13 +9,13 @@ priority: 0
 
 ### About UserALE
 
-The User Analytic Logging Engine (User ALE) is part of Apache SensSoft. User ALE is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools—applications that are used for manipulating, analyzing, or visualizing data or other systems.
+The User Analytic Logging Engine (UserALE) is part of Apache SensSoft. UserALE is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools—applications that are used for manipulating, analyzing, or visualizing data or other systems.
 
-User ALE provides an API for instrumenting software tools, turning them into a human usability sensors. With every user interaction User ALE will transmit specially structured messages (JSON) from software tools to an activity logging server (Elastic). These messages not only report user activities and their timing, but provide sufficient context to understand how those activities are related to the functional organization of the software tool. This allows for greater utility in understanding how users are interacting with software tool features, and seeds more rigorous modeling and analytic approaches to understand not just what users do in software tools, but how they perform tasks with them.
+UserALE provides an API for instrumenting software tools, turning them into a human usability sensors. With every user interaction User ALE will transmit specially structured messages (JSON) from software tools to an activity logging server ([Elasticsearchâ„¢](http://elastic.co)). These messages not only report user activities and their timing, but provide sufficient context to understand how those activities are related to the functional organization of the software tool. This allows for greater utility in understanding how users are interacting with software tool features, and seeds more rigorous modeling and analytic approaches to understand not just what users do in software tools, but how they perform tasks with them.
 
-User ALE provides data provides insight into software tool usage frequency, users' cognitive/behavioral strategy in using tools to complete tasks, their workflows, as well as their integrative use of software tool features.
+UserALE provides data provides insight into software tool usage frequency, users' cognitive/behavioral strategy in using tools to complete tasks, their workflows, as well as their integrative use of software tool features.
 
 
 ### Who is UserALE for?
 
-The User Analytic Logging Engine (User ALE) is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools.
+UserALE is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralejs/contributing.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralejs/contributing.md b/site/_docs/useralejs/contributing.md
deleted file mode 100644
index bf9c0ee..0000000
--- a/site/_docs/useralejs/contributing.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: Contributing
-component: useralejs
-priority: 11
----
-
-### Building UserALE.js
-
-To modify and build your own version of UserAle.js, first clone the repo, install dependencies, and make any desired changes. Then build and minify into the build/ folder:
-
-  ```shell
-  git clone https://github.com/apache/incubator-senssoft-useralejs.git
-  npm install
-  npm run build
-  ```
-
-### Testing and Linting
-
-We maintain code quality through linting and our test suite.  To run, or run and watch for changes:
-
-  ```shell
-  npm test
-  npm run test:watch
-  ```
-
-See package.json for full script options.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralejs/index.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralejs/index.md b/site/_docs/useralejs/index.md
index cd75200..f31dadf 100644
--- a/site/_docs/useralejs/index.md
+++ b/site/_docs/useralejs/index.md
@@ -11,10 +11,10 @@ Apache UserALE.js is the UserALE client for DOM and JavaScript-based application
 
 ### Include UserALE.js in your project
 
-To include UserAle.js in your project with default configuration, simply include the script tag below:
+To include UserALE.js in your project with default configuration, simply include the script tag below:
 
   ```html
-  <script src="<yourUseraleSource>"></script>
+  <script src="<userale-0.1.0.js>"></script>
   ```
 
 ### Configure UserALE.js
@@ -22,7 +22,7 @@ To include UserAle.js in your project with default configuration, simply include
 HTML5 Data Parameters are used to configure UserALE.js.  For example, to set the logging URL:
 
   ```html
-  <script src="userale.js" data-url="http://yourLoggingUrl"></script>
+  <script src="userale-0.1.0.js" data-url="http://server:port"></script>
   ```
 
 The complete list of configurable options is:

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralejs/testing.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralejs/testing.md b/site/_docs/useralejs/testing.md
new file mode 100644
index 0000000..63dc734
--- /dev/null
+++ b/site/_docs/useralejs/testing.md
@@ -0,0 +1,26 @@
+---
+title: Build and Test
+component: useralejs
+priority: 11
+---
+
+### Building UserALE.js
+
+To modify and build your own version of ``UserALE.js``, first clone the repo, install all dependencies, and make any desired changes. Then build and minify into the build/ folder:
+
+  ```shell
+  git clone https://github.com/apache/incubator-senssoft-useralejs.git
+  npm install
+  npm run build
+  ```
+
+### Testing and Linting
+
+We maintain code quality through linting and our test suite.  To run, or run and watch for changes:
+
+  ```shell
+  npm test
+  npm run example:watch
+  ```
+
+See ``package.json`` for full script options.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralejs/troubleshooting.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralejs/troubleshooting.md b/site/_docs/useralejs/troubleshooting.md
index a91a78d..6177658 100644
--- a/site/_docs/useralejs/troubleshooting.md
+++ b/site/_docs/useralejs/troubleshooting.md
@@ -5,6 +5,6 @@ component: useralejs
 
 ### Enable Cross-Origin Resource Sharing (CORS)
 
-The logs generated by UserAle is sent to a logging url which is configured in the script tag. Your client may send out failure logs because of a CORS (cross-origin resource sharing) issue. You will need to configure your backend server to enable CORS.
+The logs generated by UserALE is sent to a logging server which is configured in the script tag. Your client may send out failure logs because of a CORS (cross-origin resource sharing) issue. You will need to configure your backend server to enable CORS.
 
 For more information and examples on how to enable CORS on your server, please visit [enable-cors.org](http://enable-cors.org/index.html).

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepy/api.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepy/api.md b/site/_docs/useralepy/api.md
new file mode 100644
index 0000000..4f96b92
--- /dev/null
+++ b/site/_docs/useralepy/api.md
@@ -0,0 +1,183 @@
+---
+title: API Documentation
+component: useralepy
+priority: 11
+---
+
+Apache UserALE.PyQt5 intercepts all application events by letting the developer install an event filter in their PyQt5 application to generate detailed user logs. Apache UserALE.PyQt5 does not capture system level logs or events generated by a non-user (a.k.a. system and signals sent between QObjects).
+
+### Apache UserALE.PyQt5
+
+>
+```python
+class userale.ale.Ale(output='userale.log', user=None,
+session=None, toolname=None, toolversion=None,
+keylog=False, interval=5000, resolution=100, shutoff=[])
+```
+
+> **Bases:** PyQt5.QtCore.QObject
+
+> **Parameters:**
+- output – [str] The file or url path to which logs will be sent
+- user – [str] Identifier for the user of the application
+- session – [str] Session tag to track same user with multiple sessions. If a session is not provided, one will be created
+- toolname – [str] The application name
+- toolversion – [str] The application version
+- keylog – [bool] Should detailed key logs be recorded. Default is False
+- interval – [int] The minimum time interval in ms between batch transmission of logs. Default is 5000ms.
+- resolution – [int] Delay in ms between instances of high frequency logs like mousemoves, scrolls, etc. Default is 100ms (10Hz).
+- shutoff – [list] Turn off logging for specific events
+
+An example log will appear like this:
+
+  ```javascript
+  {
+      'target': 'testLineEdit',
+      'path': ['Example', 'testLineEdit'],
+      'clientTime': '2016-08-03 16:12:03.460573',
+      'location': {'x': 82, 'y': 0},
+      'type': 'mousemove',
+      'userAction': 'true',
+      'details' : {},
+      'userId': 'userABC1234',
+      'session': '5ee42ccc-852c-44d9-a937-28d7901e4ead',
+      'toolName': 'myApplication',
+      'toolVersion': '3.5.0',
+      'useraleVersion': '0.1.0'
+  }
+  ```
+
+#### aggregate()
+Sample high frequency logs at self.resolution. High frequency logs are consolidated down to a single log event to be emitted later
+
+#### cleanup()
+Clean up any dangling logs in self.logs or self.hlogs
+
+#### dump()
+Write log data to file
+
+#### eventFilter(object, event)
+Filters events for the watched widget.
+
+> **Parameters:**
+- object – [QObject] The object being watched.
+- event – [QEvent] The event triggered by a user action.
+
+> **Returns:**
+- [bool] Propagate filter up if other objects needs to be handled
+
+#### getClientTime()
+Capture the time the event was captured in milliseconds since the UNIX epoch (January 1, 1970 00:00:00 UTC)
+
+> **Returns:**
+- [str] String representation of the time the event was captured.
+
+#### getLocation(event)
+Grab the x and y position of the mouse cursor, relative to the widget that received the event.
+
+> **Parameters:**
+- event – [QEvent] The base class for all event classes.
+
+> **Returns:**
+- [dict] A dictionary representation of the x and y positions of the mouse cursor.
+
+#### getPath(object)
+Generate the entire object hierachy from root to leaf node.
+
+> **Parameters:**
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [list] List of QObjects.
+
+#### getSelector(object)
+Get target object’s name (object defined by user or object’s meta class name).
+
+> **Parameters:**
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [str] The Qt object’s name
+
+#### getSender(object)
+Fetch the QObject who triggered the event
+
+> **Parameters:**
+- object – [QObject] The object being watched.
+
+> **Returns:**
+- [QObject] The QObject
+
+#### handleDragEvents(event_type, event, object)
+Returns the userale log representing all drag events.
+
+> **Parameters:**
+- event_type – [str] The string representation of the type of event being triggered by the user.
+- event – [QEvent] The base class for all event classes.
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [dict] A userale log describing a drag event.
+
+#### handleKeyEvents(event_type, event, object)
+Returns the userale log representing all key events, including key name and key code.
+
+> **Parameters:**
+- event_type – [str] The string representation of the type of event being triggered by the user.
+- event – [QEvent] The base class for all event classes.
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [dict] A userale log describing a key event.
+
+#### handleMouseEvents(event_type, event, object)
+Returns the userale log representing all mouse event data.
+
+> **Parameters:**
+- event_type – [str] The string representation of the type of event being triggered by the user.
+- event – [QEvent] The base class for all event classes.
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [dict] A userale log describing a mouse event.
+
+#### handleMoveEvents(event_type, event, object)
+Returns the userale log representing all move events.
+
+> **Parameters:**
+- event_type – [str] The string representation of the type of event being triggered by the user.
+- event – [QEvent] The base class for all event classes.
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [dict] A userale log describing a drag event.
+
+#### handleResizeEvents(event_type, event, object)
+Returns the userale log representing all resize events.
+
+> **Parameters:**
+- event_type – [str] The string representation of the type of event being triggered by the user.
+- event – [QEvent] The base class for all event classes.
+- object – [QObject] The base class for all Qt objects.
+**Returns:**
+- [dict] A userale log describing a resize event.
+
+#### handleScrollEvents(event_type, event, object)
+Returns the userale log representing all scroll events.
+
+> **Parameters:**
+- event_type – [str] The string representation of the type of event being triggered by the user.
+- event – [QEvent] The base class for all event classes.
+- object – [QObject] The base class for all Qt objects.
+
+> **Returns:**
+- [dict] A userale log describing a scroll event.
+
+#### timerEvent(event)
+Routinely dump data to file or send over the network
+
+> **Parameters:**
+- object – [list] List of events
+
+> **Returns:**
+- [void] Emit events to file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepy/changelog.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepy/changelog.md b/site/_docs/useralepy/changelog.md
new file mode 100644
index 0000000..7ff36bc
--- /dev/null
+++ b/site/_docs/useralepy/changelog.md
@@ -0,0 +1,53 @@
+---
+title: Changelog
+component: useralepy
+priority: 99
+---
+
+### 0.1.5 (2016-09-19)
+
+- clientTime field is represented in ISO 8601 format.
+- Sampling mouseenter, mouseleave, and dragmove events by resolution parameter.
+- Batch dumping all logs to file by interval parameter.
+- Added Apache license headers.
+- Updated all documentation.
+- Updated versioning numbers.
+- Added docker support.
+
+### 0.1.4 (2016-08-04)
+
+- New events Apache UserAle is tracking:
+  - move
+  - resize
+  - scroll
+- Remove timer from dragdrop log due to incorrect time being recorded.
+- Session id is autogenerated if not passed into configuration.
+
+### 0.1.3 (2016-08-02)
+
+- New events Apache UserAle is tracking:
+  - mouseenter
+  - mouseleave
+
+### 0.1.2 (2016-08-01)
+
+- The elapsed time for a drag event is being recorded in the dragdrop log.
+
+### 0.1.1 (2016-07-29)
+
+- All logs will be stored to file called userale.log (configurable).
+- Users can specify which events to capture by passing in a list of event keys when instantiating Apache UserAle.
+- These are the events Apache UserAle is tracking:
+  - mouseup
+  - mousedown
+  - mousemove
+  - keypress (optional)
+  - keydown (optional)
+  - dragenter
+  - dragleave
+  - dragmove
+  - dragdrop
+
+### 0.1.0 (2016-06-24)
+
+- Initial release.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepy/index.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepy/index.md b/site/_docs/useralepy/index.md
new file mode 100644
index 0000000..200e554
--- /dev/null
+++ b/site/_docs/useralepy/index.md
@@ -0,0 +1,111 @@
+---
+title: Installation
+component: useralepy
+permalink: /docs/useralepy/
+priority: 0
+---
+
+Apache UserALE.PyQt5 is the UserALE client for PyQt5 applications.  It provides an easy way to generate highly detailed log streams from any PyQt5 application.
+
+### Requirements
+
+- Python 3.5 or above
+- PyQt5, version 5.3 or above
+- pip3, see requirements.txt
+
+### Installing UserALE.PyQt5
+
+The first step is to install Apache UserALE.PyQt5. First, checkout the latest version of Apache UserALE.PyQt5 from our Git repository.
+
+  ```shell
+  $ git clone https://git-wip-us.apache.org/repos/asf/incubator-senssoft-userale-pyqt5.git
+  ```
+
+Apache UserALE.PyQt5 is a python3 project, so it can be installed like any other python library. Several operating systems (Mac OS X, Major Versions of Linux/BSD) have Python3 pre-installed, so you should just have to run
+
+  ```shell
+  $ easy_install3 userale
+  ```
+
+      or
+
+  ```shell
+  $ pip3 install userale
+  ```
+
+Users are strongly recommended to install Apache UserALE.PyQt5 in a virtualenv. Instructions to setup an virtual environment will be explained below.
+
+> **Note**
+> Apache UserALE.PyQt5 requires that PyQt5 and the Qt5 bindings has been installed. Instructions to install PyQt5 and Qt5 in a virtual environment will be left to the user.
+
+> **Note**
+> When the package is installed via easy_install3 or pip3 this function will be bound to the userale executable in the Python installation’s bin directory (on Windows - the Scripts directory).
+
+### Installing Apache UserALE.PyQt5 in an Virtual Environment
+
+There are multiple ways to create virtual environments for a Python3 application. virtualenv is a one of those tools to create isolated Python environments. virtualenv creates a folder which contains all the necessary executables to use the packages that the UserAle project would need.
+
+Start by changing directory into the root of Apache UserALE.PyQt5’s project directory, and then use the virtualenv command-line tool to create a new environment:
+
+  ```shell
+  $ virtualenv --python=/usr/bin/python3 env
+  ```
+
+Optionally, Python3 has built in support for virtual environments.
+
+  ```shell
+  $ mkdir env
+  $ python3 -m venv env
+  ```
+
+Activate environment:
+
+  ```shell
+  $ source env/bin/activate
+  ```
+
+Install UserAle requirements:
+
+  ```shell
+  $ env/bin/pip3 install -r requirements.txt
+  ```
+
+To build the source code and run all unit tests.
+
+  ```shell
+  $ env/bin/python3 setup.py develop test
+  ```
+
+Deactivate environment
+
+  ```shell
+  $ deactivate
+  ```
+
+### Installing Documentation
+
+First, install the documentation dependencies:
+
+  ```shell
+  $ env/bin/pip3 install -r doc_requirements.txt
+  ```
+
+To build Apache UserALE.PyQt5’s documentation, create a directory at the root level of /userale.pyqt5 called userale.pyqt5-docs.
+
+  ```shell
+  $ mkdir userale.pyqt5-docs & cd userale.pyqt5-docs
+  ```
+
+Execute build command from inside the top-level doc/ directory:
+
+  ```shell
+  $ make html
+  ```
+
+This should build the documentation in your shell, and output HTML. At then end, it should say something about documents being ready in userale.pyqt5-docs/html.
+
+You can now open them in your browser by typing
+
+  ```shell
+  $ open userale.pyqt5-docs/html/index.html
+  ```

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepy/start.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepy/start.md b/site/_docs/useralepy/start.md
new file mode 100644
index 0000000..799cd7b
--- /dev/null
+++ b/site/_docs/useralepy/start.md
@@ -0,0 +1,59 @@
+---
+title: Getting Started
+component: useralepy
+priority: 1
+---
+
+### Instrumenting Your Application Globally with Apache UserALE.PyQt5
+
+It’s very simple to instrument a PyQt5 application with Apache UserALE.PyQt5. Simply import the Apache UserALE.PyQt5 library and register it with your application.
+
+Below is an example PyQt5 application taken from ZetCode PyQt5 tutorial instrumented with Apache UserALE.PyQt5.
+
+  ```python
+  import sys
+  from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QApplication, QMessageBox
+  from PyQt5.QtCore import QCoreApplication, QObject, QEvent
+
+  from userale.ale import Ale
+
+  class TestApplication (QWidget):
+
+      def __init__(self):
+          super().__init__()
+          self.initUI()
+
+      def initUI(self):
+          qbtn = QPushButton('Quit', self)
+          qbtn.setObjectName ("testApplicationButton")
+          qbtn.clicked.connect(QCoreApplication.instance().quit)
+          qbtn.resize(qbtn.sizeHint())
+          qbtn.move(50, 50)
+
+          self.setGeometry(300, 300, 250, 150)
+          self.setWindowTitle('Quit button')
+          self.show()
+
+  if __name__ == '__main__':
+      app = QApplication(sys.argv)
+      ex = TestApplication()
+      # Initiate Apache UserALE.PyQt5
+      ale = Ale (output="mouse.log", user="testUser", toolversion="0.0.1")
+      # install globally
+      app.installEventFilter (ale)
+
+      sys.exit (app.exec_())
+  ```
+
+Before we enter the mainloop of the application, UserAle needs to register the application to be instrumented. Simply instantiate Apache UserALE.PyQt5 and install it as an event filter in your application.
+
+  ```python
+  # Initiate UserAle
+  ale = Ale (output="mouse.log", user="testUser", toolversion="0.0.1")
+  # install globally
+  app.installEventFilter (ale)
+  ```
+
+### Instrumenting Your Application Manually with Apache UserALE.PyQt5
+
+*Todo:* Write guidelines for instrumenting specific PyQt5 Widgets with Apache UserALE.PyQt5.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepyqt/api.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepyqt/api.md b/site/_docs/useralepyqt/api.md
deleted file mode 100644
index 22b2e7a..0000000
--- a/site/_docs/useralepyqt/api.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-title: API Documentation
-component: useralepyqt
-priority: 11
----
-
-Apache UserALE.PyQt5 intercepts all application events by letting the developer install an event filter in their PyQt5 application to generate detailed user logs. Apache UserALE.PyQt5 does not capture system level logs or events generated by a non-user (a.k.a. system and signals sent between QObjects).
-
-### Apache UserALE.PyQt5
-
->
-```python
-class userale.ale.Ale(output='userale.log', user=None,
-session=None, toolname=None, toolversion=None,
-keylog=False, interval=5000, resolution=100, shutoff=[])
-```
-
-> **Bases:** PyQt5.QtCore.QObject
-
-> **Parameters:**
-- output – [str] The file or url path to which logs will be sent
-- user – [str] Identifier for the user of the application
-- session – [str] Session tag to track same user with multiple sessions. If a session is not provided, one will be created
-- toolname – [str] The application name
-- toolversion – [str] The application version
-- keylog – [bool] Should detailed key logs be recorded. Default is False
-- interval – [int] The minimum time interval in ms between batch transmission of logs. Default is 5000ms.
-- resolution – [int] Delay in ms between instances of high frequency logs like mousemoves, scrolls, etc. Default is 100ms (10Hz).
-- shutoff – [list] Turn off logging for specific events
-
-An example log will appear like this:
-
-  ```javascript
-  {
-      'target': 'testLineEdit',
-      'path': ['Example', 'testLineEdit'],
-      'clientTime': '2016-08-03 16:12:03.460573',
-      'location': {'x': 82, 'y': 0},
-      'type': 'mousemove',
-      'userAction': 'true',
-      'details' : {},
-      'userId': 'userABC1234',
-      'session': '5ee42ccc-852c-44d9-a937-28d7901e4ead',
-      'toolName': 'myApplication',
-      'toolVersion': '3.5.0',
-      'useraleVersion': '0.1.0'
-  }
-  ```
-
-#### aggregate()
-Sample high frequency logs at self.resolution. High frequency logs are consolidated down to a single log event to be emitted later
-
-#### cleanup()
-Clean up any dangling logs in self.logs or self.hlogs
-
-#### dump()
-Write log data to file
-
-#### eventFilter(object, event)
-Filters events for the watched widget.
-
-> **Parameters:**
-- object – [QObject] The object being watched.
-- event – [QEvent] The event triggered by a user action.
-
-> **Returns:**
-- [bool] Propagate filter up if other objects needs to be handled
-
-#### getClientTime()
-Capture the time the event was captured in milliseconds since the UNIX epoch (January 1, 1970 00:00:00 UTC)
-
-> **Returns:**
-- [str] String representation of the time the event was captured.
-
-#### getLocation(event)
-Grab the x and y position of the mouse cursor, relative to the widget that received the event.
-
-> **Parameters:**
-- event – [QEvent] The base class for all event classes.
-
-> **Returns:**
-- [dict] A dictionary representation of the x and y positions of the mouse cursor.
-
-#### getPath(object)
-Generate the entire object hierachy from root to leaf node.
-
-> **Parameters:**
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [list] List of QObjects.
-
-#### getSelector(object)
-Get target object’s name (object defined by user or object’s meta class name).
-
-> **Parameters:**
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [str] The Qt object’s name
-
-#### getSender(object)
-Fetch the QObject who triggered the event
-
-> **Parameters:**
-- object – [QObject] The object being watched.
-
-> **Returns:**
-- [QObject] The QObject
-
-#### handleDragEvents(event_type, event, object)
-Returns the userale log representing all drag events.
-
-> **Parameters:**
-- event_type – [str] The string representation of the type of event being triggered by the user.
-- event – [QEvent] The base class for all event classes.
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [dict] A userale log describing a drag event.
-
-#### handleKeyEvents(event_type, event, object)
-Returns the userale log representing all key events, including key name and key code.
-
-> **Parameters:**
-- event_type – [str] The string representation of the type of event being triggered by the user.
-- event – [QEvent] The base class for all event classes.
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [dict] A userale log describing a key event.
-
-#### handleMouseEvents(event_type, event, object)
-Returns the userale log representing all mouse event data.
-
-> **Parameters:**
-- event_type – [str] The string representation of the type of event being triggered by the user.
-- event – [QEvent] The base class for all event classes.
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [dict] A userale log describing a mouse event.
-
-#### handleMoveEvents(event_type, event, object)
-Returns the userale log representing all move events.
-
-> **Parameters:**
-- event_type – [str] The string representation of the type of event being triggered by the user.
-- event – [QEvent] The base class for all event classes.
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [dict] A userale log describing a drag event.
-
-#### handleResizeEvents(event_type, event, object)
-Returns the userale log representing all resize events.
-
-> **Parameters:**
-- event_type – [str] The string representation of the type of event being triggered by the user.
-- event – [QEvent] The base class for all event classes.
-- object – [QObject] The base class for all Qt objects.
-**Returns:**
-- [dict] A userale log describing a resize event.
-
-#### handleScrollEvents(event_type, event, object)
-Returns the userale log representing all scroll events.
-
-> **Parameters:**
-- event_type – [str] The string representation of the type of event being triggered by the user.
-- event – [QEvent] The base class for all event classes.
-- object – [QObject] The base class for all Qt objects.
-
-> **Returns:**
-- [dict] A userale log describing a scroll event.
-
-#### timerEvent(event)
-Routinely dump data to file or send over the network
-
-> **Parameters:**
-- object – [list] List of events
-
-> **Returns:**
-- [void] Emit events to file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepyqt/changelog.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepyqt/changelog.md b/site/_docs/useralepyqt/changelog.md
deleted file mode 100644
index 6ca3556..0000000
--- a/site/_docs/useralepyqt/changelog.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Changelog
-component: useralepyqt
-priority: 99
----
-
-### 0.1.5 (2016-09-19)
-
-- clientTime field is represented in ISO 8601 format.
-- Sampling mouseenter, mouseleave, and dragmove events by resolution parameter.
-- Batch dumping all logs to file by interval parameter.
-- Added Apache license headers.
-- Updated all documentation.
-- Updated versioning numbers.
-- Added docker support.
-
-### 0.1.4 (2016-08-04)
-
-- New events Apache UserAle is tracking:
-  - move
-  - resize
-  - scroll
-- Remove timer from dragdrop log due to incorrect time being recorded.
-- Session id is autogenerated if not passed into configuration.
-
-### 0.1.3 (2016-08-02)
-
-- New events Apache UserAle is tracking:
-  - mouseenter
-  - mouseleave
-
-### 0.1.2 (2016-08-01)
-
-- The elapsed time for a drag event is being recorded in the dragdrop log.
-
-### 0.1.1 (2016-07-29)
-
-- All logs will be stored to file called userale.log (configurable).
-- Users can specify which events to capture by passing in a list of event keys when instantiating Apache UserAle.
-- These are the events Apache UserAle is tracking:
-  - mouseup
-  - mousedown
-  - mousemove
-  - keypress (optional)
-  - keydown (optional)
-  - dragenter
-  - dragleave
-  - dragmove
-  - dragdrop
-
-### 0.1.0 (2016-06-24)
-
-- Initial release.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepyqt/index.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepyqt/index.md b/site/_docs/useralepyqt/index.md
deleted file mode 100644
index 7443ecf..0000000
--- a/site/_docs/useralepyqt/index.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Installation
-component: useralepyqt
-permalink: /docs/useralepyqt/
-priority: 0
----
-
-Apache UserALE.PyQt5 is the UserALE client for PyQt5 applications.  It provides an easy way to generate highly detailed log streams from any PyQt5 application.
-
-### Requirements
-
-- Python 3.5 or above
-- PyQt5, version 5.3 or above
-- pip3, see requirements.txt
-
-### Installing UserALE.PyQt5
-
-The first step is to install Apache UserALE.PyQt5. First, checkout the latest version of Apache UserALE.PyQt5 from our Git repository.
-
-  ```shell
-  $ git clone https://git-wip-us.apache.org/repos/asf/incubator-senssoft-userale-pyqt5.git
-  ```
-
-Apache UserALE.PyQt5 is a python3 project, so it can be installed like any other python library. Several operating systems (Mac OS X, Major Versions of Linux/BSD) have Python3 pre-installed, so you should just have to run
-
-  ```shell
-  $ easy_install3 userale
-  ```
-
-      or
-
-  ```shell
-  $ pip3 install userale
-  ```
-
-Users are strongly recommended to install Apache UserALE.PyQt5 in a virtualenv. Instructions to setup an virtual environment will be explained below.
-
-> **Note**
-> Apache UserALE.PyQt5 requires that PyQt5 and the Qt5 bindings has been installed. Instructions to install PyQt5 and Qt5 in a virtual environment will be left to the user.
-
-> **Note**
-> When the package is installed via easy_install3 or pip3 this function will be bound to the userale executable in the Python installation’s bin directory (on Windows - the Scripts directory).
-
-### Installing Apache UserALE.PyQt5 in an Virtual Environment
-
-There are multiple ways to create virtual environments for a Python3 application. virtualenv is a one of those tools to create isolated Python environments. virtualenv creates a folder which contains all the necessary executables to use the packages that the UserAle project would need.
-
-Start by changing directory into the root of Apache UserALE.PyQt5’s project directory, and then use the virtualenv command-line tool to create a new environment:
-
-  ```shell
-  $ virtualenv --python=/usr/bin/python3 env
-  ```
-
-Optionally, Python3 has built in support for virtual environments.
-
-  ```shell
-  $ mkdir env
-  $ python3 -m venv env
-  ```
-
-Activate environment:
-
-  ```shell
-  $ source env/bin/activate
-  ```
-
-Install UserAle requirements:
-
-  ```shell
-  $ env/bin/pip3 install -r requirements.txt
-  ```
-
-To build the source code and run all unit tests.
-
-  ```shell
-  $ env/bin/python3 setup.py develop test
-  ```
-
-Deactivate environment
-
-  ```shell
-  $ deactivate
-  ```
-
-### Installing Documentation
-
-First, install the documentation dependencies:
-
-  ```shell
-  $ env/bin/pip3 install -r doc_requirements.txt
-  ```
-
-To build Apache UserALE.PyQt5’s documentation, create a directory at the root level of /userale.pyqt5 called userale.pyqt5-docs.
-
-  ```shell
-  $ mkdir userale.pyqt5-docs & cd userale.pyqt5-docs
-  ```
-
-Execute build command from inside the top-level doc/ directory:
-
-  ```shell
-  $ make html
-  ```
-
-This should build the documentation in your shell, and output HTML. At then end, it should say something about documents being ready in userale.pyqt5-docs/html.
-
-You can now open them in your browser by typing
-
-  ```shell
-  $ open userale.pyqt5-docs/html/index.html
-  ```

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_docs/useralepyqt/start.md
----------------------------------------------------------------------
diff --git a/site/_docs/useralepyqt/start.md b/site/_docs/useralepyqt/start.md
deleted file mode 100644
index e268f2f..0000000
--- a/site/_docs/useralepyqt/start.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Getting Started
-component: useralepyqt
-priority: 1
----
-
-### Instrumenting Your Application Globally with Apache UserALE.PyQt5
-
-It’s very simple to instrument a PyQt5 application with Apache UserALE.PyQt5. Simply import the Apache UserALE.PyQt5 library and register it with your application.
-
-Below is an example PyQt5 application taken from ZetCode PyQt5 tutorial instrumented with Apache UserALE.PyQt5.
-
-  ```python
-  import sys
-  from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QApplication, QMessageBox
-  from PyQt5.QtCore import QCoreApplication, QObject, QEvent
-
-  from userale.ale import Ale
-
-  class TestApplication (QWidget):
-
-      def __init__(self):
-          super().__init__()
-          self.initUI()
-
-      def initUI(self):
-          qbtn = QPushButton('Quit', self)
-          qbtn.setObjectName ("testApplicationButton")
-          qbtn.clicked.connect(QCoreApplication.instance().quit)
-          qbtn.resize(qbtn.sizeHint())
-          qbtn.move(50, 50)
-
-          self.setGeometry(300, 300, 250, 150)
-          self.setWindowTitle('Quit button')
-          self.show()
-
-  if __name__ == '__main__':
-      app = QApplication(sys.argv)
-      ex = TestApplication()
-      # Initiate Apache UserALE.PyQt5
-      ale = Ale (output="mouse.log", user="testUser", toolversion="0.0.1")
-      # install globally
-      app.installEventFilter (ale)
-
-      sys.exit (app.exec_())
-  ```
-
-Before we enter the mainloop of the application, UserAle needs to register the application to be instrumented. Simply instantiate Apache UserALE.PyQt5 and install it as an event filter in your application.
-
-  ```python
-  # Initiate UserAle
-  ale = Ale (output="mouse.log", user="testUser", toolversion="0.0.1")
-  # install globally
-  app.installEventFilter (ale)
-  ```
-
-### Instrumenting Your Application Manually with Apache UserALE.PyQt5
-
-*Todo:* Write guidelines for instrumenting specific PyQt5 Widgets with Apache UserALE.PyQt5.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_includes/doc_sidebar.html
----------------------------------------------------------------------
diff --git a/site/_includes/doc_sidebar.html b/site/_includes/doc_sidebar.html
index 96ad98c..3a670f3 100644
--- a/site/_includes/doc_sidebar.html
+++ b/site/_includes/doc_sidebar.html
@@ -2,7 +2,7 @@
 {% assign system = site.docs | where:"component", "system" | sort: "priority" %}
 {% assign userale = site.docs | where:"component", "userale" | sort: "priority" %}
 {% assign useralejs = site.docs | where:"component", "useralejs" | sort: "priority" %}
-{% assign useralepyqt = site.docs | where:"component", "useralepyqt" | sort: "priority" %}
+{% assign useralepy = site.docs | where:"component", "useralepy" | sort: "priority" %}
 {% assign distill = site.docs | where:"component", "distill" | sort: "priority" %}
 {% assign tap = site.docs | where:"component", "tap" | sort: "priority" %}
 {% assign stout = site.docs | where:"component", "stout" | sort: "priority" %}
@@ -92,21 +92,21 @@
     </div>
   </div>
 
-  {% if page.component == 'useralepyqt' %}
+  {% if page.component == 'useralepy' %}
     <div class="active title">
   {% else %}
     <div class="title">
   {% endif %}
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
-  {% if page.component == 'useralepyqt' %}
+  {% if page.component == 'useralepy' %}
     <div class="active content">
   {% else %}
     <div class="content">
   {% endif %}
     <div class="ui inverted bulleted list docs-list">
-      {% for doc in useralepyqt %}
+      {% for doc in useralepy %}
         <a class="item" href="{{ doc.url }}">{{ doc.title }}</a>
       {% endfor %}
     </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_includes/footer.html
----------------------------------------------------------------------
diff --git a/site/_includes/footer.html b/site/_includes/footer.html
index 43ad6df..6c7359c 100644
--- a/site/_includes/footer.html
+++ b/site/_includes/footer.html
@@ -17,7 +17,7 @@
           <a class="item" href="{{ '/docs/system' | prepend: site.baseurl }}">System</a>
           <a class="item" href="{{ '/docs/userale' | prepend: site.baseurl }}">UserALE</a>
           <a class="item" href="{{ '/docs/useralejs' | prepend: site.baseurl }}">UserAle.js</a>
-          <a class="item" href="{{ '/docs/useralepyqt' | prepend: site.baseurl }}">UserAle.pyqt</a>
+          <a class="item" href="{{ '/docs/useralepy' | prepend: site.baseurl }}">UserAle.py</a>
           <a class="item" href="{{ '/docs/distill' | prepend: site.baseurl }}">Distill</a>
           <a class="item" href="{{ '/docs/tap' | prepend: site.baseurl }}">Tap</a>
           <a class="item" href="{{ '/docs/stout' | prepend: site.baseurl }}">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_includes/header.html
----------------------------------------------------------------------
diff --git a/site/_includes/header.html b/site/_includes/header.html
index 4dd1104..da6f3ff 100644
--- a/site/_includes/header.html
+++ b/site/_includes/header.html
@@ -21,7 +21,7 @@
           <a class="item" href="{{ '/docs/system' | prepend: site.baseurl }}">System</a>
           <a class="item" href="{{ '/docs/userale'| prepend: site.baseurl }}">UserALE</a>
           <a class="item" href="{{ '/docs/useralejs'| prepend: site.baseurl }}">UserALE.js</a>
-          <a class="item" href="{{ '/docs/useralepyqt'| prepend: site.baseurl }}">UserALE.pyqt</a>
+          <a class="item" href="{{ '/docs/useralepy'| prepend: site.baseurl }}">UserALE.py</a>
           <a class="item" href="{{ '/docs/distill'| prepend: site.baseurl }}">Distill</a>
           <a class="item" href="{{ '/docs/tap'| prepend: site.baseurl }}">Tap</a>
           <a class="item" href="{{ '/docs/stout'| prepend: site.baseurl }}">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_pages/community.html
----------------------------------------------------------------------
diff --git a/site/_pages/community.html b/site/_pages/community.html
index c079016..bee667b 100644
--- a/site/_pages/community.html
+++ b/site/_pages/community.html
@@ -6,7 +6,7 @@ title: Community
 
 <div class="ui vertical segment">
   <p>
-    The Apache SensSoft team happily welcomes contributors and supporters of our work.  Contributions, bug reports, and suggestions are welcome for the core products, website, documentation, and everything else!  See our <a href="{{ '/docs/system/contributing' | prepend: site.baseurl }}">docs</a> for more information on submitting effective contributions and bug reports.
+    The Apache SensSoft team happily welcomes contributors and supporters of our work.  Contributions, bug reports, and suggestions are welcome for the core products, website, documentation, and everything else!  See our <a href="{{ '/docs/contributing' | prepend: site.baseurl }}">docs</a> for more information on submitting effective contributions and bug reports.
   </p>
 </div>
 
@@ -63,7 +63,7 @@ title: Community
     <div class="content">Issues and Bugs</div>
   </h3>
   <p>
-    Visit our <a href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a> for full information on current developments, bugs, etc.
+    Visit our <a href="https://issues.apache.org/jira/browse/SENSSOFT">JIRA Issue Tracker</a> for full information on current developments, bugs, etc.
   </p>
   <h3 class="ui header">
     <i class="sticky note icon"></i>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/_pages/tap.html
----------------------------------------------------------------------
diff --git a/site/_pages/tap.html b/site/_pages/tap.html
index fad7ab8..354f96b 100644
--- a/site/_pages/tap.html
+++ b/site/_pages/tap.html
@@ -22,7 +22,7 @@ features:
     icon: lock
     color: red
     title: Control access to your data (coming soon)
-    description: Control permissions for how your organization can access user data by setting permissions at the instutitional level down to access to data collected from specific applications.
+    description: Control permissions for how your organization can access user data by setting permissions at the institutional level down to access to data collected from specific applications.
 
 contentCount: 1
 ---

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/index.html
----------------------------------------------------------------------
diff --git a/site/index.html b/site/index.html
index cfb9152..4f190d1 100644
--- a/site/index.html
+++ b/site/index.html
@@ -97,7 +97,7 @@ layout: default
   <div class="ui text container">
     <h2 class="ui inverted header">About the Project</h2>
     <p>
-      Apache SensSoft is a user activity logging and analytics system that enables developers to instrument and extract design and user insights from their applications.  It was originally developed at Draper for DARPA's XDATA program as a means of evaluating and improving tools for big data analysis and exploration.  Commercially available as Draper's Software as a Sensorâ„¢, Apache SensSoft aims to provide a more complete and customizable user analytics platform.
+      Apache SensSoft is a user activity logging and analytics system that enables developers to instrument and extract design and user insights from their applications.  It was originally developed at <a href="draper.com">Draper</a> for DARPA's XDATA program as a means of evaluating and improving tools for big data analysis and exploration.  Commercially available as Draper's Software as a Sensorâ„¢, Apache SensSoft aims to provide a more complete and customizable user analytics platform.
     </p>
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4abbc9b/site/package.json
----------------------------------------------------------------------
diff --git a/site/package.json b/site/package.json
index 4a806a3..537ca7b 100644
--- a/site/package.json
+++ b/site/package.json
@@ -1,6 +1,6 @@
 {
   "name": "apache-senssoft-website",
-  "version": "1.0.0",
+  "version": "1.0.1",
   "description": "Website for Apache SensSoft",
   "main": "",
   "scripts": {
@@ -8,7 +8,7 @@
   },
   "repository": {
     "type": "git",
-    "url": ""
+    "url": "git://git.apache.org/incubator-senssoft.git"
   },
   "keywords": [
     "Apache",


[06/40] incubator-senssoft git commit: Updated port to reflect change in docker-compose

Posted by le...@apache.org.
Updated port to reflect change in docker-compose


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/00c99ebf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/00c99ebf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/00c99ebf

Branch: refs/heads/asf-site
Commit: 00c99ebf7cf38b03c6f9dcb872b31e9333d1ab30
Parents: c3d578f
Author: Rob Foley <ro...@gmail.com>
Authored: Wed Mar 22 16:24:56 2017 -0400
Committer: Rob Foley <ro...@gmail.com>
Committed: Wed Mar 22 16:24:56 2017 -0400

----------------------------------------------------------------------
 docker/logstash/config/logstash-userale.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/00c99ebf/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index 0c30077..217a4dd 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -1,7 +1,7 @@
 input {
 	http {
 		codec => "json"
-		port => 8000
+		port => 8080
 		response_headers => { 
 			"Access-Control-Allow-Origin" => "*" 
             "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"


[32/40] incubator-senssoft git commit: Updated README

Posted by le...@apache.org.
Updated README


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/2b93e9bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/2b93e9bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/2b93e9bc

Branch: refs/heads/asf-site
Commit: 2b93e9bc470a6ce517028d4e0b71a563e46af752
Parents: c3aa251
Author: msbeard <ms...@apache.org>
Authored: Fri Nov 17 12:06:54 2017 -0500
Committer: msbeard <ms...@apache.org>
Committed: Fri Nov 17 12:06:54 2017 -0500

----------------------------------------------------------------------
 docker/README.md | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/2b93e9bc/docker/README.md
----------------------------------------------------------------------
diff --git a/docker/README.md b/docker/README.md
index f9d395a..df1f84e 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -24,7 +24,7 @@ How to Build SensSoft Docker Containers
 1. Start Elasticsearch cluster:
     
     ```bash
-    $ docker-compose up -d elasticsearch loadbalancer
+    $ docker-compose up -d --scale elasticsearch=3 elasticsearch loadbalancer
     ```
     
     The loadbalancer node exposes port 9200 on localhost and is the only node 
@@ -33,10 +33,6 @@ How to Build SensSoft Docker Containers
     and balances them across the elasticsearch worker nodes. The elasticsearch 
     worker nodes communicate to each other and the loadbalancer via TCP on port 9300. 
 
-1. Once Elasticsearch cluster is fully started, scale out elasticsearch service:
-   ```bash
-   $ docker-compose up --scale elasticsearch=3
-   ```
     
 1. Confirm cluster state:
    ```bash
@@ -66,7 +62,6 @@ How to Build SensSoft Docker Containers
   
    ```bash
    $ docker-compose up -d logstash
-   
    $ curl -XGET http://localhost:8100 
    ok
    ```


[17/40] incubator-senssoft git commit: Updated README to show how to update build site contents from Docker container.

Posted by le...@apache.org.
Updated README to show how to update build site contents from Docker container.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/c593cd06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/c593cd06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/c593cd06

Branch: refs/heads/asf-site
Commit: c593cd06a581afb4622a8224bef7da3c386fb349
Parents: f4abbc9
Author: msb3399 <mb...@draper.com>
Authored: Thu May 25 17:49:11 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Thu May 25 17:49:11 2017 -0400

----------------------------------------------------------------------
 site/README.md                                 |   7 +
 site/_site/CHANGELOG.md                        |  12 +
 site/_site/Dockerfile                          |  26 +
 site/_site/README.md                           |  16 +
 site/_site/community/index.html                |  10 +-
 site/_site/distill/index.html                  |   6 +-
 site/_site/docs/contributing/index.html        | 334 +++++++++++
 site/_site/docs/distill/analytics.html         |  24 +-
 site/_site/docs/distill/api.html               |  24 +-
 site/_site/docs/distill/changelog.html         |  24 +-
 site/_site/docs/distill/http.html              |  30 +-
 site/_site/docs/distill/index.html             |  24 +-
 site/_site/docs/distill/models.html            |  24 +-
 site/_site/docs/distill/start.html             |  24 +-
 site/_site/docs/distill/utilities.html         |  24 +-
 site/_site/docs/index.html                     |  26 +-
 site/_site/docs/stout/index.html               |  24 +-
 site/_site/docs/stout/start.html               |  24 +-
 site/_site/docs/system/index.html              |  24 +-
 site/_site/docs/tap/index.html                 |  24 +-
 site/_site/docs/userale/index.html             |  32 +-
 site/_site/docs/useralejs/index.html           |  30 +-
 site/_site/docs/useralejs/testing.html         | 331 +++++++++++
 site/_site/docs/useralejs/troubleshooting.html |  26 +-
 site/_site/docs/useralepy/api.html             | 592 ++++++++++++++++++++
 site/_site/docs/useralepy/changelog.html       | 379 +++++++++++++
 site/_site/docs/useralepy/index.html           | 423 ++++++++++++++
 site/_site/docs/useralepy/start.html           | 364 ++++++++++++
 site/_site/feed.xml                            |   2 +-
 site/_site/index.html                          |   8 +-
 site/_site/releases/index.html                 |   6 +-
 site/_site/stout/index.html                    |   6 +-
 site/_site/system/index.html                   |   6 +-
 site/_site/tap/index.html                      |   8 +-
 site/_site/userale/index.html                  |   6 +-
 35 files changed, 2716 insertions(+), 234 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/README.md
----------------------------------------------------------------------
diff --git a/site/README.md b/site/README.md
index daecf07..9ea4930 100644
--- a/site/README.md
+++ b/site/README.md
@@ -9,4 +9,11 @@ How to Build Site
 3. Deploy site on localhost:8000
     ```
     docker run -p 8000:8000 -it apache-site python -m SimpleHTTPServer 
+    ```
+4. (Optional): To update the site, can copy the files from the container to _site.
+    ```
+    # First grab container id
+    docker inspect --format="{{.Id}}" apache-site
+    # Reference container id to grab built contents
+    docker cp <container_id>:/app/_site .
     ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/site/_site/CHANGELOG.md b/site/_site/CHANGELOG.md
new file mode 100644
index 0000000..d97729f
--- /dev/null
+++ b/site/_site/CHANGELOG.md
@@ -0,0 +1,12 @@
+CHANGELOG
+---------
+
+### 1.0.1 (2017-05-25)
+- Updated contributing guide
+- Fixed broken links
+- Added Dockerfile to show how to build site
+- Added README and CHANGELOG
+- Updated UserALE.pyqt5 name to UserALE.py
+
+### 1.0.0 (2017-01-12)
+- Initial commit.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/Dockerfile
----------------------------------------------------------------------
diff --git a/site/_site/Dockerfile b/site/_site/Dockerfile
new file mode 100644
index 0000000..d7d3628
--- /dev/null
+++ b/site/_site/Dockerfile
@@ -0,0 +1,26 @@
+FROM starefossen/ruby-node
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Cache bundle
+COPY Gemfile* /tmp/
+WORKDIR /tmp
+RUN bundle install
+
+ENV app /app
+
+# Install npm modules
+COPY package.json /tmp/
+WORKDIR /tmp
+RUN npm install -g
+
+# Add src code
+RUN mkdir $app
+WORKDIR $app
+ADD . $app
+
+# Jekyll buld
+RUN jekyll build
+
+WORKDIR $app/_site
+
+EXPOSE 8000
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/README.md
----------------------------------------------------------------------
diff --git a/site/_site/README.md b/site/_site/README.md
new file mode 100644
index 0000000..2f9e68a
--- /dev/null
+++ b/site/_site/README.md
@@ -0,0 +1,16 @@
+How to Build Site
+-----------------
+
+1. Download and Install [``Docker``](http://docker.com)
+2. Build site
+    ```
+    docker build -t apache-site .
+    ```
+3. Deploy site on localhost:8000
+    ```
+    docker run -p 8000:8000 -it apache-site python -m SimpleHTTPServer 
+    ```
+4. (Optional): To update the site, can copy the files from the container to _site.
+    ```
+    docker 
+    ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/community/index.html
----------------------------------------------------------------------
diff --git a/site/_site/community/index.html b/site/_site/community/index.html
index 1c1916a..6cb5e85 100644
--- a/site/_site/community/index.html
+++ b/site/_site/community/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/community/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/community/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -69,7 +69,7 @@
   <div class="page-content">
     <div class="ui vertical segment">
   <p>
-    The Apache SensSoft team happily welcomes contributors and supporters of our work.  Contributions, bug reports, and suggestions are welcome for the core products, website, documentation, and everything else!  See our <a href="/docs/system/contributing">docs</a> for more information on submitting effective contributions and bug reports.
+    The Apache SensSoft team happily welcomes contributors and supporters of our work.  Contributions, bug reports, and suggestions are welcome for the core products, website, documentation, and everything else!  See our <a href="/docs/contributing">docs</a> for more information on submitting effective contributions and bug reports.
   </p>
 </div>
 
@@ -126,7 +126,7 @@
     <div class="content">Issues and Bugs</div>
   </h3>
   <p>
-    Visit our <a href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a> for full information on current developments, bugs, etc.
+    Visit our <a href="https://issues.apache.org/jira/browse/SENSSOFT">JIRA Issue Tracker</a> for full information on current developments, bugs, etc.
   </p>
   <h3 class="ui header">
     <i class="sticky note icon"></i>
@@ -184,7 +184,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/distill/index.html
----------------------------------------------------------------------
diff --git a/site/_site/distill/index.html b/site/_site/distill/index.html
index 784bf24..7cf571c 100644
--- a/site/_site/distill/index.html
+++ b/site/_site/distill/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/distill/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/distill/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -177,7 +177,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/contributing/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/contributing/index.html b/site/_site/docs/contributing/index.html
new file mode 100644
index 0000000..68c1fcf
--- /dev/null
+++ b/site/_site/docs/contributing/index.html
@@ -0,0 +1,334 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Contributing</title>
+  <meta name="description" content="First, thank you for contributing to Apache SensSoft!">
+
+  <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+  <script src="/semantic/dist/semantic.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+  <script src="/js/main.js"></script>
+
+  <link rel="stylesheet" href="/assets/main.css">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/contributing/">
+  <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
+
+  
+</head>
+
+
+  <body>
+
+    <div class="site-header">
+  <div id="main-menu" class="ui inverted padded fixed top borderless menu">
+    <a class="site-title" href="/">
+      <h3 class="ui inverted header item">Apache SensSoft</h3>
+    </a>
+
+    <div class="right menu">
+      <div class="ui dropdown item">
+        Components
+        <div class="menu">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="ui dropdown item">
+        <a href="/docs">Docs</a>
+        <div class="menu">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserALE.js</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <a class="item" href="/releases">Releases</a>
+      <a class="item" href="/community">Community</a>
+    </div>
+  </div>
+</div>
+
+
+    <div class="main-wrapper">
+      <div class="docs-wrapper">
+  <div class="docs-sidebar">
+    
+
+
+
+
+
+
+
+
+<!-- <div class="ui inverted list">
+  <a class="item" href="/docs">About the Docs</a>
+</div> -->
+<div id="docs-nav" class="ui inverted accordion">
+  
+    <div class="active title">
+  
+    <i class="dropdown icon"></i>
+    Apache SensSoft
+  </div>
+  
+    <div class="active content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/">About the Docs</a>
+      
+        <a class="item" href="/docs/contributing/">Contributing</a>
+      
+    </div>
+  </div>
+
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    System
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/system/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/userale/">About UserALE</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.js
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralejs/">Getting Started</a>
+      
+        <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
+      
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.py
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralepy/">Installation</a>
+      
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Distill
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/distill/">Installation</a>
+      
+        <a class="item" href="/docs/distill/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/distill/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+      
+        <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
+      
+        <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
+      
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+      
+        <a class="item" href="/docs/distill/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Tap
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/tap/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Stout
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/stout/">About Stout</a>
+      
+        <a class="item" href="/docs/stout/start.html">Getting Started</a>
+      
+    </div>
+  </div>
+</div>
+
+  </div>
+  <div class="docs-content">
+    <h2 class="ui header">Contributing</h2>
+    <p>First, thank you for contributing to Apache SensSoft!</p>
+
+<p>There are certain procedures that must be followed for all contributions. These procedures are necessary to allow us to allocate resources for reviewing and testing your contribution, as well as to communicate effectively with you during the review process.</p>
+
+<p>See individual product guides for product-specific information on getting started as a contributor, setup and testing, code style, etc.</p>
+
+<p>To report a bug or other issue, simply create an issue in JIRA, as described in Step 1 below.</p>
+
+<h4 id="1-create-an-issue-in-jira">1. Create an issue in JIRA</h4>
+
+<p>All changes to Apache SensSoft must have a corresponding issue in <a href="https://issues.apache.org/jira/browse/SENSSOFT">JIRA</a> so the change can be properly tracked.  If you do not already have an account on JIRA, you will need to create one before creating your new issue.</p>
+
+<h4 id="2-make-and-test-your-changes-locally">2. Make and test your changes locally</h4>
+
+<p>The Apache SensSoft source code is maintained in <a href="https://git-wip-us.apache.org/repos/asf?s=senssoft">several git repositories</a> hosted by Apache.  These repositories are mirrored and more easily available <a href="https://github.com/apache?q=senssoft">on GitHub</a>.  To make your changes, fork the appropriate GitHub repository and make commits to a topic branch in your fork.  Commits should be made in logical units and must reference the JIRA issue number:</p>
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>   git commit -m <span class="s2">"#SENSSOFT-123: High-level message describing the changes."</span>
+</code></pre>
+</div>
+<p>Avoid commits which cover multiple, distinct goals that could (and should) be handled separately.  If you do not already have an account on JIRA, you will need to create one to claim an issue, discuss development, or report results.</p>
+
+<h4 id="3-submit-your-changes-via-a-pull-request-on-github">3. Submit your changes via a pull request on GitHub</h4>
+
+<p>Once your changes are ready, submit them by creating a pull request for the corresponding topic branch you created when you began working on your changes.  The core team will then review your changes and, if they pass review, your changes will be merged into the primary Apache-hosted repos.</p>
+
+  </div>
+</div>
+
+    </div>
+
+    <div class="footer ui inverted very padded vertical segment">
+  <div class="ui vertical segment">
+    <div class="ui four column grid">
+      <div class="column">
+        <h4 class="ui inverted header">About</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Docs</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserAle.js</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Community</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a>
+          <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>
+          <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a>
+          <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a>
+          <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Apache</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
+          <a class="item" href="http://www.apache.org/">Apache Software Foundation</a>
+          <a class="item" href="http://incubator.apache.org/">Apache Incubator</a>
+          <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+          <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="ui inverted vertical segment">
+    <div class="ui two column middle aligned grid">
+      <div class="column">
+        Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+      </div>
+      <div class="center aligned column">
+        <img class="component-image" src="/images/incubator-logo-white.png">
+        <br>
+        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+      </div>
+    </div>
+  </div>
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/analytics.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/analytics.html b/site/_site/docs/distill/analytics.html
index 402621e..b596e34 100644
--- a/site/_site/docs/distill/analytics.html
+++ b/site/_site/docs/distill/analytics.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/analytics.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/analytics.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -356,7 +356,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/api.html b/site/_site/docs/distill/api.html
index adb86a7..f386b18 100644
--- a/site/_site/docs/distill/api.html
+++ b/site/_site/docs/distill/api.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/api.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/api.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -287,7 +287,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/changelog.html b/site/_site/docs/distill/changelog.html
index d349531..5ac4c9f 100644
--- a/site/_site/docs/distill/changelog.html
+++ b/site/_site/docs/distill/changelog.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/changelog.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/changelog.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -291,7 +291,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/http.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/http.html b/site/_site/docs/distill/http.html
index 2ebec24..0a565c3 100644
--- a/site/_site/docs/distill/http.html
+++ b/site/_site/docs/distill/http.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/http.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/http.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -520,10 +520,8 @@ testing/?stat<span class="o">=</span>terms&amp;elem<span class="o">=</span>signu
 <span class="p">}</span>
 </code></pre>
   </div>
-</blockquote>
-
-<blockquote>
-  <p><strong>Parameters:</strong></p>
+  <p>w
+<strong>Parameters:</strong></p>
   <ul>
     <li>app_id – Application name</li>
   </ul>
@@ -592,7 +590,7 @@ testing/?stat<span class="o">=</span>terms&amp;elem<span class="o">=</span>signu
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/index.html b/site/_site/docs/distill/index.html
index 6cd8185..f045787 100644
--- a/site/_site/docs/distill/index.html
+++ b/site/_site/docs/distill/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -431,7 +431,7 @@ When the package is installed via easy_install or pip this function will be boun
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/models.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/models.html b/site/_site/docs/distill/models.html
index 26f145f..29d0c6d 100644
--- a/site/_site/docs/distill/models.html
+++ b/site/_site/docs/distill/models.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/models.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/models.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -575,7 +575,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/start.html b/site/_site/docs/distill/start.html
index ccb3f2d..47cba1b 100644
--- a/site/_site/docs/distill/start.html
+++ b/site/_site/docs/distill/start.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/start.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/start.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -274,7 +274,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/distill/utilities.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/utilities.html b/site/_site/docs/distill/utilities.html
index 8f84512..d1fd4c8 100644
--- a/site/_site/docs/distill/utilities.html
+++ b/site/_site/docs/distill/utilities.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/distill/utilities.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/distill/utilities.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -361,7 +361,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/index.html b/site/_site/docs/index.html
index a8b709b..c95e804 100644
--- a/site/_site/docs/index.html
+++ b/site/_site/docs/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -238,7 +238,7 @@
   </div>
   <div class="docs-content">
     <h2 class="ui header">About the Docs</h2>
-    <p>The Apache SensSoft docs are organized by product.  Each product’s documentation includes information like quick start guides, tutorials, full API descriptions, and contributing guides.</p>
+    <p>The Apache SensSoft docs are organized by product.  Each product’s documentation includes information like quick start guides, tutorials, full API descriptions, and contribution guides.</p>
 
   </div>
 </div>
@@ -264,7 +264,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/stout/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/stout/index.html b/site/_site/docs/stout/index.html
index 81599f4..db49f46 100644
--- a/site/_site/docs/stout/index.html
+++ b/site/_site/docs/stout/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/stout/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/stout/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -284,7 +284,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/stout/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/stout/start.html b/site/_site/docs/stout/start.html
index a059aec..de2d231 100644
--- a/site/_site/docs/stout/start.html
+++ b/site/_site/docs/stout/start.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/stout/start.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/stout/start.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -364,7 +364,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/system/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/system/index.html b/site/_site/docs/system/index.html
index b9e425e..bdd9cce 100644
--- a/site/_site/docs/system/index.html
+++ b/site/_site/docs/system/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/system/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/system/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -301,7 +301,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/tap/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/tap/index.html b/site/_site/docs/tap/index.html
index 1b64b55..344372b 100644
--- a/site/_site/docs/tap/index.html
+++ b/site/_site/docs/tap/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/tap/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/tap/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -266,7 +266,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/userale/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/userale/index.html b/site/_site/docs/userale/index.html
index 03b527c..18208a9 100644
--- a/site/_site/docs/userale/index.html
+++ b/site/_site/docs/userale/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/userale/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/userale/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -242,15 +242,15 @@
 
 <h3 id="about-userale">About UserALE</h3>
 
-<p>The User Analytic Logging Engine (User ALE) is part of Apache SensSoft. User ALE is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools—applications that are used for manipulating, analyzing, or visualizing data or other systems.</p>
+<p>The User Analytic Logging Engine (UserALE) is part of Apache SensSoft. UserALE is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools—applications that are used for manipulating, analyzing, or visualizing data or other systems.</p>
 
-<p>User ALE provides an API for instrumenting software tools, turning them into a human usability sensors. With every user interaction User ALE will transmit specially structured messages (JSON) from software tools to an activity logging server (Elastic). These messages not only report user activities and their timing, but provide sufficient context to understand how those activities are related to the functional organization of the software tool. This allows for greater utility in understanding how users are interacting with software tool features, and seeds more rigorous modeling and analytic approaches to understand not just what users do in software tools, but how they perform tasks with them.</p>
+<p>UserALE provides an API for instrumenting software tools, turning them into a human usability sensors. With every user interaction User ALE will transmit specially structured messages (JSON) from software tools to an activity logging server (<a href="http://elastic.co">Elasticsearchâ„¢</a>). These messages not only report user activities and their timing, but provide sufficient context to understand how those activities are related to the functional organization of the software tool. This allows for greater utility in understanding how users are interacting with software tool features, and seeds more rigorous modeling and analytic approaches to understand not just what users do in software tools, but how they perform tasks with them.</p>
 
-<p>User ALE provides data provides insight into software tool usage frequency, users’ cognitive/behavioral strategy in using tools to complete tasks, their workflows, as well as their integrative use of software tool features.</p>
+<p>UserALE provides data provides insight into software tool usage frequency, users’ cognitive/behavioral strategy in using tools to complete tasks, their workflows, as well as their integrative use of software tool features.</p>
 
 <h3 id="who-is-userale-for">Who is UserALE for?</h3>
 
-<p>The User Analytic Logging Engine (User ALE) is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools.</p>
+<p>UserALE is for Software Developers, HCI/UX researchers, and project managers who develop user facing software tools.</p>
 
   </div>
 </div>
@@ -276,7 +276,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralejs/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/index.html b/site/_site/docs/useralejs/index.html
index e7c5ea7..2096118 100644
--- a/site/_site/docs/useralejs/index.html
+++ b/site/_site/docs/useralejs/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/useralejs/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralejs/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -244,9 +244,9 @@
 
 <h3 id="include-useralejs-in-your-project">Include UserALE.js in your project</h3>
 
-<p>To include UserAle.js in your project with default configuration, simply include the script tag below:</p>
+<p>To include UserALE.js in your project with default configuration, simply include the script tag below:</p>
 
-<div class="language-html highlighter-rouge"><pre class="highlight"><code>  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"&lt;yourUseraleSource&gt;"</span><span class="nt">&gt;&lt;/script&gt;</span>
+<div class="language-html highlighter-rouge"><pre class="highlight"><code>  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"&lt;userale-0.1.0.js&gt;"</span><span class="nt">&gt;&lt;/script&gt;</span>
 </code></pre>
 </div>
 
@@ -254,7 +254,7 @@
 
 <p>HTML5 Data Parameters are used to configure UserALE.js.  For example, to set the logging URL:</p>
 
-<div class="language-html highlighter-rouge"><pre class="highlight"><code>  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"userale.js"</span> <span class="na">data-url=</span><span class="s">"http://yourLoggingUrl"</span><span class="nt">&gt;&lt;/script&gt;</span>
+<div class="language-html highlighter-rouge"><pre class="highlight"><code>  <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"userale-0.1.0.js"</span> <span class="na">data-url=</span><span class="s">"http://server:port"</span><span class="nt">&gt;&lt;/script&gt;</span>
 </code></pre>
 </div>
 
@@ -346,7 +346,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>



[26/40] incubator-senssoft git commit: Updated Docker instructions

Posted by le...@apache.org.
Updated Docker instructions


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/b59bdd40
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/b59bdd40
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/b59bdd40

Branch: refs/heads/asf-site
Commit: b59bdd405da69fc718699c9f8185b46780502348
Parents: 381a6c5
Author: msbeard <ms...@apache.org>
Authored: Thu Aug 24 13:57:08 2017 -0400
Committer: msbeard <ms...@apache.org>
Committed: Thu Aug 24 13:57:08 2017 -0400

----------------------------------------------------------------------
 docker/README.md | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/b59bdd40/docker/README.md
----------------------------------------------------------------------
diff --git a/docker/README.md b/docker/README.md
index c5a015b..186c1ec 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -4,10 +4,9 @@ How to Build Docker Containers
 1. Install [``Docker``](http://docker.com)
 2. Install ``docker-compose``.
     ```
-    $ mkdir env
-    $ virtualenv env
-    $ source env/bin/activate 
-    $ pip install -e .[docker]
+    $ python3 -m venv env
+    $ source env/bin/activate
+    $ pip install docker-compose
     ```
 3. Build and run all ``Docker`` containers.
     ```
@@ -17,14 +16,14 @@ How to Build Docker Containers
     ```
     $ docker-compose up -d site
     # Note: site container is instrumented w/ userale; all userale logs will be sent to the
-    # elasticsearch docker container. 
+    # elasticsearch docker container.
     ```
 5. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
     ```sh
     http://localhost:5601
     ```
-    
+
 6. Stop all the containers.
     ```sh
-    $ docker-compose stop 
-    ```
\ No newline at end of file
+    $ docker-compose stop
+    ```


[02/40] incubator-senssoft git commit: Initial (probably broken) commit of ported docker build

Posted by le...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/tap/neon_counts.js
----------------------------------------------------------------------
diff --git a/docker/tap/neon_counts.js b/docker/tap/neon_counts.js
new file mode 100644
index 0000000..ff5cadf
--- /dev/null
+++ b/docker/tap/neon_counts.js
@@ -0,0 +1,2 @@
+var neon_counts = [{"intake_data": {"demographics": {"Gender": 2.0, "Age": 34.0, "Ethnicity (other)": null, "Ethnicity": 4.0}, "education": {"Most school completed": 9.0, "Education in IA (ind_priv)": 2.0, "Secondary concentration, free": null, "Tertiary concentration, free": null, "Education in IA (gov_mil)": 2.0, "Primary concentration, free": "Architecture", "Education Concentration": "Civil Engineering"}, "employment": {"Current job free": "The Lovecraft", "Industry experience as an analyst": null, "Current industry free": "Manufacturing/Design", "Current title free": "Owner", "Other experience Free": null}, "exam_scores": {"Experiential inductive cognitive style": 3.5, "Need for cognition": 5.277777778, "Need for closure": 2.866666667, "Rational deductive cognitive style": 5.9, "Subjective Numeracy Scale": 3.0, "Cognitive Reflections Test": 0}}, "OT_data": {"UX OT2  Bedford Workload Composite": 1.333333333, "OT1 Score": 2, "Time to Complete OT1": 844, "Time to Complete OT2": 10
 12, "Combined OT Scores": 4.0, "UX  Engagement Composite": 3.9375, "UX OT 2 Cognitive Load Composite": 1.0, "UX OT Enjoyment Composite": 5.0, "Total Time to Complete All Tasks": 1856, "OT2 Confidence": 11.0, "UX OT1 Bedford Workload Composite": 5.0, "UX OT2 Engagement Composite": 4.0, "UX OT1 Engagement Composite": 3.875, "UX  Bedford Workload (Mental Effort)": 3.5, "Ave OT Confidence": 10.25, "UX OT 1 Cognitive Load Composite": 1.9, "UX OT Cognitive Load Composite": 1.45, "UX  Bedford Workload (Rel Skill Level)": 3.5, "OT1 Confidence": 9.5, "UX  Bedford Workload Composite": 3.1666666664999998, "OT2 Score": 2.0, "UX  Bedford Workload (Difficulty)": 2.5}, "log_data": {"OT1": {"total_counts": 207, "logs": {"count": [3, 20, 0, 0, 1, 2, 2, 3, 4, 2, 0, 0, 0, 0, 2, 3, 13, 0, 0, 0, 1, 1, 2, 1, 1, 1, 1, 8, 4, 0, 0, 52, 28, 0, 2, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 9, 11, 0, 0, 0, 5, 7, 3, 2, 9], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "
 chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart
 _group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER",
  "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range
 ,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder
 -selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,
 PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-"
 , "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "drag", "panstart", "zoom", "click"
 , "click", "click", "click", "click", "click", "click", "keydown", "keydown_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dragstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TAG", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "COMBOBOX", "COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "linechart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide",
  "linechart_trendline_show", "linechart_select_time_range_drag", "linechart_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeline_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hide", "map_tooltip_show", "map_geofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_enter_search_terms_int", "query_update_filt0", "query_update_filt1", "query_upda
 te_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid_resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_dataset", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "timeline-clear-range", "timeline-day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remove-filter", "filter-builder-selected-field", "filter-builder-selectedOperator"
 , "filter-builder-selectedValue", "filter-builder-selectedValue", "filter-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit", "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session_id": "0846bcbb7a349347961f6aa8824e2f_1530"}, "OT2": {"total_counts": 366, "logs": {"count": [2, 22, 0, 0, 0, 2, 1, 3, 5, 2, 2, 2, 0, 0, 3, 16, 54, 0, 0, 0, 13, 7, 0, 0, 0, 13, 0, 4, 3, 1, 8, 36, 24, 0, 7, 0, 0, 5, 0, 0, 0, 9, 11, 1, 0, 0, 0, 3, 54, 22, 0, 0, 0, 5, 5, 3, 0, 18], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart
 _group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group
 ,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart
 _group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-
 filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-build
 er,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,
 click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SE
 LECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "drag", "panstart", "zoom", "click", "click", "click", "click", "click", "click", "click", "keydown", "keydown_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dr
 agstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TAG", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "COMBOBOX", "COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "linechart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide", "linechart_trendline_show", "linechart_select_time_range_drag", "linechart_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all
 ", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeline_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hide", "map_tooltip_show", "map_geofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_enter_search_terms_int", "query_update_filt0", "query_update_filt1", "query_update_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid_resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_datas
 et", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "timeline-clear-range", "timeline-day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remove-filter", "filter-builder-selected-field", "filter-builder-selectedOperator", "filter-builder-selectedValue", "filter-builder-selectedValue", "filter-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit",
  "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session_id": "0846bcbb7a349347961f6aa8824e2f_1531"}}, "application": "Neon", "experiment": "2015_public_xdataonline", "user_hash": "0846bcbb7a349347961f6aa8824e2f"}, {"intake_data": {"demographics": {"Gender": 1.0, "Age": 28.0, "Ethnicity (other)": null, "Ethnicity": 4.0}, "education": {"Most school completed": 9.0, "Education in IA (ind_priv)": null, "Secondary concentration, free": "Environmental Sciences", "Tertiary concentration, free": null, "Education in IA (gov_mil)": null, "Primary concentration, free": "Social Sciences"}, "employment": {"Industry experience as an analyst": null, "Decscription of career, occupation": "Not Applicable", "Current industry free": "Manufacturing", "Other experience Free": null, "Current job free": "Full time paid employment", "Current title free": "Human Resource Supervisor"}, "exam_scores": {"Experiential inductive cogni
 tive style": 5.2, "Need for cognition": 6.222222222, "Need for closure": 3.733333333, "Rational deductive cognitive style": 6.333333333, "Subjective Numeracy Scale": 4.4, "Cognitive Reflections Test": 0}}, "OT_data": {"UX OT2  Bedford Workload Composite": 7.0, "OT1 Score": 4, "Time to Complete OT1": 928, "Time to Complete OT2": 543, "Combined OT Scores": 7.0, "UX  Engagement Composite": 3.625, "UX OT 2 Cognitive Load Composite": 2.96, "UX OT Enjoyment Composite": 5.0, "Total Time to Complete All Tasks": 1471, "OT2 Confidence": 8.4, "UX OT1 Bedford Workload Composite": null, "UX OT2 Engagement Composite": 3.625, "UX OT1 Engagement Composite": null, "UX  Bedford Workload (Mental Effort)": 8.0, "Ave OT Confidence": 7.9500000000000002, "UX OT 1 Cognitive Load Composite": null, "UX OT Cognitive Load Composite": 2.96, "UX  Bedford Workload (Rel Skill Level)": 6.0, "OT1 Confidence": 7.5, "UX  Bedford Workload Composite": 7.0, "OT2 Score": 3.0, "UX  Bedford Workload (Difficulty)": 7.0}, "lo
 g_data": {"OT1": {"total_counts": 163, "logs": {"count": [2, 18, 0, 0, 0, 5, 1, 2, 2, 5, 6, 3, 0, 0, 0, 8, 19, 0, 0, 0, 6, 1, 0, 0, 1, 6, 1, 0, 1, 0, 0, 11, 7, 0, 2, 0, 0, 0, 1, 0, 0, 2, 5, 0, 0, 0, 0, 0, 26, 6, 0, 0, 0, 5, 5, 1, 0, 5], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_
 group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linech
 art-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "char
 t_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUT
 TON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_grou
 p,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translatio
 n", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseo
 ver", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "drag", "panstart", "zoom", "click", "click", "click", "click", "click", "click", "click", "keydown", "keydown_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dragstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TAG", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "COMBOBOX", "
 COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "linechart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide", "linechart_trendline_show", "linechart_select_time_range_drag", "linechart_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeline_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hide", "map_tooltip_show", "map_ge
 ofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_enter_search_terms_int", "query_update_filt0", "query_update_filt1", "query_update_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid_resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_dataset", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "timeline-clear-range", "timeline-
 day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remove-filter", "filter-builder-selected-field", "filter-builder-selectedOperator", "filter-builder-selectedValue", "filter-builder-selectedValue", "filter-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit", "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session_id": "0ce09368198ffe11adf71b8daab4c4_1784"}, "OT2": {"total_counts": 108, "logs": {"count": [0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 12, 16, 1, 0, 1, 8, 1, 1, 0, 1, 9, 0, 2, 2, 0, 0, 8, 4, 0, 4, 0, 1, 2, 1, 0, 0, 5, 3, 0, 0, 0, 0, 0, 13, 5, 0, 0, 0, 2, 2, 1, 0, 0], "elementGroup": 
 ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
 , 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "c
 hart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,ti
 meline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-fiel
 d,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_
 INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-fi
 lter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "cl
 ick", "click", "click", "click", "click", "drag", "panstart", "zoom", "click", "click", "click", "click", "click", "click", "click", "keydown", "keydown_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dragstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TAG", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "COMBOBOX", "COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "line
 chart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide", "linechart_trendline_show", "linechart_select_time_range_drag", "linechart_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeline_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hide", "map_tooltip_show", "map_geofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_ent
 er_search_terms_int", "query_update_filt0", "query_update_filt1", "query_update_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid_resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_dataset", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "timeline-clear-range", "timeline-day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remov
 e-filter", "filter-builder-selected-field", "filter-builder-selectedOperator", "filter-builder-selectedValue", "filter-builder-selectedValue", "filter-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit", "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session_id": "0ce09368198ffe11adf71b8daab4c4_1785"}}, "application": "Neon", "experiment": "2015_public_xdataonline", "user_hash": "0ce09368198ffe11adf71b8daab4c4"}, {"intake_data": {"demographics": {"Gender": 1.0, "Age": 27.0, "Ethnicity (other)": null, "Ethnicity": 4.0}, "education": {"Most school completed": 5.0, "Education in IA (ind_priv)": null, "Secondary concentration, free": "Biology", "Tertiary concentration, free": "Art and Design", "Education in IA (gov_mil)": null, "Primary concentration, free": "Nursing"}, "employment": {"Indust
 ry experience as an analyst": null, "Decscription of career, occupation": "Not Applicable", "Current industry free": "Healthcare", "Other experience Free": null, "Current job free": "Nurse", "Current title free": "Nurse"}, "exam_scores": {"Experiential inductive cognitive style": 4.1, "Need for cognition": 4.222222222, "Need for closure": 4.266666667, "Rational deductive cognitive style": 3.9, "Subjective Numeracy Scale": 2.2, "Cognitive Reflections Test": 0}}, "OT_data": {"UX OT2  Bedford Workload Composite": 5.0, "OT1 Score": 2, "Time to Complete OT1": 338, "Time to Complete OT2": 322, "Combined OT Scores": 4.0, "UX  Engagement Composite": 4.125, "UX OT 2 Cognitive Load Composite": 1.0, "UX OT Enjoyment Composite": 4.5, "Total Time to Complete All Tasks": 660, "OT2 Confidence": 8.2, "UX OT1 Bedford Workload Composite": 3.666666667, "UX OT2 Engagement Composite": 4.25, "UX OT1 Engagement Composite": 4.0, "UX  Bedford Workload (Mental Effort)": 5.0, "Ave OT Confidence": 8.4749999999
 999996, "UX OT 1 Cognitive Load Composite": 1.55, "UX OT Cognitive Load Composite": 1.2749999999999999, "UX  Bedford Workload (Rel Skill Level)": 5.0, "OT1 Confidence": 8.75, "UX  Bedford Workload Composite": 4.3333333334999997, "OT2 Score": 2.0, "UX  Bedford Workload (Difficulty)": 3.0}, "log_data": {"OT1": {"total_counts": 41, "logs": {"count": [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 9, 5, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 3, 0, 0], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group"
 , "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click
 ,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click
 ,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS
 ,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-
 filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,drags
 tart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", 
 "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "drag", "panstart", "zoom", "click", "click", "click", "click", "click", "click", "click", "keydown", "keydown_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dragstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TA
 G", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "COMBOBOX", "COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "linechart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide", "linechart_trendline_show", "linechart_select_time_range_drag", "linechart_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeli
 ne_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hide", "map_tooltip_show", "map_geofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_enter_search_terms_int", "query_update_filt0", "query_update_filt1", "query_update_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid_resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_dataset", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-
 brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "timeline-clear-range", "timeline-day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remove-filter", "filter-builder-selected-field", "filter-builder-selectedOperator", "filter-builder-selectedValue", "filter-builder-selectedValue", "filter-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit", "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session
 _id": "0e2bf8b0d73b3c1714d34286df21bd_1660"}, "OT2": {"total_counts": 22, "logs": {"count": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 2, 0, 0, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table
 _group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linec
 hart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELEC
 T,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,f
 ilter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,re
 order-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "a
 ny-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER
 ", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "drag", "panstart", "zoom", "click", "click", "click", "click", "click", "click", "click", "keydown", "keydown_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dragstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TAG", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "B
 UTTON", "BUTTON", "COMBOBOX", "COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "linechart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide", "linechart_trendline_show", "linechart_select_time_range_drag", "linechart_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeline_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hid
 e", "map_tooltip_show", "map_geofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_enter_search_terms_int", "query_update_filt0", "query_update_filt1", "query_update_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid_resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_dataset", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "ti
 meline-clear-range", "timeline-day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remove-filter", "filter-builder-selected-field", "filter-builder-selectedOperator", "filter-builder-selectedValue", "filter-builder-selectedValue", "filter-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit", "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session_id": "0e2bf8b0d73b3c1714d34286df21bd_1661"}}, "application": "Neon", "experiment": "2015_public_xdataonline", "user_hash": "0e2bf8b0d73b3c1714d34286df21bd"}, {"intake_data": {"demographics": {"Gender": 1.0, "Age": 50.0, "Ethnicity (other)": null, "Ethnicit
 y": 4.0}, "education": {"Most school completed": 9.0, "Education in IA (ind_priv)": null, "Secondary concentration, free": "business administration", "Tertiary concentration, free": null, "Education in IA (gov_mil)": null, "Primary concentration, free": "health services administration"}, "employment": {"Industry experience as an analyst": null, "Decscription of career, occupation": "Not Applicable", "Current industry free": "health care", "Other experience Free": null, "Current job free": "hospital", "Current title free": "manager"}, "exam_scores": {"Experiential inductive cognitive style": 4.9, "Need for cognition": 4.5, "Need for closure": 4.4, "Rational deductive cognitive style": 5.5, "Subjective Numeracy Scale": 4.0, "Cognitive Reflections Test": 0}}, "OT_data": {"UX OT2  Bedford Workload Composite": 6.666666667, "OT1 Score": 1, "Time to Complete OT1": 274, "Time to Complete OT2": 457, "Combined OT Scores": 2.0, "UX  Engagement Composite": 3.5, "UX OT 2 Cognitive Load Composite
 ": 3.04, "UX OT Enjoyment Composite": 4.0, "Total Time to Complete All Tasks": 731, "OT2 Confidence": 6.4, "UX OT1 Bedford Workload Composite": 6.666666667, "UX OT2 Engagement Composite": 3.5, "UX OT1 Engagement Composite": 3.5, "UX  Bedford Workload (Mental Effort)": 7.5, "Ave OT Confidence": 6.5750000000000002, "UX OT 1 Cognitive Load Composite": 2.85, "UX OT Cognitive Load Composite": 2.9450000000000003, "UX  Bedford Workload (Rel Skill Level)": 6.0, "OT1 Confidence": 6.75, "UX  Bedford Workload Composite": 6.6666666670000003, "OT2 Score": 1.0, "UX  Bedford Workload (Difficulty)": 6.5}, "log_data": {"OT1": {"total_counts": 14, "logs": {"count": [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 0], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group"
 , "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "char
 t_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,option
 s,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-
 year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELECT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query
 _group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUT
 TON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualization,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", 
 "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "click", "click", "click", "click", "click", "click", "click", "click", "drag", "panstart", "zoom", "click", "click", "click", "click", "click", "click", "click", "keydown", "keyd
 own_INTERVAL", "click", "click", "click", "click", "drag", "drag", "scroll", "scroll_INTERVAL", "keydown_INTERVAL", "click", "click", "click", "click", "click", "click", "dragstart"], "elementType": ["TOOLTIP", "TOOLTIP", "COMBOBOX", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "TAG", "TAG", "BUTTON", "BUTTON", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "CANVAS", "BUTTON", "TOOLTIP", "TOOLTIP", "BUTTON", "CANVAS", "CANVAS", "CANVAS", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "BUTTON", "COMBOBOX", "COMBOBOX", "TEXTBOX", "TEXTBOX", "BUTTON", "BUTTON", "BUTTON", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "DATAGRID", "TEXTBOX", "BUTTON", "RADIOBUTTON", "BUTTON", "BUTTON", "BUTTON", "WORKSPACE", "WORKSPACE"], "nickname": ["linechart_mover", "linechart_mover_int", "linechart_aggregation_select", "linechart_trendline_hide", "linechart_trendline_show", "linechart_select_time_range_drag", "linech
 art_clear_time_range", "linechart_temp_res_day", "linechart_temp_res_hour", "linechart_select_time_range", "tag_cloud_add_filt", "tag_cloud_rem_filt", "tag_cloud_options_all", "tag_cloud_options_any", "tag_cloud_rem_translation", "timeline_mover", "timeline_mover_int", "timeline_show_focus_always", "timeline_show_focus_never", "timeline_show_focus_on", "timeline_select_time_range_drag", "timeline_clear_range", "timeline_temp_res_day", "timeline_temp_res_hour", "timeline_temp_res_month", "timeline_date_range_select", "timeline_temp_res_year", "map_tooltip_hide", "map_tooltip_show", "map_geofilter_click", "map_geofilter_drag", "map_pan", "map_zoom", "map_overlay_change", "query_add_filter", "query_change_filter", "query_clear_all", "query_remove_filter", "query_select_field", "query_select_operator", "query_enter_search_terms", "query_enter_search_terms_int", "query_update_filt0", "query_update_filt1", "query_update_filt2", "datagrid_sort_col_header", "datagrid_reorder_col", "datagrid
 _resize_col", "datagrid_scroll", "datagrid_scroll_int", "datagrid_enter_limit", "datagrid_refresh", "datagrid_sort_col_button", "options_hide", "options_show", "select_dataset", "layout_alter", "layout_drag_widget"], "elementId": ["linechart", "linechart", "linechart", "linechart", "linechart", "linechart-brush", "linechart-clear-range", "linechart-day", "linechart-hour", "linechart-range", "tag-cloud", "tag-cloud", "tag-cloud-options", "tag-cloud-options", "tag-cloud-options", "timeline", "timeline", "timeline", "timeline", "timeline", "timeline-brush", "timeline-clear-range", "timeline-day", "timeline-hour", "timeline-month", "timeline-range", "timeline-year", "map", "map", "map", "map", "map", "map", "map-layer-active-button", "filter-builder-add-filter", "filter-builder-and-clauses", "filter-builder-clear-all", "filter-builder-remove-filter", "filter-builder-selected-field", "filter-builder-selectedOperator", "filter-builder-selectedValue", "filter-builder-selectedValue", "filte
 r-builder-update-filter-0", "filter-builder-update-filter-1", "filter-builder-update-filter-2", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid", "datagrid-limit", "datagrid-refresh", "datagrid-sort-direction", "chart-options", "chart-options", "dataset-menu", "workspace", "workspace"]}, "session_id": "1baa3b7cf49d0f58c6f4535d69cb95_1917"}, "OT2": {"total_counts": 23, "logs": {"count": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 1, 1, 0, 0], "elementGroup": ["chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", "chart_group", 
 "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "map_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "query_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "table_group", "top", "top", "top", "top", "top"], "log_id": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "log_strings": ["chart_group,linechart,linechart,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,linechart,linechart,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_group,linechart,linechart-aggregation,COMBOBOX,click,SELECT,-,options,USER", "chart_group,linechart,linechart-trendline-hide,BUTTON,click,ALTER,-,linechart,USER", "chart_gro
 up,linechart,linechart-trendline-show,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-brush,linechart-brush,CANVAS,drag,SELECT,-,linechart;brush,USER", "chart_group,linechart-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,linechart-day,linechart-day,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-hour,linechart-hour,BUTTON,click,ALTER,-,linechart,USER", "chart_group,linechart-range,date-range,CANVAS,click,SELECT,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,ADD,-,filter,USER", "chart_group,tag-cloud,-,TAG,click,REMOVE,-,filter,USER", "chart_group,tag-cloud-options,all-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,any-filters,BUTTON,click,SELECT,-,options,USER", "chart_group,tag-cloud-options,remove-translation,BUTTON,click,SELECT,-,options,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover,SHOW,-,tooltip,USER", "chart_group,timeline,timeline,TOOLTIP,mouseover_INTERVAL,SHOW,-,tooltip,USER", "chart_gro
 up,timeline,timeline-showFocus-always,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-never,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline,timeline-showFocus-on_filter,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-brush,timeline-brush,CANVAS,drag,SELECT,-,timeline;brush,USER", "chart_group,timeline-clear-range,-,BUTTON,click,DESELECT,-,filter,USER", "chart_group,timeline-day,timeline-day,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-hour,timeline-hour,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-month,timeline-month,BUTTON,click,ALTER,-,timeline,USER", "chart_group,timeline-range,date-range,CANVAS,click,SELECT,-,timeline,USER", "chart_group,timeline-year,timeline-year,BUTTON,click,ALTER,-,timeline,USER", "map_group,map,-,TOOLTIP,click,HIDE,-,map,USER", "map_group,map,-,TOOLTIP,click,SHOW,-,map,USER", "map_group,map,geo-filter,BUTTON,click,DESELECT,-,map,USER", "map_group,map,geo-filter,CANVAS,drag,SELE
 CT,-,map,USER", "map_group,map,map-viewport,CANVAS,panstart,ALTER,-,map,USER", "map_group,map,map-viewport,CANVAS,zoom,ALTER,-,map,USER", "map_group,map-layer-active-button,-,BUTTON,click,ALTER,-,options,USER", "query_group,filter-builder-add-filter,-,BUTTON,click,ADD,-,filter-builder,USER", "query_group,filter-builder-and-clauses,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-clear-all,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-remove-filter,-,BUTTON,click,REMOVE,-,filter-builder,USER", "query_group,filter-builder-selected-field,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedOperator,-,COMBOBOX,click,SELECT,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown,ENTER,-,filter-builder,USER", "query_group,filter-builder-selectedValue,-,TEXTBOX,keydown_INTERVAL,ENTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-0,-,BUTTON,click,ALTER,-,filter-
 builder,USER", "query_group,filter-builder-update-filter-1,-,BUTTON,click,ALTER,-,filter-builder,USER", "query_group,filter-builder-update-filter-2,-,BUTTON,click,ALTER,-,filter-builder,USER", "table_group,datagrid,-,DATAGRID,click,ALTER,-,sort-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,reorder-column,USER", "table_group,datagrid,-,DATAGRID,drag,ALTER,-,resize-column,USER", "table_group,datagrid,-,DATAGRID,scroll,ALTER,-,scroll-datagrid,USER", "table_group,datagrid,-,DATAGRID,scroll_INTERVAL,ALTER,-,scroll-datagrid,USER", "table_group,datagrid-limit,-,TEXTBOX,keydown_INTERVAL,ALTER,-,options,USER", "table_group,datagrid-refresh,-,BUTTON,click,PERFORM,-,options,USER", "table_group,datagrid-sort-direction,-,RADIOBUTTON,click,SELECT,-,options,USER", "top,chart-options,-,BUTTON,click,HIDE,-,options,USER", "top,chart-options,-,BUTTON,click,SHOW,-,options,USER", "top,dataset-menu,-,BUTTON,click,SELECT,-,dataset,USER", "top,workspace,layout,WORKSPACE,click,ALTER,-,visualiz
 ation,USER", "top,workspace,layout,WORKSPACE,dragstart,ALTER,-,visualization,USER"], "elementSub": ["linechart", "linechart", "linechart-aggregation", "linechart-trendline-hide", "linechart-trendline-show", "linechart-brush", "-", "linechart-day", "linechart-hour", "date-range", "-", "-", "all-filters", "any-filters", "remove-translation", "timeline", "timeline", "timeline-showFocus-always", "timeline-showFocus-never", "timeline-showFocus-on_filter", "timeline-brush", "-", "timeline-day", "timeline-hour", "timeline-month", "date-range", "timeline-year", "-", "-", "geo-filter", "geo-filter", "map-viewport", "map-viewport", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "layout", "layout"], "activity": ["SHOW", "SHOW", "SELECT", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "ALTER", "SELECT", "ADD", "REMOVE", "SELECT", "SELECT", "SELECT", "SHOW", "SHOW", "ALTER", "ALTER", "ALTER", "SELECT", "DESELECT", "ALTER", "AL
 TER", "ALTER", "SELECT", "ALTER", "HIDE", "SHOW", "DESELECT", "SELECT", "ALTER", "ALTER", "ALTER", "ADD", "ALTER", "REMOVE", "REMOVE", "SELECT", "SELECT", "ENTER", "ENTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "ALTER", "PERFORM", "SELECT", "HIDE", "SHOW", "SELECT", "ALTER", "ALTER"], "action": ["mouseover", "mouseover_INTERVAL", "click", "click", "click", "drag", "click", "c

<TRUNCATED>


[25/40] incubator-senssoft git commit: Added public signing keys

Posted by le...@apache.org.
Added public signing keys


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/381a6c5e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/381a6c5e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/381a6c5e

Branch: refs/heads/asf-site
Commit: 381a6c5efb0e8d281f29b5ceaac3b6758f28a733
Parents: 2f186ed
Author: msb3399 <mb...@draper.com>
Authored: Mon Aug 21 14:34:01 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Mon Aug 21 14:34:01 2017 -0400

----------------------------------------------------------------------
 KEYS | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/381a6c5e/KEYS
----------------------------------------------------------------------
diff --git a/KEYS b/KEYS
new file mode 100644
index 0000000..9bd1894
--- /dev/null
+++ b/KEYS
@@ -0,0 +1,37 @@
+pub   2048R/D6F8075C 2017-07-06
+uid       [ultimate] Michelle Beard (SENSSOFT KEYS) <ms...@apache.org>
+sig 3        D6F8075C 2017-07-06  Michelle Beard (SENSSOFT KEYS) <ms...@apache.org>
+sub   2048R/772CA9DB 2017-07-06
+sig          D6F8075C 2017-07-06  Michelle Beard (SENSSOFT KEYS) <ms...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2
+
+mQENBFlehLoBCADn+z/pUfWt4W45KaCsZqQ1h01BpWTGib/XdICUqlidnmCQuvJP
+IRyID0JCXFgZcMxAIn8vQ8k0hh6BvKZfbmkO9Gh2L4jGIGryVtLJHCECFGDEYplY
+DkPmZgq0fPDuuoIcIJkwRUGdOz4hkkkkNkXWUIWav6H5kZYgX0paHgYSEDEOpNnD
+BIax6XUvlMPME9jcfb5aqXXiiNj+fwACVDEae4n/QK4baZO1XH1cGYAt9feuoPX8
+jl1LSriPBW5ngGYWS9KSLSD73EOKijk8+OT6T+zpXTxzUne4H/VLu9JDQ1iY6YEX
+4YvWege8hxtyp1cQlFLYjr3d28R00xBvoFHPABEBAAG0M01pY2hlbGxlIEJlYXJk
+IChTRU5TU09GVCBLRVlTKSA8bXNiZWFyZEBhcGFjaGUub3JnPokBOQQTAQgAIwUC
+WV6EugIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEK4wf/LW+Adc9w4I
+AMioYXMFgOWqQpu0v5xTxsyxr/+mDTzCQ8bb9lU4Yt9m0Yk6Fm+AvDJWJL3tABx7
+LvoYMMmAJG5w87ttfKGwsCm/k5CqUaSuS6v8RxqXPAvFCeYFT5IFoZtSkPtAq04I
+mzJFI52C7/0M/MzE1dPQBCYDtPuGmcRAbUkTda/+kJ4n+9nOo5od4XH8+gQAmywn
+9xoP3yet82348N/blbUzfThGri0H88fvs5+3gDl/KlocOQ7DtC75HPZPEb5hDLtY
+em1fdZWJyiesFArXVL1+WvXdf1+kOX8tkiyAKcGDufMf2K9Y1i6NtcYTwDGQjUDO
+l4RCEJvOIrMCTaHvoWPWt/G5AQ0EWV6EugEIALCmxwUzXUaAgAuDac1zj6CATMAn
+dWAXXmaCAMTNwQe1GFQI06UfdPsic+pg/XxKqNir2haExyKPI1KxaQTcKoiPLGEU
+YRYtly7Ou0lL5dpNQq4vkBV8q7MQNGyZoaW+akkz8Z/qoFNk98bpOxJ16SQ3z7lc
+AOTZ3uP2oSEnS5HTw3E2CcqwzRSV57QEpEC5BX4UvEzNlPfp6eebUlMKljpct+Dz
+6QhkxUb84ZMBHsUza2pA3ytE3fJf9LoQJbTYF3rLNlqtDDGlELc7ApfZfYT3/2or
+LsMgSVUGuefCJBZE3DPWh6IQkDZB/GKyztN2QyiR/Z3KsefWpWs2jLOpJh0AEQEA
+AYkBHwQYAQgACQUCWV6EugIbDAAKCRCuMH/y1vgHXDxRB/9wA3Z35vnqt93dR5dV
+sl6mo/8noxi0K5eaxvGWCj1rqfTC9bSbJo4HQtvNMAzU1oWDNy1xKKn4E6eECIeR
++TZFmdB/3eV1MYkpWIoHKOPFY8XLnfEkBkTK+6s3aKd1a6qUNDSbm/icly4IOsLt
+GMpSeO73qdG5L5QISBmzLGdr8sE6uVqGGPBCO3RFBfMpksO/5ILeJd4qkwpS4bjO
+dxmO8wYF1pM+jFBrPGJEfUj6zCQiHRcQryQxekVXOkL59S1m0G6YGUZjOZXowMNr
+IGfNAiRcY3dElyO5qxQQnC8PX3L4JPGdnjo2WntYGkS+l6XS3cvllby7CUN+mPAv
+BwDm
+=56p0
+-----END PGP PUBLIC KEY BLOCK-----


[16/40] incubator-senssoft git commit: Updated README to show how to update build site contents from Docker container.

Posted by le...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralejs/testing.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/testing.html b/site/_site/docs/useralejs/testing.html
new file mode 100644
index 0000000..8c03562
--- /dev/null
+++ b/site/_site/docs/useralejs/testing.html
@@ -0,0 +1,331 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Build and Test</title>
+  <meta name="description" content="Building UserALE.js">
+
+  <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+  <script src="/semantic/dist/semantic.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+  <script src="/js/main.js"></script>
+
+  <link rel="stylesheet" href="/assets/main.css">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralejs/testing.html">
+  <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
+
+  
+</head>
+
+
+  <body>
+
+    <div class="site-header">
+  <div id="main-menu" class="ui inverted padded fixed top borderless menu">
+    <a class="site-title" href="/">
+      <h3 class="ui inverted header item">Apache SensSoft</h3>
+    </a>
+
+    <div class="right menu">
+      <div class="ui dropdown item">
+        Components
+        <div class="menu">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="ui dropdown item">
+        <a href="/docs">Docs</a>
+        <div class="menu">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserALE.js</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <a class="item" href="/releases">Releases</a>
+      <a class="item" href="/community">Community</a>
+    </div>
+  </div>
+</div>
+
+
+    <div class="main-wrapper">
+      <div class="docs-wrapper">
+  <div class="docs-sidebar">
+    
+
+
+
+
+
+
+
+
+<!-- <div class="ui inverted list">
+  <a class="item" href="/docs">About the Docs</a>
+</div> -->
+<div id="docs-nav" class="ui inverted accordion">
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Apache SensSoft
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/">About the Docs</a>
+      
+        <a class="item" href="/docs/contributing/">Contributing</a>
+      
+    </div>
+  </div>
+
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    System
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/system/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/userale/">About UserALE</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="active title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.js
+  </div>
+  
+    <div class="active content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralejs/">Getting Started</a>
+      
+        <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
+      
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.py
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralepy/">Installation</a>
+      
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Distill
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/distill/">Installation</a>
+      
+        <a class="item" href="/docs/distill/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/distill/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+      
+        <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
+      
+        <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
+      
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+      
+        <a class="item" href="/docs/distill/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Tap
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/tap/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Stout
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/stout/">About Stout</a>
+      
+        <a class="item" href="/docs/stout/start.html">Getting Started</a>
+      
+    </div>
+  </div>
+</div>
+
+  </div>
+  <div class="docs-content">
+    <h2 class="ui header">Build and Test</h2>
+    <h3 id="building-useralejs">Building UserALE.js</h3>
+
+<p>To modify and build your own version of <code class="highlighter-rouge">UserALE.js</code>, first clone the repo, install all dependencies, and make any desired changes. Then build and minify into the build/ folder:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  git clone https://github.com/apache/incubator-senssoft-useralejs.git
+  npm install
+  npm run build
+</code></pre>
+</div>
+
+<h3 id="testing-and-linting">Testing and Linting</h3>
+
+<p>We maintain code quality through linting and our test suite.  To run, or run and watch for changes:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  npm <span class="nb">test
+  </span>npm run example:watch
+</code></pre>
+</div>
+
+<p>See <code class="highlighter-rouge">package.json</code> for full script options.</p>
+
+  </div>
+</div>
+
+    </div>
+
+    <div class="footer ui inverted very padded vertical segment">
+  <div class="ui vertical segment">
+    <div class="ui four column grid">
+      <div class="column">
+        <h4 class="ui inverted header">About</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Docs</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserAle.js</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Community</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a>
+          <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>
+          <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a>
+          <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a>
+          <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Apache</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
+          <a class="item" href="http://www.apache.org/">Apache Software Foundation</a>
+          <a class="item" href="http://incubator.apache.org/">Apache Incubator</a>
+          <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+          <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="ui inverted vertical segment">
+    <div class="ui two column middle aligned grid">
+      <div class="column">
+        Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+      </div>
+      <div class="center aligned column">
+        <img class="component-image" src="/images/incubator-logo-white.png">
+        <br>
+        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+      </div>
+    </div>
+  </div>
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralejs/troubleshooting.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/troubleshooting.html b/site/_site/docs/useralejs/troubleshooting.html
index 3502a5d..faaf63b 100644
--- a/site/_site/docs/useralejs/troubleshooting.html
+++ b/site/_site/docs/useralejs/troubleshooting.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/docs/useralejs/troubleshooting.html">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralejs/troubleshooting.html">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -90,7 +90,7 @@
       
         <a class="item" href="/docs/">About the Docs</a>
       
-        <a class="item" href="/docs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/contributing/">Contributing</a>
       
     </div>
   </div>
@@ -143,7 +143,7 @@
       
         <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
       
-        <a class="item" href="/docs/useralejs/contributing.html">Contributing</a>
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
       
     </div>
   </div>
@@ -152,20 +152,20 @@
     <div class="title">
   
     <i class="dropdown icon"></i>
-    UserALE.pyqt
+    UserALE.py
   </div>
   
     <div class="content">
   
     <div class="ui inverted bulleted list docs-list">
       
-        <a class="item" href="/docs/useralepyqt/">Installation</a>
+        <a class="item" href="/docs/useralepy/">Installation</a>
       
-        <a class="item" href="/docs/useralepyqt/start.html">Getting Started</a>
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
       
-        <a class="item" href="/docs/useralepyqt/api.html">API Documentation</a>
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/useralepyqt/changelog.html">Changelog</a>
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
       
     </div>
   </div>
@@ -187,13 +187,13 @@
       
         <a class="item" href="/docs/distill/api.html">API Documentation</a>
       
-        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
       
         <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
       
         <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
       
-        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
       
         <a class="item" href="/docs/distill/changelog.html">Changelog</a>
       
@@ -240,7 +240,7 @@
     <h2 class="ui header">Troubleshooting</h2>
     <h3 id="enable-cross-origin-resource-sharing-cors">Enable Cross-Origin Resource Sharing (CORS)</h3>
 
-<p>The logs generated by UserAle is sent to a logging url which is configured in the script tag. Your client may send out failure logs because of a CORS (cross-origin resource sharing) issue. You will need to configure your backend server to enable CORS.</p>
+<p>The logs generated by UserALE is sent to a logging server which is configured in the script tag. Your client may send out failure logs because of a CORS (cross-origin resource sharing) issue. You will need to configure your backend server to enable CORS.</p>
 
 <p>For more information and examples on how to enable CORS on your server, please visit <a href="http://enable-cors.org/index.html">enable-cors.org</a>.</p>
 
@@ -268,7 +268,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralepy/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/api.html b/site/_site/docs/useralepy/api.html
new file mode 100644
index 0000000..024eebc
--- /dev/null
+++ b/site/_site/docs/useralepy/api.html
@@ -0,0 +1,592 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>API Documentation</title>
+  <meta name="description" content="Apache UserALE.PyQt5 intercepts all application events by letting the developer install an event filter in their PyQt5 application to generate detailed user ...">
+
+  <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+  <script src="/semantic/dist/semantic.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+  <script src="/js/main.js"></script>
+
+  <link rel="stylesheet" href="/assets/main.css">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralepy/api.html">
+  <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
+
+  
+</head>
+
+
+  <body>
+
+    <div class="site-header">
+  <div id="main-menu" class="ui inverted padded fixed top borderless menu">
+    <a class="site-title" href="/">
+      <h3 class="ui inverted header item">Apache SensSoft</h3>
+    </a>
+
+    <div class="right menu">
+      <div class="ui dropdown item">
+        Components
+        <div class="menu">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="ui dropdown item">
+        <a href="/docs">Docs</a>
+        <div class="menu">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserALE.js</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <a class="item" href="/releases">Releases</a>
+      <a class="item" href="/community">Community</a>
+    </div>
+  </div>
+</div>
+
+
+    <div class="main-wrapper">
+      <div class="docs-wrapper">
+  <div class="docs-sidebar">
+    
+
+
+
+
+
+
+
+
+<!-- <div class="ui inverted list">
+  <a class="item" href="/docs">About the Docs</a>
+</div> -->
+<div id="docs-nav" class="ui inverted accordion">
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Apache SensSoft
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/">About the Docs</a>
+      
+        <a class="item" href="/docs/contributing/">Contributing</a>
+      
+    </div>
+  </div>
+
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    System
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/system/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/userale/">About UserALE</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.js
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralejs/">Getting Started</a>
+      
+        <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
+      
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="active title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.py
+  </div>
+  
+    <div class="active content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralepy/">Installation</a>
+      
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Distill
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/distill/">Installation</a>
+      
+        <a class="item" href="/docs/distill/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/distill/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+      
+        <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
+      
+        <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
+      
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+      
+        <a class="item" href="/docs/distill/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Tap
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/tap/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Stout
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/stout/">About Stout</a>
+      
+        <a class="item" href="/docs/stout/start.html">Getting Started</a>
+      
+    </div>
+  </div>
+</div>
+
+  </div>
+  <div class="docs-content">
+    <h2 class="ui header">API Documentation</h2>
+    <p>Apache UserALE.PyQt5 intercepts all application events by letting the developer install an event filter in their PyQt5 application to generate detailed user logs. Apache UserALE.PyQt5 does not capture system level logs or events generated by a non-user (a.k.a. system and signals sent between QObjects).</p>
+
+<h3 id="apache-useralepyqt5">Apache UserALE.PyQt5</h3>
+
+<blockquote>
+
+  <div class="language-python highlighter-rouge"><pre class="highlight"><code><span class="k">class</span> <span class="nc">userale</span><span class="o">.</span><span class="n">ale</span><span class="o">.</span><span class="n">Ale</span><span class="p">(</span><span class="n">output</span><span class="o">=</span><span class="s">'userale.log'</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+<span class="n">session</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">toolname</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">toolversion</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+<span class="n">keylog</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">interval</span><span class="o">=</span><span class="mi">5000</span><span class="p">,</span> <span class="n">resolution</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">shutoff</span><span class="o">=</span><span class="p">[])</span>
+</code></pre>
+  </div>
+</blockquote>
+
+<blockquote>
+  <p><strong>Bases:</strong> PyQt5.QtCore.QObject</p>
+</blockquote>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>output – [str] The file or url path to which logs will be sent</li>
+    <li>user – [str] Identifier for the user of the application</li>
+    <li>session – [str] Session tag to track same user with multiple sessions. If a session is not provided, one will be created</li>
+    <li>toolname – [str] The application name</li>
+    <li>toolversion – [str] The application version</li>
+    <li>keylog – [bool] Should detailed key logs be recorded. Default is False</li>
+    <li>interval – [int] The minimum time interval in ms between batch transmission of logs. Default is 5000ms.</li>
+    <li>resolution – [int] Delay in ms between instances of high frequency logs like mousemoves, scrolls, etc. Default is 100ms (10Hz).</li>
+    <li>shutoff – [list] Turn off logging for specific events</li>
+  </ul>
+</blockquote>
+
+<p>An example log will appear like this:</p>
+
+<div class="language-javascript highlighter-rouge"><pre class="highlight"><code>  <span class="p">{</span>
+      <span class="s1">'target'</span><span class="err">:</span> <span class="s1">'testLineEdit'</span><span class="p">,</span>
+      <span class="s1">'path'</span><span class="err">:</span> <span class="p">[</span><span class="s1">'Example'</span><span class="p">,</span> <span class="s1">'testLineEdit'</span><span class="p">],</span>
+      <span class="s1">'clientTime'</span><span class="err">:</span> <span class="s1">'2016-08-03 16:12:03.460573'</span><span class="p">,</span>
+      <span class="s1">'location'</span><span class="err">:</span> <span class="p">{</span><span class="s1">'x'</span><span class="err">:</span> <span class="mi">82</span><span class="p">,</span> <span class="s1">'y'</span><span class="err">:</span> <span class="mi">0</span><span class="p">},</span>
+      <span class="s1">'type'</span><span class="err">:</span> <span class="s1">'mousemove'</span><span class="p">,</span>
+      <span class="s1">'userAction'</span><span class="err">:</span> <span class="s1">'true'</span><span class="p">,</span>
+      <span class="s1">'details'</span> <span class="err">:</span> <span class="p">{},</span>
+      <span class="s1">'userId'</span><span class="err">:</span> <span class="s1">'userABC1234'</span><span class="p">,</span>
+      <span class="s1">'session'</span><span class="err">:</span> <span class="s1">'5ee42ccc-852c-44d9-a937-28d7901e4ead'</span><span class="p">,</span>
+      <span class="s1">'toolName'</span><span class="err">:</span> <span class="s1">'myApplication'</span><span class="p">,</span>
+      <span class="s1">'toolVersion'</span><span class="err">:</span> <span class="s1">'3.5.0'</span><span class="p">,</span>
+      <span class="s1">'useraleVersion'</span><span class="err">:</span> <span class="s1">'0.1.0'</span>
+  <span class="p">}</span>
+</code></pre>
+</div>
+
+<h4 id="aggregate">aggregate()</h4>
+<p>Sample high frequency logs at self.resolution. High frequency logs are consolidated down to a single log event to be emitted later</p>
+
+<h4 id="cleanup">cleanup()</h4>
+<p>Clean up any dangling logs in self.logs or self.hlogs</p>
+
+<h4 id="dump">dump()</h4>
+<p>Write log data to file</p>
+
+<h4 id="eventfilterobject-event">eventFilter(object, event)</h4>
+<p>Filters events for the watched widget.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>object – [QObject] The object being watched.</li>
+    <li>event – [QEvent] The event triggered by a user action.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[bool] Propagate filter up if other objects needs to be handled</li>
+  </ul>
+</blockquote>
+
+<h4 id="getclienttime">getClientTime()</h4>
+<p>Capture the time the event was captured in milliseconds since the UNIX epoch (January 1, 1970 00:00:00 UTC)</p>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[str] String representation of the time the event was captured.</li>
+  </ul>
+</blockquote>
+
+<h4 id="getlocationevent">getLocation(event)</h4>
+<p>Grab the x and y position of the mouse cursor, relative to the widget that received the event.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event – [QEvent] The base class for all event classes.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[dict] A dictionary representation of the x and y positions of the mouse cursor.</li>
+  </ul>
+</blockquote>
+
+<h4 id="getpathobject">getPath(object)</h4>
+<p>Generate the entire object hierachy from root to leaf node.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[list] List of QObjects.</li>
+  </ul>
+</blockquote>
+
+<h4 id="getselectorobject">getSelector(object)</h4>
+<p>Get target object’s name (object defined by user or object’s meta class name).</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[str] The Qt object’s name</li>
+  </ul>
+</blockquote>
+
+<h4 id="getsenderobject">getSender(object)</h4>
+<p>Fetch the QObject who triggered the event</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>object – [QObject] The object being watched.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[QObject] The QObject</li>
+  </ul>
+</blockquote>
+
+<h4 id="handledrageventsevent_type-event-object">handleDragEvents(event_type, event, object)</h4>
+<p>Returns the userale log representing all drag events.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event_type – [str] The string representation of the type of event being triggered by the user.</li>
+    <li>event – [QEvent] The base class for all event classes.</li>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[dict] A userale log describing a drag event.</li>
+  </ul>
+</blockquote>
+
+<h4 id="handlekeyeventsevent_type-event-object">handleKeyEvents(event_type, event, object)</h4>
+<p>Returns the userale log representing all key events, including key name and key code.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event_type – [str] The string representation of the type of event being triggered by the user.</li>
+    <li>event – [QEvent] The base class for all event classes.</li>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[dict] A userale log describing a key event.</li>
+  </ul>
+</blockquote>
+
+<h4 id="handlemouseeventsevent_type-event-object">handleMouseEvents(event_type, event, object)</h4>
+<p>Returns the userale log representing all mouse event data.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event_type – [str] The string representation of the type of event being triggered by the user.</li>
+    <li>event – [QEvent] The base class for all event classes.</li>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[dict] A userale log describing a mouse event.</li>
+  </ul>
+</blockquote>
+
+<h4 id="handlemoveeventsevent_type-event-object">handleMoveEvents(event_type, event, object)</h4>
+<p>Returns the userale log representing all move events.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event_type – [str] The string representation of the type of event being triggered by the user.</li>
+    <li>event – [QEvent] The base class for all event classes.</li>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[dict] A userale log describing a drag event.</li>
+  </ul>
+</blockquote>
+
+<h4 id="handleresizeeventsevent_type-event-object">handleResizeEvents(event_type, event, object)</h4>
+<p>Returns the userale log representing all resize events.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event_type – [str] The string representation of the type of event being triggered by the user.</li>
+    <li>event – [QEvent] The base class for all event classes.</li>
+    <li>object – [QObject] The base class for all Qt objects.
+<strong>Returns:</strong></li>
+    <li>[dict] A userale log describing a resize event.</li>
+  </ul>
+</blockquote>
+
+<h4 id="handlescrolleventsevent_type-event-object">handleScrollEvents(event_type, event, object)</h4>
+<p>Returns the userale log representing all scroll events.</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>event_type – [str] The string representation of the type of event being triggered by the user.</li>
+    <li>event – [QEvent] The base class for all event classes.</li>
+    <li>object – [QObject] The base class for all Qt objects.</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[dict] A userale log describing a scroll event.</li>
+  </ul>
+</blockquote>
+
+<h4 id="timereventevent">timerEvent(event)</h4>
+<p>Routinely dump data to file or send over the network</p>
+
+<blockquote>
+  <p><strong>Parameters:</strong></p>
+  <ul>
+    <li>object – [list] List of events</li>
+  </ul>
+</blockquote>
+
+<blockquote>
+  <p><strong>Returns:</strong></p>
+  <ul>
+    <li>[void] Emit events to file</li>
+  </ul>
+</blockquote>
+
+  </div>
+</div>
+
+    </div>
+
+    <div class="footer ui inverted very padded vertical segment">
+  <div class="ui vertical segment">
+    <div class="ui four column grid">
+      <div class="column">
+        <h4 class="ui inverted header">About</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Docs</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserAle.js</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Community</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a>
+          <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>
+          <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a>
+          <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a>
+          <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Apache</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
+          <a class="item" href="http://www.apache.org/">Apache Software Foundation</a>
+          <a class="item" href="http://incubator.apache.org/">Apache Incubator</a>
+          <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+          <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="ui inverted vertical segment">
+    <div class="ui two column middle aligned grid">
+      <div class="column">
+        Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+      </div>
+      <div class="center aligned column">
+        <img class="component-image" src="/images/incubator-logo-white.png">
+        <br>
+        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+      </div>
+    </div>
+  </div>
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralepy/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/changelog.html b/site/_site/docs/useralepy/changelog.html
new file mode 100644
index 0000000..9967257
--- /dev/null
+++ b/site/_site/docs/useralepy/changelog.html
@@ -0,0 +1,379 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Changelog</title>
+  <meta name="description" content="0.1.5 (2016-09-19)">
+
+  <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+  <script src="/semantic/dist/semantic.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+  <script src="/js/main.js"></script>
+
+  <link rel="stylesheet" href="/assets/main.css">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralepy/changelog.html">
+  <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
+
+  
+</head>
+
+
+  <body>
+
+    <div class="site-header">
+  <div id="main-menu" class="ui inverted padded fixed top borderless menu">
+    <a class="site-title" href="/">
+      <h3 class="ui inverted header item">Apache SensSoft</h3>
+    </a>
+
+    <div class="right menu">
+      <div class="ui dropdown item">
+        Components
+        <div class="menu">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="ui dropdown item">
+        <a href="/docs">Docs</a>
+        <div class="menu">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserALE.js</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <a class="item" href="/releases">Releases</a>
+      <a class="item" href="/community">Community</a>
+    </div>
+  </div>
+</div>
+
+
+    <div class="main-wrapper">
+      <div class="docs-wrapper">
+  <div class="docs-sidebar">
+    
+
+
+
+
+
+
+
+
+<!-- <div class="ui inverted list">
+  <a class="item" href="/docs">About the Docs</a>
+</div> -->
+<div id="docs-nav" class="ui inverted accordion">
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Apache SensSoft
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/">About the Docs</a>
+      
+        <a class="item" href="/docs/contributing/">Contributing</a>
+      
+    </div>
+  </div>
+
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    System
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/system/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/userale/">About UserALE</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.js
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralejs/">Getting Started</a>
+      
+        <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
+      
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="active title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.py
+  </div>
+  
+    <div class="active content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralepy/">Installation</a>
+      
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Distill
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/distill/">Installation</a>
+      
+        <a class="item" href="/docs/distill/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/distill/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+      
+        <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
+      
+        <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
+      
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+      
+        <a class="item" href="/docs/distill/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Tap
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/tap/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Stout
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/stout/">About Stout</a>
+      
+        <a class="item" href="/docs/stout/start.html">Getting Started</a>
+      
+    </div>
+  </div>
+</div>
+
+  </div>
+  <div class="docs-content">
+    <h2 class="ui header">Changelog</h2>
+    <h3 id="015-2016-09-19">0.1.5 (2016-09-19)</h3>
+
+<ul>
+  <li>clientTime field is represented in ISO 8601 format.</li>
+  <li>Sampling mouseenter, mouseleave, and dragmove events by resolution parameter.</li>
+  <li>Batch dumping all logs to file by interval parameter.</li>
+  <li>Added Apache license headers.</li>
+  <li>Updated all documentation.</li>
+  <li>Updated versioning numbers.</li>
+  <li>Added docker support.</li>
+</ul>
+
+<h3 id="014-2016-08-04">0.1.4 (2016-08-04)</h3>
+
+<ul>
+  <li>New events Apache UserAle is tracking:
+    <ul>
+      <li>move</li>
+      <li>resize</li>
+      <li>scroll</li>
+    </ul>
+  </li>
+  <li>Remove timer from dragdrop log due to incorrect time being recorded.</li>
+  <li>Session id is autogenerated if not passed into configuration.</li>
+</ul>
+
+<h3 id="013-2016-08-02">0.1.3 (2016-08-02)</h3>
+
+<ul>
+  <li>New events Apache UserAle is tracking:
+    <ul>
+      <li>mouseenter</li>
+      <li>mouseleave</li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="012-2016-08-01">0.1.2 (2016-08-01)</h3>
+
+<ul>
+  <li>The elapsed time for a drag event is being recorded in the dragdrop log.</li>
+</ul>
+
+<h3 id="011-2016-07-29">0.1.1 (2016-07-29)</h3>
+
+<ul>
+  <li>All logs will be stored to file called userale.log (configurable).</li>
+  <li>Users can specify which events to capture by passing in a list of event keys when instantiating Apache UserAle.</li>
+  <li>These are the events Apache UserAle is tracking:
+    <ul>
+      <li>mouseup</li>
+      <li>mousedown</li>
+      <li>mousemove</li>
+      <li>keypress (optional)</li>
+      <li>keydown (optional)</li>
+      <li>dragenter</li>
+      <li>dragleave</li>
+      <li>dragmove</li>
+      <li>dragdrop</li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="010-2016-06-24">0.1.0 (2016-06-24)</h3>
+
+<ul>
+  <li>Initial release.</li>
+</ul>
+
+  </div>
+</div>
+
+    </div>
+
+    <div class="footer ui inverted very padded vertical segment">
+  <div class="ui vertical segment">
+    <div class="ui four column grid">
+      <div class="column">
+        <h4 class="ui inverted header">About</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Docs</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserAle.js</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Community</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a>
+          <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>
+          <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a>
+          <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a>
+          <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Apache</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
+          <a class="item" href="http://www.apache.org/">Apache Software Foundation</a>
+          <a class="item" href="http://incubator.apache.org/">Apache Incubator</a>
+          <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+          <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="ui inverted vertical segment">
+    <div class="ui two column middle aligned grid">
+      <div class="column">
+        Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+      </div>
+      <div class="center aligned column">
+        <img class="component-image" src="/images/incubator-logo-white.png">
+        <br>
+        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+      </div>
+    </div>
+  </div>
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralepy/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/index.html b/site/_site/docs/useralepy/index.html
new file mode 100644
index 0000000..6312b9a
--- /dev/null
+++ b/site/_site/docs/useralepy/index.html
@@ -0,0 +1,423 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Installation</title>
+  <meta name="description" content="Apache UserALE.PyQt5 is the UserALE client for PyQt5 applications. It provides an easy way to generate highly detailed log streams from any PyQt5 application.">
+
+  <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+  <script src="/semantic/dist/semantic.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+  <script src="/js/main.js"></script>
+
+  <link rel="stylesheet" href="/assets/main.css">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralepy/">
+  <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
+
+  
+</head>
+
+
+  <body>
+
+    <div class="site-header">
+  <div id="main-menu" class="ui inverted padded fixed top borderless menu">
+    <a class="site-title" href="/">
+      <h3 class="ui inverted header item">Apache SensSoft</h3>
+    </a>
+
+    <div class="right menu">
+      <div class="ui dropdown item">
+        Components
+        <div class="menu">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="ui dropdown item">
+        <a href="/docs">Docs</a>
+        <div class="menu">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserALE.js</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <a class="item" href="/releases">Releases</a>
+      <a class="item" href="/community">Community</a>
+    </div>
+  </div>
+</div>
+
+
+    <div class="main-wrapper">
+      <div class="docs-wrapper">
+  <div class="docs-sidebar">
+    
+
+
+
+
+
+
+
+
+<!-- <div class="ui inverted list">
+  <a class="item" href="/docs">About the Docs</a>
+</div> -->
+<div id="docs-nav" class="ui inverted accordion">
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Apache SensSoft
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/">About the Docs</a>
+      
+        <a class="item" href="/docs/contributing/">Contributing</a>
+      
+    </div>
+  </div>
+
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    System
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/system/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/userale/">About UserALE</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.js
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralejs/">Getting Started</a>
+      
+        <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
+      
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="active title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.py
+  </div>
+  
+    <div class="active content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralepy/">Installation</a>
+      
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Distill
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/distill/">Installation</a>
+      
+        <a class="item" href="/docs/distill/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/distill/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+      
+        <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
+      
+        <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
+      
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+      
+        <a class="item" href="/docs/distill/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Tap
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/tap/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Stout
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/stout/">About Stout</a>
+      
+        <a class="item" href="/docs/stout/start.html">Getting Started</a>
+      
+    </div>
+  </div>
+</div>
+
+  </div>
+  <div class="docs-content">
+    <h2 class="ui header">Installation</h2>
+    <p>Apache UserALE.PyQt5 is the UserALE client for PyQt5 applications.  It provides an easy way to generate highly detailed log streams from any PyQt5 application.</p>
+
+<h3 id="requirements">Requirements</h3>
+
+<ul>
+  <li>Python 3.5 or above</li>
+  <li>PyQt5, version 5.3 or above</li>
+  <li>pip3, see requirements.txt</li>
+</ul>
+
+<h3 id="installing-useralepyqt5">Installing UserALE.PyQt5</h3>
+
+<p>The first step is to install Apache UserALE.PyQt5. First, checkout the latest version of Apache UserALE.PyQt5 from our Git repository.</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>git clone https://git-wip-us.apache.org/repos/asf/incubator-senssoft-userale-pyqt5.git
+</code></pre>
+</div>
+
+<p>Apache UserALE.PyQt5 is a python3 project, so it can be installed like any other python library. Several operating systems (Mac OS X, Major Versions of Linux/BSD) have Python3 pre-installed, so you should just have to run</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>easy_install3 userale
+</code></pre>
+</div>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>  or
+</code></pre>
+</div>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>pip3 install userale
+</code></pre>
+</div>
+
+<p>Users are strongly recommended to install Apache UserALE.PyQt5 in a virtualenv. Instructions to setup an virtual environment will be explained below.</p>
+
+<blockquote>
+  <p><strong>Note</strong>
+Apache UserALE.PyQt5 requires that PyQt5 and the Qt5 bindings has been installed. Instructions to install PyQt5 and Qt5 in a virtual environment will be left to the user.</p>
+</blockquote>
+
+<blockquote>
+  <p><strong>Note</strong>
+When the package is installed via easy_install3 or pip3 this function will be bound to the userale executable in the Python installation’s bin directory (on Windows - the Scripts directory).</p>
+</blockquote>
+
+<h3 id="installing-apache-useralepyqt5-in-an-virtual-environment">Installing Apache UserALE.PyQt5 in an Virtual Environment</h3>
+
+<p>There are multiple ways to create virtual environments for a Python3 application. virtualenv is a one of those tools to create isolated Python environments. virtualenv creates a folder which contains all the necessary executables to use the packages that the UserAle project would need.</p>
+
+<p>Start by changing directory into the root of Apache UserALE.PyQt5’s project directory, and then use the virtualenv command-line tool to create a new environment:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>virtualenv --python<span class="o">=</span>/usr/bin/python3 env
+</code></pre>
+</div>
+
+<p>Optionally, Python3 has built in support for virtual environments.</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>mkdir env
+  <span class="nv">$ </span>python3 -m venv env
+</code></pre>
+</div>
+
+<p>Activate environment:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span><span class="nb">source </span>env/bin/activate
+</code></pre>
+</div>
+
+<p>Install UserAle requirements:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>env/bin/pip3 install -r requirements.txt
+</code></pre>
+</div>
+
+<p>To build the source code and run all unit tests.</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>env/bin/python3 setup.py develop <span class="nb">test</span>
+</code></pre>
+</div>
+
+<p>Deactivate environment</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>deactivate
+</code></pre>
+</div>
+
+<h3 id="installing-documentation">Installing Documentation</h3>
+
+<p>First, install the documentation dependencies:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>env/bin/pip3 install -r doc_requirements.txt
+</code></pre>
+</div>
+
+<p>To build Apache UserALE.PyQt5’s documentation, create a directory at the root level of /userale.pyqt5 called userale.pyqt5-docs.</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>mkdir userale.pyqt5-docs &amp; <span class="nb">cd </span>userale.pyqt5-docs
+</code></pre>
+</div>
+
+<p>Execute build command from inside the top-level doc/ directory:</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>make html
+</code></pre>
+</div>
+
+<p>This should build the documentation in your shell, and output HTML. At then end, it should say something about documents being ready in userale.pyqt5-docs/html.</p>
+
+<p>You can now open them in your browser by typing</p>
+
+<div class="language-shell highlighter-rouge"><pre class="highlight"><code>  <span class="nv">$ </span>open userale.pyqt5-docs/html/index.html
+</code></pre>
+</div>
+
+  </div>
+</div>
+
+    </div>
+
+    <div class="footer ui inverted very padded vertical segment">
+  <div class="ui vertical segment">
+    <div class="ui four column grid">
+      <div class="column">
+        <h4 class="ui inverted header">About</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Docs</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserAle.js</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Community</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a>
+          <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>
+          <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a>
+          <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a>
+          <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Apache</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
+          <a class="item" href="http://www.apache.org/">Apache Software Foundation</a>
+          <a class="item" href="http://incubator.apache.org/">Apache Incubator</a>
+          <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+          <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="ui inverted vertical segment">
+    <div class="ui two column middle aligned grid">
+      <div class="column">
+        Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+      </div>
+      <div class="center aligned column">
+        <img class="component-image" src="/images/incubator-logo-white.png">
+        <br>
+        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+      </div>
+    </div>
+  </div>
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/docs/useralepy/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/start.html b/site/_site/docs/useralepy/start.html
new file mode 100644
index 0000000..a53f293
--- /dev/null
+++ b/site/_site/docs/useralepy/start.html
@@ -0,0 +1,364 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Getting Started</title>
+  <meta name="description" content="Instrumenting Your Application Globally with Apache UserALE.PyQt5">
+
+  <link rel="stylesheet" type="text/css" href="/semantic/dist/semantic.min.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+  <script src="/semantic/dist/semantic.min.js"></script>
+  <script src="https://d3js.org/d3.v4.min.js"></script>
+  <script src="/js/main.js"></script>
+
+  <link rel="stylesheet" href="/assets/main.css">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/docs/useralepy/start.html">
+  <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
+
+  
+</head>
+
+
+  <body>
+
+    <div class="site-header">
+  <div id="main-menu" class="ui inverted padded fixed top borderless menu">
+    <a class="site-title" href="/">
+      <h3 class="ui inverted header item">Apache SensSoft</h3>
+    </a>
+
+    <div class="right menu">
+      <div class="ui dropdown item">
+        Components
+        <div class="menu">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="ui dropdown item">
+        <a href="/docs">Docs</a>
+        <div class="menu">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserALE.js</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <a class="item" href="/releases">Releases</a>
+      <a class="item" href="/community">Community</a>
+    </div>
+  </div>
+</div>
+
+
+    <div class="main-wrapper">
+      <div class="docs-wrapper">
+  <div class="docs-sidebar">
+    
+
+
+
+
+
+
+
+
+<!-- <div class="ui inverted list">
+  <a class="item" href="/docs">About the Docs</a>
+</div> -->
+<div id="docs-nav" class="ui inverted accordion">
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Apache SensSoft
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/">About the Docs</a>
+      
+        <a class="item" href="/docs/contributing/">Contributing</a>
+      
+    </div>
+  </div>
+
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    System
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/system/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/userale/">About UserALE</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.js
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralejs/">Getting Started</a>
+      
+        <a class="item" href="/docs/useralejs/troubleshooting.html">Troubleshooting</a>
+      
+        <a class="item" href="/docs/useralejs/testing.html">Build and Test</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="active title">
+  
+    <i class="dropdown icon"></i>
+    UserALE.py
+  </div>
+  
+    <div class="active content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/useralepy/">Installation</a>
+      
+        <a class="item" href="/docs/useralepy/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/useralepy/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/useralepy/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Distill
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/distill/">Installation</a>
+      
+        <a class="item" href="/docs/distill/start.html">Getting Started</a>
+      
+        <a class="item" href="/docs/distill/api.html">API Documentation</a>
+      
+        <a class="item" href="/docs/distill/analytics.html">Apache Distill Analytics</a>
+      
+        <a class="item" href="/docs/distill/http.html">Apache Distill HTTP Client</a>
+      
+        <a class="item" href="/docs/distill/models.html">Apache Distill Models</a>
+      
+        <a class="item" href="/docs/distill/utilities.html">Apache Distill Utilities</a>
+      
+        <a class="item" href="/docs/distill/changelog.html">Changelog</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Tap
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/tap/">Getting Started</a>
+      
+    </div>
+  </div>
+
+  
+    <div class="title">
+  
+    <i class="dropdown icon"></i>
+    Stout
+  </div>
+  
+    <div class="content">
+  
+    <div class="ui inverted bulleted list docs-list">
+      
+        <a class="item" href="/docs/stout/">About Stout</a>
+      
+        <a class="item" href="/docs/stout/start.html">Getting Started</a>
+      
+    </div>
+  </div>
+</div>
+
+  </div>
+  <div class="docs-content">
+    <h2 class="ui header">Getting Started</h2>
+    <h3 id="instrumenting-your-application-globally-with-apache-useralepyqt5">Instrumenting Your Application Globally with Apache UserALE.PyQt5</h3>
+
+<p>It’s very simple to instrument a PyQt5 application with Apache UserALE.PyQt5. Simply import the Apache UserALE.PyQt5 library and register it with your application.</p>
+
+<p>Below is an example PyQt5 application taken from ZetCode PyQt5 tutorial instrumented with Apache UserALE.PyQt5.</p>
+
+<div class="language-python highlighter-rouge"><pre class="highlight"><code>  <span class="kn">import</span> <span class="nn">sys</span>
+  <span class="kn">from</span> <span class="nn">PyQt5.QtWidgets</span> <span class="kn">import</span> <span class="n">QWidget</span><span class="p">,</span> <span class="n">QLabel</span><span class="p">,</span> <span class="n">QPushButton</span><span class="p">,</span> <span class="n">QApplication</span><span class="p">,</span> <span class="n">QMessageBox</span>
+  <span class="kn">from</span> <span class="nn">PyQt5.QtCore</span> <span class="kn">import</span> <span class="n">QCoreApplication</span><span class="p">,</span> <span class="n">QObject</span><span class="p">,</span> <span class="n">QEvent</span>
+
+  <span class="kn">from</span> <span class="nn">userale.ale</span> <span class="kn">import</span> <span class="n">Ale</span>
+
+  <span class="k">class</span> <span class="nc">TestApplication</span> <span class="p">(</span><span class="n">QWidget</span><span class="p">):</span>
+
+      <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+          <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">__init__</span><span class="p">()</span>
+          <span class="bp">self</span><span class="o">.</span><span class="n">initUI</span><span class="p">()</span>
+
+      <span class="k">def</span> <span class="nf">initUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+          <span class="n">qbtn</span> <span class="o">=</span> <span class="n">QPushButton</span><span class="p">(</span><span class="s">'Quit'</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
+          <span class="n">qbtn</span><span class="o">.</span><span class="n">setObjectName</span> <span class="p">(</span><span class="s">"testApplicationButton"</span><span class="p">)</span>
+          <span class="n">qbtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">QCoreApplication</span><span class="o">.</span><span class="n">instance</span><span class="p">()</span><span class="o">.</span><span class="n">quit</span><span class="p">)</span>
+          <span class="n">qbtn</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="n">qbtn</span><span class="o">.</span><span class="n">sizeHint</span><span class="p">())</span>
+          <span class="n">qbtn</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
+
+          <span class="bp">self</span><span class="o">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span> <span class="mi">300</span><span class="p">,</span> <span class="mi">250</span><span class="p">,</span> <span class="mi">150</span><span class="p">)</span>
+          <span class="bp">self</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s">'Quit button'</span><span class="p">)</span>
+          <span class="bp">self</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+  <span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+      <span class="n">app</span> <span class="o">=</span> <span class="n">QApplication</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
+      <span class="n">ex</span> <span class="o">=</span> <span class="n">TestApplication</span><span class="p">()</span>
+      <span class="c"># Initiate Apache UserALE.PyQt5</span>
+      <span class="n">ale</span> <span class="o">=</span> <span class="n">Ale</span> <span class="p">(</span><span class="n">output</span><span class="o">=</span><span class="s">"mouse.log"</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="s">"testUser"</span><span class="p">,</span> <span class="n">toolversion</span><span class="o">=</span><span class="s">"0.0.1"</span><span class="p">)</span>
+      <span class="c"># install globally</span>
+      <span class="n">app</span><span class="o">.</span><span class="n">installEventFilter</span> <span class="p">(</span><span class="n">ale</span><span class="p">)</span>
+
+      <span class="n">sys</span><span class="o">.</span><span class="nb">exit</span> <span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">exec_</span><span class="p">())</span>
+</code></pre>
+</div>
+
+<p>Before we enter the mainloop of the application, UserAle needs to register the application to be instrumented. Simply instantiate Apache UserALE.PyQt5 and install it as an event filter in your application.</p>
+
+<div class="language-python highlighter-rouge"><pre class="highlight"><code>  <span class="c"># Initiate UserAle</span>
+  <span class="n">ale</span> <span class="o">=</span> <span class="n">Ale</span> <span class="p">(</span><span class="n">output</span><span class="o">=</span><span class="s">"mouse.log"</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="s">"testUser"</span><span class="p">,</span> <span class="n">toolversion</span><span class="o">=</span><span class="s">"0.0.1"</span><span class="p">)</span>
+  <span class="c"># install globally</span>
+  <span class="n">app</span><span class="o">.</span><span class="n">installEventFilter</span> <span class="p">(</span><span class="n">ale</span><span class="p">)</span>
+</code></pre>
+</div>
+
+<h3 id="instrumenting-your-application-manually-with-apache-useralepyqt5">Instrumenting Your Application Manually with Apache UserALE.PyQt5</h3>
+
+<p><em>Todo:</em> Write guidelines for instrumenting specific PyQt5 Widgets with Apache UserALE.PyQt5.</p>
+
+  </div>
+</div>
+
+    </div>
+
+    <div class="footer ui inverted very padded vertical segment">
+  <div class="ui vertical segment">
+    <div class="ui four column grid">
+      <div class="column">
+        <h4 class="ui inverted header">About</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/system">System</a>
+          <a class="item" href="/userale">UserALE</a>
+          <a class="item" href="/distill">Distill</a>
+          <a class="item" href="/tap">Tap</a>
+          <a class="item" href="/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Docs</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="/docs/system">System</a>
+          <a class="item" href="/docs/userale">UserALE</a>
+          <a class="item" href="/docs/useralejs">UserAle.js</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
+          <a class="item" href="/docs/distill">Distill</a>
+          <a class="item" href="/docs/tap">Tap</a>
+          <a class="item" href="/docs/stout">Stout</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Community</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="https://github.com/apache?q=senssoft">GitHub</a>
+          <a class="item" href="http://stackoverflow.com/questions/tagged/apache-senssoft">StackOverflow</a>
+          <a class="item" href="https://issues.apache.org/jira/browse/SENSSOFT">Jira Issue Tracker</a>
+          <a class="item" href="https://cwiki.apache.org/confluence/display/SENSSOFT">Project Wiki</a>
+          <a class="item" href="https://twitter.com/apachesenssoft">Twitter</a>
+        </div>
+      </div>
+      <div class="column">
+        <h4 class="ui inverted header">Apache</h4>
+        <div class="ui inverted link list">
+          <a class="item" href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a>
+          <a class="item" href="http://www.apache.org/">Apache Software Foundation</a>
+          <a class="item" href="http://incubator.apache.org/">Apache Incubator</a>
+          <a class="item" href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+          <a class="item" href="http://www.apache.org/foundation/thanks.html">Thank you</a>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="ui inverted vertical segment">
+    <div class="ui two column middle aligned grid">
+      <div class="column">
+        Apache SensSoft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+      </div>
+      <div class="center aligned column">
+        <img class="component-image" src="/images/incubator-logo-white.png">
+        <br>
+        Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+      </div>
+    </div>
+  </div>
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/feed.xml
----------------------------------------------------------------------
diff --git a/site/_site/feed.xml b/site/_site/feed.xml
index 459cf32..91e1225 100644
--- a/site/_site/feed.xml
+++ b/site/_site/feed.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://localhost:4000/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2017-01-12T12:02:56-05:00</updated><id>http://localhost:4000//</id><title type="html">Apache SensSoft</title><subtitle>The homepage for Apache SensSoft</subtitle></feed>
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://senssoft.incubator.apache.org/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://senssoft.incubator.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="http://senssoft.incubator.apache.org/" rel="alternate" type="text/html" /><updated>2017-05-25T21:38:16+00:00</updated><id>http://senssoft.incubator.apache.org//</id><title type="html">Apache SensSoft</title><subtitle>The homepage for Apache SensSoft</subtitle></feed>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/index.html
----------------------------------------------------------------------
diff --git a/site/_site/index.html b/site/_site/index.html
index 04fcdb9..bc0dee3 100644
--- a/site/_site/index.html
+++ b/site/_site/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -384,7 +384,7 @@
   <div class="ui text container">
     <h2 class="ui inverted header">About the Project</h2>
     <p>
-      Apache SensSoft is a user activity logging and analytics system that enables developers to instrument and extract design and user insights from their applications.  It was originally developed at Draper for DARPA's XDATA program as a means of evaluating and improving tools for big data analysis and exploration.  Commercially available as Draper's Software as a Sensorâ„¢, Apache SensSoft aims to provide a more complete and customizable user analytics platform.
+      Apache SensSoft is a user activity logging and analytics system that enables developers to instrument and extract design and user insights from their applications.  It was originally developed at <a href="draper.com">Draper</a> for DARPA's XDATA program as a means of evaluating and improving tools for big data analysis and exploration.  Commercially available as Draper's Software as a Sensorâ„¢, Apache SensSoft aims to provide a more complete and customizable user analytics platform.
     </p>
   </div>
 </div>
@@ -410,7 +410,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/releases/index.html
----------------------------------------------------------------------
diff --git a/site/_site/releases/index.html b/site/_site/releases/index.html
index 2962a8d..e45307f 100644
--- a/site/_site/releases/index.html
+++ b/site/_site/releases/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/releases/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/releases/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -102,7 +102,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>



[03/40] incubator-senssoft git commit: Initial (probably broken) commit of ported docker build

Posted by le...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
new file mode 100644
index 0000000..0c30077
--- /dev/null
+++ b/docker/logstash/config/logstash-userale.conf
@@ -0,0 +1,55 @@
+input {
+	http {
+		codec => "json"
+		port => 8000
+		response_headers => { 
+			"Access-Control-Allow-Origin" => "*" 
+            "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"
+        }
+	}
+}
+
+## Add your filters / logstash plugins configuration here
+filter {
+	# mutate {
+	# 	remove_field => [ "message", "@version", "@timestamp"]
+	# }
+
+	grok {
+    	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
+    	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
+  }
+
+ #    dns {
+ #   		add_field => [ "hostname", "%{host}" ]
+ #    }
+
+ #    dns {
+ #     	resolve => [ "host" ]
+ #     	action => [ "replace" ]
+ #    }
+
+	# geoip {
+ #     	source => "host"
+ #     	database => "/usr/share/logstash/GeoIP/GeoIP.dat"
+ #     	target => "geoip"
+ #  }
+}
+
+output {
+	# Output data to Elasticsearch instance
+	elasticsearch {
+		hosts => "elasticsearch:9200"
+		index => "userale"
+		document_type => "logs"
+    user => "elastic"
+    password => "changeme"
+		manage_template => true
+		template_overwrite => true
+		template => "/usr/share/logstash/templates/userale.json"
+		template_name => "userale"
+	}
+
+	# Debug
+	# stdout { codec => rubydebug }
+}

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/logstash/templates/apache.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/apache.json b/docker/logstash/templates/apache.json
new file mode 100644
index 0000000..10552e3
--- /dev/null
+++ b/docker/logstash/templates/apache.json
@@ -0,0 +1,59 @@
+{
+    "template": "apache",
+    "settings": {
+        "index.refresh_interval": "5s"
+    },
+    "mappings": {
+        "_default_": {
+            "dynamic_templates": [{
+                "string_fields": {
+                    "match_mapping_type": "string",
+                    "match": "*",
+                    "mapping": {
+                        "omit_norms": true,
+                        "type": "text",
+                        "fields": {
+                            "raw": {
+                                "ignore_above": 256,
+                                "type": "keyword"
+                            }
+                        }
+                    }
+                }
+            }],
+            "properties": {
+                "geoip": {
+                    "dynamic": true,
+                    "path": "full",
+                    "properties": {
+                        "location": {
+                            "type": "geo_point"
+                        }
+                    },
+                    "type": "object"
+                },
+                "@version": {
+                    "type": "keyword"
+                },
+                "referer": {
+                    "type": "keyword"
+                },
+                "request": {
+                    "type": "keyword"
+                },
+                "responsetime": {
+                    "type": "long"
+                },
+                "bytes": {
+                    "type": "long"
+                }
+            },
+            "_all": {
+                "enabled": true
+            }
+        }
+    },
+    "aliases": {
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/logstash/templates/userale.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/userale.json b/docker/logstash/templates/userale.json
new file mode 100644
index 0000000..e5d8f91
--- /dev/null
+++ b/docker/logstash/templates/userale.json
@@ -0,0 +1,157 @@
+{
+  "template" : "userale",
+  "order" : 1,
+  "settings" : {
+    "number_of_shards" : 1,
+    "number_of_replicas" : 0,
+    "index.refresh_interval" : "5s"
+  },
+  "mappings" : {
+    "_default_" : {
+      "_all" : {
+        "enabled" : false
+      },
+      "properties" : {
+        "geoip" : {
+          "properties" : {
+            "ip" : {
+              "type" : "ip"
+            },
+            "country_code2" : {
+              
+              "type" : "keyword"
+            },
+            "country_code3" : {
+              
+              "type" : "keyword"
+            },
+            "country_name" : {
+              
+              "type" : "keyword"
+            },
+            "continent_code" : {
+              
+              "type" : "keyword"
+            },
+            "region_name" : {
+              
+              "type" : "keyword"
+            },
+            "city_name" : {
+              
+              "type" : "keyword"
+            },
+            "postal_code" : {
+              
+              "type" : "keyword"
+            },
+            "latitude" : {
+              "type" : "float"
+            },
+            "longitude" : {
+              "type" : "float"
+            },
+            "dma_code" : {
+              "type" : "integer"
+            },
+            "area_code" : {
+              "type" : "long"
+            },
+            "timezone" : {
+              
+              "type" : "keyword"
+            },
+            "real_region_name" : {
+              
+              "type" : "keyword"
+            },
+            "location" : {
+              "doc_values" : true,
+              "type" : "geo_point"
+            }
+          }
+        }
+      }
+    },
+    "logs" : {
+      "properties" : {
+        "userAction" : {
+          "type" : "boolean"
+        },
+        "type" : {
+          
+          "type" : "keyword"
+        },
+        "clientTime" : {
+          "type" : "date",
+          "format" : "strict_date_optional_time||epoch_millis"
+        },
+        "target" : {
+          
+          "type" : "keyword"
+        },
+        "path" : {
+          
+          "type" : "keyword"
+        },
+        "details" : {
+          "type" : "object", 
+          "properties" : {
+            "source" : {
+              "type" : "keyword"
+            }
+          }
+        },
+        "location" : {
+          "type" : "object",
+          "properties" : {
+            "x" : {
+              "type" : "integer"
+            },
+            "y" : {
+              "type" : "integer"
+            }
+          }
+        },
+        "userId" : {
+          
+          "type" : "keyword"
+        },
+        "session" : {
+          
+          "type" : "keyword"
+        },
+        "toolName" : {
+          
+          "type" : "keyword"
+        },
+        "toolVersion" : {
+          
+          "type" : "keyword"
+        },
+        "useraleVersion" : {
+          
+          "type" : "keyword"
+        },
+        "major_ver" : {
+          "type" : "integer"
+        },
+        "minor_ver" : {
+          "type" : "integer"
+        },
+        "patch_ver" : {
+          "type" : "integer"
+        },
+        "tool_major_ver" : {
+          "type" : "integer"
+        },
+        "tool_minor_ver" : {
+          "type" : "integer"
+        },
+        "tool_patch_ver" : {
+          "type" : "integer"
+        }
+      }
+    }
+  }
+}   
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/tap/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
new file mode 100644
index 0000000..24f7291
--- /dev/null
+++ b/docker/tap/Dockerfile
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM python:3.4
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Install system wide dependencies
+RUN apt-get -yqq update && apt-get -yqq install \
+	curl \
+	sudo
+
+# Install NodeJS 4.x
+RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
+
+RUN sudo -E apt-get -yqq install \
+	nodejs \
+	build-essential 
+
+# Set the work directory
+RUN mkdir -p /usr/src
+WORKDIR /usr/src
+
+# Install gulp
+RUN npm install -g bower gulp
+
+# Install git
+RUN sudo -E apt-get -yqq install \
+  git
+
+# Clone TAP
+RUN git clone -b master https://github.com/apache/incubator-senssoft-tap.git app
+WORKDIR /usr/src/app
+RUN git pull
+
+# Install packages
+RUN npm install 
+
+# Install TAP requirements
+RUN pip install -r requirements.txt
+
+# Add application files
+ADD secret.py /usr/src/app/tap/settings
+ADD neon_counts.js /usr/src/app/public
+ADD neon_graph.js /usr/src/app/public
+
+
+# Startup Application
+RUN gulp build
+
+# Export port
+EXPOSE 8000

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/tap/README.md
----------------------------------------------------------------------
diff --git a/docker/tap/README.md b/docker/tap/README.md
new file mode 100644
index 0000000..eaf43b2
--- /dev/null
+++ b/docker/tap/README.md
@@ -0,0 +1,2 @@
+Copy neon_*.json files here until we integrate w/Distill
+


[23/40] incubator-senssoft git commit: Added Distill back.

Posted by le...@apache.org.
Added Distill back.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/f4d5ba44
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/f4d5ba44
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/f4d5ba44

Branch: refs/heads/asf-site
Commit: f4d5ba440272373178fef8ff71afb6db415e30f4
Parents: 4d65e0d
Author: msb3399 <mb...@draper.com>
Authored: Mon Aug 7 12:27:00 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Mon Aug 7 12:27:00 2017 -0400

----------------------------------------------------------------------
 docker/distill/Dockerfile | 19 ++-----------------
 docker/docker-compose.yml | 23 ++++++++++++-----------
 2 files changed, 14 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4d5ba44/docker/distill/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/distill/Dockerfile b/docker/distill/Dockerfile
index f69edc8..972edb3 100644
--- a/docker/distill/Dockerfile
+++ b/docker/distill/Dockerfile
@@ -22,29 +22,14 @@ RUN apt-get -yqq update
 RUN mkdir -p /usr/src
 WORKDIR /usr/src
 
-# Install git
-##RUN sudo -E apt-get -yqq install \
-  ##git
-
 # Clone Distill
 RUN git clone https://github.com/apache/incubator-senssoft-distill.git distill
 WORKDIR /usr/src/distill
 RUN git pull
 
-
-# Add code
-##WORKDIR /app
-##ADD setup.py /app
-
-ADD requirements.txt /distill
-
 # Install Distill dependencies
 RUN pip install -r requirements.txt
 
-# Expose Ports
-EXPOSE 8090
-
 # Rest
-ADD . /app
-RUN python setup.py develop
-CMD python distill/server.py
\ No newline at end of file
+RUN python setup.py install
+CMD dev

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f4d5ba44/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 9dc69b7..b1337f2 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -118,6 +118,18 @@ services:
     networks:
       - esnet
 
+  # Distill
+  distill:
+    build: ./distill
+    container_name: senssoft-distill
+    ports:
+      - 8090:8090
+    depends_on:
+      - "elasticsearch1"
+      - "elasticsearch2"
+    networks:
+      - esnet
+
 volumes:
   esdata1:
     driver: local
@@ -127,17 +139,6 @@ volumes:
 networks:
   esnet: 
 
-
-  # distill:
-  #   build: ./distill
-  #   container_name: distill
-  #   ports:
-  #     - 8090:8090
-  #   depends_on:
-  #     - elasticsearch
-  #   links:
-  #     - elasticsearch
-
   # db:
   #   container_name: tap-db
   #   build: ./db


[22/40] incubator-senssoft git commit: SENSSOFT-218: Added path analyzer to perform partial path searches

Posted by le...@apache.org.
SENSSOFT-218: Added path analyzer to perform partial path searches


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/4d65e0de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/4d65e0de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/4d65e0de

Branch: refs/heads/asf-site
Commit: 4d65e0de11138f0d2db59a57bcce7d4a062dd48f
Parents: e976976
Author: msb3399 <mb...@draper.com>
Authored: Tue Jul 25 17:44:27 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Tue Jul 25 17:44:27 2017 -0400

----------------------------------------------------------------------
 docker/logstash/templates/userale.json | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/4d65e0de/docker/logstash/templates/userale.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/userale.json b/docker/logstash/templates/userale.json
index 8e64f75..3d1c0a5 100644
--- a/docker/logstash/templates/userale.json
+++ b/docker/logstash/templates/userale.json
@@ -5,7 +5,19 @@
     {
         "number_of_shards": 1,
         "number_of_replicas": 0,
-        "index.refresh_interval": "5s"
+        "index.refresh_interval": "5s",
+        "analysis": {
+            "analyzer": {
+                "my_analyzer": {
+                    "tokenizer": "my_tokenizer"
+                }
+            },
+            "tokenizer": {
+                "my_tokenizer": {
+                    "type": "path_hierarchy"
+                }
+            }
+        }
     },
     "mappings":
     {
@@ -14,7 +26,7 @@
             "_all":
             {
                 "enabled": false
-            },
+            }
         },
         "logs":
         {
@@ -55,7 +67,8 @@
                 },
                 "path":
                 {
-                    "type": "keyword"
+                    "type": "text",
+                    "analyzer": "my_analyzer"
                 },
                 "details":
                 {


[29/40] incubator-senssoft git commit: fixed bugs in docker

Posted by le...@apache.org.
fixed bugs in docker


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/109b14af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/109b14af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/109b14af

Branch: refs/heads/asf-site
Commit: 109b14af29344ebbbe9279627c859f7d59d3ab17
Parents: 52ea840
Author: msbeard <ms...@apache.org>
Authored: Thu Sep 21 13:55:50 2017 -0400
Committer: msbeard <ms...@apache.org>
Committed: Thu Sep 21 13:55:50 2017 -0400

----------------------------------------------------------------------
 docker/docker-compose.yml              | 36 ++++++++++++++---------------
 docker/logstash/templates/userale.json |  5 ++--
 docker/tap/Dockerfile                  |  8 ++++---
 3 files changed, 25 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/109b14af/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 09580a7..fc14c1c 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -36,8 +36,8 @@ services:
     depends_on:
       - "userale-forwarder"
     command: python -m SimpleHTTPServer 8080
-    networks:
-      - esnet
+    # networks:
+    #   - esnet
 
   # ELK Stack
 
@@ -61,8 +61,8 @@ services:
       - esdata1:/usr/share/elasticsearch/data
     ports:
       - 9200:9200
-    networks:
-      - esnet
+    # networks:
+    #   - esnet
 
   elasticsearch2:
     image: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
@@ -81,8 +81,8 @@ services:
     mem_limit: 1g
     volumes:
       - esdata2:/usr/share/elasticsearch/data
-    networks:
-      - esnet
+    # networks:
+    #   - esnet
 
   # Kibana
   kibana:
@@ -97,8 +97,8 @@ services:
     environment:
       XPACK_MONITORING_ENABLED: "false"
       ELASTICSEARCH_URL: http://elasticsearch1:9200
-    networks:
-      - esnet
+    # networks:
+    #   - esnet
 
   # Logstash
   userale-forwarder:
@@ -115,8 +115,8 @@ services:
       - "elasticsearch2"
     environment:
       XPACK_MONITORING_ENABLED: "false"
-    networks:
-      - esnet
+    # networks:
+    #   - esnet
 
   # Distill
   distill:
@@ -126,22 +126,22 @@ services:
       - 8090:8090
     depends_on:
       - "elasticsearch1"
-      - "elasticsearch2"
-    networks:
-      - esnet
+    # networks:
+    #   - esnet
 
   # TAP's Database
   db:
-    container_name: tap-db
+    container_name: senssoft-db
     build: ./db
     ports:
       - "5432:5432"
 
   # TAP
   tap:
-    container_name: tap-web
+    container_name: senssoft-tap
     build: ./tap
-    command: ["bash", "./wait-for-postgres.sh"]
+    # command: ["bash", "./wait-for-postgres.sh"]
+    command: bash -c "/usr/src/app/wait-for-postgres.sh"
     ports:
       - "8010:8010"
     depends_on:
@@ -155,5 +155,5 @@ volumes:
   esdata2:
     driver: local
 
-networks:
-  esnet: 
+# networks:
+#   esnet: 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/109b14af/docker/logstash/templates/userale.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/userale.json b/docker/logstash/templates/userale.json
index 3d1c0a5..aed094f 100644
--- a/docker/logstash/templates/userale.json
+++ b/docker/logstash/templates/userale.json
@@ -67,8 +67,7 @@
                 },
                 "path":
                 {
-                    "type": "text",
-                    "analyzer": "my_analyzer"
+                    "type": "keyword"
                 },
                 "details":
                 {
@@ -130,7 +129,7 @@
                 {
                     "type": "keyword"
                 },
-                "session":
+                "sessionID":
                 {
                     "type": "keyword"
                 },

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/109b14af/docker/tap/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
index 386d49c..f705fb3 100644
--- a/docker/tap/Dockerfile
+++ b/docker/tap/Dockerfile
@@ -22,7 +22,8 @@ RUN apt-get -yqq update && apt-get -yqq install \
 	sudo
 
 # Install NodeJS 4.x
-RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
+#RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
+RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
 
 RUN sudo -E apt-get -yqq install \
 	nodejs \
@@ -50,12 +51,13 @@ RUN npm install
 RUN pip install -r requirements.txt
 
 # Add application files
-#ADD secrets/secret.py /usr/src/app/tap/settings
+ADD secret.py /usr/src/app/tap/settings
 #ADD secrets/neon_counts.js /usr/src/app/public
 #ADD secrets/neon_graph.js /usr/src/app/public
 
 # Add startup script
-ADD wait-for-postgres.sh /usr/src/app
+#ADD wait-for-postgres.sh /usr/src/app
+RUN chmod +x /usr/src/app/wait-for-postgres.sh
 
 # Startup Application
 RUN gulp build


[13/40] incubator-senssoft git commit: Updated docker repos to point to official elastic stack repos. Added demo kibana dashboard. Removed xpack.

Posted by le...@apache.org.
Updated docker repos to point to official elastic stack repos. Added demo kibana dashboard. Removed xpack.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/df5e92b1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/df5e92b1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/df5e92b1

Branch: refs/heads/asf-site
Commit: df5e92b1428c9397e927f4b9d996159aaa061f73
Parents: 9068fc1
Author: msb3399 <mb...@draper.com>
Authored: Thu May 11 16:47:18 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Thu May 11 16:47:18 2017 -0400

----------------------------------------------------------------------
 docker/docker-compose.yml    |  9 ++++++---
 docker/es/elasticsearch.yml  |  5 +++--
 docker/kibana/dashboard.json | 26 ++++++++++++++++++++++++++
 docker/logstash/Dockerfile   |  2 +-
 4 files changed, 36 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/df5e92b1/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 6570771..d0d0357 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -37,7 +37,7 @@ services:
 
   # ELK Stack
   elasticsearch:
-    image: elasticsearch:latest
+    image: docker.elastic.co/elasticsearch/elasticsearch:5.4.0
     container_name: senssoft-elastic
     ports:
       - 9200:9200
@@ -51,13 +51,15 @@ services:
 
   # Kibana
   kibana:
-    image: kibana:latest
+    image: docker.elastic.co/kibana/kibana:5.4.0
     container_name: senssoft-kibana
     ports:
       - 5601:5601
     depends_on:
       - "elasticsearch"
       - "startup"
+    environment:
+      XPACK_SECURITY_ENABLED: "false"
 
   # Logstash
   userale-forwarder:
@@ -73,6 +75,7 @@ services:
       - "elasticsearch"
     environment:
       LS_HEAP_SIZE: "2048m"
+      XPACK_MONITORING_ENABLED: "false"
 
   distill:
     build: ./distill
@@ -85,7 +88,7 @@ services:
       - elasticsearch
 
   db:
-    container_name: tap-db 
+    container_name: tap-db
     build: ./db
     ports:
       - "5432:5432"

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/df5e92b1/docker/es/elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/es/elasticsearch.yml b/docker/es/elasticsearch.yml
index af0e14e..5e0c014 100644
--- a/docker/es/elasticsearch.yml
+++ b/docker/es/elasticsearch.yml
@@ -109,5 +109,6 @@ discovery.zen.minimum_master_nodes: 1
 #
 # action.destructive_requires_name: true
 
-http.cors.enabled : true
-http.cors.allow-origin : "*"
+http.cors.enabled: true
+http.cors.allow-origin: "*"
+xpack.security.enabled: false
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/df5e92b1/docker/kibana/dashboard.json
----------------------------------------------------------------------
diff --git a/docker/kibana/dashboard.json b/docker/kibana/dashboard.json
new file mode 100644
index 0000000..d1922d9
--- /dev/null
+++ b/docker/kibana/dashboard.json
@@ -0,0 +1,26 @@
+[
+  {
+    "_id": "6e6b6380-3673-11e7-b2f7-0b10e220d9ac",
+    "_type": "dashboard",
+    "_source": {
+      "title": "Apache UserALE Monitor",
+      "hits": 0,
+      "description": "Example Kibana Dashboard",
+      "panelsJSON": "[\n  {\n    \"size_x\": 9,\n    \"size_y\": 4,\n    \"panelIndex\": 1,\n    \"type\": \"visualization\",\n    \"id\": \"49fa7860-3673-11e7-b2f7-0b10e220d9ac\",\n    \"col\": 4,\n    \"row\": 4\n  },\n  {\n    \"size_x\": 3,\n    \"size_y\": 3,\n    \"panelIndex\": 2,\n    \"type\": \"visualization\",\n    \"id\": \"6e55ca90-3671-11e7-b2f7-0b10e220d9ac\",\n    \"col\": 1,\n    \"row\": 4\n  },\n  {\n    \"size_x\": 5,\n    \"size_y\": 3,\n    \"panelIndex\": 3,\n    \"type\": \"visualization\",\n    \"id\": \"ef62c4e0-3684-11e7-9c77-0135be018b90\",\n    \"col\": 1,\n    \"row\": 1\n  },\n  {\n    \"size_x\": 7,\n    \"size_y\": 3,\n    \"panelIndex\": 4,\n    \"type\": \"visualization\",\n    \"id\": \"7ee8abd0-3684-11e7-9c77-0135be018b90\",\n    \"col\": 6,\n    \"row\": 1\n  }\n]",
+      "optionsJSON": "{\n  \"darkTheme\": false\n}",
+      "uiStateJSON": "{}",
+      "version": 1,
+      "timeRestore": true,
+      "timeTo": "now",
+      "timeFrom": "now-15m",
+      "refreshInterval": {
+        "display": "Off",
+        "pause": false,
+        "value": 0
+      },
+      "kibanaSavedObjectMeta": {
+        "searchSourceJSON": "{\n  \"filter\": [\n    {\n      \"query\": {\n        \"query_string\": {\n          \"query\": \"*\",\n          \"analyze_wildcard\": true\n        }\n      }\n    }\n  ],\n  \"highlightAll\": true,\n  \"version\": true\n}"
+      }
+    }
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/df5e92b1/docker/logstash/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
index d676e62..d5b8109 100644
--- a/docker/logstash/Dockerfile
+++ b/docker/logstash/Dockerfile
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM logstash:5
+FROM docker.elastic.co/logstash/logstash:5.4.0
 MAINTAINER Michelle Beard <ms...@apache.org>
 
 # Get GeoIP DB


[21/40] incubator-senssoft git commit: SENSSOFT-217: Updated mappings

Posted by le...@apache.org.
SENSSOFT-217: Updated mappings


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/e976976f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/e976976f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/e976976f

Branch: refs/heads/asf-site
Commit: e976976f70279dfd6bea3b4529021861aa134e5f
Parents: f30bf2a
Author: msb3399 <mb...@draper.com>
Authored: Tue Jul 25 17:35:05 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Tue Jul 25 17:35:05 2017 -0400

----------------------------------------------------------------------
 docker/logstash/config/logstash-userale.conf |  23 +-
 docker/logstash/templates/userale.json       | 308 +++++++++++-----------
 2 files changed, 160 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/e976976f/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index 77bee34..a16c434 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -26,29 +26,14 @@ input {
 
 ## Add your filters / logstash plugins configuration here
 filter {
-	# mutate {
-	# 	remove_field => [ "message", "@version", "@timestamp"]
-	# }
+	mutate {
+		remove_field => [ "message", "@version", "headers"]
+	}
 
 	grok {
     	match => [ "useraleVersion", "(?<major_ver>\d+).(?<minor_ver>\d+)(.(?<patch_ver>\d+))?" ]
     	match => [ "toolVersion", "(?<tool_major_ver>\d+).(?<tool_minor_ver>\d+)(.(?<tool_patch_ver>\d+))?" ]
   }
-
- #    dns {
- #   		add_field => [ "hostname", "%{host}" ]
- #    }
-
- #    dns {
- #     	resolve => [ "host" ]
- #     	action => [ "replace" ]
- #    }
-
-	# geoip {
- #     	source => "host"
- #     	database => "/usr/share/logstash/GeoIP/GeoIP.dat"
- #     	target => "geoip"
- #  }
 }
 
 output {
@@ -56,8 +41,6 @@ output {
 	elasticsearch {
 		hosts => "elasticsearch1:9200"
 		index => "userale"
-		# user => "elastic"
-		# password => "changeme"
 		document_type => "logs"
 		manage_template => true
 		template_overwrite => true

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/e976976f/docker/logstash/templates/userale.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/userale.json b/docker/logstash/templates/userale.json
index e5d8f91..8e64f75 100644
--- a/docker/logstash/templates/userale.json
+++ b/docker/logstash/templates/userale.json
@@ -1,157 +1,163 @@
 {
-  "template" : "userale",
-  "order" : 1,
-  "settings" : {
-    "number_of_shards" : 1,
-    "number_of_replicas" : 0,
-    "index.refresh_interval" : "5s"
-  },
-  "mappings" : {
-    "_default_" : {
-      "_all" : {
-        "enabled" : false
-      },
-      "properties" : {
-        "geoip" : {
-          "properties" : {
-            "ip" : {
-              "type" : "ip"
-            },
-            "country_code2" : {
-              
-              "type" : "keyword"
-            },
-            "country_code3" : {
-              
-              "type" : "keyword"
-            },
-            "country_name" : {
-              
-              "type" : "keyword"
-            },
-            "continent_code" : {
-              
-              "type" : "keyword"
-            },
-            "region_name" : {
-              
-              "type" : "keyword"
-            },
-            "city_name" : {
-              
-              "type" : "keyword"
-            },
-            "postal_code" : {
-              
-              "type" : "keyword"
-            },
-            "latitude" : {
-              "type" : "float"
-            },
-            "longitude" : {
-              "type" : "float"
-            },
-            "dma_code" : {
-              "type" : "integer"
-            },
-            "area_code" : {
-              "type" : "long"
-            },
-            "timezone" : {
-              
-              "type" : "keyword"
-            },
-            "real_region_name" : {
-              
-              "type" : "keyword"
-            },
-            "location" : {
-              "doc_values" : true,
-              "type" : "geo_point"
-            }
-          }
-        }
-      }
+    "template": "userale",
+    "order": 1,
+    "settings":
+    {
+        "number_of_shards": 1,
+        "number_of_replicas": 0,
+        "index.refresh_interval": "5s"
     },
-    "logs" : {
-      "properties" : {
-        "userAction" : {
-          "type" : "boolean"
-        },
-        "type" : {
-          
-          "type" : "keyword"
-        },
-        "clientTime" : {
-          "type" : "date",
-          "format" : "strict_date_optional_time||epoch_millis"
-        },
-        "target" : {
-          
-          "type" : "keyword"
-        },
-        "path" : {
-          
-          "type" : "keyword"
-        },
-        "details" : {
-          "type" : "object", 
-          "properties" : {
-            "source" : {
-              "type" : "keyword"
-            }
-          }
-        },
-        "location" : {
-          "type" : "object",
-          "properties" : {
-            "x" : {
-              "type" : "integer"
+    "mappings":
+    {
+        "_default_":
+        {
+            "_all":
+            {
+                "enabled": false
             },
-            "y" : {
-              "type" : "integer"
-            }
-          }
-        },
-        "userId" : {
-          
-          "type" : "keyword"
-        },
-        "session" : {
-          
-          "type" : "keyword"
-        },
-        "toolName" : {
-          
-          "type" : "keyword"
         },
-        "toolVersion" : {
-          
-          "type" : "keyword"
-        },
-        "useraleVersion" : {
-          
-          "type" : "keyword"
-        },
-        "major_ver" : {
-          "type" : "integer"
-        },
-        "minor_ver" : {
-          "type" : "integer"
-        },
-        "patch_ver" : {
-          "type" : "integer"
-        },
-        "tool_major_ver" : {
-          "type" : "integer"
-        },
-        "tool_minor_ver" : {
-          "type" : "integer"
-        },
-        "tool_patch_ver" : {
-          "type" : "integer"
+        "logs":
+        {
+            "properties":
+            {
+                "userAction":
+                {
+                    "type": "boolean"
+                },
+                "type":
+                {
+                    "type": "keyword"
+                },
+                "clientTime":
+                {
+                    "type": "date",
+                    "format": "strict_date_optional_time||epoch_millis"
+                },
+                "target":
+                {
+                    "type": "keyword"
+                },
+                "count":
+                {
+                    "type": "integer"
+                },
+                "logType":
+                {
+                    "type": "keyword"
+                },
+                "targetChange": 
+                {
+                    "type": "boolean"
+                },
+                "typeChange": 
+                {
+                    "type": "boolean"
+                },
+                "path":
+                {
+                    "type": "keyword"
+                },
+                "details":
+                {
+                    "properties":
+                    {
+                        "alt":
+                        {
+                            "type": "boolean"
+                        },
+                        "clicks":
+                        {
+                            "type": "integer"
+                        },
+                        "ctrl": 
+                        {
+                            "type": "boolean"
+                        },
+                        "meta": 
+                        {
+                            "type": "boolean"
+                        },
+                        "shift": 
+                        {
+                            "type": "boolean"
+                        },
+                        "window":
+                        {
+                            "type": "boolean"
+                        },
+                        "x":
+                        {
+                            "type": "integer"
+                        },
+                        "y":
+                        {
+                            "type": "integer"
+                        },
+                        "z":
+                        {
+                            "type": "integer"
+                        }
+                    }
+                },
+                "location":
+                {
+                    "properties":
+                    {
+                        "x":
+                        {
+                            "type": "integer"
+                        },
+                        "y":
+                        {
+                            "type": "integer"
+                        }
+                    }
+                },
+                "userId":
+                {
+                    "type": "keyword"
+                },
+                "session":
+                {
+                    "type": "keyword"
+                },
+                "toolName":
+                {
+                    "type": "keyword"
+                },
+                "toolVersion":
+                {
+                    "type": "keyword"
+                },
+                "useraleVersion":
+                {
+                    "type": "keyword"
+                },
+                "major_ver":
+                {
+                    "type": "integer"
+                },
+                "minor_ver":
+                {
+                    "type": "integer"
+                },
+                "patch_ver":
+                {
+                    "type": "integer"
+                },
+                "tool_major_ver":
+                {
+                    "type": "integer"
+                },
+                "tool_minor_ver":
+                {
+                    "type": "integer"
+                },
+                "tool_patch_ver":
+                {
+                    "type": "integer"
+                }
+            }
         }
-      }
     }
-  }
-}   
\ No newline at end of file
+}
\ No newline at end of file


[37/40] incubator-senssoft git commit: Updated docker configuration.

Posted by le...@apache.org.
Updated docker configuration.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/0d3dee49
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/0d3dee49
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/0d3dee49

Branch: refs/heads/asf-site
Commit: 0d3dee49ed3c1a1dc18f1d7380765ae339d6c47f
Parents: 18d45be
Author: msbeard <ms...@apache.org>
Authored: Tue Jan 30 12:50:49 2018 -0500
Committer: msbeard <ms...@apache.org>
Committed: Tue Jan 30 12:50:49 2018 -0500

----------------------------------------------------------------------
 docker/docker-compose.yml                     |  6 +--
 docker/elasticsearch/Dockerfile               |  2 +
 docker/elasticsearch/config/elasticsearch.yml |  1 +
 docker/kibana/Dockerfile                      |  2 +
 docker/kibana/config/kibana.yml               |  2 +-
 docker/logstash/Dockerfile                    |  6 +++
 docker/logstash/templates/userale.json        | 47 +++++-----------------
 7 files changed, 26 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 17b1106..7d4b199 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -76,12 +76,12 @@ services:
           elasticsearch-plugin remove --silent x-pack
           elasticsearch
     environment:
-      - NODE_MASTER=false
+      - NODE_MASTER=true
       - NUMBER_OF_MASTERS=1
       - NODE_COORDINATE=true
       - "DISCOVERY_SERVICE=elasticsearch"
-      - NODE_DATA=false
-      - NODE_INGEST=false
+      - NODE_DATA=true
+      - NODE_INGEST=true
       - MAX_LOCAL_STORAGE_NODES=1
       - NETWORK_HOST=0.0.0.0
       - HTTP_ENABLE=true

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/elasticsearch/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/elasticsearch/Dockerfile b/docker/elasticsearch/Dockerfile
index 7cdbae7..4f1e5c9 100644
--- a/docker/elasticsearch/Dockerfile
+++ b/docker/elasticsearch/Dockerfile
@@ -25,3 +25,5 @@ ENV CLUSTER_NAME SensSoft
 
 # Kubernetes requires swap is turned off
 ENV MEMORY_LOCK false
+
+EXPOSE 9200
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/elasticsearch/config/elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/elasticsearch/config/elasticsearch.yml b/docker/elasticsearch/config/elasticsearch.yml
index ca31f63..a245d97 100644
--- a/docker/elasticsearch/config/elasticsearch.yml
+++ b/docker/elasticsearch/config/elasticsearch.yml
@@ -46,3 +46,4 @@ discovery:
   zen:
     ping.unicast.hosts: ${DISCOVERY_SERVICE}
     minimum_master_nodes: ${NUMBER_OF_MASTERS}
+

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/kibana/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/kibana/Dockerfile b/docker/kibana/Dockerfile
index 894fd53..91027a5 100644
--- a/docker/kibana/Dockerfile
+++ b/docker/kibana/Dockerfile
@@ -21,3 +21,5 @@ MAINTAINER Michelle Beard <ms...@apache.org>
 COPY config /usr/share/kibana/config
 
 RUN kibana-plugin remove x-pack
+
+EXPOSE 5601
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/kibana/config/kibana.yml
----------------------------------------------------------------------
diff --git a/docker/kibana/config/kibana.yml b/docker/kibana/config/kibana.yml
index 20f2999..cc93fed 100644
--- a/docker/kibana/config/kibana.yml
+++ b/docker/kibana/config/kibana.yml
@@ -15,4 +15,4 @@
 
 server.name: kibana
 server.host: "0"
-elasticsearch.url: http://loadbalancer:9200
+elasticsearch.url: http://localhost:9200

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/logstash/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
index 6aebb9e..fb46e5c 100644
--- a/docker/logstash/Dockerfile
+++ b/docker/logstash/Dockerfile
@@ -22,3 +22,9 @@ RUN logstash-plugin remove x-pack
 
 # Known issue: https://github.com/elastic/logstash-docker/issues/45
 RUN sed -i '/xpack/d' /usr/share/logstash/config/logstash.yml
+
+# Copy Configuration files over
+COPY config/logstash-userale.conf /etc/logstash/conf.d/logstash-userale.conf
+COPY templates/userale.json /usr/share/logstash/templates/userale.json
+
+EXPOSE 8100
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/0d3dee49/docker/logstash/templates/userale.json
----------------------------------------------------------------------
diff --git a/docker/logstash/templates/userale.json b/docker/logstash/templates/userale.json
index aed094f..c1bdbb1 100644
--- a/docker/logstash/templates/userale.json
+++ b/docker/logstash/templates/userale.json
@@ -30,33 +30,32 @@
         },
         "logs":
         {
+        "dynamic_templates": [
+                {
+                  "strings_as_keywords": {
+                    "match_mapping_type": "string",
+                    "mapping": {
+                      "type": "keyword"
+                    }
+                  }
+                }
+            ],
+            "dynamic": "true",
             "properties":
             {
                 "userAction":
                 {
                     "type": "boolean"
                 },
-                "type":
-                {
-                    "type": "keyword"
-                },
                 "clientTime":
                 {
                     "type": "date",
                     "format": "strict_date_optional_time||epoch_millis"
                 },
-                "target":
-                {
-                    "type": "keyword"
-                },
                 "count":
                 {
                     "type": "integer"
                 },
-                "logType":
-                {
-                    "type": "keyword"
-                },
                 "targetChange": 
                 {
                     "type": "boolean"
@@ -65,10 +64,6 @@
                 {
                     "type": "boolean"
                 },
-                "path":
-                {
-                    "type": "keyword"
-                },
                 "details":
                 {
                     "properties":
@@ -125,26 +120,6 @@
                         }
                     }
                 },
-                "userId":
-                {
-                    "type": "keyword"
-                },
-                "sessionID":
-                {
-                    "type": "keyword"
-                },
-                "toolName":
-                {
-                    "type": "keyword"
-                },
-                "toolVersion":
-                {
-                    "type": "keyword"
-                },
-                "useraleVersion":
-                {
-                    "type": "keyword"
-                },
                 "major_ver":
                 {
                     "type": "integer"


[35/40] incubator-senssoft git commit: Added production release scripts

Posted by le...@apache.org.
Added production release scripts


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/29a4109b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/29a4109b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/29a4109b

Branch: refs/heads/asf-site
Commit: 29a4109b736ceee0a10c1a2b7b0db2dc413419d0
Parents: 2b93e9b
Author: msbeard <ms...@apache.org>
Authored: Fri Jan 26 18:26:02 2018 -0500
Committer: msbeard <ms...@apache.org>
Committed: Fri Jan 26 18:26:02 2018 -0500

----------------------------------------------------------------------
 .gitignore                           |   2 +
 release/README.md                    |  30 ++++
 release/clone-and-configure-repos.sh | 115 ++++++++++++++
 release/common.sh                    |  71 +++++++++
 release/make-release-artifacts.sh    | 250 ++++++++++++++++++++++++++++++
 5 files changed, 468 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/29a4109b/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index c1edf37..4709039 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+release/incubator-*
+release/apache-*
 .sass-cache
 .jekyll-metadata
 secret.py

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/29a4109b/release/README.md
----------------------------------------------------------------------
diff --git a/release/README.md b/release/README.md
new file mode 100644
index 0000000..f233d97
--- /dev/null
+++ b/release/README.md
@@ -0,0 +1,30 @@
+Release Scripts and Helpers
+===========================
+
+This folder contains a number of items that will assist in the production of SensSoft releases.
+
+Release scripts - make-release-artifacts.sh
+-------------------------------------------
+`make-release-artifacts.sh` will produce the release artifacts with appropriate signatures. It is recommended to use
+this script rather than "rolling your own" or using a manual process, as this script codifies several Apache
+requirements about the release artifacts.
+
+These scripts are fully documented in **[Release Process](https://cwiki.apache.org/confluence/display/SENSSOFT/UserALE.js+Release+Management+Procedure)** page on Confluence.
+
+Quickstart
+----------
+1. Configure environment/prepare for release. 
+   ```bash
+    ./clone-and-configure-repos.sh useralejs
+   ```
+   Ensure $APACHE_DIST_SVN_DIR is set in your environment.
+
+1. Change working directory to incubator-senssoft-useralejs.
+   ```bash
+   cd incubator-senssoft-userale.js
+   ```
+   
+1. Release.
+   ```bash
+   ../make-release-artifacts.sh -r 1
+   ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/29a4109b/release/clone-and-configure-repos.sh
----------------------------------------------------------------------
diff --git a/release/clone-and-configure-repos.sh b/release/clone-and-configure-repos.sh
new file mode 100755
index 0000000..0fbfe14
--- /dev/null
+++ b/release/clone-and-configure-repos.sh
@@ -0,0 +1,115 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# set -e
+# set -x
+
+# Print out usage documentation.
+help_usage() {
+    echo "clone-and-configure-repos."
+    echo "A simple utility to configure SENSSOFT repostories and prepare them for release."
+    echo ""
+    echo "Usage: $ clone-and-configure-repos.sh COMMAND"
+    echo ""
+    help_commands
+    echo "e.g."
+    echo "$ $0 useralejs"
+}
+
+# Print out commands.
+help_commands() {
+    echo "The commands are:"
+    echo "    useralejs       Prepare for userale release"
+    echo "    distill         Prepare for distill release"
+    echo "    tap             Prepare for tap release"
+    echo "    check           Check environment for release"
+    echo ""
+}
+
+# Do the basics
+# git clone -o apache-git https://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs
+# cd incubator-senssoft-useralejs
+
+# git submodule init
+# git submodule update --remote --merge --recursive
+
+# .gitmodules sets the submodules up from GitHub. Replace the origin with Apache canonical
+# git submodule foreach 'git remote add apache-git https://git-wip-us.apache.org/repos/asf/${name}'
+# git submodule foreach 'git fetch apache-git'
+# git submodule foreach 'git checkout master'
+# git submodule foreach 'git branch --set-upstream-to apache-git/master master'
+# git submodule foreach 'git reset --hard apache-git/master'
+# git submodule foreach 'git remote remove origin'
+
+# Final check we are up to date
+# git pull
+# git submodule update --remote --merge --recursive
+
+# If no arguments were provided, display the usage.
+if [[ "$#" == "0" ]]; then
+    help_usage
+    exit 1
+fi
+
+# Check for a command argument.
+COMMAND=$1
+if [[ -z $COMMAND ]] || \
+    [[ $COMMAND != "check" && \
+    $COMMAND != "useralejs" && \
+    $COMMAND != "distill" && \
+    $COMMAND != "tap" ]]; then \
+    echo "Error: Specify a command."
+    echo ""
+    help_commands
+    exit 1
+fi
+
+# Prepare for UserALE deployment
+if [[ $COMMAND == "useralejs" ]]; then
+    # Do the basics
+	git clone -o apache-git https://git-wip-us.apache.org/repos/asf/incubator-senssoft-$COMMAND
+	cd incubator-senssoft-$COMMAND
+
+	# And also the location for publishing RC artifacts
+	svn --non-interactive co --depth=immediates https://dist.apache.org/repos/dist/release/incubator/senssoft ~/tmp/apache-dist-release-incubator-senssoft-$COMMAND
+	svn --non-interactive co --depth=immediates https://dist.apache.org/repos/dist/dev/incubator/senssoft ~/tmp/apache-dist-dev-incubator-senssoft-$COMMAND
+	echo "export APACHE_DIST_SVN_DIR=$HOME/tmp/apache-dist-dev-incubator-senssoft-$COMMAND" >> ~/.bash_profile
+	exit 0
+fi
+
+# Prepare for Distill deployment
+if [[ $COMMAND == "distill" ]]; then
+    echo "Error: Unsupported distill build."
+    exit 1
+fi
+
+# Prepare for Tap deployment
+if [[ $COMMAND == "tap" ]]; then
+    echo "Error: Unsupported tap build."
+    exit 1
+fi
+
+# Run production build process checks.
+if [[ $COMMAND == "check" ]]; then
+    echo "Error: Unsupported check build."
+    exit 1
+fi
+
+exit 0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/29a4109b/release/common.sh
----------------------------------------------------------------------
diff --git a/release/common.sh b/release/common.sh
new file mode 100644
index 0000000..14fad13
--- /dev/null
+++ b/release/common.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+###############################################################################
+fail() {
+    echo >&2 "$@"
+    exit 1
+}
+
+###############################################################################
+confirm() {
+    # call with a prompt string or use a default
+    if [ "${batch_confirm_y}" == "true" ] ; then
+        true
+    else
+      read -r -p "${1:-Are you sure? [y/N]} " response
+      case $response in
+        [yY][eE][sS]|[yY]) 
+            true
+            ;;
+        *)
+            false
+            ;;
+      esac
+    fi
+}
+
+###############################################################################
+detect_version() {
+    if [ \! -z "${current_version}" ]; then
+        return
+    fi
+
+    UNAMESTR=`uname`
+    if [[ "$UNAMESTR" == 'Linux' ]]; then
+      SED_EXTENDED='-r'
+    elif [[ "$UNAMESTR" == 'Darwin' ]]; then
+      SED_EXTENDED='-E'
+    fi; 
+
+    current_version=`grep -m 1 "\"version\"" package.json | sed ${SED_EXTENDED} 's/^ *//;s/.*: *"//;s/",?//'`
+
+    if [ ! "$current_version" ]; then
+      echo "Error: Cannot find \"version\" in package.json" >&2;
+      exit 1;
+    else
+      echo $current_version ;
+    fi; 
+}
+
+###############################################################################
+assert_in_project_root() {
+    [ -d .git ] || fail Must run in userale project root directory
+}

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/29a4109b/release/make-release-artifacts.sh
----------------------------------------------------------------------
diff --git a/release/make-release-artifacts.sh b/release/make-release-artifacts.sh
new file mode 100755
index 0000000..fc16a91
--- /dev/null
+++ b/release/make-release-artifacts.sh
@@ -0,0 +1,250 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Creates the following releases with archives (.tar.gz/.zip), signatures and checksums:
+#   binary  (-bin)     - contains the userale dist binary release
+#   source  (-src)     - contains all the source code files that are permitted to be released
+
+set -e
+
+# Import common script and run clone for useralejs
+release_script_dir=$( cd $( dirname $0 ) && pwd )
+[ -f "${release_script_dir}/common.sh" ] || {
+    echo >&2 "Could not find common.sh in the same directory as this script"
+    exit 1
+}
+. "${release_script_dir}/common.sh"
+
+###############################################################################
+show_help() {
+    cat >&2 <<END
+Usage: make-release-artifacts.sh [-v version] [-r rc_number]
+Prepares and builds the source and binary distribution artifacts of a SensSoft
+release.
+
+  -vVERSION                  overrides the name of this version, if detection
+                             from package.json is not accurate for any reason.
+  -rRC_NUMBER                specifies the release candidate number. The
+                             produced artifact names include the 'rc' suffix,
+                             but the contents of the archive artifact do *not*
+                             include the suffix. Therefore, turning a release
+                             candidate into a release requires only renaming
+                             the artifacts.
+  -y                         answers "y" to all questions automatically, to
+                             use defaults and make this suitable for batch mode
+  -n                         dry run - NPM deployments and SVN commits will
+                             NOT be done. This will still delete working and
+                             temporary files, however.
+
+Specifying the RC number is required. Specifying the version number is
+discouraged; if auto detection is not working, then this script is buggy.
+
+Additionally if APACHE_DIST_SVN_DIR is set, this will transfer artifacts to
+that directory.
+END
+}
+
+###############################################################################
+# Argument parsing
+rc_suffix=
+OPTIND=1
+while getopts "h?v:r:y?:n?" opt; do
+    case "$opt" in
+        h|\?)
+            show_help
+            exit 0
+            ;;
+        v)
+            current_version=$OPTARG
+            ;;
+        r)
+            rc_suffix=$OPTARG
+            ;;
+        y)
+            batch_confirm_y=true
+            ;;
+        n)
+            dry_run=true
+            ;;
+        *)
+            show_help
+            exit 1
+    esac
+done
+
+shift $((OPTIND-1))
+[ "$1" = "--" ] && shift
+
+###############################################################################
+# Prerequisite checks
+assert_in_project_root
+
+detect_version
+
+###############################################################################
+# Determine all filenames and paths, and confirm
+
+release_name=apache-senssoft-useralejs-${current_version}
+if [ -z "$rc_suffix" ]; then
+    fail Specifying the RC number is required
+else
+    artifact_name=${release_name}-rc${rc_suffix}
+fi
+
+userale_dir=$( pwd )
+working_dir=${TMPDIR:-/tmp}/release-working-dir
+rm -rf ${working_dir}
+staging_dir="${working_dir}/source/"
+src_staging_dir="${working_dir}/source/${release_name}-src"
+bin_staging_dir="${working_dir}/bin/"
+artifact_dir="${release_script_dir}/${artifact_name}"
+
+echo "The version is ${current_version}"
+echo "The rc suffix is rc${rc_suffix}"
+echo "The release name is ${release_name}"
+echo "The artifact name is ${artifact_name}"
+echo "The artifact directory is ${artifact_dir}"
+if [ -z "${dry_run}" -a ! -z "${APACHE_DIST_SVN_DIR}" ] ; then
+  echo "The artifacts will be copied to ${APACHE_DIST_SVN_DIR} and readied for commit"
+else
+  echo "The artifacts will not be copied into a Subversion working copy"
+fi
+echo "The working directory is ${working_dir}"
+echo ""
+confirm "Is this information correct? [y/N]" || exit
+echo ""
+echo "WARNING! This script will run 'git clean -dxf' to remove ALL files that are not under Git source control."
+echo "This includes build artifacts and all uncommitted local files and directories."
+echo "If you want to check what will happen, answer no and run 'git clean -dxn' to dry run."
+echo ""
+confirm || exit
+if [ -z "${dry_run}" ]; then
+    echo ""
+    echo "This script will cause uploads to be made to a staging repository on the Apache Nexus server."
+    echo ""
+    confirm "Shall I continue?  [y/N]" || exit
+fi
+
+# Set up GPG agent
+if [ ! -z "${GPG_AGENT_INFO}" ]; then
+  echo "GPG_AGENT_INFO set; assuming gpg-agent is running correctly."
+else
+  eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info)
+  GPG_TTY=$(tty)
+  export GPG_TTY GPG_AGENT_INFO
+fi
+
+# A GPG no-op, but causes the password request to happen. It should then be cached by gpg-agent.
+gpg2 -o /dev/null --sign /dev/null
+
+# Discover submodules
+# submodules="$( perl -n -e 'if ($_ =~ /path += +(.*)$/) { print $1."\n" }' < .gitmodules )"
+# modules=". ${submodules}"
+
+###############################################################################
+# Clean the workspace
+# for module in ${modules}; do ( cd $module && git clean -dxf ); done
+
+###############################################################################
+# Source release
+echo "Creating source release folder called ${src_staging_dir} for ${release_name}"
+set -x
+mkdir -p ${src_staging_dir}
+
+# exclude: 
+# * docs (which isn't part of the release, and adding license headers to js files is cumbersome)
+rsync -rtp --exclude .git\* --exclude userale-docs/ --exclude node_modules . ${staging_dir}/${release_name}-src
+
+rm -rf ${artifact_dir}
+mkdir -p ${artifact_dir}
+set +x
+echo "Creating artifact ${artifact_dir}/${artifact_name}-src.tar.gz and .zip"
+set -x
+( cd ${staging_dir} && tar czf ${artifact_dir}/${artifact_name}-src.tar.gz ${release_name}-src )
+( cd ${staging_dir} && zip -qr ${artifact_dir}/${artifact_name}-src.zip ${release_name}-src )
+
+# ###############################################################################
+# Binary release
+set +x
+echo "Proceeding to build binary release in ${bin_staging_dir}"
+set -x
+
+mkdir -p ${bin_staging_dir}
+
+# Perform the build
+( cd ${src_staging_dir} && npm install && npm run build && npm test)
+
+set +x
+echo "Make artifacts"
+set -x
+
+# copy js and min version of userale.js
+mkdir ${bin_staging_dir}/${release_name}-bin
+
+cp ${src_staging_dir}/build/userale-*.js ${bin_staging_dir}/${release_name}-bin
+
+# copy in the LICENSE, README and NOTICE
+cp ${src_staging_dir}/README.md ${bin_staging_dir}/${release_name}-bin
+cp ${src_staging_dir}/LICENSE ${bin_staging_dir}/${release_name}-bin
+cp ${src_staging_dir}/NOTICE ${bin_staging_dir}/${release_name}-bin
+
+( cd ${bin_staging_dir} && tar czf ${artifact_dir}/${artifact_name}-bin.tar.gz ${release_name}-bin )
+( cd ${bin_staging_dir} && zip -qr ${artifact_dir}/${artifact_name}-bin.zip ${release_name}-bin )
+
+###############################################################################
+# Signatures and checksums
+
+# OSX doesn't have md5sum, sha1sum, and sha256sum, even if MacPorts md5sha1sum package is installed.
+# Easy to fake it though.
+which md5sum >/dev/null || alias md5sum='md5 -r' && shopt -s expand_aliases
+which sha1sum >/dev/null || alias sha1sum='shasum -a 1' && shopt -s expand_aliases
+which sha256sum >/dev/null || alias sha256sum='shasum -a 256' && shopt -s expand_aliases
+
+( cd ${artifact_dir} &&
+    for a in *.tar.gz *.zip; do
+        md5sum ${a} > ${a}.md5 
+        sha1sum -b ${a} > ${a}.sha1
+        sha256sum -b ${a} > ${a}.sha256
+        gpg2 --armor --output ${a}.asc --detach-sig ${a}
+    done
+)
+
+###############################################################################
+# Publish to dist repo
+
+if [ -z "${dry_run}" -a ! -z "${APACHE_DIST_SVN_DIR}" ] ; then (
+  cd ${APACHE_DIST_SVN_DIR}
+  [ -d ${artifact_name} ] && ( svn --non-interactive revert -R ${artifact_name}; svn --non-interactive rm --force ${artifact_name}; rm -rf ${artifact_name} )
+  cp -r ${artifact_dir} ${artifact_name}
+  svn --non-interactive add ${artifact_name}
+  )
+  artifact_dir=${APACHE_DIST_SVN_DIR}/${artifact_name}
+fi
+
+###############################################################################
+# Conclusion
+
+set +x
+echo "The release is done - here is what has been created:"
+ls ${artifact_dir}
+echo "You can find these files in: ${artifact_dir}"
+echo "The git commit IDs for the voting emails are:"
+echo -n "incubator-senssoft-userale: " && git rev-parse HEAD
+git submodule --quiet foreach 'echo -n "${name}: " && git rev-parse HEAD'
\ No newline at end of file


[20/40] incubator-senssoft git commit: Updated ELK setup

Posted by le...@apache.org.
Updated ELK setup


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/f30bf2af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/f30bf2af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/f30bf2af

Branch: refs/heads/asf-site
Commit: f30bf2af22190ce7edd969aa8d33432ff6fc81a8
Parents: b999347
Author: msb3399 <mb...@draper.com>
Authored: Wed Jul 12 23:31:19 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Wed Jul 12 23:31:19 2017 -0400

----------------------------------------------------------------------
 docker/docker-compose.yml                    | 131 +++++++++++++++-------
 docker/logstash/Dockerfile                   |   9 +-
 docker/logstash/config/logstash-userale.conf |   4 +-
 docker/startup/entrypoint.sh                 |   3 +-
 4 files changed, 97 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f30bf2af/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index d0d0357..9dc69b7 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -23,8 +23,8 @@ services:
     build: ./startup
     container_name: senssoft-start
     depends_on:
-      - "elasticsearch"
-      - "userale-forwarder"
+      - "elasticsearch1"
+      - "elasticsearch2"
     command: bash /opt/entrypoint.sh
 
   # Site
@@ -33,33 +33,72 @@ services:
     container_name: senssoft-app
     ports:
       - 8080:8080
+    depends_on:
+      - "userale-forwarder"
     command: python -m SimpleHTTPServer 8080
+    networks:
+      - esnet
 
   # ELK Stack
-  elasticsearch:
-    image: docker.elastic.co/elasticsearch/elasticsearch:5.4.0
-    container_name: senssoft-elastic
+
+  # The node elasticsearch1 listens on localhost:9200 while elasticsearch2 
+  # talks to elasticsearch1 over a Docker network.
+  elasticsearch1:
+    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
+    container_name: senssoft-elastic-1
+    environment:
+      - cluster.name=SensSoft
+      - node.name=soft-01
+      - bootstrap.memory_lock=true
+      - xpack.security.enabled=false
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+    ulimits:
+      memlock:
+        soft: -1
+        hard: -1
+    mem_limit: 1g
+    volumes:
+      - esdata1:/usr/share/elasticsearch/data
     ports:
       - 9200:9200
-      - 9300:9300
-    volumes:
-      - ./es/data:/usr/share/elasticsearch/data
-      - ./es/logs:/usr/share/elasticsearch/logs
-      - ./es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
+    networks:
+      - esnet
+
+  elasticsearch2:
+    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
+    container_name: senssoft-elastic-2
     environment:
-      ES_JAVA_OPTS: "-Xms4g -Xmx4g"
+      - cluster.name=SensSoft
+      - node.name=soft-02
+      - bootstrap.memory_lock=true
+      - xpack.security.enabled=false
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+      - "discovery.zen.ping.unicast.hosts=elasticsearch1"
+    ulimits:
+      memlock:
+        soft: -1
+        hard: -1
+    mem_limit: 1g
+    volumes:
+      - esdata2:/usr/share/elasticsearch/data
+    networks:
+      - esnet
 
   # Kibana
   kibana:
-    image: docker.elastic.co/kibana/kibana:5.4.0
+    image: docker.elastic.co/kibana/kibana:5.5.0
     container_name: senssoft-kibana
     ports:
       - 5601:5601
     depends_on:
-      - "elasticsearch"
+      - "elasticsearch1"
+      - "elasticsearch2"
       - "startup"
     environment:
-      XPACK_SECURITY_ENABLED: "false"
+      XPACK_MONITORING_ENABLED: "false"
+      ELASTICSEARCH_URL: http://elasticsearch1:9200
+    networks:
+      - esnet
 
   # Logstash
   userale-forwarder:
@@ -72,34 +111,46 @@ services:
       - ./logstash/config/logstash-userale.conf:/etc/logstash/conf.d/logstash-userale.conf
       - ./logstash/templates/userale.json:/usr/share/logstash/templates/userale.json
     depends_on:
-      - "elasticsearch"
+      - "elasticsearch1"
+      - "elasticsearch2"
     environment:
-      LS_HEAP_SIZE: "2048m"
       XPACK_MONITORING_ENABLED: "false"
+    networks:
+      - esnet
 
-  distill:
-    build: ./distill
-    container_name: distill
-    ports:
-      - 8090:8090
-    depends_on:
-      - elasticsearch
-    links:
-      - elasticsearch
+volumes:
+  esdata1:
+    driver: local
+  esdata2:
+    driver: local
 
-  db:
-    container_name: tap-db
-    build: ./db
-    ports:
-      - "5432:5432"
+networks:
+  esnet: 
 
-  tap:
-    container_name: tap-web
-    build: ./tap
-    command: ["bash", "./wait-for-postgres.sh"]
-    ports:
-      - "8000:8000"
-    depends_on:
-      - db
-    links:
-      - db:db
\ No newline at end of file
+
+  # distill:
+  #   build: ./distill
+  #   container_name: distill
+  #   ports:
+  #     - 8090:8090
+  #   depends_on:
+  #     - elasticsearch
+  #   links:
+  #     - elasticsearch
+
+  # db:
+  #   container_name: tap-db
+  #   build: ./db
+  #   ports:
+  #     - "5432:5432"
+
+  # tap:
+  #   container_name: tap-web
+  #   build: ./tap
+  #   command: ["bash", "./wait-for-postgres.sh"]
+  #   ports:
+  #     - "8000:8000"
+  #   depends_on:
+  #     - db
+  #   links:
+  #     - db:db

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f30bf2af/docker/logstash/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
index d5b8109..776f935 100644
--- a/docker/logstash/Dockerfile
+++ b/docker/logstash/Dockerfile
@@ -13,14 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM docker.elastic.co/logstash/logstash:5.4.0
+FROM docker.elastic.co/logstash/logstash:5.5.0
 MAINTAINER Michelle Beard <ms...@apache.org>
 
-# Get GeoIP DB
-RUN set -x \
-       && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz \
-       && gunzip GeoIP.dat.gz \
-       && mkdir -p /usr/share/logstash/GeoIP \
-       && mv GeoIP.dat /usr/share/logstash/GeoIP/GeoIP.dat
-
 RUN mkdir /usr/share/logstash/templates
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f30bf2af/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index 6eb103e..77bee34 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -54,8 +54,10 @@ filter {
 output {
 	# Output data to Elasticsearch instance
 	elasticsearch {
-		hosts => "elasticsearch:9200"
+		hosts => "elasticsearch1:9200"
 		index => "userale"
+		# user => "elastic"
+		# password => "changeme"
 		document_type => "logs"
 		manage_template => true
 		template_overwrite => true

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/f30bf2af/docker/startup/entrypoint.sh
----------------------------------------------------------------------
diff --git a/docker/startup/entrypoint.sh b/docker/startup/entrypoint.sh
index 5686d9d..00953e6 100644
--- a/docker/startup/entrypoint.sh
+++ b/docker/startup/entrypoint.sh
@@ -17,4 +17,5 @@
 
 # Wait for the Elasticsearch container to be ready before starting Kibana.
 echo "Stalling for Elasticsearch"
-dockerize -wait http://elasticsearch:9200 
+dockerize -wait http://elasticsearch1:9200 
+dockerize -wait http://elasticsearch2:9200
\ No newline at end of file


[04/40] incubator-senssoft git commit: Initial (probably broken) commit of ported docker build

Posted by le...@apache.org.
Initial (probably broken) commit of ported docker build


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/1c10c783
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/1c10c783
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/1c10c783

Branch: refs/heads/asf-site
Commit: 1c10c7835193e5f708a7720bf10e2e85e2a04c19
Parents: da63669
Author: Foley <rg...@draper.com>
Authored: Wed Mar 22 09:26:17 2017 -0400
Committer: Foley <rg...@draper.com>
Committed: Wed Mar 22 09:26:17 2017 -0400

----------------------------------------------------------------------
 docker/db/Dockerfile                            |  21 ++
 docker/db/sql.sh                                |  32 +++
 docker/distill/Dockerfile                       |  50 ++++
 docker/distill/distill.conf                     |  29 +++
 docker/distill/distill/__init__.py              |  45 ++++
 docker/distill/distill/algorithms/__init__.py   |  14 ++
 .../distill/algorithms/graphs/__init__.py       |  14 ++
 .../distill/distill/algorithms/graphs/graph.py  |  24 ++
 .../distill/algorithms/graphs/tests/__init__.py |  22 ++
 .../distill/algorithms/stats/__init__.py        |  14 ++
 docker/distill/distill/algorithms/stats/hist.py | 183 +++++++++++++++
 .../distill/algorithms/stats/tests/__init__.py  |  22 ++
 .../distill/algorithms/tests/__init__.py        |  14 ++
 docker/distill/distill/app.py                   | 216 +++++++++++++++++
 docker/distill/distill/config.cfg               |  57 +++++
 docker/distill/distill/models/__init__.py       |  14 ++
 docker/distill/distill/models/brew.py           | 235 +++++++++++++++++++
 docker/distill/distill/models/stout.py          | 149 ++++++++++++
 docker/distill/distill/models/tests/__init__.py |  22 ++
 docker/distill/distill/models/userale.py        | 137 +++++++++++
 docker/distill/distill/server.py                |  29 +++
 docker/distill/distill/tests/__init__.py        |  21 ++
 docker/distill/distill/tests/basic_test.py      |  24 ++
 docker/distill/distill/tests/distill_test.py    |  43 ++++
 docker/distill/distill/utils/__init__.py        |   0
 docker/distill/distill/utils/exceptions.py      |  25 ++
 docker/distill/distill/utils/query_builder.py   |  35 +++
 docker/distill/distill/utils/tests/__init__.py  |  21 ++
 docker/distill/distill/utils/validation.py      |  39 +++
 docker/distill/distill/version.py               |  22 ++
 docker/distill/requirements.txt                 |  22 ++
 docker/distill/setup.cfg                        |  30 +++
 docker/distill/setup.py                         |  87 +++++++
 docker/docker-compose.yml                       |  78 ++++++
 docker/es/._elasticsearch.yml                   | Bin 0 -> 222 bytes
 docker/es/Dockerfile                            |   5 +
 docker/es/elasticsearch.yml                     |  98 ++++++++
 docker/kibana/Dockerfile                        |   7 +
 docker/kibana/entrypoint.sh                     |  10 +
 docker/logstash/Dockerfile                      |  11 +
 docker/logstash/config/logstash-apache.conf     |  82 +++++++
 docker/logstash/config/logstash-userale.conf    |  55 +++++
 docker/logstash/templates/apache.json           |  59 +++++
 docker/logstash/templates/userale.json          | 157 +++++++++++++
 docker/tap/Dockerfile                           |  63 +++++
 docker/tap/README.md                            |   2 +
 docker/tap/neon_counts.js                       |   2 +
 docker/tap/neon_graph.js                        |   2 +
 48 files changed, 2343 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/db/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/db/Dockerfile b/docker/db/Dockerfile
new file mode 100644
index 0000000..bb6152f
--- /dev/null
+++ b/docker/db/Dockerfile
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM postgres:latest
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+ADD sql.sh docker-entrypoint-initdb.d/sql.sh
+
+EXPOSE 5432
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/db/sql.sh
----------------------------------------------------------------------
diff --git a/docker/db/sql.sh b/docker/db/sql.sh
new file mode 100644
index 0000000..4de31b5
--- /dev/null
+++ b/docker/db/sql.sh
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+
+#   http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!/bin/bash
+
+echo "Creating POSTGRES DB FROM ENVIRONMENT"
+DB_NAME=tapdb
+DB_USER=tapuser
+DB_PASS="Dr@p3rUs3r"
+DB_SERVICE=postgres
+
+psql -U postgres -c "CREATE USER $DB_USER PASSWORD '$DB_PASS'"
+psql -U postgres -c "CREATE DATABASE $DB_NAME OWNER $DB_USER"
+psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER"
+
+#localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8
+##export LANG=en_US.UTF-8
+#locale   # confirm that it shows only en_US.UTF-8 for all settings
+# finally, run your opennms installer
+#/usr/share/opennms/bin/install -l /usr/local/lib -dis

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/distill/Dockerfile b/docker/distill/Dockerfile
new file mode 100644
index 0000000..f69edc8
--- /dev/null
+++ b/docker/distill/Dockerfile
@@ -0,0 +1,50 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM python:2
+
+# install system wide deps
+RUN apt-get -yqq update
+
+# Set the work directory
+RUN mkdir -p /usr/src
+WORKDIR /usr/src
+
+# Install git
+##RUN sudo -E apt-get -yqq install \
+  ##git
+
+# Clone Distill
+RUN git clone https://github.com/apache/incubator-senssoft-distill.git distill
+WORKDIR /usr/src/distill
+RUN git pull
+
+
+# Add code
+##WORKDIR /app
+##ADD setup.py /app
+
+ADD requirements.txt /distill
+
+# Install Distill dependencies
+RUN pip install -r requirements.txt
+
+# Expose Ports
+EXPOSE 8090
+
+# Rest
+ADD . /app
+RUN python setup.py develop
+CMD python distill/server.py
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill.conf
----------------------------------------------------------------------
diff --git a/docker/distill/distill.conf b/docker/distill/distill.conf
new file mode 100644
index 0000000..a113dcb
--- /dev/null
+++ b/docker/distill/distill.conf
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+description "Gunicorn application server running Apache Distill"
+
+# Restart process if it ever fails
+start on runlevel [2345]
+stop on runlevel [!2345]
+
+respawn
+#Setup user and group that Gunicorn should be run as
+setuid nobody
+setgid www-data
+
+# Path to run_server
+chdir /path/to/distill
+exec gunicorn -c "gunicorn.cfg" scripts/run_server:app 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/__init__.py b/docker/distill/distill/__init__.py
new file mode 100644
index 0000000..2b44372
--- /dev/null
+++ b/docker/distill/distill/__init__.py
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+ 
+from flask import Flask
+from elasticsearch_dsl.connections import connections
+
+# Initialize Flask instance
+app = Flask (__name__)
+
+# Load Configurations
+app.config.from_pyfile('config.cfg')
+
+# Unpack Elasticsearch configuration and create elasticsearch connection
+host = app.config ['ES_HOST']
+port = app.config ['ES_PORT']
+http_auth = app.config ['HTTP_AUTH']
+use_ssl = app.config ['USE_SSL']
+verify_certs = app.config ['VERIFY_CERTS']
+ca_certs = app.config ['CA_CERTS']
+client_cert = app.config ['CLIENT_CERT']
+client_key = app.config ['CLIENT_KEY']
+timeout = app.config ['TIMEOUT']
+
+# Initialize Elasticsearch instance
+es = connections.create_connection (hosts = [host],
+									port = port,
+									http_auth = http_auth,
+									use_ssl = use_ssl,
+									verify_certs = verify_certs,
+									ca_certs = ca_certs,
+									client_cert = client_cert,
+									client_key = client_key,
+									timeout=timeout)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/__init__.py b/docker/distill/distill/algorithms/__init__.py
new file mode 100644
index 0000000..6acb5d1
--- /dev/null
+++ b/docker/distill/distill/algorithms/__init__.py
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/graphs/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/graphs/__init__.py b/docker/distill/distill/algorithms/graphs/__init__.py
new file mode 100644
index 0000000..6acb5d1
--- /dev/null
+++ b/docker/distill/distill/algorithms/graphs/__init__.py
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/graphs/graph.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/graphs/graph.py b/docker/distill/distill/algorithms/graphs/graph.py
new file mode 100644
index 0000000..3c44730
--- /dev/null
+++ b/docker/distill/distill/algorithms/graphs/graph.py
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class GraphAnalytics (object):
+	"""
+	Distill's graph analytics package. Apply graph algorithms to User Ale log data segmented with
+	Stout.
+	"""
+	
+	@staticmethod
+	def foo ():
+		pass
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/graphs/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/graphs/tests/__init__.py b/docker/distill/distill/algorithms/graphs/tests/__init__.py
new file mode 100644
index 0000000..f6f6899
--- /dev/null
+++ b/docker/distill/distill/algorithms/graphs/tests/__init__.py
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+'''
+distill: tests module.
+
+Meant for use with py.test.
+Organize tests into files, each named xxx_test.py
+Read more here: http://pytest.org/
+'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/stats/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/stats/__init__.py b/docker/distill/distill/algorithms/stats/__init__.py
new file mode 100644
index 0000000..6acb5d1
--- /dev/null
+++ b/docker/distill/distill/algorithms/stats/__init__.py
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/stats/hist.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/stats/hist.py b/docker/distill/distill/algorithms/stats/hist.py
new file mode 100644
index 0000000..b516423
--- /dev/null
+++ b/docker/distill/distill/algorithms/stats/hist.py
@@ -0,0 +1,183 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from distill import es
+from distill.utils.query_builder import QueryBuilder
+from flask import jsonify
+from elasticsearch import Elasticsearch, TransportError
+
+class Hist (object):
+	"""
+	Distill's statistics package. Apply statistical algorithms to User Ale log data segmented with
+	Stout. Need to query/filter by session or user id.
+	"""
+
+	def __init__ (self):
+		# parse out query 
+		pass
+
+ 	# @staticmethod
+ 	# def filter (app, app_type=None, q=''):
+
+		# field = q.get ("field") if q.get ("field") else ""
+		# size = q.get ("size") if q.get ("size") else 10
+
+		# query = { "aggs" : {
+		# 			"count_by_type" : {
+		# 				"filter" : { "term" : { field : }}
+		# 				"terms" : {
+		# 					"field" : field,
+		# 					"size" : 100
+		# 				}
+		# 			}
+		# 		}
+		# 	}
+
+		# d = {}
+		# # try:
+		# response = es.search (index=app, doc_type=app_type, body=query)
+		# # 	for tag in response['aggregations']['count_by_type']['buckets']:
+		# # 		d [tag ['key']] = tag ['doc_count']
+		# # except TransportError as e:
+		# # 	d ['error'] = e.info			
+		# # except Exception as e:
+		# # 	d ['error'] = str (e)		
+		# # return jsonify (d)
+		# return jsonify (response)
+
+	@staticmethod
+	def terms (app, app_type=None, q=''):
+		"""
+		Group by field (find all elements )
+		"""
+		field = q.get ("field") if q.get ("field") else ""
+		segment = q.get ("seg") if q.get ("seg") else "*"
+		size = q.get ("size") if q.get ("size") else 10000
+		numhits = q.get ("numhits") if q.get ("numhits") else 10
+
+		query = { "aggs" : {
+					"count_by_type" : {
+						"terms" : {
+							"field" : field,
+							"size" : size	# maximum number of keys (unique fields)
+						},
+						"aggs" : {
+							"top" : {		# arbitrary name
+								"top_hits" : {
+									"size" : numhits,	# number of logs in subgroup
+									"_source" : {	# segment on fields - return only subgroup based on field
+										"include" : [
+											segment
+										]
+									}
+								}
+							}
+						}
+					}
+				}
+			}
+
+		d = {}
+		# try:
+		response = es.search (index=app, doc_type=app_type, body=query)
+		# 	for tag in response['aggregations']['count_by_type']['buckets']:
+		# 		d [tag ['key']] = tag ['doc_count']
+		# except TransportError as e:
+		# 	d ['error'] = e.info			
+		# except Exception as e:
+		# 	d ['error'] = str (e)		
+		# return jsonify (d)
+		return jsonify (response)
+
+	@staticmethod
+	def unique_terms (app, app_type=None, q=""):
+		"""
+		Aggregate the number of unique terms in a field. Missing values are counted and marked as "N/A".
+
+		.. todo::
+
+			Need to incorporate QueryBuilder library instead of manually generating queries. 
+
+		:param app: [string] application name
+		:param app_type: [string] application type
+		:param field: [string] field to search against for unique values
+		:param size: [int] the top size terms returned in the result. Default value is 10.
+		:param min_hits: [int] return tags which have been found in min_hits or more. Default value is 1.
+		:return: [dict] dictionary of results
+		"""
+		
+		field = q.get ("field") if q.get ("field") else ""
+		size = q.get ("size") if q.get ("size") else 10000
+		min_hits = q.get ("min_hits") if q.get ("min_hits") else 0
+
+		print field
+		query = { "aggs" : {
+					"terms_agg" : {
+						"terms" : {
+							"field" : field,
+							"size" : size,
+							"min_doc_count" : min_hits,
+							"missing" : "N/A"
+						}
+					}
+				}
+			}
+
+		d = {}
+		try:
+			response = es.search (index=app, doc_type=app_type, body=query)
+			for tag in response['aggregations']['terms_agg']['buckets']:
+				d [tag ['key']] = tag ['doc_count']
+		except TransportError as e:
+			d ['error'] = e.info			
+		except Exception as e:
+			d ['error'] = str (e)		
+		return jsonify (d)
+
+	@staticmethod
+	def histogram (app, app_type=None, q=""):
+		"""
+		Only works on numerical data.
+		"""
+		field = q.get ("field") if q.get ("field") else ""
+
+		interval = 50
+		query = { "aggs" : {
+					"hist_agg" : {
+						"histogram" : {
+							"field" : field,
+							"interval" : interval
+						}
+					}
+				}
+			}
+
+		d = {}
+		try:
+			response = es.search (index=app, doc_type=app_type, body=query)
+			for tag in response['aggregations']['hist_agg']['buckets']:
+				d [tag ['key']] = tag ['doc_count']
+		except TransportError as e:
+			d ['error'] = e.info			
+		except Exception as e:
+			d ['error'] = str (e)		
+		return jsonify (d)
+
+	def get_value ():
+		return 0
+
+	def _parse_msg (query):
+		# should have form ?measure=name&field=f1, f2&event=a,b
+		pass

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/stats/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/stats/tests/__init__.py b/docker/distill/distill/algorithms/stats/tests/__init__.py
new file mode 100644
index 0000000..f6f6899
--- /dev/null
+++ b/docker/distill/distill/algorithms/stats/tests/__init__.py
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+'''
+distill: tests module.
+
+Meant for use with py.test.
+Organize tests into files, each named xxx_test.py
+Read more here: http://pytest.org/
+'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/algorithms/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/tests/__init__.py b/docker/distill/distill/algorithms/tests/__init__.py
new file mode 100644
index 0000000..6acb5d1
--- /dev/null
+++ b/docker/distill/distill/algorithms/tests/__init__.py
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/app.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/app.py b/docker/distill/distill/app.py
new file mode 100644
index 0000000..58434a1
--- /dev/null
+++ b/docker/distill/distill/app.py
@@ -0,0 +1,216 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from flask import Flask, request, jsonify
+from distill import app
+from distill.models.brew import Brew
+from distill.models.userale import UserAle
+from distill.models.stout import Stout
+from distill.algorithms.stats.hist import Hist
+
+@app.route ('/', methods=['GET'])
+def index ():	
+	"""
+	Show Distill version information, connection status, and all registered applications.
+
+	.. code-block:: bash
+	
+		$ curl -XGET https://localhost:8090
+
+		{
+			"author" : "Michelle Beard",
+			"email" : "mbeard@draper.com",
+			"name": "Distill",
+			"status" : true,
+			"version" : "1.0",
+			"applications" : {
+				"xdata_v3" : {
+					testing: 205,
+					parsed: 500,
+				},
+				"test_app" : {
+					logs: 500,
+					parsed: 100,
+				}
+			}
+		}
+
+	:return: Distill's status information as JSON blob
+	"""
+	return jsonify (name="Distill", version="1.0 alpha", author="Michelle Beard", email="mbeard@draper.com", status=Brew.get_status (), applications=Brew.get_applications ())
+
+@app.route ('/create/<app_id>', methods=['POST', 'PUT'])
+def create (app_id):
+	"""
+	Registers an application in Distill. 
+
+	.. code-block:: bash
+
+		$ curl -XPOST https://localhost:8090/xdata_v3
+	
+	:param app_id: Application name
+	:return: Newly created application's status as JSON blob
+	"""
+	return Brew.create (app_id)
+
+@app.route ('/status/<app_id>', defaults={"app_type" : None}, methods=['GET'])
+@app.route ('/status/<app_id>/<app_type>', methods=['GET'])
+def status (app_id, app_type): 
+	"""
+	Presents meta information about an registered application, including field names and document types.
+
+	.. code-block:: bash
+
+		$ curl -XGET https://localhost:8090/status/xdata_v3
+
+		{
+		  "application": "xdata_v3",
+		  "health": "green",
+		  "num_docs": "433",
+		  "status": "open"
+		}
+
+	:param app_id: Application name
+	:return: Registered applications meta data as JSON blob
+	"""
+	return Brew.read (app_id, app_type=app_type)
+
+@app.route ('/update/<app_id>', methods=['POST', 'PUT'])
+def update (app_id):
+	"""
+	Renames a specific application 
+
+	.. code-block:: bash
+
+		$ curl -XPOST https://localhost:8090/update/xdata_v3?name="xdata_v4"
+
+	:param app_id: Application name
+	:return: Boolean response message as JSON blob
+	"""
+	return Brew.update (app_id)
+
+@app.route ('/delete/<app_id>', methods=['DELETE'])
+def delete (app_id):
+	"""
+	Deletes an application permentantly from Distill
+
+	.. code-block:: bash
+
+		$ curl -XDELETE https://localhost:8090/xdata_v3
+	
+	:param app_id: Application name
+	:return: Boolean response message as JSON blob
+	"""
+	return Brew.delete (app_id)
+
+@app.route ('/search/<app_id>', defaults={"app_type" : None}, methods=['GET'])
+@app.route ('/search/<app_id>/<app_type>', methods=['GET'])
+def segment (app_id, app_type):
+	"""
+	Search against an application on various fields.
+
+	.. code-block:: bash
+
+		$ curl -XGET https://[hostname]:[port]/search/xdata_v3?q=session_id:A1234&size=100&scroll=false&fl=param1,param2
+
+	:param app_id: Application name
+	:param app_type: Optional document type to filter against
+	:param q: Main search query. To return all documents, pass in q=*:*
+	:param size: Maximum number of documents to return in request
+	:param scroll: Scroll id if the number of documents exceeds 10,000
+	:param fl: List of fields to restrict the result set
+	:return: JSON blob of result set
+	""" 
+	q = request.args
+	return UserAle.segment (app_id, app_type=app_type, params=q)
+
+@app.route ('/stat/<app_id>', defaults={"app_type" : None}, methods=['GET'])
+@app.route ('/stat/<app_id>/<app_type>', methods=['GET'])
+def stat (app_id, app_type):
+	"""
+	Generic histogram counts for a single registered application filtered optionally by document type.
+	View the Statistics document page for method definitions and arguments
+
+	.. code-block:: bash
+
+		$ curl -XGET https://localhost:8090/stat/xdata_v3/testing/?stat=terms&elem=signup&event=click
+
+	:param app_id: Application name
+	:param app_type: Application type
+	:return: JSON blob of result set
+	"""
+	stat = request.args.get ('stat')
+	q = request.args
+
+	hist_cls = Hist ()
+	method = None
+	try:
+		method = getattr (hist_cls, stat)
+		return method (app_id, app_type, q=q)
+	except AttributeError:
+		msg = "Class `{}` does not implement `{}`".format(hist_cls.__class__.__name__, stat)
+		return jsonify (error=msg)
+
+@app.route ('/denoise/<app_id>', methods=['GET'])
+def denoise (app_id):
+	"""
+	Bootstrap script to cleanup the raw logs. A document type called "parsed"
+	will be stored with new log created unless specified in the request. Have option to save 
+	parsed results back to data store. These parsed logs can be intergrated with STOUT results 
+	by running the stout bootstrap script.
+
+	.. code-block:: bash
+	
+		$ curl -XGET https://localhost:8090/denoise/xdata_v3?save=true&type=parsed
+
+	:param app_id: Application name
+	:return: [dict] 
+	"""
+	doc_type = 'parsed'
+	save = False
+	q = request.args
+	if 'save' in q:
+		save = str2bool (q.get ('save'))
+	if 'type' in q:
+		# @TODO: Proper cleanup script needs to happen
+		doc_type = q.get ('type')
+	return UserAle.denoise (app_id, doc_type=doc_type, save=save)
+
+@app.route ('/stout', methods=['GET'])
+def merge_stout ():
+	"""
+	Bootstrap script to aggregate user ale logs to stout master answer table
+	This will save the merged results back to ES instance at new index stout
+	OR denoise data first, then merge with the stout index...
+	If STOUT is enabled, the select method expects a stout index to exist or otherwise 
+	it will return an error message. 
+
+	.. code-block:: bash
+
+		$ curl -XGET https://locahost:8090/stout/xdata_v3
+
+	:return: Status message
+	"""
+	flag = app.config ['ENABLE_STOUT']
+	if flag:
+		return Stout.ingest ()
+	return jsonify (status="STOUT is disabled.")
+
+@app.errorhandler(404)
+def page_not_found (error):
+	"""
+	Generic Error Message
+	"""
+	return "Unable to find Distill." 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/config.cfg
----------------------------------------------------------------------
diff --git a/docker/distill/distill/config.cfg b/docker/distill/distill/config.cfg
new file mode 100644
index 0000000..189e3ea
--- /dev/null
+++ b/docker/distill/distill/config.cfg
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Statement for enabling the development environment
+DEBUG = True
+
+# Host
+HOST = '0.0.0.0'
+
+# Port
+PORT = 8090
+
+# Enable STOUT integration into Distill 
+ENABLE_STOUT = False
+SQLITEDB = '../path/to/stout/stout.db'
+MASTER = '../path/to/master/master_ans.csv'
+MAPPINGS = '../path/to/mappings/MOT_Mappings.csv'
+SELECTED = '../path/to/stout/selected_vars_for_distill.csv'
+
+# Elasticsearch Configuration
+ES_HOST = 'http://elasticsearch'
+ES_PORT = 9200
+HTTP_AUTH = None
+USE_SSL = False
+VERIFY_CERTS = False
+CA_CERTS = None
+CLIENT_CERT = None
+CLIENT_KEY = None
+TIMEOUT = 3
+
+# Application threads. A common general assumption is
+# using 2 per available processor cores - to handle
+# incoming requests using one and performing background
+# operations using the other.
+THREADS_PER_PAGE = 2
+
+# Enable protection agains *Cross-site Request Forgery (CSRF)*
+# CSRF_ENABLED     = True
+
+# Use a secure, unique and absolutely secret key for
+# signing the data. 
+# CSRF_SESSION_KEY = "secret"
+
+# Secret key for signing cookies
+# SECRET_KEY = "secret"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/models/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/__init__.py b/docker/distill/distill/models/__init__.py
new file mode 100644
index 0000000..6acb5d1
--- /dev/null
+++ b/docker/distill/distill/models/__init__.py
@@ -0,0 +1,14 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/models/brew.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/brew.py b/docker/distill/distill/models/brew.py
new file mode 100644
index 0000000..28d16b3
--- /dev/null
+++ b/docker/distill/distill/models/brew.py
@@ -0,0 +1,235 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+from elasticsearch import Elasticsearch, TransportError
+from flask import jsonify
+from distill import es
+
+class Brew (object):
+	""" 
+	Distill supports basic CRUD operations and publishes the status
+	of an persistenct database. Eventually it will support ingesting logs sent from
+	an registered application.
+	"""
+
+	@staticmethod
+	def get_status ():
+		""" 
+		Fetch the status of the underlying database instance. 
+
+		:return: [bool] if connection to database instance has been established
+		"""
+		return es.ping (ignore=[400, 404])
+
+	@staticmethod
+	def get_applications ():
+		""" 
+		Fetch all the registered applications in Distill.
+		
+		.. note:: Private indexes starting with a period are not included in the result set
+
+		:return: [dict] dictionary of all registered applications and meta information
+		"""
+		doc = {}
+		query = { "aggs" : {
+					"count_by_type" : {
+						"terms" : {
+							"field" : "_type",
+							"size" : 100
+						}
+					}
+				}
+			}
+
+		try:
+			cluster_status = es.cat.indices (h=["index"], pri=False)
+			x = cluster_status.splitlines()
+
+			for idx in x:
+			    idx = idx.rstrip ()
+			    
+			    # Ignore private indexes (like .kibana or .stout)
+			    if idx [:1] != '.':
+			        response = es.search (index=idx, body=query)
+			        d = {}
+			        for tag in response["aggregations"]["count_by_type"]["buckets"]:
+			            d [tag ['key']] = tag ['doc_count']
+			        doc [idx] = d
+		except TransportError as e:
+			doc ['error'] = e.info
+		except Exception as e:
+			doc ['error'] = str (e)
+		return doc
+	
+	@staticmethod
+	def create (app):
+		"""
+		Register a new application in Distill
+
+		.. code-block:: bash
+
+			{
+				"application" : "xdata_v3",
+				"health" : "green",
+				"num_docs" : 0,
+				"status" : "open"
+			}
+
+		:param app: [string] application name (e.g. xdata_v3)
+		:return: [dict] dictionary of application and its meta information
+		"""
+
+		# ignore 400 cause by IndexAlreadyExistsException when creating an index
+		res = es.indices.create (index=app, ignore=[400, 404])
+		doc = _get_cluster_status (app)
+		return jsonify (doc)
+
+	@staticmethod
+	def read (app, app_type=None):	
+		"""
+		Fetch meta data associated with an application
+
+		.. code-block:: bash 
+
+			Example:
+			{
+				"application" : "xdata_v3",
+				"health" : "green",
+				"num_docs" : "100",
+				"status" : "open"
+				"types" : {
+					"raw_logs" : {
+						"@timestamp" : "date",
+						"action" : "string",
+						"elementId" : "string"
+					},
+					"parsed" : {
+						"@timestamp" : "date",
+						"elementId_interval" : "string"
+					},
+					"graph" : {
+						"uniqueID" : "string",
+						"transition_count" : "long",
+						"p_value" : "float"
+					}
+				}
+			}
+
+		:param app: [string] application name (e.g. xdata_v3)
+		:return: [dict] dictionary of application and its meta information
+		"""
+
+		return jsonify (_get_cluster_status (app, app_type=app_type))
+
+	@staticmethod
+	def update (app):
+		"""
+		.. todo::
+			Currently  not implemented
+		"""
+
+		return jsonify (status="not implemented")
+
+	@staticmethod
+	def delete (app):
+		"""
+		Technically closes the index so its content is not searchable. 
+
+		.. code-block: bash
+
+			Example:
+			{
+			  status: "Deleted index xdata_v3"
+			}
+
+		:param app: [string] application name (e.g. xdata_v3)
+		:return: [dict] status message of the event
+		"""
+
+		es.indices.close (index=app, ignore=[400, 404])
+		return jsonify (status="Deleted index %s" % app)
+
+def _get_cluster_status (app, app_type=None):
+	"""
+	Return cluster status, index health, and document count as string
+
+	@todo figure out how to count individual documents stored at an app_type (currently shows only index count)
+	:param app: [string] application name (e.g. xdata_v3)
+	:return: [dict] dictionary of index meta data including field names
+	"""
+
+	doc = {}
+	try:
+		cluster_status = es.cat.indices (index=app, h=["health", "status", "docs.count"], pri=True, ignore=[400, 404])
+		v = str (cluster_status).split (" ")
+		m = ["health", "status", "num_docs"]
+		doc = dict (zip (m, v))
+		# Add back application
+		doc ["application"] = app
+	except TransportError as e:
+		doc ['error'] = e.info
+	except Exception as e:
+		doc ['error'] = str (e)
+
+	doc ['fields'] = _get_all_fields (app, app_type)
+	return doc
+
+def _parse_mappings (app, app_type=None):
+	"""
+	.. todo: 
+
+		Need to parse out result set that presents field list and type
+	"""
+	
+	try:
+		mappings = es.indices.get_mapping (index=app, doc_type=[app_type], ignore=[400, 404])
+		# mappings = yaml.safe_load (json.ess (mappings))
+		# print json.dumps (mappings [app]["mappings"], indent=4, separators=(',', ': '))
+		ignore = ["properties", "format"]
+	except TransportError as e:
+		doc ['error'] = e.info
+	except Exception as e:
+		doc ['error'] = str (e)	
+	return doc
+
+def _get_all_fields (app, app_type=None):
+	"""
+	Retrieve all possible fields in an application
+
+	:param app: [string] application name (e.g. xdata_v3)
+	:param app_type: [string] application type (e.g. logs)
+	:return: [list] list of strings representing the fields names 	
+	"""
+	d = list ()
+	query = { "aggs" : {
+				"fields" : {
+					"terms" : {
+						"field" : "_field_names",
+						"size" : 100
+					}
+				}
+			}
+		}
+
+	try:
+		response = es.search (index=app, doc_type=app_type, body=query)
+		for tag in response['aggregations']['fields']['buckets']:
+			d.append (tag ['key'])
+	except TransportError as e:
+		d.append (str (e.info))			
+	except Exception as e:
+		d.append (str (e))
+	return d

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/models/stout.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/stout.py b/docker/distill/distill/models/stout.py
new file mode 100644
index 0000000..d6421d8
--- /dev/null
+++ b/docker/distill/distill/models/stout.py
@@ -0,0 +1,149 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from distill import app, es
+from elasticsearch_dsl import DocType, String, Boolean, Date, Nested, Search
+from elasticsearch_dsl.query import MultiMatch, Match, Q
+from elasticsearch import Elasticsearch, TransportError
+from flask import jsonify
+import pandas as pd 
+
+class StoutDoc (DocType):
+    """
+    Representation of a Stout documentat.
+    """
+
+    sessionID = String (index="not_analyzed")
+    task1 = Nested ()
+    task2 = Nested ()
+
+    class Meta:
+        index = '.stout'
+        doc_type = 'testing'
+
+    def save (self, *args, **kwargs):
+        """
+        Save data from parsing as a Stout document in Distill
+        """
+        return super (StoutDoc, self).save (*args, **kwargs)
+
+class Stout (object):
+    """
+    Main Stout class to support ingest and search operations.
+    """
+
+    @staticmethod
+    def ingest (): 
+        """
+        Ingest data coming from Stout to Distill
+        """
+
+        # Create the mappings in elasticsearch
+        StoutDoc.init ()
+        status = True
+        data = _parse ();           
+        try:
+            for k,v in data.items ():
+                doc = StoutDoc ()
+                if 'sessionID' in v:
+                    doc.sessionID = v['sessionID']
+                if 'task1' in v:
+                    doc.task1 = v['task1']
+                if 'task2' in v:
+                    doc.task2 = v['task2']
+                doc.save () 
+        except Error as e:
+            status = False
+        return jsonify (status=status)
+
+def _parse ():
+    """
+    Parse master answer table with mapping into an associative array
+
+    :return: [dict] dictionary of session information
+    """
+    master = app.config ['MASTER']
+    mappings = app.config ['MAPPINGS']
+
+    fileContents=pd.read_csv(master, encoding='utf-8')
+    plainTextMappings=pd.read_csv(mappings, encoding='raw_unicode_escape')
+    headers=list(fileContents.columns.values)
+    
+    #generate the mapping between header and plain text
+    translationRow={};
+    for fieldIndex in range(1,len(headers)):
+        t=plainTextMappings.ix[fieldIndex]
+        translationRow[headers[fieldIndex]]=t[9]
+         
+    dictBySessionID={}
+    translationRow['items.text']='foo'    
+    index=0
+    for row in fileContents.iterrows():
+        index=index+1
+        
+        taskMetrics={}
+        index,data=row
+        identifier=row[1][0].split("::")
+        sessionID=identifier[0]
+        taskID=(identifier[1])
+        workingData={}
+        #is this session id already in the dictionary?
+        if sessionID in dictBySessionID:
+            #grab the entry as workingData
+            workingData=dictBySessionID[sessionID]
+ 
+        sysData={}
+        task1Data={}
+        task2Data={}
+        metaData={}
+        d={}
+
+        for fieldIndex in range(1,len(headers)):
+            if not pd.isnull(row[1][fieldIndex]):  #only interested in non-null fields
+                tempDict={}
+                if headers[fieldIndex] in translationRow:
+                    tempDict['field']=translationRow[headers[fieldIndex]]
+                    #tempDict['field']=translationRow[9]
+                tempDict['value']=row[1][fieldIndex]
+                d[headers[fieldIndex]]=row[1][fieldIndex]
+                if "SYS" in headers[fieldIndex]:
+                    sysData[headers[fieldIndex]]=tempDict
+                elif "OT1" in headers[fieldIndex]:
+                    task1Data[headers[fieldIndex]]=tempDict
+                elif "OT2" in headers[fieldIndex]:
+                    task2Data[headers[fieldIndex]]=tempDict
+                else:
+                    metaData[headers[fieldIndex]]=tempDict
+         
+        if d['TSK_TIME_DIFF_']>0:  #block tasks with zero time elapsed
+            a=int(d['TSK_TIME_DIFF_OT1_'])
+            b=int(d['TSK_TIME_DIFF_OT2_'])
+            #figure out which task the values belong to
+            if ((a>0) & (b<=0)):
+                task1Data['taskID']=taskID
+                task1Data['meta']=metaData
+                task1Data['system']=sysData
+                workingData['task1']=task1Data
+            elif ((a<=0) & (b>0)):
+                task2Data['taskID']=taskID
+                task2Data['meta']=metaData
+                task2Data['system']=sysData
+                workingData['task2']=task2Data
+            else:
+                raise ValueError('Encountered an unexpected task time diff state')
+
+        workingData['sessionID'] = sessionID   
+        dictBySessionID[sessionID]=workingData    
+    return dictBySessionID

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/models/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/tests/__init__.py b/docker/distill/distill/models/tests/__init__.py
new file mode 100644
index 0000000..f6f6899
--- /dev/null
+++ b/docker/distill/distill/models/tests/__init__.py
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+'''
+distill: tests module.
+
+Meant for use with py.test.
+Organize tests into files, each named xxx_test.py
+Read more here: http://pytest.org/
+'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/models/userale.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/userale.py b/docker/distill/distill/models/userale.py
new file mode 100644
index 0000000..f63fa51
--- /dev/null
+++ b/docker/distill/distill/models/userale.py
@@ -0,0 +1,137 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from elasticsearch import Elasticsearch, TransportError
+from elasticsearch_dsl import DocType, String, Boolean, Date, Float, Search
+from elasticsearch_dsl.query import MultiMatch, Match, Q
+from elasticsearch import Elasticsearch, TransportError
+from elasticsearch_dsl.connections import connections
+from werkzeug.datastructures import ImmutableMultiDict, MultiDict
+
+from flask import jsonify, Markup
+from distill import app, es
+import datetime
+
+class UserAle (object):
+	"""
+	Main method of entry to perform segmentation and integration of STOUT's master
+	answer table (if STOUT is enabled). Advanced and basic analytics is performed in the
+	distill.algorithms.stats and distill.algorithms.graphs module.
+	"""
+
+	@staticmethod
+	def segment (app, app_type=None, params=''):
+		"""
+		Just support match all for now. 
+		"""
+		q = params.get ("q") if params.get ("q") else {}
+		fields = params.get ("fields") if params.get ("fields") else []
+		size = params.get ("size") if params.get ("size") else 10
+		scroll = params.get ("scroll") if params.get ("scroll") else False
+		fl = params.get ("fl") if params.get ("fl") else []
+
+		# filters = params.get ("filter") if params.get ("filter") else {}
+		
+		# 'q': args.get('q', '{}'),
+		# 'fields': args.get('fl', '{}'),
+		# 'size': args.get ('size', 100),
+		# 'scroll': args.get ('scroll', False),
+		# 'filters': request_args.getlist ('fq')
+		query = {}
+		query ['size'] = size
+		
+		if q:
+			res = q.split(":")
+			key = res [0]
+			val = res [1]
+			query ['query'] = {"match" : { key : val } }
+		else:
+			query ['query'] = {"match_all" : {}}
+
+		if len (fields) > 0:
+			ex = {
+					"include" : fields.split(",")
+				}
+			query ['_source'] = ex
+
+
+		response = es.search (index=app, doc_type=app_type, body=query)
+
+		return jsonify (response)
+
+	@staticmethod
+	def search (app,
+				app_type=None,
+				filters=list (),
+				size=100,
+				include="*",
+				scroll=None,
+				sort_field=None):
+		""" 
+		Perform a search query.
+
+		:param app: [string] application id (e.g. "xdata_v3")
+		:param app_type: [string] name of the application type. If None all application types are searched.
+		:param filters: [list of strings] list of filters for a query. 
+		:param size: [int] maximum number of hits that should be returned
+		:param sort_field: [string] sorting field. Currently supported fields: "timestamp", "date"
+		:return: [dict] dictionary with processed results. If STOUT is enabled, STOUT data will be merged with final result.
+		"""
+
+		# Need some query builder...
+		log_result = es.search (index=app, doc_type=app_type, body=query, fields=filters, size=size)
+
+		stout_result = Stout.getSessions ()
+
+		data = merged_results (log_result, stout_result)
+		return data
+
+	@staticmethod
+	def denoise (app, app_type='parsed', save=False):
+		"""
+		"""
+		pass
+
+"""
+Combine a list of dictionaries together to form one complete dictionary
+"""
+def merge_dicts (lst):
+	dall = {}
+	for d in lst:
+		dall.update (d)
+	return dall
+
+"""
+Get query parameters from the request and preprocess them.
+:param [dict-like structure] Any structure supporting get calls
+:result [dict] Parsed parameters
+"""
+def parse_query_parameters (indx, app_type=None, request_args = {}):
+	args = {key: value[0] for (key, value) in dict (request_args).iteritems ()}
+
+	# print "args = ", args
+	# Parse out simple filter queries
+	filters = []
+	for filter in get_all_fields (indx, app_type):
+		if filter in args:
+			filters.append((filter, args[filter]))
+	
+	return {
+		'q': args.get('q', '{}'),
+		'fields': args.get('fl', []),
+		'size': args.get ('size', 100),
+		'scroll': args.get ('scroll', False),
+		'filters': request_args.getlist ('fq')
+	}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/server.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/server.py b/docker/distill/distill/server.py
new file mode 100644
index 0000000..23acd83
--- /dev/null
+++ b/docker/distill/distill/server.py
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from distill import app
+from distill.app import *
+
+"""
+Start up a local WSGI server called development 
+"""
+def dev_server ():
+	host = app.config ['HOST']
+	port = app.config ['PORT']
+	debug = app.config ['DEBUG']
+	app.run (host=host, port=port, debug=debug)
+
+if __name__ == '__main__':
+    dev_server ()

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/tests/__init__.py b/docker/distill/distill/tests/__init__.py
new file mode 100644
index 0000000..09c5e2f
--- /dev/null
+++ b/docker/distill/distill/tests/__init__.py
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+'''
+distill: tests module.
+
+Meant for use with py.test.
+Organize tests into files, each named xxx_test.py
+Read more here: http://pytest.org/
+'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/tests/basic_test.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/tests/basic_test.py b/docker/distill/distill/tests/basic_test.py
new file mode 100644
index 0000000..712d1fe
--- /dev/null
+++ b/docker/distill/distill/tests/basic_test.py
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+'''
+distill: Test module.
+
+Meant for use with py.test.
+Write each test as a function named test_<something>.
+Read more here: http://pytest.org/
+'''
+
+def test_example():
+    assert True

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/tests/distill_test.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/tests/distill_test.py b/docker/distill/distill/tests/distill_test.py
new file mode 100644
index 0000000..2fb6502
--- /dev/null
+++ b/docker/distill/distill/tests/distill_test.py
@@ -0,0 +1,43 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+from flask import Flask, request
+
+from distill import app as test_app
+
+def test_example ():
+	assert True
+	# with test_app.test_client () as c:
+	# 	rv = c.get ('/?tequila=42')
+	# 	assert request.args ['tequila'] == '42'
+
+# import os
+# import flaskr
+# import unittest
+# import tempfile
+
+# class FlaskrTestCase(unittest.TestCase):
+
+#     def setUp(self):
+#         self.db_fd, flaskr.app.config['DATABASE'] = tempfile.mkstemp()
+#         flaskr.app.config['TESTING'] = True
+#         self.app = flaskr.app.test_client()
+#         flaskr.init_db()
+
+#     def tearDown(self):
+#         os.close(self.db_fd)
+#         os.unlink(flaskr.app.config['DATABASE'])
+
+# if __name__ == '__main__':
+#     unittest.main()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/utils/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/__init__.py b/docker/distill/distill/utils/__init__.py
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/utils/exceptions.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/exceptions.py b/docker/distill/distill/utils/exceptions.py
new file mode 100644
index 0000000..a391241
--- /dev/null
+++ b/docker/distill/distill/utils/exceptions.py
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class Error (Exception):
+    """Base class for exceptions."""
+    pass
+
+class ValidationError (Error):
+	""" Exceptions raised for errors in validated a url."""
+
+	def __init__ (self, url, msg):
+		self.url = url
+		self.msg = msg

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/utils/query_builder.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/query_builder.py b/docker/distill/distill/utils/query_builder.py
new file mode 100644
index 0000000..017a08b
--- /dev/null
+++ b/docker/distill/distill/utils/query_builder.py
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class QueryBuilder (object):
+
+	def __init__ (self, query=None):
+		if query:
+			self.query = query
+		else:
+			self.query = {
+				"query" : {
+					"match_all" : {}
+					}
+				}
+
+
+	def add_filters (self, filters):
+		pass
+
+	def add_sorting (self, sort_field='', sort_order=''):
+		pass
+
+	
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/utils/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/tests/__init__.py b/docker/distill/distill/utils/tests/__init__.py
new file mode 100644
index 0000000..09c5e2f
--- /dev/null
+++ b/docker/distill/distill/utils/tests/__init__.py
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+'''
+distill: tests module.
+
+Meant for use with py.test.
+Organize tests into files, each named xxx_test.py
+Read more here: http://pytest.org/
+'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/utils/validation.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/validation.py b/docker/distill/distill/utils/validation.py
new file mode 100644
index 0000000..7cd3362
--- /dev/null
+++ b/docker/distill/distill/utils/validation.py
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from distill.utils.exceptions import ValidationError
+
+def validate_request (q):
+	""" 
+	Parse out request message and validate inputs
+
+	:param q: Url query string
+	:raises ValidationError: if the query is missing required parameters
+	"""
+	if 'q' not in q:
+		raise ValidationError ("Missing required parameter: %s" % 'q')
+	else:
+		# Handle rest of parsing
+		pass
+
+def str2bool (v):
+	"""
+	Convert string expression to boolean
+
+	:param v: Input value
+	:returns: Converted message as boolean type
+	:rtype: bool
+	"""
+	return v.lower() in ("yes", "true", "t", "1")
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/distill/version.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/version.py b/docker/distill/distill/version.py
new file mode 100644
index 0000000..6532ea7
--- /dev/null
+++ b/docker/distill/distill/version.py
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Version information for Distill.
+
+This file is imported by ``Distill.__init__``,
+and parsed by ``setup.py``.
+"""
+
+__version__ = "0.1.3"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/requirements.txt
----------------------------------------------------------------------
diff --git a/docker/distill/requirements.txt b/docker/distill/requirements.txt
new file mode 100644
index 0000000..5137ad9
--- /dev/null
+++ b/docker/distill/requirements.txt
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+Flask==0.10.1
+#networkx==1.11
+elasticsearch-dsl==2.0.0
+#numpy>=1.10.0
+#scipy>=0.17.0
+pandas>=0.18.1
+pytest>=3.0.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/setup.cfg
----------------------------------------------------------------------
diff --git a/docker/distill/setup.cfg b/docker/distill/setup.cfg
new file mode 100644
index 0000000..08020f4
--- /dev/null
+++ b/docker/distill/setup.cfg
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+[egg_info]
+tag_build = 0.1.4
+tag_svn_revision = false
+
+[aliases]
+test=pytest
+
+[tool:pytest] 
+addopts = --verbose --ignore=build --ignore=setup.py --ignore=dist --junitxml=test-report.xml --cov-report xml --cov=distill distill/. 
+norecursedirs = *.eggs *env* .git 
+
+[build_sphinx]
+source-dir = docs
+build-dir = docs/_build
+all_files = 1

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/distill/setup.py
----------------------------------------------------------------------
diff --git a/docker/distill/setup.py b/docker/distill/setup.py
new file mode 100644
index 0000000..8ddd32f
--- /dev/null
+++ b/docker/distill/setup.py
@@ -0,0 +1,87 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import absolute_import
+from setuptools import setup, find_packages
+import distutils.cmd
+import distutils.log
+from setuptools.command.test import test as TestCommand
+import io, os, sys, subprocess
+
+if sys.version_info[:2] < (2, 7):
+    m = "Python 2.7 or later is required for Distill (%d.%d detected)."
+    raise ImportError (m % sys.version_info[:2])
+
+if sys.argv[-1] == 'setup.py':
+    print ("To install, run 'python setup.py install'")
+    print ()
+    
+def read (*filenames, **kwargs):
+    encoding = kwargs.get ('encoding', 'utf-8')
+    sep = kwargs.get ('sep', '\n')
+    buf = []
+    for filename in filenames:
+        with io.open (filename, encoding=encoding) as f:
+            buf.append (f.read ())
+    return sep.join (buf)
+
+# Get the version string
+def get_version ():
+    basedir = os.path.dirname (__file__)
+    with open (os.path.join (basedir, 'distill/version.py')) as f:
+        version = {}
+        exec (f.read (), version)
+        return version['__version__']
+    raise RuntimeError ('No version info found.')
+
+setup (
+    name = "Distill",
+    version = get_version (),
+    url = "https://github.com/apache/incubator-senssoft-distill",
+    license = "Apache Software License",
+    author = "Michelle Beard",
+    author_email = "msbeard@apache.org",
+    description = "An analytical framework for UserALE.",
+    long_description = __doc__,
+    classifiers = [
+      'Development Status :: 4 - Beta',
+      'Programming Language :: Python',
+      'Programming Language :: Python :: 2.7',
+      'Natural Language :: English',
+      'Environment :: Web Environment',
+      'Intended Audience :: Developers',
+      'License :: OSI Approved :: Apache Software License',
+      'Operating System :: OS Independent', 
+      'Private :: Do Not Upload"'
+    ],
+    keywords = "stout userale tap distill", # Separate with spaces
+    packages = find_packages (exclude=['examples', 'tests']),
+    include_package_data = True,
+    zip_safe = False,
+    setup_requires = ['pytest-runner'],
+    tests_require = ['pytest>=3.0.0', 'pytest-pylint', 'coverage'],
+    install_requires = ['Flask==0.10.1', 
+                        #'networkx==1.11',
+                        'elasticsearch-dsl==2.0.0', 
+                        #'numpy>=1.10.0', 
+                        #'scipy>=0.17.0',
+                        'pandas>=0.18.1'
+    ],
+    entry_points = {
+      'console_scripts': [
+        'dev = distill.server:dev_server'
+        ]
+    }
+)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000..97ee0cb
--- /dev/null
+++ b/docker/docker-compose.yml
@@ -0,0 +1,78 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Apache TAP Production Build
+
+version: "2"
+services:
+  # ELK Stack
+  elasticsearch:
+    build: ./es
+    container_name: senssoft-elastic
+    ports:
+      - 9200:9200
+      - 9300:9300
+    volumes:
+      - ./es/data:/usr/share/elasticsearch/data
+      - ./es/logs:/usr/share/elasticsearch/logs
+      - ./es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
+    environment:
+      ES_JAVA_OPTS: "-Xms1g -Xmx1g"
+  kibana:
+    build: ./kibana
+    container_name: senssoft-kibana
+    ports:
+      - 5601:5601
+    depends_on:
+      - "elasticsearch"
+  userale-forwarder:
+    build: ./logstash
+    container_name: senssoft-userale-forwarder
+    command: -f /etc/logstash/conf.d
+    ports:
+      - 8000:8000
+    volumes: 
+      - ./logstash/config/logstash-userale.conf:/etc/logstash/conf.d/logstash-userale.conf
+      - ./logstash/templates/userale.json:/usr/share/logstash/templates/userale.json
+    depends_on:
+      - "elasticsearch"
+    environment:
+      LS_HEAP_SIZE: "2048m"
+  distill:
+    build: 
+      context: .
+      dockerfile: ./distill/Dockerfile
+    container_name: distill
+    ports:
+      - 8090:8090
+    depends_on:
+      - elasticsearch
+    links:
+      - elasticsearch
+  db:
+    container_name: tap-db 
+    build: ./db
+    ports:
+      - "5432:5432"
+  tap:
+    container_name: tap-web
+    build: ./tap
+    command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
+    ports:
+      - "8000:8000"
+    depends_on:
+      - db
+    links:
+      - db:db
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/es/._elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/es/._elasticsearch.yml b/docker/es/._elasticsearch.yml
new file mode 100644
index 0000000..6da966a
Binary files /dev/null and b/docker/es/._elasticsearch.yml differ

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/es/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/es/Dockerfile b/docker/es/Dockerfile
new file mode 100644
index 0000000..1eb4748
--- /dev/null
+++ b/docker/es/Dockerfile
@@ -0,0 +1,5 @@
+FROM elasticsearch:5
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Install XPack
+RUN elasticsearch-plugin install --batch x-pack

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/es/elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/es/elasticsearch.yml b/docker/es/elasticsearch.yml
new file mode 100644
index 0000000..c795b7c
--- /dev/null
+++ b/docker/es/elasticsearch.yml
@@ -0,0 +1,98 @@
+# ======================== Elasticsearch Configuration =========================
+#
+# NOTE: Elasticsearch comes with reasonable defaults for most settings.
+#       Before you set out to tweak and tune the configuration, make sure you
+#       understand what are you trying to accomplish and the consequences.
+#
+# The primary way of configuring a node is via this file. This template lists
+# the most important settings you may want to configure for a production cluster.
+#
+# Please see the documentation for further information on configuration options:
+# <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
+#
+# ---------------------------------- Cluster -----------------------------------
+#
+# Use a descriptive name for your cluster:
+#
+cluster.name: SensSoft
+#
+# ------------------------------------ Node ------------------------------------
+#
+# Use a descriptive name for the node:
+#
+node.name: soft-01
+#
+# Add custom attributes to the node:
+#
+# node.rack: r1
+#
+# ----------------------------------- Paths ------------------------------------
+#
+# Path to directory where to store the data (separate multiple locations by comma):
+#
+path.data: /usr/share/elasticsearch/data
+#
+# Path to log files:
+#
+path.logs: /usr/share/elasticsearch/logs
+#
+#
+# ----------------------------------- Memory -----------------------------------
+#
+# Lock the memory on startup:
+#
+# bootstrap.mlockall: true
+#
+# Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory
+# available on the system and that the owner of the process is allowed to use this limit.
+#
+# Elasticsearch performs poorly when the system is swapping the memory.
+#
+# ---------------------------------- Network -----------------------------------
+#
+# Set the bind address to a specific IP (IPv4 or IPv6):
+#
+network.host: 0.0.0.0
+#
+# Set a custom port for HTTP:
+#
+# http.port: 9200
+#
+# For more information, see the documentation at:
+# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
+#
+# --------------------------------- Discovery ----------------------------------
+#
+# Pass an initial list of hosts to perform discovery when new node is started:
+# The default list of hosts is ["127.0.0.1", "[::1]"]
+#
+# discovery.zen.ping.unicast.hosts: ["host1", "host2"]
+#
+# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
+#
+discovery.zen.minimum_master_nodes: 1
+#
+# For more information, see the documentation at:
+# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
+#
+# ---------------------------------- Gateway -----------------------------------
+#
+# Block initial recovery after a full cluster restart until N nodes are started:
+#
+# gateway.recover_after_nodes: 3
+#
+# For more information, see the documentation at:
+# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
+#
+# ---------------------------------- Various -----------------------------------
+#
+# Disable starting multiple nodes on a single system:
+#
+# node.max_local_storage_nodes: 1
+#
+# Require explicit names when deleting indices:
+#
+# action.destructive_requires_name: true
+
+http.cors.enabled : true
+http.cors.allow-origin : "*"

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/kibana/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/kibana/Dockerfile b/docker/kibana/Dockerfile
new file mode 100644
index 0000000..4814f47
--- /dev/null
+++ b/docker/kibana/Dockerfile
@@ -0,0 +1,7 @@
+FROM kibana:5
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Install XPack
+RUN kibana-plugin install x-pack
+
+#CMD ["/tmp/entrypoint.sh"]

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/kibana/entrypoint.sh
----------------------------------------------------------------------
diff --git a/docker/kibana/entrypoint.sh b/docker/kibana/entrypoint.sh
new file mode 100644
index 0000000..c08d70a
--- /dev/null
+++ b/docker/kibana/entrypoint.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+# Wait for the Elasticsearch container to be ready before starting Kibana.
+echo "Stalling for Elasticsearch"
+while true; do
+    nc -q 1 elasticsearch 9200 2>/dev/null && break
+done
+
+echo "Starting Kibana"
+exec kibana

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/logstash/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
new file mode 100644
index 0000000..3a9533a
--- /dev/null
+++ b/docker/logstash/Dockerfile
@@ -0,0 +1,11 @@
+FROM logstash:5
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Get GeoIP DB
+RUN set -x \
+       && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz \
+       && gunzip GeoIP.dat.gz \
+       && mkdir -p /usr/share/logstash/GeoIP \
+       && mv GeoIP.dat /usr/share/logstash/GeoIP/GeoIP.dat
+
+RUN mkdir /usr/share/logstash/templates
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/1c10c783/docker/logstash/config/logstash-apache.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-apache.conf b/docker/logstash/config/logstash-apache.conf
new file mode 100644
index 0000000..c95882b
--- /dev/null
+++ b/docker/logstash/config/logstash-apache.conf
@@ -0,0 +1,82 @@
+input {
+  # file {
+  #   path => "/var/log/server_logs/access.log"
+  #   start_position => "beginning"
+  #   sincedb_path => "/dev/null"
+  # }
+
+  file {
+      path => [ "/var/log/server_logs/access.log" ]  
+      start_position => "beginning"
+      sincedb_path => "/dev/null"
+      type => "apache-access"
+  }
+  # file {
+  #     path => "/var/log/server_logs/error.log"
+  #     start_position => "beginning"
+  #     sincedb_path => "/dev/null"
+  #     type => "apache-error"
+  # }
+}
+
+filter {
+  # ------------------------ Parse services logs into fields ---------------------------
+  # APACHE 2
+  if [type] == "apache-access" {
+    # To process log data (message's content) using some regex or precompiled GROK pattern
+    grok {
+      match => [ "message", "%{COMBINEDAPACHELOG}"]
+    }
+    # To extract log's time according to a date pattern
+    date {
+      match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z"]
+    }
+    # Extract browser information, if available.
+    if [agent] != "" {
+      useragent {
+        source => "agent"
+      }
+    }
+    # Extract client ip information, if available.
+    # if [clientip] != "" {
+    #   geoip {
+    #     source => "clientip"      
+    #     database => "/usr/share/logstash/GeoIP/GeoIP.dat"  
+    #     target => "apache_clientip"
+    #     add_tag => [ "geoip" ]
+    #   }
+    # }
+  }
+
+  # if [type] == "apache-error" {
+  #   grok {
+  #     match => [ "message", "%{APACHEERRORLOG}"]
+  #     # Directory where to find the custom patterns
+  #     patterns_dir => ["/etc/logstash/grok"]
+  #   }
+  #  if [clientip] != "" {
+  #     geoip {
+  #       source => "clientip"        
+  #       target => "apache_clientip"
+  #       add_tag => [ "geoip" ]
+  #     }
+  #   } 
+  # }
+}
+
+output {
+  # Output data to Elasticsearch instance
+  elasticsearch {
+    hosts => "elasticsearch:9200"
+    index => "apache"
+    user => "elastic"
+    password => "changeme"
+    manage_template => true
+    template_overwrite => true
+    template => "/usr/share/logstash/templates/apache.json"
+    template_name => "apache"
+  }
+
+  # Debug
+  stdout { codec => rubydebug }
+}



[05/40] incubator-senssoft git commit: Added secret file for TAP to gitignore

Posted by le...@apache.org.
Added secret file for TAP to gitignore


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/c3d578fd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/c3d578fd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/c3d578fd

Branch: refs/heads/asf-site
Commit: c3d578fd9fc85410444cd381480b90b9405d0b28
Parents: 1c10c78
Author: Rob Foley <ro...@gmail.com>
Authored: Wed Mar 22 16:05:53 2017 -0400
Committer: Rob Foley <ro...@gmail.com>
Committed: Wed Mar 22 16:05:53 2017 -0400

----------------------------------------------------------------------
 .gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3d578fd/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index f9cd107..c1edf37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
 .sass-cache
 .jekyll-metadata
-
+secret.py
 node_modules/
 .npm
 npm-debug.log


[39/40] incubator-senssoft git commit: Update Website for UserALE.js 1.0.0 release

Posted by le...@apache.org.
Update Website for UserALE.js 1.0.0 release


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/609a0988
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/609a0988
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/609a0988

Branch: refs/heads/asf-site
Commit: 609a09889af6bf8a888f214c58b23cdf84e8a4af
Parents: 6cdd5ce
Author: Lewis John McGibbney <le...@gmail.com>
Authored: Fri Mar 9 11:15:35 2018 -0800
Committer: Lewis John McGibbney <le...@gmail.com>
Committed: Fri Mar 9 11:15:35 2018 -0800

----------------------------------------------------------------------
 site/_includes/footer.html                     |   2 +-
 site/_pages/community.html                     |   4 +
 site/_pages/releases.html                      | 102 +++++++++++++++++--
 site/_site/community/index.html                |   6 +-
 site/_site/distill/index.html                  |   2 +-
 site/_site/docs/contributing/index.html        |   2 +-
 site/_site/docs/distill/analytics.html         |   2 +-
 site/_site/docs/distill/api.html               |   2 +-
 site/_site/docs/distill/changelog.html         |   2 +-
 site/_site/docs/distill/http.html              |   2 +-
 site/_site/docs/distill/index.html             |   2 +-
 site/_site/docs/distill/models.html            |   2 +-
 site/_site/docs/distill/start.html             |   2 +-
 site/_site/docs/distill/utilities.html         |   2 +-
 site/_site/docs/index.html                     |   2 +-
 site/_site/docs/stout/index.html               |   2 +-
 site/_site/docs/stout/start.html               |   2 +-
 site/_site/docs/system/index.html              |   2 +-
 site/_site/docs/tap/index.html                 |   2 +-
 site/_site/docs/userale/index.html             |   2 +-
 site/_site/docs/useralejs/index.html           |   2 +-
 site/_site/docs/useralejs/testing.html         |   2 +-
 site/_site/docs/useralejs/troubleshooting.html |   2 +-
 site/_site/docs/useralepy/api.html             |   2 +-
 site/_site/docs/useralepy/changelog.html       |   2 +-
 site/_site/docs/useralepy/index.html           |   2 +-
 site/_site/docs/useralepy/start.html           |   2 +-
 site/_site/feed.xml                            |   2 +-
 site/_site/index.html                          |   2 +-
 site/_site/releases/index.html                 | 103 ++++++++++++++++++--
 site/_site/stout/index.html                    |   2 +-
 site/_site/system/index.html                   |   2 +-
 site/_site/tap/index.html                      |   2 +-
 site/_site/userale/index.html                  |   2 +-
 34 files changed, 229 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_includes/footer.html
----------------------------------------------------------------------
diff --git a/site/_includes/footer.html b/site/_includes/footer.html
index be4dedc..0964731 100644
--- a/site/_includes/footer.html
+++ b/site/_includes/footer.html
@@ -53,7 +53,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_pages/community.html
----------------------------------------------------------------------
diff --git a/site/_pages/community.html b/site/_pages/community.html
index bee667b..14e3aad 100644
--- a/site/_pages/community.html
+++ b/site/_pages/community.html
@@ -18,13 +18,16 @@ title: Community
   </h3>
   <p>
     For users of Apache SensSoft who want to keep up to date with new releases and community highlights.  To subscribe, email <a href="mailto:user-subscribe@senssoft.incubator.apache.org">user-subscribe@senssoft.incubator.apache.org</a>.
+    <a class="ui yellow button" href="mailto:users-subscribe@senssoft.incubator.apache.org">User List</a>
   </p>
+
   <h3 class="ui header">
     <i class="code icon"></i>
     <div class="content">Dev</div>
   </h3>
   <p>
     For contributors to Apache SensSoft or those interested in ongoing design and development efforts.  To subscribe, email <a href="mailto:dev-subscribe@senssoft.incubator.apache.org">dev-subscribe@senssoft.incubator.apache.org</a>.
+    <a class="ui blue button" href="mailto:dev-subscribe@senssoft.incubator.apache.org">Dev List</a>
   </p>
   <h3 class="ui header">
     <i class="upload icon"></i>
@@ -32,6 +35,7 @@ title: Community
   </h3>
   <p>
     For emails-on-commit across all Apache SensSoft products.  To subscribe, email <a href="mailto:commits-subscribe@senssoft.incubator.apache.org">commits-subscribe@senssoft.incubator.apache.org</a>.
+    <a class="ui blue button" href="mailto:commits-subscribe@senssoft.incubator.apache.org">Commits List</a>
   </p>
 </div>
 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_pages/releases.html
----------------------------------------------------------------------
diff --git a/site/_pages/releases.html b/site/_pages/releases.html
index be95ba4..5a1159c 100644
--- a/site/_pages/releases.html
+++ b/site/_pages/releases.html
@@ -5,12 +5,100 @@ title: Releases
 ---
 
 <p>
-  Apache SensSoft is currently preparing for its first full release.  Stay tuned and sign up for our mailing lists to keep up to date!
+  Below you can find the official SensSoft release distrbution artifacts. Older releases can be found at the <a heref="http://archive.apache.org/dist/incubator/senssoft/">Apache SensSoft Archives</a>.
+  
+  For ongoing development and future release announcements, stay tuned and sign up for our <a href="./community.html">mailing lists</a> to keep up to date!
 </p>
 
-<a class="ui blue button" href="mailto:dev-subscribe@senssoft.incubator.apache.org">
-  Dev List
-</a>
-<a class="ui yellow button" href="mailto:users-subscribe@senssoft.incubator.apache.org">
-  User List
-</a>
+<p>
+  Please Note all SensSoft artifacts are released as source code and binary artifacts and additional packages can be found on packaging platforms such as UserALE .js which we make available through <a href="https://www.npmjs.com/package/useralejs">the NPM useralejs package</a>. 
+
+  The CHANGELOG file shipped with each artifact can be consulted for more information on the list of updates in each release. 
+
+  SensSoft artifacts are always distributed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+</p>
+
+<h1>SensSoft UserALE.js</h1>
+
+Please note, that for convenience, we make UserALE .js available through <a href="https://www.npmjs.com/package/useralejs">the NPM useralejs package</a>.
+
+<h2>Downloads</h2>
+The link in the 'Download Artifact' column below should display a default mirror selection based on your inferred location. If (when you browse to it) you do not see that page, try a different browser. The SHA512 checksum and ASCII armoured detached signatures are links to the originals on the main distribution server.
+
+<table class="table">
+  <thead>
+  <tr>
+    <th align="left">Version</th> 
+    <th align="left">Download Artifact</th> 
+    <th align="left">ASCII signature</th>
+    <th align="left">SHA512 Checksum</th> 
+  </tr>
+  </thead>
+  <tbody>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0 (binary tar.gz)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz">apache-senssoft-useralejs-1.0.0-bin.tar.gz</a></td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz.asc">apache-senssoft-useralejs-1.0.0-bin.tar.gz.asc</a> </td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz.sha512">apache-senssoft-useralejs-1.0.0-bin.tar.gz.sha512</a> </td> 
+  </tr>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0(binary zip)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip">apache-senssoft-useralejs-1.0.0-bin.zip</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip.asc">apache-senssoft-useralejs-1.0.0-bin.zip.asc</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip.sha512">apache-senssoft-useralejs-1.0.0-bin.zip.sha512</a></td>
+  </tr>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0 (source tar.gz)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz">apache-senssoft-useralejs-1.0.0-src.tar.gz</a></td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz.asc">apache-senssoft-useralejs-1.0.0-src.tar.gz.asc</a> </td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz.sha512">apache-senssoft-useralejs-1.0.0-src.tar.gz.sha512</a> </td> 
+  </tr>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0(source zip)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip">apache-senssoft-useralejs-1.0.0-src.zip</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip.asc">apache-senssoft-useralejs-1.0.0-src.zip.asc</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip.sha512">apache-senssoft-useralejs-1.0.0-src.zip.sha512</a></td>
+  </tr>
+  </tbody>
+</table>
+
+<h1>Verify Releases</h1>
+<p>
+	It is essential that you verify the integrity of the downloaded files using the PGP, and/or SHA signatures. published with every Gora release.
+
+	Please read <a href="http://httpd.apache.org/dev/verification.html">Verifying Apache HTTP Server Releases</a> for more information on why you should verify our releases.
+
+	We strongly recommend you verify your downloads with at least PGP. Guidance for doing so is provided below.
+</p>
+
+<h2>PGP Signatures</h2>
+<p>
+	The PGP signatures can be verified using PGP or GPG. First download the <a href="http://www.apache.org/dist/incubator/senssoft/KEYS">KEYS</a> as well as the asc signature file for the relevant distribution.
+
+	<b>N.B.</b> Make sure you get these files from the main distribution directory, rather than from a mirror. Then verify the signatures using the following example</p>
+
+<p>
+	<code>
+		$ gpg --import KEYS
+	</code>
+</p>
+<p>
+	<code>
+		$ gpg --verify apache-senssoft-useralejs-1.0.0-src.zip.asc
+	</code>
+</p>
+
+<p>
+	The files in the most recent release are signed by Lewis John McGibbney (CODE SIGNING KEY) lewismc@apache.org 48BAEBF6
+</p>
+
+<h2>SHA512 Signatures</h2>
+<p>
+	Alternatively, you can verify the SHA512 signatures on the files. A unix program called md5 or md5sum is included in many unix distributions. Use the following example
+</p>
+<p>
+	<code>$ sha512sum apache-senssoft-useralejs-1.0.0-src.zip</code>
+</p>
+<p>
+	... output should match the string in apache-senssoft-useralejs-1.0.0-src.zip.sha512
+</p>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/community/index.html
----------------------------------------------------------------------
diff --git a/site/_site/community/index.html b/site/_site/community/index.html
index bc974e1..15d8000 100644
--- a/site/_site/community/index.html
+++ b/site/_site/community/index.html
@@ -81,13 +81,16 @@
   </h3>
   <p>
     For users of Apache SensSoft who want to keep up to date with new releases and community highlights.  To subscribe, email <a href="mailto:user-subscribe@senssoft.incubator.apache.org">user-subscribe@senssoft.incubator.apache.org</a>.
+    <a class="ui yellow button" href="mailto:users-subscribe@senssoft.incubator.apache.org">User List</a>
   </p>
+
   <h3 class="ui header">
     <i class="code icon"></i>
     <div class="content">Dev</div>
   </h3>
   <p>
     For contributors to Apache SensSoft or those interested in ongoing design and development efforts.  To subscribe, email <a href="mailto:dev-subscribe@senssoft.incubator.apache.org">dev-subscribe@senssoft.incubator.apache.org</a>.
+    <a class="ui blue button" href="mailto:dev-subscribe@senssoft.incubator.apache.org">Dev List</a>
   </p>
   <h3 class="ui header">
     <i class="upload icon"></i>
@@ -95,6 +98,7 @@
   </h3>
   <p>
     For emails-on-commit across all Apache SensSoft products.  To subscribe, email <a href="mailto:commits-subscribe@senssoft.incubator.apache.org">commits-subscribe@senssoft.incubator.apache.org</a>.
+    <a class="ui blue button" href="mailto:commits-subscribe@senssoft.incubator.apache.org">Commits List</a>
   </p>
 </div>
 
@@ -220,7 +224,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/distill/index.html
----------------------------------------------------------------------
diff --git a/site/_site/distill/index.html b/site/_site/distill/index.html
index f958c27..07bd745 100644
--- a/site/_site/distill/index.html
+++ b/site/_site/distill/index.html
@@ -213,7 +213,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/contributing/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/contributing/index.html b/site/_site/docs/contributing/index.html
index dfcb261..b637e53 100644
--- a/site/_site/docs/contributing/index.html
+++ b/site/_site/docs/contributing/index.html
@@ -322,7 +322,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/analytics.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/analytics.html b/site/_site/docs/distill/analytics.html
index 8d77ac4..e2fdc2a 100644
--- a/site/_site/docs/distill/analytics.html
+++ b/site/_site/docs/distill/analytics.html
@@ -392,7 +392,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/api.html b/site/_site/docs/distill/api.html
index 92a8387..cff7575 100644
--- a/site/_site/docs/distill/api.html
+++ b/site/_site/docs/distill/api.html
@@ -323,7 +323,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/changelog.html b/site/_site/docs/distill/changelog.html
index 8afdf04..2399876 100644
--- a/site/_site/docs/distill/changelog.html
+++ b/site/_site/docs/distill/changelog.html
@@ -327,7 +327,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/http.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/http.html b/site/_site/docs/distill/http.html
index b764dad..980532f 100644
--- a/site/_site/docs/distill/http.html
+++ b/site/_site/docs/distill/http.html
@@ -626,7 +626,7 @@ testing/?stat<span class="o">=</span>terms&amp;elem<span class="o">=</span>signu
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/index.html b/site/_site/docs/distill/index.html
index 8a67206..6e0edfd 100644
--- a/site/_site/docs/distill/index.html
+++ b/site/_site/docs/distill/index.html
@@ -467,7 +467,7 @@ When the package is installed via easy_install or pip this function will be boun
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/models.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/models.html b/site/_site/docs/distill/models.html
index 650a869..e09004c 100644
--- a/site/_site/docs/distill/models.html
+++ b/site/_site/docs/distill/models.html
@@ -611,7 +611,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/start.html b/site/_site/docs/distill/start.html
index 9d50ec3..0fa950c 100644
--- a/site/_site/docs/distill/start.html
+++ b/site/_site/docs/distill/start.html
@@ -310,7 +310,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/distill/utilities.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/distill/utilities.html b/site/_site/docs/distill/utilities.html
index 4725c02..52b9c90 100644
--- a/site/_site/docs/distill/utilities.html
+++ b/site/_site/docs/distill/utilities.html
@@ -397,7 +397,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/index.html b/site/_site/docs/index.html
index d3c8f64..5fa2c46 100644
--- a/site/_site/docs/index.html
+++ b/site/_site/docs/index.html
@@ -300,7 +300,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/stout/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/stout/index.html b/site/_site/docs/stout/index.html
index aed0ede..a2c4bec 100644
--- a/site/_site/docs/stout/index.html
+++ b/site/_site/docs/stout/index.html
@@ -320,7 +320,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/stout/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/stout/start.html b/site/_site/docs/stout/start.html
index 86d84dc..6a17091 100644
--- a/site/_site/docs/stout/start.html
+++ b/site/_site/docs/stout/start.html
@@ -400,7 +400,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/system/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/system/index.html b/site/_site/docs/system/index.html
index 96f9c79..e2e1640 100644
--- a/site/_site/docs/system/index.html
+++ b/site/_site/docs/system/index.html
@@ -337,7 +337,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/tap/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/tap/index.html b/site/_site/docs/tap/index.html
index 305dc90..a3ece38 100644
--- a/site/_site/docs/tap/index.html
+++ b/site/_site/docs/tap/index.html
@@ -302,7 +302,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/userale/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/userale/index.html b/site/_site/docs/userale/index.html
index 8cd3468..96469a5 100644
--- a/site/_site/docs/userale/index.html
+++ b/site/_site/docs/userale/index.html
@@ -312,7 +312,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralejs/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/index.html b/site/_site/docs/useralejs/index.html
index 2adf48e..4fdcc39 100644
--- a/site/_site/docs/useralejs/index.html
+++ b/site/_site/docs/useralejs/index.html
@@ -382,7 +382,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralejs/testing.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/testing.html b/site/_site/docs/useralejs/testing.html
index d73d6fc..8449075 100644
--- a/site/_site/docs/useralejs/testing.html
+++ b/site/_site/docs/useralejs/testing.html
@@ -319,7 +319,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralejs/troubleshooting.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralejs/troubleshooting.html b/site/_site/docs/useralejs/troubleshooting.html
index 78e9aa3..88d4960 100644
--- a/site/_site/docs/useralejs/troubleshooting.html
+++ b/site/_site/docs/useralejs/troubleshooting.html
@@ -304,7 +304,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralepy/api.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/api.html b/site/_site/docs/useralepy/api.html
index 3fef1fc..34da6ab 100644
--- a/site/_site/docs/useralepy/api.html
+++ b/site/_site/docs/useralepy/api.html
@@ -580,7 +580,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralepy/changelog.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/changelog.html b/site/_site/docs/useralepy/changelog.html
index a6aacab..5f0dff0 100644
--- a/site/_site/docs/useralepy/changelog.html
+++ b/site/_site/docs/useralepy/changelog.html
@@ -367,7 +367,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralepy/index.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/index.html b/site/_site/docs/useralepy/index.html
index 12e5eec..ef1c2b2 100644
--- a/site/_site/docs/useralepy/index.html
+++ b/site/_site/docs/useralepy/index.html
@@ -411,7 +411,7 @@ When the package is installed via easy_install3 or pip3 this function will be bo
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/docs/useralepy/start.html
----------------------------------------------------------------------
diff --git a/site/_site/docs/useralepy/start.html b/site/_site/docs/useralepy/start.html
index bba039f..583e807 100644
--- a/site/_site/docs/useralepy/start.html
+++ b/site/_site/docs/useralepy/start.html
@@ -352,7 +352,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/feed.xml
----------------------------------------------------------------------
diff --git a/site/_site/feed.xml b/site/_site/feed.xml
index cd2d1d4..b9b560c 100644
--- a/site/_site/feed.xml
+++ b/site/_site/feed.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://senssoft.incubator.apache.org/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://senssoft.incubator.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="http://senssoft.incubator.apache.org/" rel="alternate" type="text/html" /><updated>2017-05-25T22:21:25+00:00</updated><id>http://senssoft.incubator.apache.org//</id><title type="html">Apache SensSoft</title><subtitle>The homepage for Apache SensSoft</subtitle></feed>
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://senssoft.incubator.apache.org/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://senssoft.incubator.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="http://senssoft.incubator.apache.org/" rel="alternate" type="text/html" /><updated>2018-03-09T19:13:44+00:00</updated><id>http://senssoft.incubator.apache.org//</id><title type="html">Apache SensSoft</title><subtitle>The homepage for Apache SensSoft</subtitle></feed>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/index.html
----------------------------------------------------------------------
diff --git a/site/_site/index.html b/site/_site/index.html
index a50f481..098f705 100644
--- a/site/_site/index.html
+++ b/site/_site/index.html
@@ -446,7 +446,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/releases/index.html
----------------------------------------------------------------------
diff --git a/site/_site/releases/index.html b/site/_site/releases/index.html
index 27a9152..e045955 100644
--- a/site/_site/releases/index.html
+++ b/site/_site/releases/index.html
@@ -68,16 +68,103 @@
   </h1>
   <div class="page-content">
     <p>
-  Apache SensSoft is currently preparing for its first full release.  Stay tuned and sign up for our mailing lists to keep up to date!
+  Below you can find the official SensSoft release distrbution artifacts. Older releases can be found at the <a heref="http://archive.apache.org/dist/incubator/senssoft/">Apache SensSoft Archives</a>.
+  
+  For ongoing development and future release announcements, stay tuned and sign up for our <a href="./community.html">mailing lists</a> to keep up to date!
+</p>
+
+<p>
+  Please Note all SensSoft artifacts are released as source code and binary artifacts and additional packages can be found on packaging platforms such as UserALE .js which we make available through <a href="https://www.npmjs.com/package/useralejs">the NPM useralejs package</a>. 
+
+  The CHANGELOG file shipped with each artifact can be consulted for more information on the list of updates in each release. 
+
+  SensSoft artifacts are always distributed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+</p>
+
+<h1>SensSoft UserALE.js</h1>
+
+Please note, that for convenience, we make UserALE .js available through <a href="https://www.npmjs.com/package/useralejs">the NPM useralejs package</a>.
+
+<h2>Downloads</h2>
+The link in the 'Download Artifact' column below should display a default mirror selection based on your inferred location. If (when you browse to it) you do not see that page, try a different browser. The SHA512 checksum and ASCII armoured detached signatures are links to the originals on the main distribution server.
+
+<table class="table">
+  <thead>
+  <tr>
+    <th align="left">Version</th> 
+    <th align="left">Download Artifact</th> 
+    <th align="left">ASCII signature</th>
+    <th align="left">SHA512 Checksum</th> 
+  </tr>
+  </thead>
+  <tbody>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0 (binary tar.gz)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz">apache-senssoft-useralejs-1.0.0-bin.tar.gz</a></td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz.asc">apache-senssoft-useralejs-1.0.0-bin.tar.gz.asc</a> </td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz.sha512">apache-senssoft-useralejs-1.0.0-bin.tar.gz.sha512</a> </td> 
+  </tr>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0(binary zip)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip">apache-senssoft-useralejs-1.0.0-bin.zip</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip.asc">apache-senssoft-useralejs-1.0.0-bin.zip.asc</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip.sha512">apache-senssoft-useralejs-1.0.0-bin.zip.sha512</a></td>
+  </tr>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0 (source tar.gz)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz">apache-senssoft-useralejs-1.0.0-src.tar.gz</a></td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz.asc">apache-senssoft-useralejs-1.0.0-src.tar.gz.asc</a> </td> 
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz.sha512">apache-senssoft-useralejs-1.0.0-src.tar.gz.sha512</a> </td> 
+  </tr>
+  <tr>
+    <td>Apache SensSoft UserALE.js 1.0.0(source zip)</td>
+    <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip">apache-senssoft-useralejs-1.0.0-src.zip</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip.asc">apache-senssoft-useralejs-1.0.0-src.zip.asc</a></td>
+    <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip.sha512">apache-senssoft-useralejs-1.0.0-src.zip.sha512</a></td>
+  </tr>
+  </tbody>
+</table>
+
+<h1>Verify Releases</h1>
+<p>
+	It is essential that you verify the integrity of the downloaded files using the PGP, and/or SHA signatures. published with every Gora release.
+
+	Please read <a href="http://httpd.apache.org/dev/verification.html">Verifying Apache HTTP Server Releases</a> for more information on why you should verify our releases.
+
+	We strongly recommend you verify your downloads with at least PGP. Guidance for doing so is provided below.
+</p>
+
+<h2>PGP Signatures</h2>
+<p>
+	The PGP signatures can be verified using PGP or GPG. First download the <a href="http://www.apache.org/dist/incubator/senssoft/KEYS">KEYS</a> as well as the asc signature file for the relevant distribution.
+
+	<b>N.B.</b> Make sure you get these files from the main distribution directory, rather than from a mirror. Then verify the signatures using the following example</p>
+
+<p>
+	<code>
+		$ gpg --import KEYS
+	</code>
+</p>
+<p>
+	<code>
+		$ gpg --verify apache-senssoft-useralejs-1.0.0-src.zip.asc
+	</code>
 </p>
 
-<a class="ui blue button" href="mailto:dev-subscribe@senssoft.incubator.apache.org">
-  Dev List
-</a>
-<a class="ui yellow button" href="mailto:users-subscribe@senssoft.incubator.apache.org">
-  User List
-</a>
+<p>
+	The files in the most recent release are signed by Lewis John McGibbney (CODE SIGNING KEY) lewismc@apache.org 48BAEBF6
+</p>
 
+<h2>SHA512 Signatures</h2>
+<p>
+	Alternatively, you can verify the SHA512 signatures on the files. A unix program called md5 or md5sum is included in many unix distributions. Use the following example
+</p>
+<p>
+	<code>$ sha512sum apache-senssoft-useralejs-1.0.0-src.zip</code>
+</p>
+<p>
+	... output should match the string in apache-senssoft-useralejs-1.0.0-src.zip.sha512
+</p>
   </div>
 </div>
 
@@ -138,7 +225,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/stout/index.html
----------------------------------------------------------------------
diff --git a/site/_site/stout/index.html b/site/_site/stout/index.html
index f40ff14..8b3d970 100644
--- a/site/_site/stout/index.html
+++ b/site/_site/stout/index.html
@@ -227,7 +227,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/system/index.html
----------------------------------------------------------------------
diff --git a/site/_site/system/index.html b/site/_site/system/index.html
index 24cd1c6..10e19be 100644
--- a/site/_site/system/index.html
+++ b/site/_site/system/index.html
@@ -209,7 +209,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/tap/index.html
----------------------------------------------------------------------
diff --git a/site/_site/tap/index.html b/site/_site/tap/index.html
index 0c72281..6e86bef 100644
--- a/site/_site/tap/index.html
+++ b/site/_site/tap/index.html
@@ -293,7 +293,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/609a0988/site/_site/userale/index.html
----------------------------------------------------------------------
diff --git a/site/_site/userale/index.html b/site/_site/userale/index.html
index 0ba9c5a..ecd7898 100644
--- a/site/_site/userale/index.html
+++ b/site/_site/userale/index.html
@@ -376,7 +376,7 @@
       <div class="center aligned column">
         <img class="component-image" src="/images/incubator-logo-white.png">
         <br>
-        © Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved., Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
+        Licensed under the Apache License, Version 2.0.  Apache, the Apache feather logo, and the Apache Incubator logo are trademarks of The Apache Software Foundation.  Software as a Sensor is a trademark of the Charles Stark Draper Laboratory, Inc.
       </div>
     </div>
   </div>


[27/40] incubator-senssoft git commit: Updated Docker instructions

Posted by le...@apache.org.
Updated Docker instructions


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/23dfae26
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/23dfae26
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/23dfae26

Branch: refs/heads/asf-site
Commit: 23dfae26cce2fb07f3a842a895c25f2eca55f857
Parents: b59bdd4
Author: msbeard <ms...@apache.org>
Authored: Thu Aug 24 13:58:16 2017 -0400
Committer: msbeard <ms...@apache.org>
Committed: Thu Aug 24 13:58:16 2017 -0400

----------------------------------------------------------------------
 docker/README.md | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/23dfae26/docker/README.md
----------------------------------------------------------------------
diff --git a/docker/README.md b/docker/README.md
index 186c1ec..2669bdb 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -1,29 +1,35 @@
 How to Build Docker Containers
 ------------------------------
 
-1. Install [``Docker``](http://docker.com)
-2. Install ``docker-compose``.
+1. Install [``Docker``](http://docker.com) on your machine.
+2. Install ``docker-compose`` in an virtual environment. Full instructions can be found [``here``](https://docs.docker.com/compose/install/).
     ```
     $ python3 -m venv env
     $ source env/bin/activate
     $ pip install docker-compose
     ```
-3. Build and run all ``Docker`` containers.
+3. Before launching the Docker containers, ensure your ``vm_max_map_count`` kernel setting is set to at least 262144.
+   Visit [``Running Elasticsearch in Production mode``](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html#docker-cli-run-prod-mode) for OS specific instructions.
+   ```
+   # For Linux systems
+   $ sysctl -w vm.max_map_count=262144
+   ```
+4. To build and run all ``Docker`` containers.
     ```
     $ docker-compose up -d
     ```
-4. Run a specific ``Docker`` container.
+5. To run a specific ``Docker`` container.
     ```
     $ docker-compose up -d site
     # Note: site container is instrumented w/ userale; all userale logs will be sent to the
     # elasticsearch docker container.
     ```
-5. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
+6. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
     ```sh
     http://localhost:5601
     ```
 
-6. Stop all the containers.
+7. Stop all the containers.
     ```sh
     $ docker-compose stop
     ```


[18/40] incubator-senssoft git commit: Added dockerignore file.

Posted by le...@apache.org.
Added dockerignore file.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/49ec9055
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/49ec9055
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/49ec9055

Branch: refs/heads/asf-site
Commit: 49ec9055fa9888ccbd1729b2df038452bca20ed9
Parents: c593cd0
Author: msb3399 <mb...@draper.com>
Authored: Thu May 25 18:25:40 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Thu May 25 18:25:40 2017 -0400

----------------------------------------------------------------------
 site/.dockerignore      |  5 +++++
 site/README.md          |  8 ++++----
 site/_site/CHANGELOG.md | 12 ------------
 site/_site/Dockerfile   | 26 --------------------------
 site/_site/README.md    | 16 ----------------
 site/_site/feed.xml     |  2 +-
 6 files changed, 10 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/49ec9055/site/.dockerignore
----------------------------------------------------------------------
diff --git a/site/.dockerignore b/site/.dockerignore
new file mode 100644
index 0000000..ff1c68d
--- /dev/null
+++ b/site/.dockerignore
@@ -0,0 +1,5 @@
+# comment
+*.md
+_site
+Dockerfile
+

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/49ec9055/site/README.md
----------------------------------------------------------------------
diff --git a/site/README.md b/site/README.md
index 9ea4930..461b23e 100644
--- a/site/README.md
+++ b/site/README.md
@@ -4,16 +4,16 @@ How to Build Site
 1. Download and Install [``Docker``](http://docker.com)
 2. Build site
     ```
-    docker build -t apache-site .
+    docker build -t senssoft:site .
     ```
 3. Deploy site on localhost:8000
     ```
-    docker run -p 8000:8000 -it apache-site python -m SimpleHTTPServer 
+    docker run -p 8000:8000 -it senssoft:site python -m SimpleHTTPServer 
     ```
 4. (Optional): To update the site, can copy the files from the container to _site.
     ```
     # First grab container id
-    docker inspect --format="{{.Id}}" apache-site
+    CID=$(docker create -p 8000:8000 -it senssoft:site python -m SimpleHTTPServer)
     # Reference container id to grab built contents
-    docker cp <container_id>:/app/_site .
+    docker cp $CID:/app/_site .
     ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/49ec9055/site/_site/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/site/_site/CHANGELOG.md b/site/_site/CHANGELOG.md
deleted file mode 100644
index d97729f..0000000
--- a/site/_site/CHANGELOG.md
+++ /dev/null
@@ -1,12 +0,0 @@
-CHANGELOG
----------
-
-### 1.0.1 (2017-05-25)
-- Updated contributing guide
-- Fixed broken links
-- Added Dockerfile to show how to build site
-- Added README and CHANGELOG
-- Updated UserALE.pyqt5 name to UserALE.py
-
-### 1.0.0 (2017-01-12)
-- Initial commit.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/49ec9055/site/_site/Dockerfile
----------------------------------------------------------------------
diff --git a/site/_site/Dockerfile b/site/_site/Dockerfile
deleted file mode 100644
index d7d3628..0000000
--- a/site/_site/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-FROM starefossen/ruby-node
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Cache bundle
-COPY Gemfile* /tmp/
-WORKDIR /tmp
-RUN bundle install
-
-ENV app /app
-
-# Install npm modules
-COPY package.json /tmp/
-WORKDIR /tmp
-RUN npm install -g
-
-# Add src code
-RUN mkdir $app
-WORKDIR $app
-ADD . $app
-
-# Jekyll buld
-RUN jekyll build
-
-WORKDIR $app/_site
-
-EXPOSE 8000
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/49ec9055/site/_site/README.md
----------------------------------------------------------------------
diff --git a/site/_site/README.md b/site/_site/README.md
deleted file mode 100644
index 2f9e68a..0000000
--- a/site/_site/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-How to Build Site
------------------
-
-1. Download and Install [``Docker``](http://docker.com)
-2. Build site
-    ```
-    docker build -t apache-site .
-    ```
-3. Deploy site on localhost:8000
-    ```
-    docker run -p 8000:8000 -it apache-site python -m SimpleHTTPServer 
-    ```
-4. (Optional): To update the site, can copy the files from the container to _site.
-    ```
-    docker 
-    ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/49ec9055/site/_site/feed.xml
----------------------------------------------------------------------
diff --git a/site/_site/feed.xml b/site/_site/feed.xml
index 91e1225..cd2d1d4 100644
--- a/site/_site/feed.xml
+++ b/site/_site/feed.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://senssoft.incubator.apache.org/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://senssoft.incubator.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="http://senssoft.incubator.apache.org/" rel="alternate" type="text/html" /><updated>2017-05-25T21:38:16+00:00</updated><id>http://senssoft.incubator.apache.org//</id><title type="html">Apache SensSoft</title><subtitle>The homepage for Apache SensSoft</subtitle></feed>
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="http://senssoft.incubator.apache.org/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="http://senssoft.incubator.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="http://senssoft.incubator.apache.org/" rel="alternate" type="text/html" /><updated>2017-05-25T22:21:25+00:00</updated><id>http://senssoft.incubator.apache.org//</id><title type="html">Apache SensSoft</title><subtitle>The homepage for Apache SensSoft</subtitle></feed>


[38/40] incubator-senssoft git commit: Fixed bug in logstash dockerfile. Need to set ELASTICSEARCH_URL by environment variable

Posted by le...@apache.org.
Fixed bug in logstash dockerfile. Need to set ELASTICSEARCH_URL by environment variable


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/6cdd5ce6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/6cdd5ce6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/6cdd5ce6

Branch: refs/heads/asf-site
Commit: 6cdd5ce62cbf32c6efe0a02adcd10fe4e02018dc
Parents: 0d3dee4
Author: msbeard <ms...@apache.org>
Authored: Tue Jan 30 16:19:13 2018 -0500
Committer: msbeard <ms...@apache.org>
Committed: Tue Jan 30 16:19:13 2018 -0500

----------------------------------------------------------------------
 docker/docker-compose.yml                    | 2 ++
 docker/logstash/config/logstash-userale.conf | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6cdd5ce6/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 7d4b199..d2b5ca6 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -113,6 +113,8 @@ services:
     build: ./logstash
     image: senssoft.incubator.apache.org/logstash:5.6.3
     container_name: senssoft-logstash
+    environment:
+      - "ELASTICSEARCH_URL=loadbalancer:9200"
     command: -f /etc/logstash/conf.d
     ports:
       - 8100:8100

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6cdd5ce6/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index cbe8b8c..4af6ee7 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -39,7 +39,7 @@ filter {
 output {
 	# Output data to Elasticsearch instance
 	elasticsearch {
-		hosts => "loadbalancer:9200"
+		hosts => "${ELASTICSEARCH_URL}"
 		index => "userale"
 		document_type => "logs"
 		manage_template => true


[31/40] incubator-senssoft git commit: Pushed huge update on SensSoft docker deployments. Upgraded to docker-compose version 3.

Posted by le...@apache.org.
Pushed huge update on SensSoft docker deployments. Upgraded to docker-compose version 3.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/c3aa251d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/c3aa251d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/c3aa251d

Branch: refs/heads/asf-site
Commit: c3aa251dfbee2753d0750de109fdf2284b1c8470
Parents: 87d7e09
Author: msbeard <ms...@apache.org>
Authored: Wed Nov 1 17:47:27 2017 -0400
Committer: msbeard <ms...@apache.org>
Committed: Wed Nov 1 17:47:27 2017 -0400

----------------------------------------------------------------------
 docker/README.md                              | 155 ++++++++++++++++----
 docker/docker-compose.yml                     | 157 +++++++++++----------
 docker/elasticsearch/Dockerfile               |  27 ++++
 docker/elasticsearch/config/elasticsearch.yml |  48 +++++++
 docker/elasticsearch/config/log4j2.properties |  24 ++++
 docker/es/elasticsearch.yml                   | 114 ---------------
 docker/images/configure_index.png             | Bin 0 -> 116678 bytes
 docker/images/confirmation.png                | Bin 0 -> 158876 bytes
 docker/images/dashboard.png                   | Bin 0 -> 172635 bytes
 docker/images/management.png                  | Bin 0 -> 60954 bytes
 docker/kibana/Dockerfile                      |  23 +++
 docker/kibana/config/kibana.yml               |  18 +++
 docker/kibana/dashboard.json                  |  21 +--
 docker/kibana/visualizations.json             |  58 ++++++++
 docker/logstash/Dockerfile                    |   9 +-
 docker/logstash/config/logstash-userale.conf  |   2 +-
 docker/requirements.txt                       |   1 +
 docker/startup/entrypoint.sh                  |   3 +-
 18 files changed, 426 insertions(+), 234 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/README.md
----------------------------------------------------------------------
diff --git a/docker/README.md b/docker/README.md
index 2669bdb..f9d395a 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -1,35 +1,140 @@
-How to Build Docker Containers
-------------------------------
+How to Build SensSoft Docker Containers
+---------------------------------------
 
 1. Install [``Docker``](http://docker.com) on your machine.
-2. Install ``docker-compose`` in an virtual environment. Full instructions can be found [``here``](https://docs.docker.com/compose/install/).
-    ```
-    $ python3 -m venv env
-    $ source env/bin/activate
-    $ pip install docker-compose
-    ```
-3. Before launching the Docker containers, ensure your ``vm_max_map_count`` kernel setting is set to at least 262144.
-   Visit [``Running Elasticsearch in Production mode``](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html#docker-cli-run-prod-mode) for OS specific instructions.
+
+1. Install ``docker-compose`` in an virtual environment. 
+   Full instructions can be found [``here``](https://docs.docker.com/compose/install/).
+   
+   ```bash
+   $ python3 -m venv env
+   $ source env/bin/activate
+   $ pip install -r requirements.txt
    ```
-   # For Linux systems
+
+1. Before launching the Docker containers, ensure your ``vm_max_map_count`` 
+   kernel setting is set to at least 262144.
+   Visit [``Running Elasticsearch in Production mode``](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/docker.html#docker-cli-run-prod-mode) for OS specific instructions.
+   
+   ```bash
+   # Example for Linux systems
    $ sysctl -w vm.max_map_count=262144
    ```
-4. To build and run all ``Docker`` containers.
-    ```
-    $ docker-compose up -d
-    ```
-5. To run a specific ``Docker`` container.
-    ```
-    $ docker-compose up -d site
-    # Note: site container is instrumented w/ userale; all userale logs will be sent to the
-    # elasticsearch docker container.
-    ```
-6. Verify the deployment by navigating to ``Kibana`` in your favorite browser.
-    ```sh
-    http://localhost:5601
+
+1. Start Elasticsearch cluster:
+    
+    ```bash
+    $ docker-compose up -d elasticsearch loadbalancer
     ```
+    
+    The loadbalancer node exposes port 9200 on localhost and is the only node 
+    that has HTTP enabled. Services such as Kibana and Logstash connect to the 
+    loadbalancer node directly. Loadbalancer accepts requests from Kibana and Logstash 
+    and balances them across the elasticsearch worker nodes. The elasticsearch 
+    worker nodes communicate to each other and the loadbalancer via TCP on port 9300. 
+
+1. Once Elasticsearch cluster is fully started, scale out elasticsearch service:
+   ```bash
+   $ docker-compose up --scale elasticsearch=3
+   ```
+    
+1. Confirm cluster state:
+   ```bash
+   $ curl -XGET http://localhost:9200/_cluster/health?pretty
+    {
+     "cluster_name" : "SensSoft",
+     "status" : "green",
+     "timed_out" : false,
+     "number_of_nodes" : 4,
+     "number_of_data_nodes" : 3,
+     "active_primary_shards" : 0,
+     "active_shards" : 0,
+     "relocating_shards" : 0,
+     "initializing_shards" : 0,
+     "unassigned_shards" : 0,
+     "delayed_unassigned_shards" : 0,
+     "number_of_pending_tasks" : 0,
+     "number_of_in_flight_fetch" : 0,
+     "task_max_waiting_in_queue_millis" : 0,
+     "active_shards_percent_as_number" : 100.0
+   }
+   ```
+   Confirm that the `number_of_nodes` is 4 and `number_of_data_nodes` is 3.
+ 
+1. Launch logging server. Give Logstash about 2 minutes to start before confirming 
+   its state.
+  
+   ```bash
+   $ docker-compose up -d logstash
+   
+   $ curl -XGET http://localhost:8100 
+   ok
+   ```
+   
+1. Before Kibana can be used, we will need to generate some data. We have already 
+   provided an example instrumented website to assist.
+   
+   ```bash
+   $ docker-compose up -d site
+   ```
+
+   Visit `http://localhost:8080` and you will see Apache SensSoft's home page.
+   
+1. Launch Kibana. Give Kibana about 2-5 minutes to start before accessing
+   `http://localhost:5601`. 
+   
+   ```bash
+   $ docker-compose up -d kibana
+   ```
+
+1. Register an index in Kibana to see the logs:
+
+   Goto: Management -> Index Patterns and enter `userale` in the Index pattern box.
+   Choose `clientTime` in the drop down `Time Filter field name` field.
+  
+   ![alt text][configure_index]
+   
+1. Load example Dashboard and Visualizations under docker/kibana/.
+
+   Goto: Management -> Saved Objects and select the `Import` button. Import the
+   `visualizations.json` and `dashboard.json` file.
+
+   ![alt text][management]
 
-7. Stop all the containers.
+   Confirm index conflicts if message appears. 
+   
+   ![alt text][confirmation]
+   
+   Once that is complete, navigate to the `Dashboard` view in Kibana and click the
+   `Apache SensSoft Dashboard` object. 
+
+   ![alt text][dashboard]
+
+1. To stop all containers.
     ```sh
     $ docker-compose stop
     ```
+ 
+Having Issues?
+--------------
+1. Check out the docker-compose logs for the service(s) that are having issues.
+
+   ```bash
+   $ docker-compose ps 
+   ```
+1. Make sure to send us the docker-compose logs to help diagnose your issues please!
+   
+   ```bash
+   $ docker-compose logs > err.dump 
+   ```
+
+Todo
+---- 
+- [ ] TAP docker deployment instructions.
+- [ ] Distill docker deployment instructions. 
+- [ ] Apache SensSoft Docker + Kubernetes instructions.
+
+[configure_index]: ./images/configure_index.png "Configure Kibana index"
+[confirmation]: ./images/confirmation.png "Confirm index pattern conflicts"
+[dashboard]: ./images/dashboard.png "Apache Senssoft Dashboard"
+[management]: ./images/management.png "Kibana management console"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index fc14c1c..17b1106 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -15,131 +15,140 @@
 
 # Apache SensSoft Docker Build
 
-version: "2"
+version: "3"
 services:
 
   # Startup
   startup:
     build: ./startup
+    image: senssoft.incubator.apache.org/startup:latest
     container_name: senssoft-start
     depends_on:
-      - "elasticsearch1"
-      - "elasticsearch2"
+      - "loadbalancer"
     command: bash /opt/entrypoint.sh
 
   # Site
   site:
     build: ./site
+    image: senssoft.incubator.apache.org/website:latest
     container_name: senssoft-app
     ports:
       - 8080:8080
     depends_on:
-      - "userale-forwarder"
+      - "logstash"
     command: python -m SimpleHTTPServer 8080
-    # networks:
-    #   - esnet
 
-  # ELK Stack
-
-  # The node elasticsearch1 listens on localhost:9200 while elasticsearch2 
-  # talks to elasticsearch1 over a Docker network.
-  elasticsearch1:
-    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
-    container_name: senssoft-elastic-1
+  # Elasticsearch Workers
+  elasticsearch:
+    build: ./elasticsearch
+    image: senssoft.incubator.apache.org/elasticsearch:5.6.3
+    command:
+      - /bin/sh
+      - -c
+      - |
+          elasticsearch-plugin remove --silent x-pack
+          elasticsearch
     environment:
-      - cluster.name=SensSoft
-      - node.name=soft-01
-      - bootstrap.memory_lock=true
-      - xpack.security.enabled=false
+      - NODE_MASTER=true
+      - NUMBER_OF_MASTERS=2
+      - NODE_COORDINATE=true
+      - "DISCOVERY_SERVICE=elasticsearch"
+      - NODE_DATA=true
+      - NODE_INGEST=true
+      - MAX_LOCAL_STORAGE_NODES=1
+      - NETWORK_HOST=0.0.0.0
+      - HTTP_ENABLE=false
+      - HTTP_CORS_ENABLE=false
+      - HTTP_CORS_ALLOW_ORIGIN=*
       - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    mem_limit: 1g
-    volumes:
-      - esdata1:/usr/share/elasticsearch/data
-    ports:
-      - 9200:9200
-    # networks:
-    #   - esnet
+    networks:
+      - esnet
 
-  elasticsearch2:
-    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
-    container_name: senssoft-elastic-2
+  # Elasticsearch Loadbalancer
+  loadbalancer:
+    build: ./elasticsearch
+    image: senssoft.incubator.apache.org/elasticsearch:5.6.3
+    container_name: senssoft-loadbalancer
+    command:
+      - /bin/sh
+      - -c
+      - |
+          elasticsearch-plugin remove --silent x-pack
+          elasticsearch
     environment:
-      - cluster.name=SensSoft
-      - node.name=soft-02
-      - bootstrap.memory_lock=true
-      - xpack.security.enabled=false
+      - NODE_MASTER=false
+      - NUMBER_OF_MASTERS=1
+      - NODE_COORDINATE=true
+      - "DISCOVERY_SERVICE=elasticsearch"
+      - NODE_DATA=false
+      - NODE_INGEST=false
+      - MAX_LOCAL_STORAGE_NODES=1
+      - NETWORK_HOST=0.0.0.0
+      - HTTP_ENABLE=true
+      - HTTP_CORS_ENABLE=true
+      - HTTP_CORS_ALLOW_ORIGIN=*
       - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-      - "discovery.zen.ping.unicast.hosts=elasticsearch1"
-    ulimits:
-      memlock:
-        soft: -1
-        hard: -1
-    mem_limit: 1g
-    volumes:
-      - esdata2:/usr/share/elasticsearch/data
-    # networks:
-    #   - esnet
+    ports:
+      - "9200:9200"
+      - "9300"
+    networks:
+      - esnet
 
   # Kibana
   kibana:
-    image: docker.elastic.co/kibana/kibana:5.5.0
+    build: ./kibana
+    image: senssoft.incubator.apache.org/kibana:5.6.3
     container_name: senssoft-kibana
+    environment:
+      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
     ports:
-      - 5601:5601
+      - "5601:5601"
     depends_on:
-      - "elasticsearch1"
-      - "elasticsearch2"
-      - "startup"
-    environment:
-      XPACK_MONITORING_ENABLED: "false"
-      ELASTICSEARCH_URL: http://elasticsearch1:9200
-    # networks:
-    #   - esnet
+      - "loadbalancer"
+    networks:
+      - esnet
 
   # Logstash
-  userale-forwarder:
+  logstash:
     build: ./logstash
-    container_name: senssoft-userale-forwarder
+    image: senssoft.incubator.apache.org/logstash:5.6.3
+    container_name: senssoft-logstash
     command: -f /etc/logstash/conf.d
     ports:
       - 8100:8100
-    volumes: 
+    volumes:
       - ./logstash/config/logstash-userale.conf:/etc/logstash/conf.d/logstash-userale.conf
       - ./logstash/templates/userale.json:/usr/share/logstash/templates/userale.json
     depends_on:
-      - "elasticsearch1"
-      - "elasticsearch2"
-    environment:
-      XPACK_MONITORING_ENABLED: "false"
-    # networks:
-    #   - esnet
+      - "loadbalancer"
+    networks:
+      - esnet
 
   # Distill
   distill:
     build: ./distill
+    image: senssoft.incubator.apache.org/distill:0.1.0
     container_name: senssoft-distill
     ports:
       - 8090:8090
     depends_on:
-      - "elasticsearch1"
-    # networks:
-    #   - esnet
+      - "loadbalancer"
+    networks:
+      - esnet
 
   # TAP's Database
   db:
-    container_name: senssoft-db
     build: ./db
+    image: senssoft.incubator.apache.org/postgres:latest
+    container_name: senssoft-postgres
     ports:
       - "5432:5432"
 
   # TAP
   tap:
-    container_name: senssoft-tap
     build: ./tap
+    image: senssoft.incubator.apache.org/tap:0.1.0
+    container_name: senssoft-tap
     # command: ["bash", "./wait-for-postgres.sh"]
     command: bash -c "/usr/src/app/wait-for-postgres.sh"
     ports:
@@ -149,11 +158,7 @@ services:
     links:
       - db:db
 
-volumes:
-  esdata1:
-    driver: local
-  esdata2:
-    driver: local
+networks:
 
-# networks:
-#   esnet: 
+  esnet:
+    driver: bridge

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/elasticsearch/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/elasticsearch/Dockerfile b/docker/elasticsearch/Dockerfile
new file mode 100644
index 0000000..7cdbae7
--- /dev/null
+++ b/docker/elasticsearch/Dockerfile
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM docker.elastic.co/elasticsearch/elasticsearch:5.6.3
+
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Override config
+COPY config /usr/share/elasticsearch/config
+
+# Set environment
+ENV CLUSTER_NAME SensSoft
+
+# Kubernetes requires swap is turned off
+ENV MEMORY_LOCK false

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/elasticsearch/config/elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/elasticsearch/config/elasticsearch.yml b/docker/elasticsearch/config/elasticsearch.yml
new file mode 100644
index 0000000..ca31f63
--- /dev/null
+++ b/docker/elasticsearch/config/elasticsearch.yml
@@ -0,0 +1,48 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cluster:
+  name: ${CLUSTER_NAME}
+
+node:
+  master: ${NODE_MASTER}
+  data: ${NODE_DATA}
+  #name: ${NODE_NAME}
+  ingest: ${NODE_INGEST}
+  max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES}
+
+network.host: ${NETWORK_HOST}
+
+search.remote.connect: ${NODE_COORDINATE}
+
+path:
+  data: /usr/share/elasticsearch/data
+  logs: /usr/share/elasticsearch/log
+
+bootstrap:
+  memory_lock: ${MEMORY_LOCK}
+
+http:
+  enabled: ${HTTP_ENABLE}
+  compression: true
+  cors:
+    enabled: ${HTTP_CORS_ENABLE}
+    allow-origin: ${HTTP_CORS_ALLOW_ORIGIN}
+
+# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
+discovery:
+  zen:
+    ping.unicast.hosts: ${DISCOVERY_SERVICE}
+    minimum_master_nodes: ${NUMBER_OF_MASTERS}

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/elasticsearch/config/log4j2.properties
----------------------------------------------------------------------
diff --git a/docker/elasticsearch/config/log4j2.properties b/docker/elasticsearch/config/log4j2.properties
new file mode 100644
index 0000000..7f7817d
--- /dev/null
+++ b/docker/elasticsearch/config/log4j2.properties
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+status = error
+
+appender.console.type = Console
+appender.console.name = console
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
+
+rootLogger.level = info
+rootLogger.appenderRef.console.ref = console
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/es/elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/es/elasticsearch.yml b/docker/es/elasticsearch.yml
deleted file mode 100644
index 5e0c014..0000000
--- a/docker/es/elasticsearch.yml
+++ /dev/null
@@ -1,114 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ======================== Elasticsearch Configuration =========================
-#
-# NOTE: Elasticsearch comes with reasonable defaults for most settings.
-#       Before you set out to tweak and tune the configuration, make sure you
-#       understand what are you trying to accomplish and the consequences.
-#
-# The primary way of configuring a node is via this file. This template lists
-# the most important settings you may want to configure for a production cluster.
-#
-# Please see the documentation for further information on configuration options:
-# <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
-#
-# ---------------------------------- Cluster -----------------------------------
-#
-# Use a descriptive name for your cluster:
-#
-cluster.name: SensSoft
-#
-# ------------------------------------ Node ------------------------------------
-#
-# Use a descriptive name for the node:
-#
-node.name: soft-01
-#
-# Add custom attributes to the node:
-#
-# node.rack: r1
-#
-# ----------------------------------- Paths ------------------------------------
-#
-# Path to directory where to store the data (separate multiple locations by comma):
-#
-path.data: /usr/share/elasticsearch/data
-#
-# Path to log files:
-#
-path.logs: /usr/share/elasticsearch/logs
-#
-#
-# ----------------------------------- Memory -----------------------------------
-#
-# Lock the memory on startup:
-#
-# bootstrap.mlockall: true
-#
-# Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory
-# available on the system and that the owner of the process is allowed to use this limit.
-#
-# Elasticsearch performs poorly when the system is swapping the memory.
-#
-# ---------------------------------- Network -----------------------------------
-#
-# Set the bind address to a specific IP (IPv4 or IPv6):
-#
-network.host: 0.0.0.0
-#
-# Set a custom port for HTTP:
-#
-# http.port: 9200
-#
-# For more information, see the documentation at:
-# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
-#
-# --------------------------------- Discovery ----------------------------------
-#
-# Pass an initial list of hosts to perform discovery when new node is started:
-# The default list of hosts is ["127.0.0.1", "[::1]"]
-#
-# discovery.zen.ping.unicast.hosts: ["host1", "host2"]
-#
-# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
-#
-discovery.zen.minimum_master_nodes: 1
-#
-# For more information, see the documentation at:
-# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
-#
-# ---------------------------------- Gateway -----------------------------------
-#
-# Block initial recovery after a full cluster restart until N nodes are started:
-#
-# gateway.recover_after_nodes: 3
-#
-# For more information, see the documentation at:
-# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
-#
-# ---------------------------------- Various -----------------------------------
-#
-# Disable starting multiple nodes on a single system:
-#
-# node.max_local_storage_nodes: 1
-#
-# Require explicit names when deleting indices:
-#
-# action.destructive_requires_name: true
-
-http.cors.enabled: true
-http.cors.allow-origin: "*"
-xpack.security.enabled: false
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/images/configure_index.png
----------------------------------------------------------------------
diff --git a/docker/images/configure_index.png b/docker/images/configure_index.png
new file mode 100644
index 0000000..31ebe02
Binary files /dev/null and b/docker/images/configure_index.png differ

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/images/confirmation.png
----------------------------------------------------------------------
diff --git a/docker/images/confirmation.png b/docker/images/confirmation.png
new file mode 100644
index 0000000..467b4d4
Binary files /dev/null and b/docker/images/confirmation.png differ

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/images/dashboard.png
----------------------------------------------------------------------
diff --git a/docker/images/dashboard.png b/docker/images/dashboard.png
new file mode 100644
index 0000000..7123c9e
Binary files /dev/null and b/docker/images/dashboard.png differ

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/images/management.png
----------------------------------------------------------------------
diff --git a/docker/images/management.png b/docker/images/management.png
new file mode 100644
index 0000000..90a26ae
Binary files /dev/null and b/docker/images/management.png differ

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/kibana/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/kibana/Dockerfile b/docker/kibana/Dockerfile
new file mode 100644
index 0000000..894fd53
--- /dev/null
+++ b/docker/kibana/Dockerfile
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM docker.elastic.co/kibana/kibana:5.6.3
+
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Override config
+COPY config /usr/share/kibana/config
+
+RUN kibana-plugin remove x-pack

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/kibana/config/kibana.yml
----------------------------------------------------------------------
diff --git a/docker/kibana/config/kibana.yml b/docker/kibana/config/kibana.yml
new file mode 100644
index 0000000..20f2999
--- /dev/null
+++ b/docker/kibana/config/kibana.yml
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+server.name: kibana
+server.host: "0"
+elasticsearch.url: http://loadbalancer:9200

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/kibana/dashboard.json
----------------------------------------------------------------------
diff --git a/docker/kibana/dashboard.json b/docker/kibana/dashboard.json
index d1922d9..8a179a6 100644
--- a/docker/kibana/dashboard.json
+++ b/docker/kibana/dashboard.json
@@ -1,25 +1,18 @@
 [
   {
-    "_id": "6e6b6380-3673-11e7-b2f7-0b10e220d9ac",
+    "_id": "513c8680-be7d-11e7-8adf-fd0a12531eca",
     "_type": "dashboard",
     "_source": {
-      "title": "Apache UserALE Monitor",
+      "title": "Apache SensSoft Dashboard",
       "hits": 0,
-      "description": "Example Kibana Dashboard",
-      "panelsJSON": "[\n  {\n    \"size_x\": 9,\n    \"size_y\": 4,\n    \"panelIndex\": 1,\n    \"type\": \"visualization\",\n    \"id\": \"49fa7860-3673-11e7-b2f7-0b10e220d9ac\",\n    \"col\": 4,\n    \"row\": 4\n  },\n  {\n    \"size_x\": 3,\n    \"size_y\": 3,\n    \"panelIndex\": 2,\n    \"type\": \"visualization\",\n    \"id\": \"6e55ca90-3671-11e7-b2f7-0b10e220d9ac\",\n    \"col\": 1,\n    \"row\": 4\n  },\n  {\n    \"size_x\": 5,\n    \"size_y\": 3,\n    \"panelIndex\": 3,\n    \"type\": \"visualization\",\n    \"id\": \"ef62c4e0-3684-11e7-9c77-0135be018b90\",\n    \"col\": 1,\n    \"row\": 1\n  },\n  {\n    \"size_x\": 7,\n    \"size_y\": 3,\n    \"panelIndex\": 4,\n    \"type\": \"visualization\",\n    \"id\": \"7ee8abd0-3684-11e7-9c77-0135be018b90\",\n    \"col\": 6,\n    \"row\": 1\n  }\n]",
-      "optionsJSON": "{\n  \"darkTheme\": false\n}",
+      "description": "",
+      "panelsJSON": "[{\"size_x\":6,\"size_y\":5,\"panelIndex\":1,\"type\":\"visualization\",\"id\":\"2bf40010-be7d-11e7-8adf-fd0a12531eca\",\"col\":1,\"row\":4},{\"size_x\":6,\"size_y\":3,\"panelIndex\":2,\"type\":\"visualization\",\"id\":\"f7ca4560-be7c-11e7-8adf-fd0a12531eca\",\"col\":7,\"row\":1},{\"size_x\":6,\"size_y\":3,\"panelIndex\":3,\"type\":\"visualization\",\"id\":\"bcd7c950-be7c-11e7-8adf-fd0a12531eca\",\"col\":7,\"row\":4},{\"size_x\":6,\"size_y\":3,\"panelIndex\":4,\"type\":\"visualization\",\"id\":\"e36b1f40-be7c-11e7-8adf-fd0a12531eca\",\"col\":1,\"row\":1}]",
+      "optionsJSON": "{\"darkTheme\":true}",
       "uiStateJSON": "{}",
       "version": 1,
-      "timeRestore": true,
-      "timeTo": "now",
-      "timeFrom": "now-15m",
-      "refreshInterval": {
-        "display": "Off",
-        "pause": false,
-        "value": 0
-      },
+      "timeRestore": false,
       "kibanaSavedObjectMeta": {
-        "searchSourceJSON": "{\n  \"filter\": [\n    {\n      \"query\": {\n        \"query_string\": {\n          \"query\": \"*\",\n          \"analyze_wildcard\": true\n        }\n      }\n    }\n  ],\n  \"highlightAll\": true,\n  \"version\": true\n}"
+        "searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}}}],\"highlightAll\":true,\"version\":true}"
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/kibana/visualizations.json
----------------------------------------------------------------------
diff --git a/docker/kibana/visualizations.json b/docker/kibana/visualizations.json
new file mode 100644
index 0000000..7052384
--- /dev/null
+++ b/docker/kibana/visualizations.json
@@ -0,0 +1,58 @@
+[
+  {
+    "_id": "bcd7c950-be7c-11e7-8adf-fd0a12531eca",
+    "_type": "visualization",
+    "_source": {
+      "title": "Top Event Types",
+      "visState": "{\"title\":\"Top Event Types\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Top Event Types\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event types\"}}],\"listeners\":{}}",
+      "uiStateJSON": "{}",
+      "description": "",
+      "version": 1,
+      "kibanaSavedObjectMeta": {
+        "searchSourceJSON": "{\"index\":\"userale\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
+      }
+    }
+  },
+  {
+    "_id": "e36b1f40-be7c-11e7-8adf-fd0a12531eca",
+    "_type": "visualization",
+    "_source": {
+      "title": "Total Number of Logs",
+      "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total number of logs\"}}],\"listeners\":{}}",
+      "uiStateJSON": "{}",
+      "description": "",
+      "version": 1,
+      "kibanaSavedObjectMeta": {
+        "searchSourceJSON": "{\"index\":\"userale\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
+      }
+    }
+  },
+  {
+    "_id": "f7ca4560-be7c-11e7-8adf-fd0a12531eca",
+    "_type": "visualization",
+    "_source": {
+      "title": "Time Series",
+      "visState": "{\"title\":\"Time Series\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(*)\",\"interval\":\"auto\"},\"aggs\":[],\"listeners\":{}}",
+      "uiStateJSON": "{}",
+      "description": "",
+      "version": 1,
+      "kibanaSavedObjectMeta": {
+        "searchSourceJSON": "{\"query\":{\"query_string\":{\"query\":\"*\"}},\"filter\":[]}"
+      }
+    }
+  },
+  {
+    "_id": "2bf40010-be7d-11e7-8adf-fd0a12531eca",
+    "_type": "visualization",
+    "_source": {
+      "title": "Events by Targets",
+      "visState": "{\"title\":\"Events by Targets\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"HTML Tags\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxi
 s-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"value\"}]},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"target\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"HTML Tags\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"type\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"JS Events\"}}],\"listeners\":{}}",
+      "uiStateJSON": "{}",
+      "description": "",
+      "version": 1,
+      "kibanaSavedObjectMeta": {
+        "searchSourceJSON": "{\"index\":\"userale\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
+      }
+    }
+  }
+]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/logstash/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/logstash/Dockerfile b/docker/logstash/Dockerfile
index 776f935..6aebb9e 100644
--- a/docker/logstash/Dockerfile
+++ b/docker/logstash/Dockerfile
@@ -13,7 +13,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM docker.elastic.co/logstash/logstash:5.5.0
+FROM docker.elastic.co/logstash/logstash:5.6.3
 MAINTAINER Michelle Beard <ms...@apache.org>
 
-RUN mkdir /usr/share/logstash/templates
\ No newline at end of file
+RUN mkdir /usr/share/logstash/templates
+
+RUN logstash-plugin remove x-pack
+
+# Known issue: https://github.com/elastic/logstash-docker/issues/45
+RUN sed -i '/xpack/d' /usr/share/logstash/config/logstash.yml

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index a16c434..cbe8b8c 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -39,7 +39,7 @@ filter {
 output {
 	# Output data to Elasticsearch instance
 	elasticsearch {
-		hosts => "elasticsearch1:9200"
+		hosts => "loadbalancer:9200"
 		index => "userale"
 		document_type => "logs"
 		manage_template => true

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/requirements.txt
----------------------------------------------------------------------
diff --git a/docker/requirements.txt b/docker/requirements.txt
new file mode 100644
index 0000000..6094def
--- /dev/null
+++ b/docker/requirements.txt
@@ -0,0 +1 @@
+docker-compose==1.16.1

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c3aa251d/docker/startup/entrypoint.sh
----------------------------------------------------------------------
diff --git a/docker/startup/entrypoint.sh b/docker/startup/entrypoint.sh
index 00953e6..c33a63b 100644
--- a/docker/startup/entrypoint.sh
+++ b/docker/startup/entrypoint.sh
@@ -17,5 +17,4 @@
 
 # Wait for the Elasticsearch container to be ready before starting Kibana.
 echo "Stalling for Elasticsearch"
-dockerize -wait http://elasticsearch1:9200 
-dockerize -wait http://elasticsearch2:9200
\ No newline at end of file
+dockerize -wait http://loadbalancer:9200



[11/40] incubator-senssoft git commit: Cleaned up docker. Removed distill source code. Simplfied ELK deployment. Added init process to launch Kibana once Elasticsearch is online. Added LICENSE headers.

Posted by le...@apache.org.
Cleaned up docker. Removed distill source code. Simplfied ELK deployment. Added init process to launch Kibana once Elasticsearch is online. Added LICENSE headers.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/731fb44b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/731fb44b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/731fb44b

Branch: refs/heads/asf-site
Commit: 731fb44b57579167235817459d9f5f81c26e7398
Parents: 93d96dc
Author: msb3399 <mb...@draper.com>
Authored: Wed May 3 09:55:29 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Wed May 3 09:55:29 2017 -0400

----------------------------------------------------------------------
 LICENSE                                         | 201 ++++++++++++++++
 docker/distill/distill.conf                     |  29 ---
 docker/distill/distill/__init__.py              |  45 ----
 docker/distill/distill/algorithms/__init__.py   |  14 --
 .../distill/algorithms/graphs/__init__.py       |  14 --
 .../distill/distill/algorithms/graphs/graph.py  |  24 --
 .../distill/algorithms/graphs/tests/__init__.py |  22 --
 .../distill/algorithms/stats/__init__.py        |  14 --
 docker/distill/distill/algorithms/stats/hist.py | 183 ---------------
 .../distill/algorithms/stats/tests/__init__.py  |  22 --
 .../distill/algorithms/tests/__init__.py        |  14 --
 docker/distill/distill/app.py                   | 216 -----------------
 docker/distill/distill/config.cfg               |  57 -----
 docker/distill/distill/models/__init__.py       |  14 --
 docker/distill/distill/models/brew.py           | 235 -------------------
 docker/distill/distill/models/stout.py          | 149 ------------
 docker/distill/distill/models/tests/__init__.py |  22 --
 docker/distill/distill/models/userale.py        | 137 -----------
 docker/distill/distill/server.py                |  29 ---
 docker/distill/distill/tests/__init__.py        |  21 --
 docker/distill/distill/tests/basic_test.py      |  24 --
 docker/distill/distill/tests/distill_test.py    |  43 ----
 docker/distill/distill/utils/__init__.py        |   0
 docker/distill/distill/utils/exceptions.py      |  25 --
 docker/distill/distill/utils/query_builder.py   |  35 ---
 docker/distill/distill/utils/tests/__init__.py  |  21 --
 docker/distill/distill/utils/validation.py      |  39 ---
 docker/distill/distill/version.py               |  22 --
 docker/distill/requirements.txt                 |  22 --
 docker/distill/setup.cfg                        |  30 ---
 docker/distill/setup.py                         |  87 -------
 docker/docker-compose.yml                       |  26 +-
 docker/es/._elasticsearch.yml                   | Bin 222 -> 0 bytes
 docker/es/Dockerfile                            |   5 -
 docker/es/elasticsearch.yml                     |  15 ++
 docker/kibana/Dockerfile                        |   7 -
 docker/kibana/entrypoint.sh                     |  10 -
 docker/logstash/Dockerfile                      |  15 ++
 docker/logstash/config/logstash-apache.conf     |  82 -------
 docker/logstash/config/logstash-userale.conf    |  17 +-
 docker/logstash/templates/apache.json           |  59 -----
 docker/startup/Dockerfile                       |  29 +++
 docker/startup/entrypoint.sh                    |  20 ++
 43 files changed, 317 insertions(+), 1778 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c9857e3
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2016 The Charles Stark Draper Laboratory, Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill.conf
----------------------------------------------------------------------
diff --git a/docker/distill/distill.conf b/docker/distill/distill.conf
deleted file mode 100644
index a113dcb..0000000
--- a/docker/distill/distill.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-description "Gunicorn application server running Apache Distill"
-
-# Restart process if it ever fails
-start on runlevel [2345]
-stop on runlevel [!2345]
-
-respawn
-#Setup user and group that Gunicorn should be run as
-setuid nobody
-setgid www-data
-
-# Path to run_server
-chdir /path/to/distill
-exec gunicorn -c "gunicorn.cfg" scripts/run_server:app 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/__init__.py b/docker/distill/distill/__init__.py
deleted file mode 100644
index 2b44372..0000000
--- a/docker/distill/distill/__init__.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
- 
-from flask import Flask
-from elasticsearch_dsl.connections import connections
-
-# Initialize Flask instance
-app = Flask (__name__)
-
-# Load Configurations
-app.config.from_pyfile('config.cfg')
-
-# Unpack Elasticsearch configuration and create elasticsearch connection
-host = app.config ['ES_HOST']
-port = app.config ['ES_PORT']
-http_auth = app.config ['HTTP_AUTH']
-use_ssl = app.config ['USE_SSL']
-verify_certs = app.config ['VERIFY_CERTS']
-ca_certs = app.config ['CA_CERTS']
-client_cert = app.config ['CLIENT_CERT']
-client_key = app.config ['CLIENT_KEY']
-timeout = app.config ['TIMEOUT']
-
-# Initialize Elasticsearch instance
-es = connections.create_connection (hosts = [host],
-									port = port,
-									http_auth = http_auth,
-									use_ssl = use_ssl,
-									verify_certs = verify_certs,
-									ca_certs = ca_certs,
-									client_cert = client_cert,
-									client_key = client_key,
-									timeout=timeout)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/__init__.py b/docker/distill/distill/algorithms/__init__.py
deleted file mode 100644
index 6acb5d1..0000000
--- a/docker/distill/distill/algorithms/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/graphs/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/graphs/__init__.py b/docker/distill/distill/algorithms/graphs/__init__.py
deleted file mode 100644
index 6acb5d1..0000000
--- a/docker/distill/distill/algorithms/graphs/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/graphs/graph.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/graphs/graph.py b/docker/distill/distill/algorithms/graphs/graph.py
deleted file mode 100644
index 3c44730..0000000
--- a/docker/distill/distill/algorithms/graphs/graph.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-class GraphAnalytics (object):
-	"""
-	Distill's graph analytics package. Apply graph algorithms to User Ale log data segmented with
-	Stout.
-	"""
-	
-	@staticmethod
-	def foo ():
-		pass
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/graphs/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/graphs/tests/__init__.py b/docker/distill/distill/algorithms/graphs/tests/__init__.py
deleted file mode 100644
index f6f6899..0000000
--- a/docker/distill/distill/algorithms/graphs/tests/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-'''
-distill: tests module.
-
-Meant for use with py.test.
-Organize tests into files, each named xxx_test.py
-Read more here: http://pytest.org/
-'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/stats/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/stats/__init__.py b/docker/distill/distill/algorithms/stats/__init__.py
deleted file mode 100644
index 6acb5d1..0000000
--- a/docker/distill/distill/algorithms/stats/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/stats/hist.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/stats/hist.py b/docker/distill/distill/algorithms/stats/hist.py
deleted file mode 100644
index b516423..0000000
--- a/docker/distill/distill/algorithms/stats/hist.py
+++ /dev/null
@@ -1,183 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from distill import es
-from distill.utils.query_builder import QueryBuilder
-from flask import jsonify
-from elasticsearch import Elasticsearch, TransportError
-
-class Hist (object):
-	"""
-	Distill's statistics package. Apply statistical algorithms to User Ale log data segmented with
-	Stout. Need to query/filter by session or user id.
-	"""
-
-	def __init__ (self):
-		# parse out query 
-		pass
-
- 	# @staticmethod
- 	# def filter (app, app_type=None, q=''):
-
-		# field = q.get ("field") if q.get ("field") else ""
-		# size = q.get ("size") if q.get ("size") else 10
-
-		# query = { "aggs" : {
-		# 			"count_by_type" : {
-		# 				"filter" : { "term" : { field : }}
-		# 				"terms" : {
-		# 					"field" : field,
-		# 					"size" : 100
-		# 				}
-		# 			}
-		# 		}
-		# 	}
-
-		# d = {}
-		# # try:
-		# response = es.search (index=app, doc_type=app_type, body=query)
-		# # 	for tag in response['aggregations']['count_by_type']['buckets']:
-		# # 		d [tag ['key']] = tag ['doc_count']
-		# # except TransportError as e:
-		# # 	d ['error'] = e.info			
-		# # except Exception as e:
-		# # 	d ['error'] = str (e)		
-		# # return jsonify (d)
-		# return jsonify (response)
-
-	@staticmethod
-	def terms (app, app_type=None, q=''):
-		"""
-		Group by field (find all elements )
-		"""
-		field = q.get ("field") if q.get ("field") else ""
-		segment = q.get ("seg") if q.get ("seg") else "*"
-		size = q.get ("size") if q.get ("size") else 10000
-		numhits = q.get ("numhits") if q.get ("numhits") else 10
-
-		query = { "aggs" : {
-					"count_by_type" : {
-						"terms" : {
-							"field" : field,
-							"size" : size	# maximum number of keys (unique fields)
-						},
-						"aggs" : {
-							"top" : {		# arbitrary name
-								"top_hits" : {
-									"size" : numhits,	# number of logs in subgroup
-									"_source" : {	# segment on fields - return only subgroup based on field
-										"include" : [
-											segment
-										]
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-
-		d = {}
-		# try:
-		response = es.search (index=app, doc_type=app_type, body=query)
-		# 	for tag in response['aggregations']['count_by_type']['buckets']:
-		# 		d [tag ['key']] = tag ['doc_count']
-		# except TransportError as e:
-		# 	d ['error'] = e.info			
-		# except Exception as e:
-		# 	d ['error'] = str (e)		
-		# return jsonify (d)
-		return jsonify (response)
-
-	@staticmethod
-	def unique_terms (app, app_type=None, q=""):
-		"""
-		Aggregate the number of unique terms in a field. Missing values are counted and marked as "N/A".
-
-		.. todo::
-
-			Need to incorporate QueryBuilder library instead of manually generating queries. 
-
-		:param app: [string] application name
-		:param app_type: [string] application type
-		:param field: [string] field to search against for unique values
-		:param size: [int] the top size terms returned in the result. Default value is 10.
-		:param min_hits: [int] return tags which have been found in min_hits or more. Default value is 1.
-		:return: [dict] dictionary of results
-		"""
-		
-		field = q.get ("field") if q.get ("field") else ""
-		size = q.get ("size") if q.get ("size") else 10000
-		min_hits = q.get ("min_hits") if q.get ("min_hits") else 0
-
-		print field
-		query = { "aggs" : {
-					"terms_agg" : {
-						"terms" : {
-							"field" : field,
-							"size" : size,
-							"min_doc_count" : min_hits,
-							"missing" : "N/A"
-						}
-					}
-				}
-			}
-
-		d = {}
-		try:
-			response = es.search (index=app, doc_type=app_type, body=query)
-			for tag in response['aggregations']['terms_agg']['buckets']:
-				d [tag ['key']] = tag ['doc_count']
-		except TransportError as e:
-			d ['error'] = e.info			
-		except Exception as e:
-			d ['error'] = str (e)		
-		return jsonify (d)
-
-	@staticmethod
-	def histogram (app, app_type=None, q=""):
-		"""
-		Only works on numerical data.
-		"""
-		field = q.get ("field") if q.get ("field") else ""
-
-		interval = 50
-		query = { "aggs" : {
-					"hist_agg" : {
-						"histogram" : {
-							"field" : field,
-							"interval" : interval
-						}
-					}
-				}
-			}
-
-		d = {}
-		try:
-			response = es.search (index=app, doc_type=app_type, body=query)
-			for tag in response['aggregations']['hist_agg']['buckets']:
-				d [tag ['key']] = tag ['doc_count']
-		except TransportError as e:
-			d ['error'] = e.info			
-		except Exception as e:
-			d ['error'] = str (e)		
-		return jsonify (d)
-
-	def get_value ():
-		return 0
-
-	def _parse_msg (query):
-		# should have form ?measure=name&field=f1, f2&event=a,b
-		pass

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/stats/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/stats/tests/__init__.py b/docker/distill/distill/algorithms/stats/tests/__init__.py
deleted file mode 100644
index f6f6899..0000000
--- a/docker/distill/distill/algorithms/stats/tests/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-'''
-distill: tests module.
-
-Meant for use with py.test.
-Organize tests into files, each named xxx_test.py
-Read more here: http://pytest.org/
-'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/algorithms/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/algorithms/tests/__init__.py b/docker/distill/distill/algorithms/tests/__init__.py
deleted file mode 100644
index 6acb5d1..0000000
--- a/docker/distill/distill/algorithms/tests/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/app.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/app.py b/docker/distill/distill/app.py
deleted file mode 100644
index 58434a1..0000000
--- a/docker/distill/distill/app.py
+++ /dev/null
@@ -1,216 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from flask import Flask, request, jsonify
-from distill import app
-from distill.models.brew import Brew
-from distill.models.userale import UserAle
-from distill.models.stout import Stout
-from distill.algorithms.stats.hist import Hist
-
-@app.route ('/', methods=['GET'])
-def index ():	
-	"""
-	Show Distill version information, connection status, and all registered applications.
-
-	.. code-block:: bash
-	
-		$ curl -XGET https://localhost:8090
-
-		{
-			"author" : "Michelle Beard",
-			"email" : "mbeard@draper.com",
-			"name": "Distill",
-			"status" : true,
-			"version" : "1.0",
-			"applications" : {
-				"xdata_v3" : {
-					testing: 205,
-					parsed: 500,
-				},
-				"test_app" : {
-					logs: 500,
-					parsed: 100,
-				}
-			}
-		}
-
-	:return: Distill's status information as JSON blob
-	"""
-	return jsonify (name="Distill", version="1.0 alpha", author="Michelle Beard", email="mbeard@draper.com", status=Brew.get_status (), applications=Brew.get_applications ())
-
-@app.route ('/create/<app_id>', methods=['POST', 'PUT'])
-def create (app_id):
-	"""
-	Registers an application in Distill. 
-
-	.. code-block:: bash
-
-		$ curl -XPOST https://localhost:8090/xdata_v3
-	
-	:param app_id: Application name
-	:return: Newly created application's status as JSON blob
-	"""
-	return Brew.create (app_id)
-
-@app.route ('/status/<app_id>', defaults={"app_type" : None}, methods=['GET'])
-@app.route ('/status/<app_id>/<app_type>', methods=['GET'])
-def status (app_id, app_type): 
-	"""
-	Presents meta information about an registered application, including field names and document types.
-
-	.. code-block:: bash
-
-		$ curl -XGET https://localhost:8090/status/xdata_v3
-
-		{
-		  "application": "xdata_v3",
-		  "health": "green",
-		  "num_docs": "433",
-		  "status": "open"
-		}
-
-	:param app_id: Application name
-	:return: Registered applications meta data as JSON blob
-	"""
-	return Brew.read (app_id, app_type=app_type)
-
-@app.route ('/update/<app_id>', methods=['POST', 'PUT'])
-def update (app_id):
-	"""
-	Renames a specific application 
-
-	.. code-block:: bash
-
-		$ curl -XPOST https://localhost:8090/update/xdata_v3?name="xdata_v4"
-
-	:param app_id: Application name
-	:return: Boolean response message as JSON blob
-	"""
-	return Brew.update (app_id)
-
-@app.route ('/delete/<app_id>', methods=['DELETE'])
-def delete (app_id):
-	"""
-	Deletes an application permentantly from Distill
-
-	.. code-block:: bash
-
-		$ curl -XDELETE https://localhost:8090/xdata_v3
-	
-	:param app_id: Application name
-	:return: Boolean response message as JSON blob
-	"""
-	return Brew.delete (app_id)
-
-@app.route ('/search/<app_id>', defaults={"app_type" : None}, methods=['GET'])
-@app.route ('/search/<app_id>/<app_type>', methods=['GET'])
-def segment (app_id, app_type):
-	"""
-	Search against an application on various fields.
-
-	.. code-block:: bash
-
-		$ curl -XGET https://[hostname]:[port]/search/xdata_v3?q=session_id:A1234&size=100&scroll=false&fl=param1,param2
-
-	:param app_id: Application name
-	:param app_type: Optional document type to filter against
-	:param q: Main search query. To return all documents, pass in q=*:*
-	:param size: Maximum number of documents to return in request
-	:param scroll: Scroll id if the number of documents exceeds 10,000
-	:param fl: List of fields to restrict the result set
-	:return: JSON blob of result set
-	""" 
-	q = request.args
-	return UserAle.segment (app_id, app_type=app_type, params=q)
-
-@app.route ('/stat/<app_id>', defaults={"app_type" : None}, methods=['GET'])
-@app.route ('/stat/<app_id>/<app_type>', methods=['GET'])
-def stat (app_id, app_type):
-	"""
-	Generic histogram counts for a single registered application filtered optionally by document type.
-	View the Statistics document page for method definitions and arguments
-
-	.. code-block:: bash
-
-		$ curl -XGET https://localhost:8090/stat/xdata_v3/testing/?stat=terms&elem=signup&event=click
-
-	:param app_id: Application name
-	:param app_type: Application type
-	:return: JSON blob of result set
-	"""
-	stat = request.args.get ('stat')
-	q = request.args
-
-	hist_cls = Hist ()
-	method = None
-	try:
-		method = getattr (hist_cls, stat)
-		return method (app_id, app_type, q=q)
-	except AttributeError:
-		msg = "Class `{}` does not implement `{}`".format(hist_cls.__class__.__name__, stat)
-		return jsonify (error=msg)
-
-@app.route ('/denoise/<app_id>', methods=['GET'])
-def denoise (app_id):
-	"""
-	Bootstrap script to cleanup the raw logs. A document type called "parsed"
-	will be stored with new log created unless specified in the request. Have option to save 
-	parsed results back to data store. These parsed logs can be intergrated with STOUT results 
-	by running the stout bootstrap script.
-
-	.. code-block:: bash
-	
-		$ curl -XGET https://localhost:8090/denoise/xdata_v3?save=true&type=parsed
-
-	:param app_id: Application name
-	:return: [dict] 
-	"""
-	doc_type = 'parsed'
-	save = False
-	q = request.args
-	if 'save' in q:
-		save = str2bool (q.get ('save'))
-	if 'type' in q:
-		# @TODO: Proper cleanup script needs to happen
-		doc_type = q.get ('type')
-	return UserAle.denoise (app_id, doc_type=doc_type, save=save)
-
-@app.route ('/stout', methods=['GET'])
-def merge_stout ():
-	"""
-	Bootstrap script to aggregate user ale logs to stout master answer table
-	This will save the merged results back to ES instance at new index stout
-	OR denoise data first, then merge with the stout index...
-	If STOUT is enabled, the select method expects a stout index to exist or otherwise 
-	it will return an error message. 
-
-	.. code-block:: bash
-
-		$ curl -XGET https://locahost:8090/stout/xdata_v3
-
-	:return: Status message
-	"""
-	flag = app.config ['ENABLE_STOUT']
-	if flag:
-		return Stout.ingest ()
-	return jsonify (status="STOUT is disabled.")
-
-@app.errorhandler(404)
-def page_not_found (error):
-	"""
-	Generic Error Message
-	"""
-	return "Unable to find Distill." 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/config.cfg
----------------------------------------------------------------------
diff --git a/docker/distill/distill/config.cfg b/docker/distill/distill/config.cfg
deleted file mode 100644
index 189e3ea..0000000
--- a/docker/distill/distill/config.cfg
+++ /dev/null
@@ -1,57 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Statement for enabling the development environment
-DEBUG = True
-
-# Host
-HOST = '0.0.0.0'
-
-# Port
-PORT = 8090
-
-# Enable STOUT integration into Distill 
-ENABLE_STOUT = False
-SQLITEDB = '../path/to/stout/stout.db'
-MASTER = '../path/to/master/master_ans.csv'
-MAPPINGS = '../path/to/mappings/MOT_Mappings.csv'
-SELECTED = '../path/to/stout/selected_vars_for_distill.csv'
-
-# Elasticsearch Configuration
-ES_HOST = 'http://elasticsearch'
-ES_PORT = 9200
-HTTP_AUTH = None
-USE_SSL = False
-VERIFY_CERTS = False
-CA_CERTS = None
-CLIENT_CERT = None
-CLIENT_KEY = None
-TIMEOUT = 3
-
-# Application threads. A common general assumption is
-# using 2 per available processor cores - to handle
-# incoming requests using one and performing background
-# operations using the other.
-THREADS_PER_PAGE = 2
-
-# Enable protection agains *Cross-site Request Forgery (CSRF)*
-# CSRF_ENABLED     = True
-
-# Use a secure, unique and absolutely secret key for
-# signing the data. 
-# CSRF_SESSION_KEY = "secret"
-
-# Secret key for signing cookies
-# SECRET_KEY = "secret"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/models/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/__init__.py b/docker/distill/distill/models/__init__.py
deleted file mode 100644
index 6acb5d1..0000000
--- a/docker/distill/distill/models/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/models/brew.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/brew.py b/docker/distill/distill/models/brew.py
deleted file mode 100644
index 28d16b3..0000000
--- a/docker/distill/distill/models/brew.py
+++ /dev/null
@@ -1,235 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-from elasticsearch import Elasticsearch, TransportError
-from flask import jsonify
-from distill import es
-
-class Brew (object):
-	""" 
-	Distill supports basic CRUD operations and publishes the status
-	of an persistenct database. Eventually it will support ingesting logs sent from
-	an registered application.
-	"""
-
-	@staticmethod
-	def get_status ():
-		""" 
-		Fetch the status of the underlying database instance. 
-
-		:return: [bool] if connection to database instance has been established
-		"""
-		return es.ping (ignore=[400, 404])
-
-	@staticmethod
-	def get_applications ():
-		""" 
-		Fetch all the registered applications in Distill.
-		
-		.. note:: Private indexes starting with a period are not included in the result set
-
-		:return: [dict] dictionary of all registered applications and meta information
-		"""
-		doc = {}
-		query = { "aggs" : {
-					"count_by_type" : {
-						"terms" : {
-							"field" : "_type",
-							"size" : 100
-						}
-					}
-				}
-			}
-
-		try:
-			cluster_status = es.cat.indices (h=["index"], pri=False)
-			x = cluster_status.splitlines()
-
-			for idx in x:
-			    idx = idx.rstrip ()
-			    
-			    # Ignore private indexes (like .kibana or .stout)
-			    if idx [:1] != '.':
-			        response = es.search (index=idx, body=query)
-			        d = {}
-			        for tag in response["aggregations"]["count_by_type"]["buckets"]:
-			            d [tag ['key']] = tag ['doc_count']
-			        doc [idx] = d
-		except TransportError as e:
-			doc ['error'] = e.info
-		except Exception as e:
-			doc ['error'] = str (e)
-		return doc
-	
-	@staticmethod
-	def create (app):
-		"""
-		Register a new application in Distill
-
-		.. code-block:: bash
-
-			{
-				"application" : "xdata_v3",
-				"health" : "green",
-				"num_docs" : 0,
-				"status" : "open"
-			}
-
-		:param app: [string] application name (e.g. xdata_v3)
-		:return: [dict] dictionary of application and its meta information
-		"""
-
-		# ignore 400 cause by IndexAlreadyExistsException when creating an index
-		res = es.indices.create (index=app, ignore=[400, 404])
-		doc = _get_cluster_status (app)
-		return jsonify (doc)
-
-	@staticmethod
-	def read (app, app_type=None):	
-		"""
-		Fetch meta data associated with an application
-
-		.. code-block:: bash 
-
-			Example:
-			{
-				"application" : "xdata_v3",
-				"health" : "green",
-				"num_docs" : "100",
-				"status" : "open"
-				"types" : {
-					"raw_logs" : {
-						"@timestamp" : "date",
-						"action" : "string",
-						"elementId" : "string"
-					},
-					"parsed" : {
-						"@timestamp" : "date",
-						"elementId_interval" : "string"
-					},
-					"graph" : {
-						"uniqueID" : "string",
-						"transition_count" : "long",
-						"p_value" : "float"
-					}
-				}
-			}
-
-		:param app: [string] application name (e.g. xdata_v3)
-		:return: [dict] dictionary of application and its meta information
-		"""
-
-		return jsonify (_get_cluster_status (app, app_type=app_type))
-
-	@staticmethod
-	def update (app):
-		"""
-		.. todo::
-			Currently  not implemented
-		"""
-
-		return jsonify (status="not implemented")
-
-	@staticmethod
-	def delete (app):
-		"""
-		Technically closes the index so its content is not searchable. 
-
-		.. code-block: bash
-
-			Example:
-			{
-			  status: "Deleted index xdata_v3"
-			}
-
-		:param app: [string] application name (e.g. xdata_v3)
-		:return: [dict] status message of the event
-		"""
-
-		es.indices.close (index=app, ignore=[400, 404])
-		return jsonify (status="Deleted index %s" % app)
-
-def _get_cluster_status (app, app_type=None):
-	"""
-	Return cluster status, index health, and document count as string
-
-	@todo figure out how to count individual documents stored at an app_type (currently shows only index count)
-	:param app: [string] application name (e.g. xdata_v3)
-	:return: [dict] dictionary of index meta data including field names
-	"""
-
-	doc = {}
-	try:
-		cluster_status = es.cat.indices (index=app, h=["health", "status", "docs.count"], pri=True, ignore=[400, 404])
-		v = str (cluster_status).split (" ")
-		m = ["health", "status", "num_docs"]
-		doc = dict (zip (m, v))
-		# Add back application
-		doc ["application"] = app
-	except TransportError as e:
-		doc ['error'] = e.info
-	except Exception as e:
-		doc ['error'] = str (e)
-
-	doc ['fields'] = _get_all_fields (app, app_type)
-	return doc
-
-def _parse_mappings (app, app_type=None):
-	"""
-	.. todo: 
-
-		Need to parse out result set that presents field list and type
-	"""
-	
-	try:
-		mappings = es.indices.get_mapping (index=app, doc_type=[app_type], ignore=[400, 404])
-		# mappings = yaml.safe_load (json.ess (mappings))
-		# print json.dumps (mappings [app]["mappings"], indent=4, separators=(',', ': '))
-		ignore = ["properties", "format"]
-	except TransportError as e:
-		doc ['error'] = e.info
-	except Exception as e:
-		doc ['error'] = str (e)	
-	return doc
-
-def _get_all_fields (app, app_type=None):
-	"""
-	Retrieve all possible fields in an application
-
-	:param app: [string] application name (e.g. xdata_v3)
-	:param app_type: [string] application type (e.g. logs)
-	:return: [list] list of strings representing the fields names 	
-	"""
-	d = list ()
-	query = { "aggs" : {
-				"fields" : {
-					"terms" : {
-						"field" : "_field_names",
-						"size" : 100
-					}
-				}
-			}
-		}
-
-	try:
-		response = es.search (index=app, doc_type=app_type, body=query)
-		for tag in response['aggregations']['fields']['buckets']:
-			d.append (tag ['key'])
-	except TransportError as e:
-		d.append (str (e.info))			
-	except Exception as e:
-		d.append (str (e))
-	return d

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/models/stout.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/stout.py b/docker/distill/distill/models/stout.py
deleted file mode 100644
index d6421d8..0000000
--- a/docker/distill/distill/models/stout.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from distill import app, es
-from elasticsearch_dsl import DocType, String, Boolean, Date, Nested, Search
-from elasticsearch_dsl.query import MultiMatch, Match, Q
-from elasticsearch import Elasticsearch, TransportError
-from flask import jsonify
-import pandas as pd 
-
-class StoutDoc (DocType):
-    """
-    Representation of a Stout documentat.
-    """
-
-    sessionID = String (index="not_analyzed")
-    task1 = Nested ()
-    task2 = Nested ()
-
-    class Meta:
-        index = '.stout'
-        doc_type = 'testing'
-
-    def save (self, *args, **kwargs):
-        """
-        Save data from parsing as a Stout document in Distill
-        """
-        return super (StoutDoc, self).save (*args, **kwargs)
-
-class Stout (object):
-    """
-    Main Stout class to support ingest and search operations.
-    """
-
-    @staticmethod
-    def ingest (): 
-        """
-        Ingest data coming from Stout to Distill
-        """
-
-        # Create the mappings in elasticsearch
-        StoutDoc.init ()
-        status = True
-        data = _parse ();           
-        try:
-            for k,v in data.items ():
-                doc = StoutDoc ()
-                if 'sessionID' in v:
-                    doc.sessionID = v['sessionID']
-                if 'task1' in v:
-                    doc.task1 = v['task1']
-                if 'task2' in v:
-                    doc.task2 = v['task2']
-                doc.save () 
-        except Error as e:
-            status = False
-        return jsonify (status=status)
-
-def _parse ():
-    """
-    Parse master answer table with mapping into an associative array
-
-    :return: [dict] dictionary of session information
-    """
-    master = app.config ['MASTER']
-    mappings = app.config ['MAPPINGS']
-
-    fileContents=pd.read_csv(master, encoding='utf-8')
-    plainTextMappings=pd.read_csv(mappings, encoding='raw_unicode_escape')
-    headers=list(fileContents.columns.values)
-    
-    #generate the mapping between header and plain text
-    translationRow={};
-    for fieldIndex in range(1,len(headers)):
-        t=plainTextMappings.ix[fieldIndex]
-        translationRow[headers[fieldIndex]]=t[9]
-         
-    dictBySessionID={}
-    translationRow['items.text']='foo'    
-    index=0
-    for row in fileContents.iterrows():
-        index=index+1
-        
-        taskMetrics={}
-        index,data=row
-        identifier=row[1][0].split("::")
-        sessionID=identifier[0]
-        taskID=(identifier[1])
-        workingData={}
-        #is this session id already in the dictionary?
-        if sessionID in dictBySessionID:
-            #grab the entry as workingData
-            workingData=dictBySessionID[sessionID]
- 
-        sysData={}
-        task1Data={}
-        task2Data={}
-        metaData={}
-        d={}
-
-        for fieldIndex in range(1,len(headers)):
-            if not pd.isnull(row[1][fieldIndex]):  #only interested in non-null fields
-                tempDict={}
-                if headers[fieldIndex] in translationRow:
-                    tempDict['field']=translationRow[headers[fieldIndex]]
-                    #tempDict['field']=translationRow[9]
-                tempDict['value']=row[1][fieldIndex]
-                d[headers[fieldIndex]]=row[1][fieldIndex]
-                if "SYS" in headers[fieldIndex]:
-                    sysData[headers[fieldIndex]]=tempDict
-                elif "OT1" in headers[fieldIndex]:
-                    task1Data[headers[fieldIndex]]=tempDict
-                elif "OT2" in headers[fieldIndex]:
-                    task2Data[headers[fieldIndex]]=tempDict
-                else:
-                    metaData[headers[fieldIndex]]=tempDict
-         
-        if d['TSK_TIME_DIFF_']>0:  #block tasks with zero time elapsed
-            a=int(d['TSK_TIME_DIFF_OT1_'])
-            b=int(d['TSK_TIME_DIFF_OT2_'])
-            #figure out which task the values belong to
-            if ((a>0) & (b<=0)):
-                task1Data['taskID']=taskID
-                task1Data['meta']=metaData
-                task1Data['system']=sysData
-                workingData['task1']=task1Data
-            elif ((a<=0) & (b>0)):
-                task2Data['taskID']=taskID
-                task2Data['meta']=metaData
-                task2Data['system']=sysData
-                workingData['task2']=task2Data
-            else:
-                raise ValueError('Encountered an unexpected task time diff state')
-
-        workingData['sessionID'] = sessionID   
-        dictBySessionID[sessionID]=workingData    
-    return dictBySessionID

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/models/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/tests/__init__.py b/docker/distill/distill/models/tests/__init__.py
deleted file mode 100644
index f6f6899..0000000
--- a/docker/distill/distill/models/tests/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-'''
-distill: tests module.
-
-Meant for use with py.test.
-Organize tests into files, each named xxx_test.py
-Read more here: http://pytest.org/
-'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/models/userale.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/models/userale.py b/docker/distill/distill/models/userale.py
deleted file mode 100644
index f63fa51..0000000
--- a/docker/distill/distill/models/userale.py
+++ /dev/null
@@ -1,137 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from elasticsearch import Elasticsearch, TransportError
-from elasticsearch_dsl import DocType, String, Boolean, Date, Float, Search
-from elasticsearch_dsl.query import MultiMatch, Match, Q
-from elasticsearch import Elasticsearch, TransportError
-from elasticsearch_dsl.connections import connections
-from werkzeug.datastructures import ImmutableMultiDict, MultiDict
-
-from flask import jsonify, Markup
-from distill import app, es
-import datetime
-
-class UserAle (object):
-	"""
-	Main method of entry to perform segmentation and integration of STOUT's master
-	answer table (if STOUT is enabled). Advanced and basic analytics is performed in the
-	distill.algorithms.stats and distill.algorithms.graphs module.
-	"""
-
-	@staticmethod
-	def segment (app, app_type=None, params=''):
-		"""
-		Just support match all for now. 
-		"""
-		q = params.get ("q") if params.get ("q") else {}
-		fields = params.get ("fields") if params.get ("fields") else []
-		size = params.get ("size") if params.get ("size") else 10
-		scroll = params.get ("scroll") if params.get ("scroll") else False
-		fl = params.get ("fl") if params.get ("fl") else []
-
-		# filters = params.get ("filter") if params.get ("filter") else {}
-		
-		# 'q': args.get('q', '{}'),
-		# 'fields': args.get('fl', '{}'),
-		# 'size': args.get ('size', 100),
-		# 'scroll': args.get ('scroll', False),
-		# 'filters': request_args.getlist ('fq')
-		query = {}
-		query ['size'] = size
-		
-		if q:
-			res = q.split(":")
-			key = res [0]
-			val = res [1]
-			query ['query'] = {"match" : { key : val } }
-		else:
-			query ['query'] = {"match_all" : {}}
-
-		if len (fields) > 0:
-			ex = {
-					"include" : fields.split(",")
-				}
-			query ['_source'] = ex
-
-
-		response = es.search (index=app, doc_type=app_type, body=query)
-
-		return jsonify (response)
-
-	@staticmethod
-	def search (app,
-				app_type=None,
-				filters=list (),
-				size=100,
-				include="*",
-				scroll=None,
-				sort_field=None):
-		""" 
-		Perform a search query.
-
-		:param app: [string] application id (e.g. "xdata_v3")
-		:param app_type: [string] name of the application type. If None all application types are searched.
-		:param filters: [list of strings] list of filters for a query. 
-		:param size: [int] maximum number of hits that should be returned
-		:param sort_field: [string] sorting field. Currently supported fields: "timestamp", "date"
-		:return: [dict] dictionary with processed results. If STOUT is enabled, STOUT data will be merged with final result.
-		"""
-
-		# Need some query builder...
-		log_result = es.search (index=app, doc_type=app_type, body=query, fields=filters, size=size)
-
-		stout_result = Stout.getSessions ()
-
-		data = merged_results (log_result, stout_result)
-		return data
-
-	@staticmethod
-	def denoise (app, app_type='parsed', save=False):
-		"""
-		"""
-		pass
-
-"""
-Combine a list of dictionaries together to form one complete dictionary
-"""
-def merge_dicts (lst):
-	dall = {}
-	for d in lst:
-		dall.update (d)
-	return dall
-
-"""
-Get query parameters from the request and preprocess them.
-:param [dict-like structure] Any structure supporting get calls
-:result [dict] Parsed parameters
-"""
-def parse_query_parameters (indx, app_type=None, request_args = {}):
-	args = {key: value[0] for (key, value) in dict (request_args).iteritems ()}
-
-	# print "args = ", args
-	# Parse out simple filter queries
-	filters = []
-	for filter in get_all_fields (indx, app_type):
-		if filter in args:
-			filters.append((filter, args[filter]))
-	
-	return {
-		'q': args.get('q', '{}'),
-		'fields': args.get('fl', []),
-		'size': args.get ('size', 100),
-		'scroll': args.get ('scroll', False),
-		'filters': request_args.getlist ('fq')
-	}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/server.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/server.py b/docker/distill/distill/server.py
deleted file mode 100644
index 23acd83..0000000
--- a/docker/distill/distill/server.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from distill import app
-from distill.app import *
-
-"""
-Start up a local WSGI server called development 
-"""
-def dev_server ():
-	host = app.config ['HOST']
-	port = app.config ['PORT']
-	debug = app.config ['DEBUG']
-	app.run (host=host, port=port, debug=debug)
-
-if __name__ == '__main__':
-    dev_server ()

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/tests/__init__.py b/docker/distill/distill/tests/__init__.py
deleted file mode 100644
index 09c5e2f..0000000
--- a/docker/distill/distill/tests/__init__.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-'''
-distill: tests module.
-
-Meant for use with py.test.
-Organize tests into files, each named xxx_test.py
-Read more here: http://pytest.org/
-'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/tests/basic_test.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/tests/basic_test.py b/docker/distill/distill/tests/basic_test.py
deleted file mode 100644
index 712d1fe..0000000
--- a/docker/distill/distill/tests/basic_test.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-'''
-distill: Test module.
-
-Meant for use with py.test.
-Write each test as a function named test_<something>.
-Read more here: http://pytest.org/
-'''
-
-def test_example():
-    assert True

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/tests/distill_test.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/tests/distill_test.py b/docker/distill/distill/tests/distill_test.py
deleted file mode 100644
index 2fb6502..0000000
--- a/docker/distill/distill/tests/distill_test.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-from flask import Flask, request
-
-from distill import app as test_app
-
-def test_example ():
-	assert True
-	# with test_app.test_client () as c:
-	# 	rv = c.get ('/?tequila=42')
-	# 	assert request.args ['tequila'] == '42'
-
-# import os
-# import flaskr
-# import unittest
-# import tempfile
-
-# class FlaskrTestCase(unittest.TestCase):
-
-#     def setUp(self):
-#         self.db_fd, flaskr.app.config['DATABASE'] = tempfile.mkstemp()
-#         flaskr.app.config['TESTING'] = True
-#         self.app = flaskr.app.test_client()
-#         flaskr.init_db()
-
-#     def tearDown(self):
-#         os.close(self.db_fd)
-#         os.unlink(flaskr.app.config['DATABASE'])
-
-# if __name__ == '__main__':
-#     unittest.main()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/utils/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/__init__.py b/docker/distill/distill/utils/__init__.py
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/utils/exceptions.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/exceptions.py b/docker/distill/distill/utils/exceptions.py
deleted file mode 100644
index a391241..0000000
--- a/docker/distill/distill/utils/exceptions.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-class Error (Exception):
-    """Base class for exceptions."""
-    pass
-
-class ValidationError (Error):
-	""" Exceptions raised for errors in validated a url."""
-
-	def __init__ (self, url, msg):
-		self.url = url
-		self.msg = msg

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/utils/query_builder.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/query_builder.py b/docker/distill/distill/utils/query_builder.py
deleted file mode 100644
index 017a08b..0000000
--- a/docker/distill/distill/utils/query_builder.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-class QueryBuilder (object):
-
-	def __init__ (self, query=None):
-		if query:
-			self.query = query
-		else:
-			self.query = {
-				"query" : {
-					"match_all" : {}
-					}
-				}
-
-
-	def add_filters (self, filters):
-		pass
-
-	def add_sorting (self, sort_field='', sort_order=''):
-		pass
-
-	
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/utils/tests/__init__.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/tests/__init__.py b/docker/distill/distill/utils/tests/__init__.py
deleted file mode 100644
index 09c5e2f..0000000
--- a/docker/distill/distill/utils/tests/__init__.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-'''
-distill: tests module.
-
-Meant for use with py.test.
-Organize tests into files, each named xxx_test.py
-Read more here: http://pytest.org/
-'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/utils/validation.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/utils/validation.py b/docker/distill/distill/utils/validation.py
deleted file mode 100644
index 7cd3362..0000000
--- a/docker/distill/distill/utils/validation.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from distill.utils.exceptions import ValidationError
-
-def validate_request (q):
-	""" 
-	Parse out request message and validate inputs
-
-	:param q: Url query string
-	:raises ValidationError: if the query is missing required parameters
-	"""
-	if 'q' not in q:
-		raise ValidationError ("Missing required parameter: %s" % 'q')
-	else:
-		# Handle rest of parsing
-		pass
-
-def str2bool (v):
-	"""
-	Convert string expression to boolean
-
-	:param v: Input value
-	:returns: Converted message as boolean type
-	:rtype: bool
-	"""
-	return v.lower() in ("yes", "true", "t", "1")
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/distill/version.py
----------------------------------------------------------------------
diff --git a/docker/distill/distill/version.py b/docker/distill/distill/version.py
deleted file mode 100644
index 6532ea7..0000000
--- a/docker/distill/distill/version.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Version information for Distill.
-
-This file is imported by ``Distill.__init__``,
-and parsed by ``setup.py``.
-"""
-
-__version__ = "0.1.3"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/requirements.txt
----------------------------------------------------------------------
diff --git a/docker/distill/requirements.txt b/docker/distill/requirements.txt
deleted file mode 100644
index 5137ad9..0000000
--- a/docker/distill/requirements.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-Flask==0.10.1
-#networkx==1.11
-elasticsearch-dsl==2.0.0
-#numpy>=1.10.0
-#scipy>=0.17.0
-pandas>=0.18.1
-pytest>=3.0.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/setup.cfg
----------------------------------------------------------------------
diff --git a/docker/distill/setup.cfg b/docker/distill/setup.cfg
deleted file mode 100644
index 08020f4..0000000
--- a/docker/distill/setup.cfg
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-[egg_info]
-tag_build = 0.1.4
-tag_svn_revision = false
-
-[aliases]
-test=pytest
-
-[tool:pytest] 
-addopts = --verbose --ignore=build --ignore=setup.py --ignore=dist --junitxml=test-report.xml --cov-report xml --cov=distill distill/. 
-norecursedirs = *.eggs *env* .git 
-
-[build_sphinx]
-source-dir = docs
-build-dir = docs/_build
-all_files = 1

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/distill/setup.py
----------------------------------------------------------------------
diff --git a/docker/distill/setup.py b/docker/distill/setup.py
deleted file mode 100644
index 8ddd32f..0000000
--- a/docker/distill/setup.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import
-from setuptools import setup, find_packages
-import distutils.cmd
-import distutils.log
-from setuptools.command.test import test as TestCommand
-import io, os, sys, subprocess
-
-if sys.version_info[:2] < (2, 7):
-    m = "Python 2.7 or later is required for Distill (%d.%d detected)."
-    raise ImportError (m % sys.version_info[:2])
-
-if sys.argv[-1] == 'setup.py':
-    print ("To install, run 'python setup.py install'")
-    print ()
-    
-def read (*filenames, **kwargs):
-    encoding = kwargs.get ('encoding', 'utf-8')
-    sep = kwargs.get ('sep', '\n')
-    buf = []
-    for filename in filenames:
-        with io.open (filename, encoding=encoding) as f:
-            buf.append (f.read ())
-    return sep.join (buf)
-
-# Get the version string
-def get_version ():
-    basedir = os.path.dirname (__file__)
-    with open (os.path.join (basedir, 'distill/version.py')) as f:
-        version = {}
-        exec (f.read (), version)
-        return version['__version__']
-    raise RuntimeError ('No version info found.')
-
-setup (
-    name = "Distill",
-    version = get_version (),
-    url = "https://github.com/apache/incubator-senssoft-distill",
-    license = "Apache Software License",
-    author = "Michelle Beard",
-    author_email = "msbeard@apache.org",
-    description = "An analytical framework for UserALE.",
-    long_description = __doc__,
-    classifiers = [
-      'Development Status :: 4 - Beta',
-      'Programming Language :: Python',
-      'Programming Language :: Python :: 2.7',
-      'Natural Language :: English',
-      'Environment :: Web Environment',
-      'Intended Audience :: Developers',
-      'License :: OSI Approved :: Apache Software License',
-      'Operating System :: OS Independent', 
-      'Private :: Do Not Upload"'
-    ],
-    keywords = "stout userale tap distill", # Separate with spaces
-    packages = find_packages (exclude=['examples', 'tests']),
-    include_package_data = True,
-    zip_safe = False,
-    setup_requires = ['pytest-runner'],
-    tests_require = ['pytest>=3.0.0', 'pytest-pylint', 'coverage'],
-    install_requires = ['Flask==0.10.1', 
-                        #'networkx==1.11',
-                        'elasticsearch-dsl==2.0.0', 
-                        #'numpy>=1.10.0', 
-                        #'scipy>=0.17.0',
-                        'pandas>=0.18.1'
-    ],
-    entry_points = {
-      'console_scripts': [
-        'dev = distill.server:dev_server'
-        ]
-    }
-)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index b1e552b..0778c42 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -13,13 +13,22 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Apache TAP Production Build
+# Apache SensSoft Docker Build
 
 version: "2"
 services:
+
+  # Startup
+  startup:
+    build: ./startup
+    container_name: senssoft-start
+    depends_on:
+      - "elasticsearch"
+    command: bash /opt/entrypoint.sh
+
   # ELK Stack
   elasticsearch:
-    build: ./es
+    image: elasticsearch:latest
     container_name: senssoft-elastic
     ports:
       - 9200:9200
@@ -29,14 +38,19 @@ services:
       - ./es/logs:/usr/share/elasticsearch/logs
       - ./es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
     environment:
-      ES_JAVA_OPTS: "-Xms1g -Xmx1g"
+      ES_JAVA_OPTS: "-Xms4g -Xmx4g"
+
+  # Kibana
   kibana:
-    build: ./kibana
+    image: kibana:latest
     container_name: senssoft-kibana
     ports:
       - 5601:5601
     depends_on:
       - "elasticsearch"
+      - "startup"
+
+  # Logstash
   userale-forwarder:
     build: ./logstash
     container_name: senssoft-userale-forwarder
@@ -48,8 +62,10 @@ services:
       - ./logstash/templates/userale.json:/usr/share/logstash/templates/userale.json
     depends_on:
       - "elasticsearch"
+      - "startup"
     environment:
       LS_HEAP_SIZE: "2048m"
+
   distill:
     build: ./distill
     container_name: distill
@@ -59,11 +75,13 @@ services:
       - elasticsearch
     links:
       - elasticsearch
+
   db:
     container_name: tap-db 
     build: ./db
     ports:
       - "5432:5432"
+
   tap:
     container_name: tap-web
     build: ./tap

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/es/._elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/es/._elasticsearch.yml b/docker/es/._elasticsearch.yml
deleted file mode 100644
index 6da966a..0000000
Binary files a/docker/es/._elasticsearch.yml and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/es/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/es/Dockerfile b/docker/es/Dockerfile
deleted file mode 100644
index 1eb4748..0000000
--- a/docker/es/Dockerfile
+++ /dev/null
@@ -1,5 +0,0 @@
-FROM elasticsearch:5
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Install XPack
-RUN elasticsearch-plugin install --batch x-pack

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/es/elasticsearch.yml
----------------------------------------------------------------------
diff --git a/docker/es/elasticsearch.yml b/docker/es/elasticsearch.yml
index c795b7c..af0e14e 100644
--- a/docker/es/elasticsearch.yml
+++ b/docker/es/elasticsearch.yml
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # ======================== Elasticsearch Configuration =========================
 #
 # NOTE: Elasticsearch comes with reasonable defaults for most settings.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/kibana/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/kibana/Dockerfile b/docker/kibana/Dockerfile
deleted file mode 100644
index 4814f47..0000000
--- a/docker/kibana/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM kibana:5
-MAINTAINER Michelle Beard <ms...@apache.org>
-
-# Install XPack
-RUN kibana-plugin install x-pack
-
-#CMD ["/tmp/entrypoint.sh"]

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/731fb44b/docker/kibana/entrypoint.sh
----------------------------------------------------------------------
diff --git a/docker/kibana/entrypoint.sh b/docker/kibana/entrypoint.sh
deleted file mode 100644
index c08d70a..0000000
--- a/docker/kibana/entrypoint.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-
-# Wait for the Elasticsearch container to be ready before starting Kibana.
-echo "Stalling for Elasticsearch"
-while true; do
-    nc -q 1 elasticsearch 9200 2>/dev/null && break
-done
-
-echo "Starting Kibana"
-exec kibana



[28/40] incubator-senssoft git commit: Updated TAP Dockerfile for Sankey branch

Posted by le...@apache.org.
Updated TAP Dockerfile for Sankey branch


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/52ea840b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/52ea840b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/52ea840b

Branch: refs/heads/asf-site
Commit: 52ea840bd2713370e90b4de15bb974c9bab7358c
Parents: 23dfae2
Author: Arthi Vezhavendan <ar...@gmail.com>
Authored: Tue Sep 19 09:32:41 2017 -0400
Committer: Arthi Vezhavendan <ar...@gmail.com>
Committed: Tue Sep 19 09:32:41 2017 -0400

----------------------------------------------------------------------
 docker/tap/Dockerfile | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/52ea840b/docker/tap/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/tap/Dockerfile b/docker/tap/Dockerfile
index e0dd445..386d49c 100644
--- a/docker/tap/Dockerfile
+++ b/docker/tap/Dockerfile
@@ -40,7 +40,7 @@ RUN sudo -E apt-get -yqq install \
   git
 
 # Clone TAP
-RUN git clone -b tapdocker https://github.com/apache/incubator-senssoft-tap.git app
+RUN git clone -b ryan-sankey https://github.com/apache/incubator-senssoft-tap.git app
 WORKDIR /usr/src/app
 
 # Install packages
@@ -50,9 +50,9 @@ RUN npm install
 RUN pip install -r requirements.txt
 
 # Add application files
-ADD secrets/secret.py /usr/src/app/tap/settings
-ADD secrets/neon_counts.js /usr/src/app/public
-ADD secrets/neon_graph.js /usr/src/app/public
+#ADD secrets/secret.py /usr/src/app/tap/settings
+#ADD secrets/neon_counts.js /usr/src/app/public
+#ADD secrets/neon_graph.js /usr/src/app/public
 
 # Add startup script
 ADD wait-for-postgres.sh /usr/src/app


[12/40] incubator-senssoft git commit: Added instrumented site demo that sends logs to ELK. Updated ports.

Posted by le...@apache.org.
Added instrumented site demo that sends logs to ELK. Updated ports.


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/9068fc14
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/9068fc14
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/9068fc14

Branch: refs/heads/asf-site
Commit: 9068fc14d32e13cdfeba81b5da7e5c6a0f54b49c
Parents: 731fb44
Author: msb3399 <mb...@draper.com>
Authored: Wed May 3 14:35:55 2017 -0400
Committer: msb3399 <mb...@draper.com>
Committed: Wed May 3 14:35:55 2017 -0400

----------------------------------------------------------------------
 docker/docker-compose.yml                    | 12 +++++--
 docker/logstash/config/logstash-userale.conf |  2 +-
 docker/site/Dockerfile                       | 42 +++++++++++++++++++++++
 3 files changed, 53 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9068fc14/docker/docker-compose.yml
----------------------------------------------------------------------
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 0778c42..6570771 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -24,8 +24,17 @@ services:
     container_name: senssoft-start
     depends_on:
       - "elasticsearch"
+      - "userale-forwarder"
     command: bash /opt/entrypoint.sh
 
+  # Site
+  site:
+    build: ./site
+    container_name: senssoft-app
+    ports:
+      - 8080:8080
+    command: python -m SimpleHTTPServer 8080
+
   # ELK Stack
   elasticsearch:
     image: elasticsearch:latest
@@ -56,13 +65,12 @@ services:
     container_name: senssoft-userale-forwarder
     command: -f /etc/logstash/conf.d
     ports:
-      - 8080:8080
+      - 8100:8100
     volumes: 
       - ./logstash/config/logstash-userale.conf:/etc/logstash/conf.d/logstash-userale.conf
       - ./logstash/templates/userale.json:/usr/share/logstash/templates/userale.json
     depends_on:
       - "elasticsearch"
-      - "startup"
     environment:
       LS_HEAP_SIZE: "2048m"
 

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9068fc14/docker/logstash/config/logstash-userale.conf
----------------------------------------------------------------------
diff --git a/docker/logstash/config/logstash-userale.conf b/docker/logstash/config/logstash-userale.conf
index 79a69d0..6eb103e 100644
--- a/docker/logstash/config/logstash-userale.conf
+++ b/docker/logstash/config/logstash-userale.conf
@@ -16,7 +16,7 @@
 input {
 	http {
 		codec => "json"
-		port => 8080
+		port => 8100
 		response_headers => { 
 			"Access-Control-Allow-Origin" => "*" 
             "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, Accept"

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9068fc14/docker/site/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/site/Dockerfile b/docker/site/Dockerfile
new file mode 100644
index 0000000..0525dea
--- /dev/null
+++ b/docker/site/Dockerfile
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM ruby
+MAINTAINER Michelle Beard <ms...@apache.org>
+
+# Install system wide dependencies
+RUN apt-get -yqq update && apt-get -yqq install \
+	curl \
+	sudo
+
+# Set the work directory
+RUN mkdir -p /usr/src
+WORKDIR /usr/src
+
+# Install git
+RUN sudo -E apt-get -yqq install \
+  git
+
+# Clone Apache SensSoft Site
+RUN git clone -b master https://github.com/apache/incubator-senssoft.git
+WORKDIR /usr/src/incubator-senssoft/site/_site
+
+# Update data-url to send to logstash
+RUN sed -i 's/data-url=\"\"/data-url="http:\/\/localhost:8100"/' index.html
+RUN sed -i 's/noSend\: true/noSend\: false/' index.html
+
+# Install system wide dependencies
+RUN apt-get -yqq update && apt-get -yqq install \
+	python


[40/40] incubator-senssoft git commit: Merge branch 'master' into asf-site

Posted by le...@apache.org.
Merge branch 'master' into asf-site


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/commit/9f809007
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/tree/9f809007
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft/diff/9f809007

Branch: refs/heads/asf-site
Commit: 9f80900776132087e36071ee4cc0e79c1f473aa1
Parents: 6f2379b 609a098
Author: Lewis John McGibbney <le...@gmail.com>
Authored: Mon Mar 12 08:57:58 2018 -0700
Committer: Lewis John McGibbney <le...@gmail.com>
Committed: Mon Mar 12 08:57:58 2018 -0700

----------------------------------------------------------------------
 .gitignore                                     |   4 +-
 KEYS                                           |  37 ++
 LICENSE                                        | 201 +++++++
 README.md                                      |   5 +
 docker/README.md                               | 137 +++++
 docker/db/Dockerfile                           |  21 +
 docker/db/sql.sh                               |  32 ++
 docker/distill/Dockerfile                      |  35 ++
 docker/docker-compose.yml                      | 166 ++++++
 docker/elasticsearch/Dockerfile                |  29 +
 docker/elasticsearch/config/elasticsearch.yml  |  49 ++
 docker/elasticsearch/config/log4j2.properties  |  24 +
 docker/images/configure_index.png              | Bin 0 -> 116678 bytes
 docker/images/confirmation.png                 | Bin 0 -> 158876 bytes
 docker/images/dashboard.png                    | Bin 0 -> 172635 bytes
 docker/images/management.png                   | Bin 0 -> 60954 bytes
 docker/kibana/Dockerfile                       |  25 +
 docker/kibana/config/kibana.yml                |  18 +
 docker/kibana/dashboard.json                   |  19 +
 docker/kibana/visualizations.json              |  58 ++
 docker/logstash/Dockerfile                     |  30 +
 docker/logstash/config/logstash-userale.conf   |  53 ++
 docker/logstash/templates/userale.json         | 150 +++++
 docker/requirements.txt                        |   1 +
 docker/site/Dockerfile                         |  42 ++
 docker/startup/Dockerfile                      |  29 +
 docker/startup/entrypoint.sh                   |  20 +
 docker/tap/Dockerfile                          |  67 +++
 docker/tap/README.md                           |   2 +
 docker/tap/neon_counts.js                      |   2 +
 docker/tap/neon_graph.js                       |   2 +
 docker/tap/wait-for-postgres.sh                |  27 +
 release/README.md                              |  30 +
 release/clone-and-configure-repos.sh           | 115 ++++
 release/common.sh                              |  71 +++
 release/make-release-artifacts.sh              | 250 +++++++++
 site/.dockerignore                             |   5 +
 site/CHANGELOG.md                              |  12 +
 site/Dockerfile                                |  26 +
 site/README.md                                 |  21 +
 site/_docs/contributing.md                     |   5 +-
 site/_docs/distill/http.md                     |   2 +-
 site/_docs/index.md                            |   2 +-
 site/_docs/userale/index.md                    |   8 +-
 site/_docs/useralejs/contributing.md           |  26 -
 site/_docs/useralejs/index.md                  |   6 +-
 site/_docs/useralejs/testing.md                |  26 +
 site/_docs/useralejs/troubleshooting.md        |   2 +-
 site/_docs/useralepy/api.md                    | 183 ++++++
 site/_docs/useralepy/changelog.md              |  53 ++
 site/_docs/useralepy/index.md                  | 111 ++++
 site/_docs/useralepy/start.md                  |  59 ++
 site/_docs/useralepyqt/api.md                  | 183 ------
 site/_docs/useralepyqt/changelog.md            |  53 --
 site/_docs/useralepyqt/index.md                | 111 ----
 site/_docs/useralepyqt/start.md                |  59 --
 site/_includes/doc_sidebar.html                |  10 +-
 site/_includes/footer.html                     |   4 +-
 site/_includes/header.html                     |   2 +-
 site/_pages/community.html                     |   8 +-
 site/_pages/releases.html                      | 100 +++-
 site/_pages/tap.html                           |   2 +-
 site/_site/community/index.html                |  16 +-
 site/_site/distill/index.html                  |   8 +-
 site/_site/docs/contributing.html              |   2 +-
 site/_site/docs/contributing/index.html        | 334 +++++++++++
 site/_site/docs/distill/analytics.html         |  26 +-
 site/_site/docs/distill/api.html               |  26 +-
 site/_site/docs/distill/changelog.html         |  26 +-
 site/_site/docs/distill/http.html              |  32 +-
 site/_site/docs/distill/index.html             |  26 +-
 site/_site/docs/distill/models.html            |  26 +-
 site/_site/docs/distill/start.html             |  26 +-
 site/_site/docs/distill/utilities.html         |  26 +-
 site/_site/docs/index.html                     |  28 +-
 site/_site/docs/stout/index.html               |  26 +-
 site/_site/docs/stout/start.html               |  26 +-
 site/_site/docs/system/index.html              |  26 +-
 site/_site/docs/tap/index.html                 |  26 +-
 site/_site/docs/userale/index.html             |  34 +-
 site/_site/docs/useralejs/contributing.html    |   2 +-
 site/_site/docs/useralejs/index.html           |  32 +-
 site/_site/docs/useralejs/testing.html         | 331 +++++++++++
 site/_site/docs/useralejs/troubleshooting.html |  28 +-
 site/_site/docs/useralepy/api.html             | 592 ++++++++++++++++++++
 site/_site/docs/useralepy/changelog.html       | 379 +++++++++++++
 site/_site/docs/useralepy/index.html           | 423 ++++++++++++++
 site/_site/docs/useralepy/start.html           | 364 ++++++++++++
 site/_site/docs/useralepyqt/api.html           |   2 +-
 site/_site/docs/useralepyqt/changelog.html     |   2 +-
 site/_site/docs/useralepyqt/index.html         |   2 +-
 site/_site/docs/useralepyqt/start.html         |   2 +-
 site/_site/feed.xml                            |   2 +-
 site/_site/index.html                          |  10 +-
 site/_site/releases/index.html                 | 106 +++-
 site/_site/stout/index.html                    |   8 +-
 site/_site/system/index.html                   |   8 +-
 site/_site/tap/index.html                      |  10 +-
 site/_site/userale/index.html                  |   8 +-
 site/index.html                                |   2 +-
 site/package.json                              |   4 +-
 101 files changed, 5155 insertions(+), 732 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9f809007/site/README.md
----------------------------------------------------------------------
diff --cc site/README.md
index 0000000,461b23e..ac0216c
mode 000000,100644..100644
--- a/site/README.md
+++ b/site/README.md
@@@ -1,0 -1,19 +1,21 @@@
 -How to Build Site
 ------------------
++How to Build and Deploy Site
++----------------------------
+ 
+ 1. Download and Install [``Docker``](http://docker.com)
+ 2. Build site
+     ```
+     docker build -t senssoft:site .
+     ```
+ 3. Deploy site on localhost:8000
+     ```
+     docker run -p 8000:8000 -it senssoft:site python -m SimpleHTTPServer 
+     ```
+ 4. (Optional): To update the site, can copy the files from the container to _site.
+     ```
+     # First grab container id
+     CID=$(docker create -p 8000:8000 -it senssoft:site python -m SimpleHTTPServer)
+     # Reference container id to grab built contents
+     docker cp $CID:/app/_site .
 -    ```
++    ```
++5. N.B. Make sure that any Website changes which are to be deployed to production are pushed
++   to the **asf-site** branch.

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9f809007/site/_site/index.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9f809007/site/_site/releases/index.html
----------------------------------------------------------------------
diff --cc site/_site/releases/index.html
index 4512cfa,e045955..72c4b75
--- a/site/_site/releases/index.html
+++ b/site/_site/releases/index.html
@@@ -68,20 -68,103 +68,116 @@@
    </h1>
    <div class="page-content">
      <p>
-   Apache SensSoft is currently preparing for its first full release.  Stay tuned and sign up for our mailing lists to keep up to date!
+   Below you can find the official SensSoft release distrbution artifacts. Older releases can be found at the <a heref="http://archive.apache.org/dist/incubator/senssoft/">Apache SensSoft Archives</a>.
+   
+   For ongoing development and future release announcements, stay tuned and sign up for our <a href="./community.html">mailing lists</a> to keep up to date!
+ </p>
+ 
+ <p>
+   Please Note all SensSoft artifacts are released as source code and binary artifacts and additional packages can be found on packaging platforms such as UserALE .js which we make available through <a href="https://www.npmjs.com/package/useralejs">the NPM useralejs package</a>. 
+ 
+   The CHANGELOG file shipped with each artifact can be consulted for more information on the list of updates in each release. 
+ 
+   SensSoft artifacts are always distributed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
+ </p>
+ 
+ <h1>SensSoft UserALE.js</h1>
+ 
+ Please note, that for convenience, we make UserALE .js available through <a href="https://www.npmjs.com/package/useralejs">the NPM useralejs package</a>.
+ 
+ <h2>Downloads</h2>
+ The link in the 'Download Artifact' column below should display a default mirror selection based on your inferred location. If (when you browse to it) you do not see that page, try a different browser. The SHA512 checksum and ASCII armoured detached signatures are links to the originals on the main distribution server.
+ 
+ <table class="table">
+   <thead>
+   <tr>
+     <th align="left">Version</th> 
+     <th align="left">Download Artifact</th> 
+     <th align="left">ASCII signature</th>
+     <th align="left">SHA512 Checksum</th> 
+   </tr>
+   </thead>
+   <tbody>
+   <tr>
+     <td>Apache SensSoft UserALE.js 1.0.0 (binary tar.gz)</td>
+     <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz">apache-senssoft-useralejs-1.0.0-bin.tar.gz</a></td> 
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz.asc">apache-senssoft-useralejs-1.0.0-bin.tar.gz.asc</a> </td> 
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.tar.gz.sha512">apache-senssoft-useralejs-1.0.0-bin.tar.gz.sha512</a> </td> 
+   </tr>
+   <tr>
+     <td>Apache SensSoft UserALE.js 1.0.0(binary zip)</td>
+     <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip">apache-senssoft-useralejs-1.0.0-bin.zip</a></td>
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip.asc">apache-senssoft-useralejs-1.0.0-bin.zip.asc</a></td>
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-bin.zip.sha512">apache-senssoft-useralejs-1.0.0-bin.zip.sha512</a></td>
+   </tr>
+   <tr>
+     <td>Apache SensSoft UserALE.js 1.0.0 (source tar.gz)</td>
+     <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz">apache-senssoft-useralejs-1.0.0-src.tar.gz</a></td> 
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz.asc">apache-senssoft-useralejs-1.0.0-src.tar.gz.asc</a> </td> 
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.tar.gz.sha512">apache-senssoft-useralejs-1.0.0-src.tar.gz.sha512</a> </td> 
+   </tr>
+   <tr>
+     <td>Apache SensSoft UserALE.js 1.0.0(source zip)</td>
+     <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip">apache-senssoft-useralejs-1.0.0-src.zip</a></td>
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip.asc">apache-senssoft-useralejs-1.0.0-src.zip.asc</a></td>
+     <td><a href="https://dist.apache.org/repos/dist/release/incubator/senssoft/apache-senssoft-useralejs-1.0.0/apache-senssoft-useralejs-1.0.0-src.zip.sha512">apache-senssoft-useralejs-1.0.0-src.zip.sha512</a></td>
+   </tr>
+   </tbody>
+ </table>
+ 
+ <h1>Verify Releases</h1>
+ <p>
+ 	It is essential that you verify the integrity of the downloaded files using the PGP, and/or SHA signatures. published with every Gora release.
+ 
+ 	Please read <a href="http://httpd.apache.org/dev/verification.html">Verifying Apache HTTP Server Releases</a> for more information on why you should verify our releases.
+ 
+ 	We strongly recommend you verify your downloads with at least PGP. Guidance for doing so is provided below.
+ </p>
+ 
+ <h2>PGP Signatures</h2>
+ <p>
+ 	The PGP signatures can be verified using PGP or GPG. First download the <a href="http://www.apache.org/dist/incubator/senssoft/KEYS">KEYS</a> as well as the asc signature file for the relevant distribution.
+ 
+ 	<b>N.B.</b> Make sure you get these files from the main distribution directory, rather than from a mirror. Then verify the signatures using the following example</p>
+ 
+ <p>
+ 	<code>
+ 		$ gpg --import KEYS
+ 	</code>
+ </p>
+ <p>
+ 	<code>
+ 		$ gpg --verify apache-senssoft-useralejs-1.0.0-src.zip.asc
+ 	</code>
  </p>
  
++<<<<<<< HEAD
 +    <p>
 +  You can always find current SensSoft code in our <a href="http://incubator.apache.org/projects/senssoft.html">git repositories</a>, or on <a href="https://github.com/apache?q=senssoft">github</a>.
 +</p>
 +
 +<a class="ui blue button" href="mailto:dev-subscribe@senssoft.incubator.apache.org">
 +  Dev List
 +</a>
 +<a class="ui yellow button" href="mailto:users-subscribe@senssoft.incubator.apache.org">
 +  User List
 +</a>
++=======
+ <p>
+ 	The files in the most recent release are signed by Lewis John McGibbney (CODE SIGNING KEY) lewismc@apache.org 48BAEBF6
+ </p>
++>>>>>>> master
  
+ <h2>SHA512 Signatures</h2>
+ <p>
+ 	Alternatively, you can verify the SHA512 signatures on the files. A unix program called md5 or md5sum is included in many unix distributions. Use the following example
+ </p>
+ <p>
+ 	<code>$ sha512sum apache-senssoft-useralejs-1.0.0-src.zip</code>
+ </p>
+ <p>
+ 	... output should match the string in apache-senssoft-useralejs-1.0.0-src.zip.sha512
+ </p>
    </div>
  </div>
  

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/9f809007/site/index.html
----------------------------------------------------------------------


[15/40] incubator-senssoft git commit: Updated README to show how to update build site contents from Docker container.

Posted by le...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/stout/index.html
----------------------------------------------------------------------
diff --git a/site/_site/stout/index.html b/site/_site/stout/index.html
index d8dbb74..e63c5aa 100644
--- a/site/_site/stout/index.html
+++ b/site/_site/stout/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/stout/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/stout/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -191,7 +191,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/system/index.html
----------------------------------------------------------------------
diff --git a/site/_site/system/index.html b/site/_site/system/index.html
index e8b4261..2359a8d 100644
--- a/site/_site/system/index.html
+++ b/site/_site/system/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/system/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/system/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -173,7 +173,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/tap/index.html
----------------------------------------------------------------------
diff --git a/site/_site/tap/index.html b/site/_site/tap/index.html
index d5f0f39..a18acc6 100644
--- a/site/_site/tap/index.html
+++ b/site/_site/tap/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/tap/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/tap/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -116,7 +116,7 @@
           <div class="column">
             <h3 class="ui inverted header">Control access to your data (coming soon)</h3>
             <div class="feature-description">
-              Control permissions for how your organization can access user data by setting permissions at the instutitional level down to access to data collected from specific applications.
+              Control permissions for how your organization can access user data by setting permissions at the institutional level down to access to data collected from specific applications.
             </div>
           </div>
         </div>
@@ -257,7 +257,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/c593cd06/site/_site/userale/index.html
----------------------------------------------------------------------
diff --git a/site/_site/userale/index.html b/site/_site/userale/index.html
index fb6853b..7ae08ac 100644
--- a/site/_site/userale/index.html
+++ b/site/_site/userale/index.html
@@ -16,7 +16,7 @@
   <script src="/js/main.js"></script>
 
   <link rel="stylesheet" href="/assets/main.css">
-  <link rel="canonical" href="http://localhost:4000/userale/">
+  <link rel="canonical" href="http://senssoft.incubator.apache.org/userale/">
   <link rel="alternate" type="application/rss+xml" title="Apache SensSoft" href="/feed.xml">
 
   
@@ -48,7 +48,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserALE.js</a>
-          <a class="item" href="/docs/useralepyqt">UserALE.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserALE.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>
@@ -340,7 +340,7 @@
           <a class="item" href="/docs/system">System</a>
           <a class="item" href="/docs/userale">UserALE</a>
           <a class="item" href="/docs/useralejs">UserAle.js</a>
-          <a class="item" href="/docs/useralepyqt">UserAle.pyqt</a>
+          <a class="item" href="/docs/useralepy">UserAle.py</a>
           <a class="item" href="/docs/distill">Distill</a>
           <a class="item" href="/docs/tap">Tap</a>
           <a class="item" href="/docs/stout">Stout</a>