j1-template 2022.5.0 → 2022.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/attics/generator.html +5 -13
  3. data/_includes/themes/j1/procedures/global/date-german.proc +67 -0
  4. data/assets/data/banner.html +2 -2
  5. data/assets/data/menu.html +1 -1
  6. data/assets/data/mmenu.html +36 -36
  7. data/assets/themes/j1/adapter/js/attic.js +114 -62
  8. data/assets/themes/j1/adapter/js/cookieConsent.js +42 -25
  9. data/assets/themes/j1/adapter/js/mmenu.js +2 -2
  10. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +28 -3
  11. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  12. data/assets/themes/j1/modules/backstretch/js/backstretch.js +5 -5
  13. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  14. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.js +1696 -0
  15. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.min.js +20 -0
  16. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.js +1627 -0
  17. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.min.js +20 -0
  18. data/assets/themes/j1/modules/mmenuLight/README.md +22 -0
  19. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.css +224 -243
  20. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.min.css +3 -3
  21. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +95 -55
  22. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  23. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +57 -440
  24. data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +4 -15
  25. data/assets/themes/j1/modules/{twemoji/js/picker → themeSwitcher}/LICENSE +21 -21
  26. data/assets/themes/j1/modules/themeSwitcher/README.md +166 -0
  27. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +2 -2
  28. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  29. data/lib/j1/version.rb +1 -1
  30. data/lib/starter_web/Gemfile +1 -1
  31. data/lib/starter_web/README.md +440 -175
  32. data/lib/starter_web/_config.yml +2 -2
  33. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  34. data/lib/starter_web/_data/modules/attics.yml +12 -0
  35. data/lib/starter_web/_data/modules/defaults/attics.yml +16 -1
  36. data/lib/starter_web/_data/modules/defaults/cookies.yml +1 -1
  37. data/lib/starter_web/_data/modules/navigator_menu.yml +28 -25
  38. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  39. data/lib/starter_web/assets/images/modules/attics/1920x1280/ben-kolde.jpg +0 -0
  40. data/lib/starter_web/assets/images/modules/attics/1920x1280/braden-collum.jpg +0 -0
  41. data/lib/starter_web/assets/images/modules/attics/1920x1280/ev.jpg +0 -0
  42. data/lib/starter_web/assets/images/modules/attics/1920x1280/firmbee-com.jpg +0 -0
  43. data/lib/starter_web/assets/images/modules/attics/1920x1280/max-harlynking.jpg +0 -0
  44. data/lib/starter_web/assets/images/modules/attics/guillaume-bolduc-1920x1280.jpg +0 -0
  45. data/lib/starter_web/assets/images/modules/attics/spacex-1920x1280.jpg +0 -0
  46. data/lib/starter_web/assets/videos/headers/{still → present_videos/still}/underground-broadway.jpg +0 -0
  47. data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
  48. data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +3 -1
  49. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +3 -0
  50. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +2 -3
  51. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +3 -0
  52. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +3 -0
  53. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +3 -0
  54. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +3 -0
  55. data/lib/starter_web/index.html +68 -12
  56. data/lib/starter_web/package.json +1 -1
  57. data/lib/starter_web/pages/public/about/features.adoc +119 -0
  58. data/lib/starter_web/pages/public/about/reporting_issues.adoc +5 -1
  59. data/lib/starter_web/pages/public/about/{about_site.adoc → site.adoc} +20 -15
  60. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +3 -0
  61. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +3 -0
  62. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +3 -0
  63. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -0
  64. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +4 -1
  65. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +4 -1
  66. data/lib/starter_web/pages/public/blog/navigator/archive.html +4 -1
  67. data/lib/starter_web/pages/public/blog/navigator/index.html +4 -1
  68. data/lib/starter_web/pages/public/features/general.adoc +5 -1
  69. data/lib/starter_web/pages/public/features/template.adoc +4 -0
  70. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-circular-times-table.adoc +3 -0
  71. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-common-used-widgets.adoc +3 -0
  72. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-odes-in-python.adoc +3 -0
  73. data/lib/starter_web/pages/public/jupyter/examples/localized/j1_climate-change-forecast.adoc +3 -0
  74. data/lib/starter_web/pages/public/learn/quickstart.adoc +4 -1
  75. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +4 -1
  76. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +16 -5
  77. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +3 -0
  78. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +3 -0
  79. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +3 -0
  80. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +3 -0
  81. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +3 -0
  82. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +3 -0
  83. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +6 -2
  84. data/lib/starter_web/pages/public/learn/where_to_go.adoc +3 -0
  85. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +3 -0
  86. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +3 -0
  87. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +142 -0
  88. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +3 -0
  89. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +9 -1
  90. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +10 -2
  91. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +66 -3
  92. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +3 -0
  93. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -0
  94. data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
  95. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +4 -0
  96. data/lib/starter_web/pages/public/se/se-fake.adoc +4 -0
  97. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  98. data/lib/starter_web/utilsrv/package.json +1 -1
  99. metadata +21 -372
  100. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +0 -153
  101. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +0 -19
  102. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +0 -304
  103. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +0 -322
  104. data/assets/themes/j1/modules/twemoji/js/twemoji.js +0 -580
  105. data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +0 -19
  106. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
  107. data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +0 -67
  108. data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +0 -232
  109. data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +0 -631
  110. data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +0 -638
  111. data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +0 -248
  112. data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +0 -928
  113. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +0 -139
  114. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +0 -229
  115. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +0 -112
  116. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +0 -142
  117. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +0 -171
  118. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +0 -111
  119. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +0 -94
  120. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +0 -106
  121. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16260
  122. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +0 -247
  123. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +0 -12382
  124. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +0 -12387
  125. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +0 -12170
  126. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +0 -1058
  127. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +0 -14478
  128. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +0 -379
  129. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +0 -442
  130. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +0 -523
  131. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +0 -84
  132. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +0 -194
  133. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +0 -89
  134. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +0 -164
  135. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +0 -173
  136. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +0 -256
  137. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +0 -126
  138. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +0 -87
  139. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +0 -90
  140. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +0 -87
  141. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +0 -64
  142. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +0 -122
  143. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +0 -181
  144. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +0 -89
  145. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +0 -175
  146. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +0 -87
  147. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +0 -14478
  148. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +0 -15227
  149. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
  150. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_circular_times_table.ipynb +0 -12382
  151. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +0 -1058
  152. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +0 -14478
  153. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +0 -442
  154. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +0 -523
  155. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +0 -89
  156. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +0 -87
  157. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +0 -90
  158. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +0 -64
  159. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +0 -122
  160. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +0 -89
  161. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +0 -87
  162. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +0 -15227
  163. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/line_by_line.mp4 +0 -0
  164. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/point_by_point.mp4 +0 -0
  165. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16296
  166. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +0 -15385
  167. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +0 -16296
  168. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +0 -15385
  169. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +0 -717
  170. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +0 -1381
  171. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +0 -1440
  172. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +0 -927
  173. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +0 -1105
  174. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +0 -578
  175. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +0 -1196
  176. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +0 -1681
  177. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +0 -680
  178. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +0 -693
  179. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +0 -751
  180. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +0 -770
  181. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +0 -666
  182. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +0 -1365
  183. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +0 -1405
  184. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +0 -856
  185. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +0 -1167
  186. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +0 -601
  187. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +0 -1356
  188. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_07_bar_and_categorical_data_plots-checkpoint.ipynb +0 -1742
  189. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +0 -625
  190. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +0 -685
  191. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +0 -726
  192. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +0 -726
  193. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +0 -560
  194. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +0 -716
  195. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +0 -1365
  196. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +0 -1405
  197. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +0 -856
  198. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +0 -1167
  199. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +0 -601
  200. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +0 -1356
  201. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +0 -1742
  202. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +0 -625
  203. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +0 -685
  204. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +0 -336
  205. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -433
  206. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +0 -244
  207. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +0 -12170
  208. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +0 -336
  209. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +0 -163
  210. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +0 -51
  211. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +0 -289
  212. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +0 -266
  213. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +0 -396
  214. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +0 -318
  215. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +0 -158
  216. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +0 -6799
  217. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -470
  218. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +0 -49
  219. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +0 -378
  220. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +0 -123
  221. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +0 -177
  222. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +0 -311
  223. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +0 -255
  224. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +0 -275
  225. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +0 -1
  226. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +0 -234
  227. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +0 -186
  228. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +0 -794
  229. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -323
  230. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +0 -261
  231. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +0 -1489
  232. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +0 -163
  233. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +0 -966
  234. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +0 -476
  235. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +0 -427
  236. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +0 -528
  237. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +0 -480
  238. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +0 -217
  239. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +0 -253
  240. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +0 -225
  241. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +0 -123
  242. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +0 -357
  243. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +0 -422
  244. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +0 -157
  245. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +0 -176
  246. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +0 -195
  247. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +0 -189
  248. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +0 -565
  249. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +0 -182
  250. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +0 -315
  251. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +0 -465
  252. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +0 -835
  253. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +0 -362
  254. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +0 -252
  255. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +0 -273
  256. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +0 -242
  257. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +0 -417
  258. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +0 -155
  259. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +0 -238
  260. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +0 -152
  261. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +0 -206
  262. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +0 -474
  263. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +0 -181
  264. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +0 -310
  265. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +0 -702
  266. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +0 -495
  267. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +0 -433
  268. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +0 -326
  269. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +0 -177
  270. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +0 -177
  271. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +0 -154
  272. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +0 -152
  273. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +0 -128
  274. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +0 -113
  275. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +0 -326
  276. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +0 -179
  277. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +0 -174
  278. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +0 -177
  279. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +0 -51
  280. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +0 -213
  281. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +0 -56
  282. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +0 -52
  283. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/trees.jpg +0 -0
  284. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_central_limit_theorem-checkpoint.ipynb +0 -247
  285. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +0 -323
  286. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -387
  287. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +0 -185
  288. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +0 -384
  289. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +0 -254
  290. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +0 -732
  291. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +0 -247
  292. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +0 -651
  293. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +0 -773
  294. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +0 -111
  295. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +0 -199
  296. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +0 -421
  297. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +0 -323
  298. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +0 -387
  299. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +0 -185
  300. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +0 -384
  301. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +0 -254
  302. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +0 -732
  303. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +0 -373
  304. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +0 -361
  305. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +0 -569
  306. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +0 -487
  307. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +0 -341
  308. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +0 -259
  309. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +0 -277
  310. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +0 -182
  311. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +0 -299
  312. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +0 -252
  313. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +0 -318
  314. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +0 -514
  315. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +0 -182
  316. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +0 -479
  317. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +0 -128
  318. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +0 -152
  319. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +0 -137
  320. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +0 -484
  321. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +0 -483
  322. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +0 -170
  323. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +0 -349
  324. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +0 -177
  325. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +0 -29
  326. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +0 -1372
  327. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +0 -749
  328. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +0 -268
  329. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +0 -704
  330. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +0 -389
  331. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +0 -455
  332. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +0 -229
  333. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +0 -613
  334. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +0 -413
  335. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +0 -131
  336. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +0 -190
  337. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +0 -193
  338. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +0 -363
  339. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +0 -367
  340. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +0 -337
  341. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +0 -196
  342. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +0 -948
  343. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +0 -489
  344. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +0 -173
  345. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +0 -40
  346. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +0 -228
  347. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +0 -2216
  348. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +0 -1170
  349. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +0 -318
  350. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +0 -1479
  351. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +0 -1524
  352. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +0 -983
  353. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +0 -1280
  354. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +0 -660
  355. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +0 -1563
  356. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +0 -1888
  357. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +0 -689
  358. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +0 -767
  359. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +0 -475
  360. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +0 -747
  361. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +0 -1250
  362. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +0 -186
  363. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +0 -512
  364. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +0 -407
  365. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +0 -629
  366. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +0 -95
  367. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +0 -93
  368. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +0 -96
  369. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +0 -70
  370. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +0 -156
  371. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +0 -95
  372. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +0 -93
  373. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +0 -955
  374. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +0 -290
  375. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +0 -818
  376. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +0 -351
  377. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +0 -106
  378. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +0 -228
  379. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +0 -518
  380. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +0 -372
  381. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +0 -473
  382. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +0 -242
  383. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +0 -496
  384. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +0 -329
  385. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +0 -866
  386. data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +0 -270
  387. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_images.adoc +0 -313
  388. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +0 -281
  389. data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +0 -253
  390. data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +0 -579
  391. data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +0 -718
  392. data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +0 -91
  393. data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +0 -420
  394. data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +0 -250
  395. data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +0 -425
  396. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +0 -118
  397. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +0 -28
  398. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +0 -14
  399. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +0 -11
  400. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +0 -11
  401. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +0 -11
  402. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +0 -11
  403. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +0 -11
  404. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -47
  405. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +0 -11
  406. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +0 -11
  407. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +0 -11
  408. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +0 -337
  409. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +0 -47
  410. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +0 -130
@@ -1,378 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Logs Analytics Dashboard\n",
8
- "This dashboard can be used for performing visual analytics on the server log files. You can interact with any chart in the dashboard, like so:\n",
9
- "\n",
10
- "1. Click on a bar in any bar chart to filter the whole dataset by that bar's value\n",
11
- "2. Click on a slice of any pie chart to filter the whole dataset by that pie slices value\n",
12
- "\n",
13
- "Fun things to try:\n",
14
- "1. Select any specific day in the `Daily Events` bar chart (for e.g. why do first and last days have fewer events?)\n",
15
- "2. Find out which product queries resulted in server error (click on `Server Error` slice of `Events By Status` pie chart)\n"
16
- ]
17
- },
18
- {
19
- "cell_type": "code",
20
- "execution_count": null,
21
- "metadata": {},
22
- "outputs": [],
23
- "source": [
24
- "import numpy as np\n",
25
- "import pandas as pd\n",
26
- "\n",
27
- "import ipywidgets as widgets\n",
28
- "import bqplot as bq\n",
29
- "import bqplot.pyplot as plt"
30
- ]
31
- },
32
- {
33
- "cell_type": "code",
34
- "execution_count": null,
35
- "metadata": {},
36
- "outputs": [],
37
- "source": [
38
- "def get_status_code(x):\n",
39
- " \"\"\"\n",
40
- " map integer http status to string status code\n",
41
- " \"\"\"\n",
42
- " if x >= 200 and x < 300:\n",
43
- " return \"SUCCESS\"\n",
44
- " elif x >= 300 and x < 400:\n",
45
- " return \"REDIRECT\"\n",
46
- " elif x >= 400 and x < 500:\n",
47
- " return \"CLIENT ERROR\"\n",
48
- " elif x >= 500:\n",
49
- " return \"SERVER ERROR\""
50
- ]
51
- },
52
- {
53
- "cell_type": "code",
54
- "execution_count": null,
55
- "metadata": {},
56
- "outputs": [],
57
- "source": [
58
- "def get_events_by_hour(log_data_slice):\n",
59
- " \"\"\"\n",
60
- " get event counts by hour\n",
61
- " \"\"\"\n",
62
- " return (\n",
63
- " log_data_slice[\"status_code\"]\n",
64
- " .groupby(lambda x: x.hour)\n",
65
- " .count()\n",
66
- " .reindex(np.arange(24))\n",
67
- " .fillna(0)\n",
68
- " )"
69
- ]
70
- },
71
- {
72
- "cell_type": "code",
73
- "execution_count": null,
74
- "metadata": {},
75
- "outputs": [],
76
- "source": [
77
- "# load data into pandas and do some munging\n",
78
- "log_data = pd.read_csv(\"access.log\", sep=\" \", header=None)\n",
79
- "log_data.drop([1, 2], axis=1, inplace=True)\n",
80
- "log_data.columns = [\n",
81
- " \"ip_address\",\n",
82
- " \"timestamp\",\n",
83
- " \"request\",\n",
84
- " \"status\",\n",
85
- " \"col1\",\n",
86
- " \"url\",\n",
87
- " \"agent\",\n",
88
- " \"col2\",\n",
89
- "]\n",
90
- "\n",
91
- "log_data.index = pd.to_datetime(\n",
92
- " log_data[\"timestamp\"].str.replace(\"[\\[\\]]\", \"\"), format=\"%d/%b/%Y:%H:%M:%S\"\n",
93
- ")\n",
94
- "log_data.drop(\"timestamp\", axis=1, inplace=True)\n",
95
- "\n",
96
- "# add extra columns for easy querying\n",
97
- "log_data[\"status_code\"] = log_data[\"status\"].map(get_status_code)\n",
98
- "log_data[\"category\"] = log_data[\"request\"].str.extract(\"categoryId=(.*)&\", expand=False)\n",
99
- "log_data[\"product\"] = log_data[\"request\"].str.extract(\"productId=(.*)&\", expand=False)\n",
100
- "log_data[\"hour\"] = log_data.index.map(lambda x: x.hour)\n",
101
- "log_data[\"day\"] = log_data.index.strftime(\"%Y-%m-%d\")"
102
- ]
103
- },
104
- {
105
- "cell_type": "code",
106
- "execution_count": null,
107
- "metadata": {},
108
- "outputs": [],
109
- "source": [
110
- "all_days = log_data[\"day\"].value_counts().index\n",
111
- "all_hours = np.arange(24)\n",
112
- "all_categories = list(log_data[\"category\"].value_counts().index)\n",
113
- "all_products = list(log_data[\"product\"].value_counts().index)\n",
114
- "all_status_codes = list(log_data[\"status_code\"].value_counts().index)\n",
115
- "\n",
116
- "category_colors = dict(zip(all_categories, bq.CATEGORY10))\n",
117
- "status_label_colors = dict(\n",
118
- " [(\"SUCCESS\", \"#006d2c\"), (\"CLIENT ERROR\", \"#fc8d59\"), (\"SERVER ERROR\", \"#a63603\")]\n",
119
- ")"
120
- ]
121
- },
122
- {
123
- "cell_type": "code",
124
- "execution_count": null,
125
- "metadata": {
126
- "scrolled": true
127
- },
128
- "outputs": [],
129
- "source": [
130
- "# daily events bar chart\n",
131
- "daily_events_fig = plt.figure(\n",
132
- " title=\"Daily Events\",\n",
133
- " animation_duration=1000,\n",
134
- " layout=widgets.Layout(width=\"900px\", height=\"500px\"),\n",
135
- ")\n",
136
- "\n",
137
- "plt.scales(scales={\"x\": bq.DateScale()})\n",
138
- "\n",
139
- "# intsel = BrushIntervalSelector(scale=, marks=[hist])\n",
140
- "bar_axes_options = {\"x\": {\"grid_lines\": \"none\"}, \"y\": {\"tick_format\": \",\"}}\n",
141
- "common_bar_options = dict(\n",
142
- " interactions={\"click\": \"select\"},\n",
143
- " selected_style={\"stroke\": \"Red\", \"stroke-width\": 4},\n",
144
- " axes_options=bar_axes_options,\n",
145
- ")\n",
146
- "daily_events_bar = plt.bar(\n",
147
- " pd.to_datetime(all_days),\n",
148
- " [],\n",
149
- " colors=[\"dodgerblue\"],\n",
150
- " opacities=[0.8] * len(all_days),\n",
151
- " **common_bar_options\n",
152
- ")\n",
153
- "\n",
154
- "num_days = len(all_days)\n",
155
- "filtered_daily_events_bar = plt.bar(\n",
156
- " pd.to_datetime(all_days),\n",
157
- " np.zeros(num_days),\n",
158
- " colors=[\"lightgreen\"],\n",
159
- " opacities=[0.8] * num_days,\n",
160
- " axes_options=bar_axes_options,\n",
161
- ")\n",
162
- "\n",
163
- "# hourly events line chart\n",
164
- "hourly_events_fig = plt.figure(\n",
165
- " title=\"Hourly Events\",\n",
166
- " animation_duration=1000,\n",
167
- " layout=widgets.Layout(width=\"600px\", height=\"500px\"),\n",
168
- ")\n",
169
- "\n",
170
- "plt.scales(scales={\"x\": bq.OrdinalScale()})\n",
171
- "hourly_events_bar = plt.bar(\n",
172
- " all_hours,\n",
173
- " [],\n",
174
- " colors=[\"goldenrod\"],\n",
175
- " opacities=[0.8] * 24,\n",
176
- " padding=0.2,\n",
177
- " **common_bar_options\n",
178
- ")\n",
179
- "\n",
180
- "filtered_hourly_events_bar = plt.bar(\n",
181
- " all_hours,\n",
182
- " [],\n",
183
- " colors=[\"lightgreen\"],\n",
184
- " opacities=[0.8] * 24,\n",
185
- " padding=0.2,\n",
186
- " axes_options=bar_axes_options,\n",
187
- ")\n",
188
- "\n",
189
- "products_fig = plt.figure(\n",
190
- " title=\"Events By Product\",\n",
191
- " animation_duration=1000,\n",
192
- " fig_margin=dict(top=60, bottom=20, left=100, right=40),\n",
193
- " layout=widgets.Layout(width=\"550px\", height=\"500px\"),\n",
194
- ")\n",
195
- "products_bar = plt.bar(\n",
196
- " all_products,\n",
197
- " [],\n",
198
- " colors=[\"salmon\"],\n",
199
- " orientation=\"horizontal\",\n",
200
- " opacities=[0.8] * len(all_products),\n",
201
- " padding=0.2,\n",
202
- " **common_bar_options\n",
203
- ")\n",
204
- "\n",
205
- "common_pie_args = dict(\n",
206
- " display_labels=\"outside\",\n",
207
- " interactions={\"click\": \"select\"},\n",
208
- " selected_style={\"stroke\": \"white\", \"stroke-width\": 3},\n",
209
- " inner_radius=80,\n",
210
- " apply_clip=False,\n",
211
- ")\n",
212
- "# categories pie chart\n",
213
- "categories_fig = plt.figure(\n",
214
- " title=\"Events By Category\",\n",
215
- " animation_duration=1000,\n",
216
- " layout=widgets.Layout(width=\"550px\", height=\"500px\"),\n",
217
- ")\n",
218
- "categories_pie = plt.pie([], labels=all_categories, **common_pie_args)\n",
219
- "\n",
220
- "# status codes pie chart\n",
221
- "status_codes_fig = plt.figure(\n",
222
- " title=\"Events By Status\",\n",
223
- " animation_duration=1000,\n",
224
- " layout=widgets.Layout(width=\"550px\", height=\"500px\"),\n",
225
- ")\n",
226
- "status_codes_pie = plt.pie([], labels=all_status_codes, **common_pie_args)\n",
227
- "\n",
228
- "# buttons for updating and resetting filters\n",
229
- "update_btn = widgets.Button(description=\"Update\", button_style=\"Success\")\n",
230
- "reset_btn = widgets.Button(description=\"Reset\", button_style=\"Success\")"
231
- ]
232
- },
233
- {
234
- "cell_type": "code",
235
- "execution_count": null,
236
- "metadata": {},
237
- "outputs": [],
238
- "source": [
239
- "fields = [\"day\", \"hour\", \"product\", \"category\", \"status_code\"]\n",
240
- "field_vals = [all_days, all_hours, all_products, all_categories, all_status_codes]\n",
241
- "plots = [\n",
242
- " daily_events_bar,\n",
243
- " hourly_events_bar,\n",
244
- " products_bar,\n",
245
- " categories_pie,\n",
246
- " status_codes_pie,\n",
247
- "]"
248
- ]
249
- },
250
- {
251
- "cell_type": "code",
252
- "execution_count": null,
253
- "metadata": {},
254
- "outputs": [],
255
- "source": [
256
- "def generate_filters():\n",
257
- " filters_dict = {}\n",
258
- " for field, field_val, plot in zip(fields, field_vals, plots):\n",
259
- " if plot.selected:\n",
260
- " selected_vals = [field_val[i] for i in plot.selected]\n",
261
- " filters_dict[field] = selected_vals\n",
262
- " return filters_dict"
263
- ]
264
- },
265
- {
266
- "cell_type": "code",
267
- "execution_count": null,
268
- "metadata": {},
269
- "outputs": [],
270
- "source": [
271
- "def apply_filters(df, filters):\n",
272
- " filtered_df = df\n",
273
- "\n",
274
- " for k, v in filters.items():\n",
275
- " if v and len(v) > 0:\n",
276
- " filtered_df = filtered_df[filtered_df[k].isin(v)]\n",
277
- " return filtered_df"
278
- ]
279
- },
280
- {
281
- "cell_type": "code",
282
- "execution_count": null,
283
- "metadata": {},
284
- "outputs": [],
285
- "source": [
286
- "def update_plots(*args):\n",
287
- " global filters, filtered_log_data\n",
288
- " filters = generate_filters()\n",
289
- " filtered_log_data = apply_filters(log_data, filters)\n",
290
- "\n",
291
- " daily_events = (\n",
292
- " filtered_log_data.resample(\"D\")\n",
293
- " .count()[\"status_code\"]\n",
294
- " .reindex(pd.to_datetime(all_days))\n",
295
- " .fillna(0)\n",
296
- " )\n",
297
- " daily_events_bar.y = daily_events\n",
298
- "\n",
299
- " hourly_events_bar.y = get_events_by_hour(filtered_log_data)\n",
300
- "\n",
301
- " products_bar.y = (\n",
302
- " filtered_log_data[\"product\"].value_counts().reindex(all_products).fillna(0)\n",
303
- " )\n",
304
- "\n",
305
- " events_by_category = filtered_log_data[\"category\"].value_counts()\n",
306
- "\n",
307
- " with categories_pie.hold_sync():\n",
308
- " categories_pie.labels = list(events_by_category.index)\n",
309
- " categories_pie.sizes = events_by_category\n",
310
- " categories_pie.colors = [category_colors[d] for d in categories_pie.labels]\n",
311
- "\n",
312
- " events_by_status_code = filtered_log_data[\"status_code\"].value_counts()\n",
313
- "\n",
314
- " with status_codes_pie.hold_sync():\n",
315
- " status_codes_pie.labels = list(events_by_status_code.index)\n",
316
- " status_codes_pie.sizes = events_by_status_code.values\n",
317
- " status_codes_pie.colors = [\n",
318
- " status_label_colors[d] for d in status_codes_pie.labels\n",
319
- " ]"
320
- ]
321
- },
322
- {
323
- "cell_type": "code",
324
- "execution_count": null,
325
- "metadata": {},
326
- "outputs": [],
327
- "source": [
328
- "def reset_filters(*args):\n",
329
- " for plot in plots:\n",
330
- " plot.selected = None\n",
331
- " update_plots(None)\n",
332
- "\n",
333
- "\n",
334
- "update_btn.on_click(lambda btn: update_plots(None))\n",
335
- "reset_btn.on_click(lambda btn: reset_filters())\n",
336
- "btns_layout = widgets.VBox(\n",
337
- " [update_btn, reset_btn], layout=widgets.Layout(overflow_x=\"hidden\")\n",
338
- ")"
339
- ]
340
- },
341
- {
342
- "cell_type": "code",
343
- "execution_count": null,
344
- "metadata": {
345
- "scrolled": true
346
- },
347
- "outputs": [],
348
- "source": [
349
- "update_plots(None)\n",
350
- "\n",
351
- "parent_plots = widgets.HBox([daily_events_fig, hourly_events_fig])\n",
352
- "child_plots = widgets.HBox([products_fig, categories_fig, status_codes_fig])\n",
353
- "widgets.VBox([widgets.HBox([parent_plots, btns_layout]), child_plots])"
354
- ]
355
- }
356
- ],
357
- "metadata": {
358
- "kernelspec": {
359
- "display_name": "Python 3",
360
- "language": "python",
361
- "name": "python3"
362
- },
363
- "language_info": {
364
- "codemirror_mode": {
365
- "name": "ipython",
366
- "version": 3
367
- },
368
- "file_extension": ".py",
369
- "mimetype": "text/x-python",
370
- "name": "python",
371
- "nbconvert_exporter": "python",
372
- "pygments_lexer": "ipython3",
373
- "version": "3.8.2"
374
- }
375
- },
376
- "nbformat": 4,
377
- "nbformat_minor": 1
378
- }
@@ -1,123 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": null,
6
- "metadata": {},
7
- "outputs": [],
8
- "source": [
9
- "from itertools import chain\n",
10
- "\n",
11
- "from bqplot import OrdinalColorScale, Figure, Graph\n",
12
- "from ipywidgets import Layout"
13
- ]
14
- },
15
- {
16
- "cell_type": "code",
17
- "execution_count": null,
18
- "metadata": {},
19
- "outputs": [],
20
- "source": [
21
- "# mobile patent suits - http://bl.ocks.org/mbostock/1153292\n",
22
- "suits = [\n",
23
- " {\"source\": \"Microsoft\", \"target\": \"Amazon\", \"type\": \"licensing\"},\n",
24
- " {\"source\": \"Microsoft\", \"target\": \"HTC\", \"type\": \"licensing\"},\n",
25
- " {\"source\": \"Samsung\", \"target\": \"Apple\", \"type\": \"suit\"},\n",
26
- " {\"source\": \"Motorola\", \"target\": \"Apple\", \"type\": \"suit\"},\n",
27
- " {\"source\": \"Nokia\", \"target\": \"Apple\", \"type\": \"resolved\"},\n",
28
- " {\"source\": \"HTC\", \"target\": \"Apple\", \"type\": \"suit\"},\n",
29
- " {\"source\": \"Kodak\", \"target\": \"Apple\", \"type\": \"suit\"},\n",
30
- " {\"source\": \"Microsoft\", \"target\": \"Barnes & Noble\", \"type\": \"suit\"},\n",
31
- " {\"source\": \"Microsoft\", \"target\": \"Foxconn\", \"type\": \"suit\"},\n",
32
- " {\"source\": \"Oracle\", \"target\": \"Google\", \"type\": \"suit\"},\n",
33
- " {\"source\": \"Apple\", \"target\": \"HTC\", \"type\": \"suit\"},\n",
34
- " {\"source\": \"Microsoft\", \"target\": \"Inventec\", \"type\": \"suit\"},\n",
35
- " {\"source\": \"Samsung\", \"target\": \"Kodak\", \"type\": \"resolved\"},\n",
36
- " {\"source\": \"LG\", \"target\": \"Kodak\", \"type\": \"resolved\"},\n",
37
- " {\"source\": \"RIM\", \"target\": \"Kodak\", \"type\": \"suit\"},\n",
38
- " {\"source\": \"Sony\", \"target\": \"LG\", \"type\": \"suit\"},\n",
39
- " {\"source\": \"Kodak\", \"target\": \"LG\", \"type\": \"resolved\"},\n",
40
- " {\"source\": \"Apple\", \"target\": \"Nokia\", \"type\": \"resolved\"},\n",
41
- " {\"source\": \"Qualcomm\", \"target\": \"Nokia\", \"type\": \"resolved\"},\n",
42
- " {\"source\": \"Apple\", \"target\": \"Motorola\", \"type\": \"suit\"},\n",
43
- " {\"source\": \"Microsoft\", \"target\": \"Motorola\", \"type\": \"suit\"},\n",
44
- " {\"source\": \"Motorola\", \"target\": \"Microsoft\", \"type\": \"suit\"},\n",
45
- " {\"source\": \"Huawei\", \"target\": \"ZTE\", \"type\": \"suit\"},\n",
46
- " {\"source\": \"Ericsson\", \"target\": \"ZTE\", \"type\": \"suit\"},\n",
47
- " {\"source\": \"Kodak\", \"target\": \"Samsung\", \"type\": \"resolved\"},\n",
48
- " {\"source\": \"Apple\", \"target\": \"Samsung\", \"type\": \"suit\"},\n",
49
- " {\"source\": \"Kodak\", \"target\": \"RIM\", \"type\": \"suit\"},\n",
50
- " {\"source\": \"Nokia\", \"target\": \"Qualcomm\", \"type\": \"suit\"},\n",
51
- "]"
52
- ]
53
- },
54
- {
55
- "cell_type": "code",
56
- "execution_count": null,
57
- "metadata": {},
58
- "outputs": [],
59
- "source": [
60
- "# transform data into nodes and links\n",
61
- "nodes = list(set(chain(*((suit[\"source\"], suit[\"target\"]) for suit in suits))))\n",
62
- "\n",
63
- "# set custom node attrs\n",
64
- "node_data = [\n",
65
- " {\"label\": node, \"shape_attrs\": {\"r\": 6}, \"label_display\": \"outside\"}\n",
66
- " for node in nodes\n",
67
- "]\n",
68
- "# for links, source and target should be indices into the nodes list\n",
69
- "nodes_index_map = {node: i for i, node in enumerate(nodes)}\n",
70
- "link_data = [\n",
71
- " {\n",
72
- " \"source\": nodes_index_map[s[\"source\"]],\n",
73
- " \"target\": nodes_index_map[s[\"target\"]],\n",
74
- " \"value\": s[\"type\"],\n",
75
- " }\n",
76
- " for s in suits\n",
77
- "]\n",
78
- "\n",
79
- "# encode suit type with link color\n",
80
- "link_color_scale = OrdinalColorScale(\n",
81
- " domain=[\"licensing\", \"suit\", \"resolved\"],\n",
82
- " colors=[\"limegreen\", \"dodgerblue\", \"orangered\"],\n",
83
- ")\n",
84
- "graph = Graph(\n",
85
- " node_data=node_data,\n",
86
- " link_data=link_data,\n",
87
- " link_type=\"arc\",\n",
88
- " scales={\"link_color\": link_color_scale},\n",
89
- " colors=[\"gray\"],\n",
90
- " directed=True,\n",
91
- " link_distance=100,\n",
92
- " charge=-600,\n",
93
- ")\n",
94
- "Figure(\n",
95
- " marks=[graph],\n",
96
- " layout=Layout(height=\"900px\", width=\"1000px\"),\n",
97
- " title=\"Mobile Patent Suits\",\n",
98
- ")"
99
- ]
100
- }
101
- ],
102
- "metadata": {
103
- "kernelspec": {
104
- "display_name": "Python 3",
105
- "language": "python",
106
- "name": "python3"
107
- },
108
- "language_info": {
109
- "codemirror_mode": {
110
- "name": "ipython",
111
- "version": 3
112
- },
113
- "file_extension": ".py",
114
- "mimetype": "text/x-python",
115
- "name": "python",
116
- "nbconvert_exporter": "python",
117
- "pygments_lexer": "ipython3",
118
- "version": "3.7.6"
119
- }
120
- },
121
- "nbformat": 4,
122
- "nbformat_minor": 2
123
- }
@@ -1,177 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "This application demonstrates how to build a simple neural network using the Graph mark.\n",
8
- "Interactions can be enabled by adding event handlers (click, hover etc) on the nodes of the network.\n",
9
- "See the [Mark Interactions notebook](../Interactions/Mark%20Interactions.ipynb) and the [Scatter Notebook](../Marks/Object%20Model/Scatter.ipynb) for details."
10
- ]
11
- },
12
- {
13
- "cell_type": "code",
14
- "execution_count": 4,
15
- "metadata": {},
16
- "outputs": [],
17
- "source": [
18
- "from itertools import chain, product\n",
19
- "\n",
20
- "import numpy as np\n",
21
- "from bqplot import LinearScale, Graph, Figure"
22
- ]
23
- },
24
- {
25
- "cell_type": "code",
26
- "execution_count": 5,
27
- "metadata": {},
28
- "outputs": [],
29
- "source": [
30
- "class NeuralNet(Figure):\n",
31
- " def __init__(self, **kwargs):\n",
32
- " self.height = kwargs.get(\"height\", 600)\n",
33
- " self.width = kwargs.get(\"width\", 960)\n",
34
- " self.directed_links = kwargs.get(\"directed_links\", False)\n",
35
- "\n",
36
- " self.num_inputs = kwargs[\"num_inputs\"]\n",
37
- " self.num_hidden_layers = kwargs[\"num_hidden_layers\"]\n",
38
- " self.nodes_output_layer = kwargs[\"num_outputs\"]\n",
39
- " self.layer_colors = kwargs.get(\n",
40
- " \"layer_colors\", [\"Orange\"] * (len(self.num_hidden_layers) + 2)\n",
41
- " )\n",
42
- "\n",
43
- " self.build_net()\n",
44
- " super(NeuralNet, self).__init__(**kwargs)\n",
45
- "\n",
46
- " def build_net(self):\n",
47
- " # create nodes\n",
48
- " self.layer_nodes = []\n",
49
- " self.layer_nodes.append([\"x\" + str(i + 1) for i in range(self.num_inputs)])\n",
50
- "\n",
51
- " for i, h in enumerate(self.num_hidden_layers):\n",
52
- " self.layer_nodes.append(\n",
53
- " [\"h\" + str(i + 1) + \",\" + str(j + 1) for j in range(h)]\n",
54
- " )\n",
55
- " self.layer_nodes.append(\n",
56
- " [\"y\" + str(i + 1) for i in range(self.nodes_output_layer)]\n",
57
- " )\n",
58
- "\n",
59
- " self.flattened_layer_nodes = list(chain(*self.layer_nodes))\n",
60
- "\n",
61
- " # build link matrix\n",
62
- " i = 0\n",
63
- " node_indices = {}\n",
64
- " for layer in self.layer_nodes:\n",
65
- " for node in layer:\n",
66
- " node_indices[node] = i\n",
67
- " i += 1\n",
68
- "\n",
69
- " n = len(self.flattened_layer_nodes)\n",
70
- " self.link_matrix = np.empty((n, n))\n",
71
- " self.link_matrix[:] = np.nan\n",
72
- "\n",
73
- " for i in range(len(self.layer_nodes) - 1):\n",
74
- " curr_layer_nodes_indices = [node_indices[d] for d in self.layer_nodes[i]]\n",
75
- " next_layer_nodes = [node_indices[d] for d in self.layer_nodes[i + 1]]\n",
76
- " for s, t in product(curr_layer_nodes_indices, next_layer_nodes):\n",
77
- " self.link_matrix[s, t] = 1\n",
78
- "\n",
79
- " # set node x locations\n",
80
- " self.nodes_x = np.repeat(\n",
81
- " np.linspace(0, 100, len(self.layer_nodes) + 1, endpoint=False)[1:],\n",
82
- " [len(n) for n in self.layer_nodes],\n",
83
- " )\n",
84
- "\n",
85
- " # set node y locations\n",
86
- " self.nodes_y = np.array([])\n",
87
- " for layer in self.layer_nodes:\n",
88
- " n = len(layer)\n",
89
- " ys = np.linspace(0, 100, n + 1, endpoint=False)[1:]\n",
90
- " self.nodes_y = np.append(self.nodes_y, ys[::-1])\n",
91
- "\n",
92
- " # set node colors\n",
93
- " n_layers = len(self.layer_nodes)\n",
94
- " self.node_colors = np.repeat(\n",
95
- " np.array(self.layer_colors[:n_layers]),\n",
96
- " [len(layer) for layer in self.layer_nodes],\n",
97
- " ).tolist()\n",
98
- "\n",
99
- " xs = LinearScale(min=0, max=100)\n",
100
- " ys = LinearScale(min=0, max=100)\n",
101
- "\n",
102
- " self.graph = Graph(\n",
103
- " node_data=[\n",
104
- " {\"label\": d, \"label_display\": \"none\"}\n",
105
- " for d in self.flattened_layer_nodes\n",
106
- " ],\n",
107
- " link_matrix=self.link_matrix,\n",
108
- " link_type=\"line\",\n",
109
- " colors=self.node_colors,\n",
110
- " directed=self.directed_links,\n",
111
- " scales={\"x\": xs, \"y\": ys},\n",
112
- " x=self.nodes_x,\n",
113
- " y=self.nodes_y,\n",
114
- " # color=2 * np.random.rand(len(self.flattened_layer_nodes)) - 1\n",
115
- " )\n",
116
- " self.graph.hovered_style = {\"stroke\": \"1.5\"}\n",
117
- " self.graph.unhovered_style = {\"opacity\": \"0.4\"}\n",
118
- "\n",
119
- " self.graph.selected_style = {\n",
120
- " \"opacity\": \"1\",\n",
121
- " \"stroke\": \"red\",\n",
122
- " \"stroke-width\": \"2.5\",\n",
123
- " }\n",
124
- " self.marks = [self.graph]\n",
125
- " self.title = \"Neural Network\"\n",
126
- " self.layout.width = str(self.width) + \"px\"\n",
127
- " self.layout.height = str(self.height) + \"px\""
128
- ]
129
- },
130
- {
131
- "cell_type": "code",
132
- "execution_count": 6,
133
- "metadata": {},
134
- "outputs": [
135
- {
136
- "data": {
137
- "application/vnd.jupyter.widget-view+json": {
138
- "model_id": "b2d75468c39d4bcf896561f72febb74d",
139
- "version_major": 2,
140
- "version_minor": 0
141
- },
142
- "text/plain": [
143
- "NeuralNet(fig_margin={'top': 60, 'bottom': 60, 'left': 60, 'right': 60}, layout=Layout(height='600px', width='…"
144
- ]
145
- },
146
- "metadata": {},
147
- "output_type": "display_data"
148
- }
149
- ],
150
- "source": [
151
- "NeuralNet(num_inputs=3, num_hidden_layers=[10, 10, 8, 5], num_outputs=1)"
152
- ]
153
- }
154
- ],
155
- "metadata": {
156
- "input_collapsed": false,
157
- "kernelspec": {
158
- "display_name": "Python 3",
159
- "language": "python",
160
- "name": "python3"
161
- },
162
- "language_info": {
163
- "codemirror_mode": {
164
- "name": "ipython",
165
- "version": 3
166
- },
167
- "file_extension": ".py",
168
- "mimetype": "text/x-python",
169
- "name": "python",
170
- "nbconvert_exporter": "python",
171
- "pygments_lexer": "ipython3",
172
- "version": "3.7.6"
173
- }
174
- },
175
- "nbformat": 4,
176
- "nbformat_minor": 2
177
- }