j1-template 2022.5.0.rc1 → 2022.5.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (378) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/banner.html +24 -1
  3. data/assets/themes/j1/adapter/js/masterslider.js +22 -5
  4. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +56 -0
  5. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  6. data/lib/j1/version.rb +1 -1
  7. data/lib/starter_web/Gemfile +270 -270
  8. data/lib/starter_web/_config.yml +19 -9
  9. data/lib/starter_web/_data/blocks/banner.yml +17 -0
  10. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  11. data/lib/starter_web/_data/modules/justifiedGallery.yml +82 -0
  12. data/lib/starter_web/_data/modules/masterslider.yml +5 -9
  13. data/lib/starter_web/_data/modules/navigator_menu.yml +208 -168
  14. data/lib/starter_web/_includes/attributes.asciidoc +18 -14
  15. data/lib/starter_web/_includes/tables/template_variables.asciidoc +1 -1
  16. data/lib/starter_web/_plugins/asciidoctor-extensions/lightbox-block.rb +4 -4
  17. data/lib/starter_web/assets/images/pages/features/blog-post-navigator-1280x1000.jpg +0 -0
  18. data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.png +0 -0
  19. data/lib/starter_web/assets/images/pages/features/clipboard-1280x600.jpg +0 -0
  20. data/lib/starter_web/assets/images/pages/features/comments-1280x600.jpg +0 -0
  21. data/lib/starter_web/assets/images/pages/features/cookie-consent-1280x800.jpg +0 -0
  22. data/lib/starter_web/assets/images/pages/features/desktop-web-navigation-1280x1000.jpg +0 -0
  23. data/lib/starter_web/assets/images/pages/features/example-content-1280x800.jpg +0 -0
  24. data/lib/starter_web/assets/images/pages/features/example-content-present-videos-1280x800.jpg +0 -0
  25. data/lib/starter_web/assets/images/pages/features/fab-1280x500.jpg +0 -0
  26. data/lib/starter_web/assets/images/pages/features/full-text-search-1280x800.jpg +0 -0
  27. data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.png +0 -0
  28. data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.png +0 -0
  29. data/lib/starter_web/assets/images/pages/features/intro-panel-1280x800.jpg +0 -0
  30. data/lib/starter_web/assets/images/pages/features/master-header-1280x600.jpg +0 -0
  31. data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.png +0 -0
  32. data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.png +0 -0
  33. data/lib/starter_web/assets/images/pages/features/nav-module-1280x300.jpg +0 -0
  34. data/lib/starter_web/assets/images/pages/features/nbi-barchart-1280x800.jpg +0 -0
  35. data/lib/starter_web/assets/images/pages/features/teaser-banner-1280x600.jpg +0 -0
  36. data/lib/starter_web/assets/images/pages/features/translator-1280x800.jpg +0 -0
  37. data/lib/starter_web/assets/images/sticker/600x600/sticker-new-version.png +0 -0
  38. data/lib/starter_web/assets/images/sticker/scalable/readme +0 -0
  39. data/lib/starter_web/package.json +6 -6
  40. data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +67 -0
  41. data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +232 -0
  42. data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +631 -0
  43. data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +638 -0
  44. data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +248 -0
  45. data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +928 -0
  46. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +139 -0
  47. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +229 -0
  48. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +112 -0
  49. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +142 -0
  50. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +171 -0
  51. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +111 -0
  52. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +94 -0
  53. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +106 -0
  54. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +16260 -0
  55. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +247 -0
  56. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +12382 -0
  57. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +12387 -0
  58. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +12170 -0
  59. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +1058 -0
  60. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +14478 -0
  61. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +379 -0
  62. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +442 -0
  63. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +523 -0
  64. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +84 -0
  65. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +194 -0
  66. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +89 -0
  67. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +164 -0
  68. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +173 -0
  69. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +256 -0
  70. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +126 -0
  71. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +87 -0
  72. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +90 -0
  73. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +87 -0
  74. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +64 -0
  75. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +122 -0
  76. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +181 -0
  77. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +89 -0
  78. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +175 -0
  79. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +87 -0
  80. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +14478 -0
  81. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +15227 -0
  82. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
  83. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_circular_times_table.ipynb +12382 -0
  84. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +1058 -0
  85. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +14478 -0
  86. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +442 -0
  87. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +523 -0
  88. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +89 -0
  89. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +87 -0
  90. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +90 -0
  91. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +64 -0
  92. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +122 -0
  93. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +89 -0
  94. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +87 -0
  95. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +15227 -0
  96. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/line_by_line.mp4 +0 -0
  97. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/point_by_point.mp4 +0 -0
  98. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +16296 -0
  99. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +15385 -0
  100. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +16296 -0
  101. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +15385 -0
  102. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +717 -0
  103. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +1381 -0
  104. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +1440 -0
  105. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +927 -0
  106. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +1105 -0
  107. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +578 -0
  108. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +1196 -0
  109. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +1681 -0
  110. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +680 -0
  111. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +693 -0
  112. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +751 -0
  113. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +770 -0
  114. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +666 -0
  115. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +1365 -0
  116. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +1405 -0
  117. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +856 -0
  118. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +1167 -0
  119. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +601 -0
  120. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +1356 -0
  121. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_07_bar_and_categorical_data_plots-checkpoint.ipynb +1742 -0
  122. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +625 -0
  123. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +685 -0
  124. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +726 -0
  125. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +726 -0
  126. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +560 -0
  127. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +716 -0
  128. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +1365 -0
  129. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +1405 -0
  130. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +856 -0
  131. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +1167 -0
  132. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +601 -0
  133. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +1356 -0
  134. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +1742 -0
  135. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +625 -0
  136. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +685 -0
  137. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +336 -0
  138. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +433 -0
  139. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +244 -0
  140. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +12170 -0
  141. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +336 -0
  142. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +163 -0
  143. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +51 -0
  144. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +289 -0
  145. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +266 -0
  146. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +396 -0
  147. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +318 -0
  148. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +158 -0
  149. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +6799 -0
  150. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +470 -0
  151. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +49 -0
  152. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +378 -0
  153. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +123 -0
  154. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +177 -0
  155. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +311 -0
  156. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +255 -0
  157. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +275 -0
  158. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +1 -0
  159. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +234 -0
  160. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +186 -0
  161. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +794 -0
  162. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +323 -0
  163. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +261 -0
  164. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +1489 -0
  165. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +163 -0
  166. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +966 -0
  167. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +476 -0
  168. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +427 -0
  169. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +528 -0
  170. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +480 -0
  171. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +217 -0
  172. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +253 -0
  173. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +225 -0
  174. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +123 -0
  175. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +357 -0
  176. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +422 -0
  177. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +157 -0
  178. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +176 -0
  179. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +195 -0
  180. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +189 -0
  181. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +565 -0
  182. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +182 -0
  183. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +315 -0
  184. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +465 -0
  185. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +835 -0
  186. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +362 -0
  187. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +252 -0
  188. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +273 -0
  189. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +242 -0
  190. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +417 -0
  191. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +155 -0
  192. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +238 -0
  193. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +152 -0
  194. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +206 -0
  195. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +474 -0
  196. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +181 -0
  197. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +310 -0
  198. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +702 -0
  199. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +495 -0
  200. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +433 -0
  201. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +326 -0
  202. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +177 -0
  203. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +177 -0
  204. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +154 -0
  205. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +152 -0
  206. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +128 -0
  207. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +113 -0
  208. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +326 -0
  209. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +179 -0
  210. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +174 -0
  211. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +177 -0
  212. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +51 -0
  213. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +213 -0
  214. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +56 -0
  215. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +52 -0
  216. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/trees.jpg +0 -0
  217. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_central_limit_theorem-checkpoint.ipynb +247 -0
  218. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +323 -0
  219. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +387 -0
  220. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +185 -0
  221. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +384 -0
  222. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +254 -0
  223. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +732 -0
  224. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +247 -0
  225. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +651 -0
  226. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +773 -0
  227. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +111 -0
  228. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +199 -0
  229. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +421 -0
  230. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +323 -0
  231. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +387 -0
  232. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +185 -0
  233. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +384 -0
  234. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +254 -0
  235. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +732 -0
  236. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +373 -0
  237. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +361 -0
  238. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +569 -0
  239. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +487 -0
  240. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +341 -0
  241. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +259 -0
  242. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +277 -0
  243. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +182 -0
  244. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +299 -0
  245. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +252 -0
  246. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +318 -0
  247. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +514 -0
  248. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +182 -0
  249. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +479 -0
  250. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +128 -0
  251. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +152 -0
  252. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +137 -0
  253. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +484 -0
  254. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +483 -0
  255. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +170 -0
  256. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +349 -0
  257. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +177 -0
  258. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +29 -0
  259. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +1372 -0
  260. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +749 -0
  261. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +268 -0
  262. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +704 -0
  263. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +389 -0
  264. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +455 -0
  265. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +229 -0
  266. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +613 -0
  267. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +413 -0
  268. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +131 -0
  269. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +190 -0
  270. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +193 -0
  271. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +363 -0
  272. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +367 -0
  273. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +337 -0
  274. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +196 -0
  275. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +948 -0
  276. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +489 -0
  277. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +173 -0
  278. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +40 -0
  279. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +228 -0
  280. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +2216 -0
  281. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +1170 -0
  282. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +318 -0
  283. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +1479 -0
  284. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +1524 -0
  285. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +983 -0
  286. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +1280 -0
  287. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +660 -0
  288. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +1563 -0
  289. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +1888 -0
  290. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +689 -0
  291. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +767 -0
  292. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +475 -0
  293. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +747 -0
  294. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +1250 -0
  295. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +186 -0
  296. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -0
  297. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +407 -0
  298. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -0
  299. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -0
  300. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -0
  301. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -0
  302. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -0
  303. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -0
  304. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -0
  305. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -0
  306. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -0
  307. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +290 -0
  308. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +818 -0
  309. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +351 -0
  310. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +106 -0
  311. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +228 -0
  312. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +518 -0
  313. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +372 -0
  314. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +473 -0
  315. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +242 -0
  316. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +496 -0
  317. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +329 -0
  318. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +866 -0
  319. data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +270 -0
  320. data/lib/starter_web/pages/public/features/general.adoc +74 -33
  321. data/lib/starter_web/pages/public/features/template.adoc +159 -68
  322. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -512
  323. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -629
  324. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -95
  325. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -93
  326. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -96
  327. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -70
  328. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -156
  329. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -95
  330. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -93
  331. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -955
  332. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_images.adoc +313 -0
  333. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +281 -0
  334. data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +253 -0
  335. data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +579 -0
  336. data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +718 -0
  337. data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +91 -0
  338. data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +420 -0
  339. data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +250 -0
  340. data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +425 -0
  341. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +118 -0
  342. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +28 -0
  343. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +14 -0
  344. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  345. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  346. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +11 -0
  347. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +11 -0
  348. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +11 -0
  349. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +47 -0
  350. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +11 -0
  351. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +11 -0
  352. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +11 -0
  353. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +337 -0
  354. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
  355. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +130 -0
  356. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +6 -5
  357. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -2
  358. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +4 -2
  359. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
  360. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -1
  361. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  362. data/lib/starter_web/utilsrv/package.json +1 -1
  363. metadata +384 -17
  364. data/lib/starter_web/_includes/_attributes.asciidoc +0 -575
  365. data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1080x800.jpg +0 -0
  366. data/lib/starter_web/assets/images/pages/features/comments-1080x600.jpg +0 -0
  367. data/lib/starter_web/assets/images/pages/features/cookie-consent-1080x800.jpg +0 -0
  368. data/lib/starter_web/assets/images/pages/features/example-content-present-videos-1080x800.jpg +0 -0
  369. data/lib/starter_web/assets/images/pages/features/fab-1080x500.jpg +0 -0
  370. data/lib/starter_web/assets/images/pages/features/full-text-search-1080x800.jpg +0 -0
  371. data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.jpg +0 -0
  372. data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.jpg +0 -0
  373. data/lib/starter_web/assets/images/pages/features/intro-panel-1080x800.jpg +0 -0
  374. data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.jpg +0 -0
  375. data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.jpg +0 -0
  376. data/lib/starter_web/assets/images/pages/features/nav-module-1080x300.jpg +0 -0
  377. data/lib/starter_web/assets/images/pages/features/teaser-banner-1080x600.jpg +0 -0
  378. data/lib/starter_web/assets/images/pages/features/translator-1080x800.jpg +0 -0
@@ -0,0 +1,631 @@
1
+ ---
2
+ title: Binder
3
+ tagline: BinderHub
4
+ date: 2022-03-28 00:00:00
5
+ description: >
6
+ Binder allows you to create custom computing environments that can be
7
+ shared and used by many remote users. A Binder service is powered by
8
+ BinderHub, an open-source tool that runs on Kubernetes, a portable,
9
+ extensible, open-source platform for managing containerized services.
10
+ keywords: >
11
+ opensource, free, load, download, start, starter, example,
12
+ high, easy, use, secure, encrypt, standard, popular,
13
+ generate, create, learn, distribute, publish, deploy,
14
+ beginner, advanced, expert, student, learner, educator,
15
+ writer, reader, visitor,
16
+ framework, toolkit, integration, extension, module, api,
17
+ dynamic, static, generator, client, server, internet, local, localhost,
18
+ page, web, website, webdesign, material, design, responsive,
19
+ javascript, nodejs, ruby, windows, linux, osx, mac, os,
20
+ http, https, html, html5, css, scss, style,
21
+ browser, firefox, chrome, edge, opera, safari,
22
+ configuration, generator, navigation, menu, dropdown, fab, action, button,
23
+ application, interface, provider, api, repository,
24
+ cookie, language, translation, gdpr, dsgvo, privacy,
25
+ asciidoc, aciidoctor, bootstrap, jekyll, liquid,
26
+ hyvor, disqus, git, github, netlify, heroku, apple, microsoft,
27
+ provider, service, internet, support,
28
+ google, analytics, advertising, search, console, silverlight, score,
29
+ j1, nbi, j1-nbinteract, nbinteract, template, integration,
30
+ python, jupyter, notebook, textbook, api, app,
31
+ binder, binderhub, jupyterhub
32
+
33
+ categories: [ Software, Python ]
34
+ tags: [ Binder, API ]
35
+
36
+ scrollbar: false
37
+ personalization: true
38
+
39
+ permalink: /pages/public/jupyter/docs/binderhub/
40
+ regenerate: false
41
+
42
+ resources: [ animate, clipboard, lightbox, rouge ]
43
+ resource_options:
44
+ - attic:
45
+ opacity: 0.3
46
+ slides:
47
+ - url: /assets/images/modules/attics/shubham-dhage-2-1920x1280.jpg
48
+ alt: Photo by Shubham Dhage on Unsplash
49
+ badge:
50
+ type: unsplash
51
+ author: Shubham Dhage
52
+ href: https://unsplash.com/@theshubhamdhage
53
+ ---
54
+
55
+ // Page Initializer
56
+ // =============================================================================
57
+ // Enable the Liquid Preprocessor
58
+ :page-liquid:
59
+
60
+ // Set (local) page attributes here
61
+ // -----------------------------------------------------------------------------
62
+ // :page--attr: <attr-value>
63
+ :badges-enabled: false
64
+ :binder-badge-enabled: false
65
+ :binder-app-launch--lab: https://mybinder.org/v2/gh/jekyll-one/j1-binder-repo/main
66
+ :binder-app-launch--tree: https://mybinder.org/v2/gh/jekyll-one/j1-binder-repo/main?urlpath=/tree
67
+ :jupyterlab-docs--getting-started: https://jupyterlab.readthedocs.io/en/latest/getting_started/starting.html
68
+ :jupyter-discourse--startup-time: https://discourse.jupyter.org/t/how-to-reduce-mybinder-org-repository-startup-time/4956
69
+
70
+ :binder--home: https://mybinder.org/
71
+ :binder-sre--analytics: https://mybinder-sre.readthedocs.io/en/latest/analytics/events-archive.html
72
+ :binder--binderlyzer: {binder--home}v2/gh/betatim/binderlyzer/master
73
+
74
+ :binderhub-docs--reference: https://binderhub.readthedocs.io/en/latest/reference/ref-index.html
75
+
76
+ :github-repo--binderhub: https://github.com/jupyterhub/binderhub
77
+ :github-repo--binderlyzer: https://github.com/betatim/binderlyzer
78
+
79
+ // Load Liquid procedures
80
+ // -----------------------------------------------------------------------------
81
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
82
+
83
+ // Load page attributes
84
+ // -----------------------------------------------------------------------------
85
+ {% include {{load_attributes}} scope="global" %}
86
+
87
+
88
+ // Page content
89
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90
+ ifeval::[{badges-enabled} == true]
91
+ {badge-j1--license} {badge-j1--version-latest} {badge-j1-gh--last-commit} {badge-j1--downloads}
92
+ endif::[]
93
+
94
+ // Include sub-documents (if any)
95
+ // -----------------------------------------------------------------------------
96
+ ifeval::[{binder-badge-enabled} == true]
97
+ image:/assets/images/badges/myBinder.png[[Binder, link="{binder--home}", {browser-window--new}]
98
+ image:/assets/images/badges/docsBinder.png[[Binder, link="https://mybinder.readthedocs.io/en/latest/", {browser-window--new}]
99
+ endif::[]
100
+
101
+ Binder allows you to create custom computing environments that can be
102
+ shared and used by many remote users. You can use many open source languages,
103
+ <<Configure the user interface>>, and more. A Binder service is powered by
104
+ link:{github-repo--binderhub}[BinderHub Repo on Github, {browser-window--new}],
105
+ an open-source tool that runs on Kubernetes, a portable, extensible,
106
+ open-source platform for managing containerized services. One such deployment
107
+ lives at link:{binder--home}[Binder Home, {browser-window--new}], and is free
108
+ to use.
109
+
110
+ == Configuration Files
111
+
112
+ The `repo2docker` CLI looks for configuration files in the repository being
113
+ built to determine how to build it. In general, repo2docker uses the same
114
+ configuration files as other software installation tools, rather than
115
+ creating new custom configuration files. A number of repo2docker configuration
116
+ files can be combined to compose more complex setups.
117
+
118
+ The https://github.com/binder-examples[binder examples, {browser-window--new}]
119
+ organization on GitHub contains a list of sample repositories for common
120
+ configurations that repo2docker can build with various configuration files
121
+ such as Python and R installation in a repository.
122
+
123
+ Binder examples:
124
+
125
+ * https://github.com/jupyterlab/jupyterlab-demo[JupyterLab Demonstration, {browser-window--new}]
126
+ * https://github.com/binder-examples/jupyterlab[JupyterLab + Binder, {browser-window--new}]
127
+ // * https://github.com/binder-examples/remote_storage[Remote Storage with Binder, {browser-window--new}]
128
+ * https://github.com/binder-examples/python-conda_pip[Using conda with pip in the same build, {browser-window--new}]
129
+ * https://github.com/binder-examples/pipfile[Python environment with Pipfile, {browser-window--new}]
130
+
131
+ A list of supported
132
+ configuration files (roughly in the order of build priority) can be found
133
+ below.
134
+
135
+ === The environment file
136
+
137
+ The `environment.yml` configuration is the standard configuration file used
138
+ by *Conda* that lets you install any kind of package, including Python, R,
139
+ and C/C++ packages. The `repo2docker` does *not* use your `environment.yml`
140
+ to create and activate a new conda environment. Rather, it updates a base
141
+ conda environment defined here with the packages listed in your
142
+ environment file. This means that the environment will always have the
143
+ same default name, not the name specified in your environment file.
144
+
145
+ [source, yaml]
146
+ ----
147
+ dependencies:
148
+ - ipywidgets
149
+ - matplotlib
150
+ - numpy
151
+ - scipy
152
+ - pandas
153
+ - seaborn
154
+ - statsmodels
155
+ ----
156
+
157
+ If you use a environment file, then Binder will use a *Miniconda* distribution
158
+ to install your packages. However, you may still want to use *pip*. In this
159
+ case, you should *not* use a `requirements.txt` file, but instead use a pip
160
+ *section* in `environment.yml`. This repository is an example of how to
161
+ construct your configuration to accomplish this.
162
+
163
+ [source, yaml]
164
+ ----
165
+ channels:
166
+ - conda-forge
167
+ - defaults
168
+ dependencies:
169
+ - python
170
+ - numpy
171
+ - pip
172
+ - pip:
173
+ - nbgitpuller
174
+ - sphinx-gallery
175
+ - pandas
176
+ - matplotlib
177
+ ----
178
+
179
+ [NOTE]
180
+ ====
181
+ Conda `channels` are the locations where packages are stored. They serve
182
+ as the base for hosting and managing packages. Conda packages are downloaded
183
+ from remote channels, which are URLs to directories containing conda packages.
184
+
185
+ The conda command searches a set of channels. By default, packages are
186
+ automatically downloaded and updated from the
187
+ https://repo.anaconda.com/pkgs/[default channel] which may require a paid
188
+ license, as described in the repository terms of service a commercial license.
189
+
190
+ The `conda-forge` channel is *free* for all to use. You can modify what
191
+ remote channels are automatically searched. You might want to do this to
192
+ maintain a private or internal channel.
193
+ ====
194
+
195
+ === The requirements file
196
+
197
+ The configuration `requirements.txt` specifies a list of *Python packages*
198
+ that should be installed in your environment. The `requirements.txt` example
199
+ J1 is using on link:{url-j1-gh-binder-repo--requirements-txt}[GitHub, {browser-window--new}]
200
+ shows a typical setup used with J1 Template for the example notebooks to run.
201
+
202
+ For Binder, a requirements file should list *all* Python libraries that your
203
+ notebooks depend on, and they will be installed under the hood using:
204
+
205
+ [source, sh, role="noclip"]
206
+ ----
207
+ pip install -r requirements.txt
208
+ ----
209
+
210
+ The base Binder image contains *no extra* dependencies, so be as explicit
211
+ as possible in defining the packages that you need. This includes specifying
212
+ explicit versions wherever possible.
213
+
214
+ WARNING: If you do specify *strict versions*, it is important to do so
215
+ for all your dependencies, not just direct dependencies. Strictly specifying
216
+ only some dependencies is a recipe for environments breaking over time.
217
+
218
+ You can also specify which Python *version* to install in your built
219
+ environment with `environment.yml`. By default, repo2docker installs
220
+ *default_python* (Python 3.7) with your `environment.yml` unless you
221
+ include the version of Python in this file. The package manager *conda*
222
+ supports all versions of Python, though repo2docker support is best with
223
+ Python `3.7`, `3.6`, `3.5` and `2.7`.
224
+
225
+ WARNING: If you include a Python version in a `runtime.txt` file in
226
+ *addition* to your `environment.yml`, your `runtime.txt` will be
227
+ *ignored*.
228
+
229
+ === The apt file
230
+
231
+ Contrasting the requirements or the environment file to install Python-specific
232
+ modules, the file `apt.txt` is used to install *OS packages* like `ffmeg`
233
+ to make them usable in Jupyter Notebooks. The video library is a good
234
+ example of why OS packages are needed.
235
+
236
+ The video library `ffmeg` comes in two flavors:
237
+
238
+ * the OS packages to install the application binaries of ffmeg
239
+ * the Python/Jupyter package for ffmeg to integrate the video library in
240
+ Jupyter Notebooks
241
+
242
+ The Python/Jupyter package for ffmeg is just a *wrapper* around the OS package
243
+ of `ffmeg` to make the library *usable* for Jupyter. A prerequisite to using
244
+ the wrapper is an installation `ffmeg` for the OS, for the resulting Docker
245
+ image.
246
+
247
+ The base OS used for the Docker images created by Binder is the Ubuntu, a free
248
+ Linux distribution. As the name `apt.txt` of the file implies, the configuration
249
+ goes with the `apt`, the command to install new software packages for Ubuntu.
250
+
251
+ .Example
252
+ [source, text]
253
+ ----
254
+ ffmpeg
255
+ ----
256
+
257
+ The apt file is a simple text file that specifies OS packages. The format is
258
+ simple: use one package to be installed *per line*.
259
+
260
+ NOTE: The apt command is a powerful command-line tool that works with
261
+ Ubuntu's Advanced Packaging Tool (APT) performs such functions as
262
+ installation of new software packages, upgrade of existing software packages,
263
+ and even upgrading the entire Ubuntu system.
264
+
265
+ If underlying libraries or application packages are needed, the apt file
266
+ is the right place to install those OS-specific dependencies.
267
+
268
+ === The runtime file
269
+
270
+ Sometimes you want to specify the *version* of the runtime, the version
271
+ of Python, but the environment specification format will not let you
272
+ specify this information. For these cases, the special file `runtime.txt`
273
+ can be used.
274
+
275
+ .Example
276
+ [source, text]
277
+ ----
278
+ python-3.8
279
+ ----
280
+
281
+ NOTE: runtime.txt is only supported when used with environment specifications
282
+ that do not already support specifying the runtime. If you are using a
283
+ `environment.yml` file for conda, the runtime file will be *ignored*.
284
+
285
+
286
+ == Configure the user interface
287
+
288
+ You can build several user interfaces into the resulting Docker image. This
289
+ is controlled with various <<Configuration Files>>.
290
+
291
+ === Jupyter Lab Interface
292
+
293
+ JupyterLab is the *default* interface for repo2docker. The following
294
+ Binder URL will open the *jekyll-one* repository and begin a JupyterLab
295
+ session opening the path `notebooks`:
296
+
297
+ [source, txt]
298
+ ----
299
+ https://mybinder.org/v2/gh/jekyll-one/j1-binder-repo/main?filepath=notebooks
300
+ ----
301
+
302
+ The filepath notebooks above is how JupyterLab directs you to a specific file
303
+ or folder. To learn more about URLs in JupyterLab and Jupyter Notebook, visit
304
+ link:{jupyterlab-docs--getting-started}[Starting JupyterLab, {browser-window--new}].
305
+
306
+ === Classic Notebook Interface
307
+
308
+ The classic notebook is also available without any configuration. To switch
309
+ to the classic notebook interface, you do not need any extra configuration
310
+ in order to allow the use of the classic notebook interface. You can launch
311
+ the classic notebook interface from within a user session by opening
312
+ JupyterLab and replacing the path `/lab/` with `/tree/` in the JuptyerLab URL
313
+ like so:
314
+
315
+ ----
316
+ https://mybinder.org/v2/<repo-provider>/<repo>/<branch>?urlpath=/tree
317
+ ----
318
+
319
+ .Example
320
+ [source, txt]
321
+ ----
322
+ https://mybinder.org/v2/gh/jekyll-one/j1-binder-repo/main?urlpath=/tree
323
+ ----
324
+
325
+
326
+ /////
327
+ === nteract
328
+
329
+ nteract is a notebook interface built with *React*. It is similar to a
330
+ more feature-filled version of the traditional Jupyter Notebook interface.
331
+ *nteract* comes pre-installed in any session that has been built from a
332
+ Python repository.
333
+
334
+ You can launch nteract from within a user session by replacing `/tree` with
335
+ `/nteract` at the end of a notebook server’s URL like so:
336
+
337
+ http(s)://<server:port>/nteract
338
+
339
+ For example, the following Binder URL will open the pyTudes repository and
340
+ begin an nteract session in the ipynb folder:
341
+
342
+ https://mybinder.org/v2/gh/norvig/pytudes/HEAD?urlpath=nteract/tree/ipynb
343
+
344
+ The `/tree/ipynb` above is how nteract directs you to a specific file
345
+ or folder. To learn more about nteract, visit the
346
+ https://nteract.io/about[nteract website, {browser-window--new}].
347
+
348
+
349
+ === Use different repositories for content and environment
350
+
351
+ // See: https://mybinder.readthedocs.io/en/latest/howto/external_binder_setup.html
352
+
353
+ Separating your Binder setup files from your repository content can be
354
+ useful for a variety of reasons. Maybe they need different access permissions
355
+ or you manage your working environment external to your code repository.
356
+ Whatever the reason, with a custom Binder URL you can store your environment
357
+ independent of your content.
358
+
359
+ The form on the mybinder.org home page only allows you to select a repository
360
+ branch to build from. To create a BinderHub deployment link for situations
361
+ where the environment and content are housed in separate repositories or on
362
+ different branches of the same repository, you can use the
363
+ https://jupyterhub.github.io/nbgitpuller/link?tab=binder[nbgitpuller link generator, {browser-window--new}]
364
+ to generate a formatted URL. Note that `nbgitpuller` must be included in your
365
+ hub environment for this to work.
366
+
367
+ For some background on this how-to guide, see this
368
+ https://discourse.jupyter.org/t/improve-documentation-for-new-users-not-working-on-the-master-branch/5509[community forum post, {browser-window--new}].
369
+ Here is an example repository using a JupyterHub environment configuration
370
+ stored in a https://github.com/ICESAT-2HackWeek/jupyter-image-2020[separate repository, {browser-window--new}].
371
+ The environment was set up for a community workshop and the tutorial content
372
+ was compiled and released after the workshop.
373
+ /////
374
+
375
+ // === Speed up repository launch time
376
+ //
377
+ // People often ask how they can speed up the launches for their Binder
378
+ // repositories. Binder is a bit different from other cloud services because
379
+ // it builds and launches arbitrary environments that are defined in Git
380
+ // repositories, rather than only serving a single environment for launches.
381
+ // The extra time it takes to launch is often a result of these extra steps.
382
+ //
383
+ // For some background and tips about how you can speed up your repository
384
+ // launch times, see this
385
+ // link:{jupyter-discourse--startup-time}[community forum post, {browser-window--new}].
386
+
387
+ === Track repository data on Binder
388
+
389
+ The mybinder.org team runs a service that provides repository-level data
390
+ about all of the binders that run each day. This is called the mybinder.org
391
+ event analytics archive. You can use this to track how often people are
392
+ clicking your Binder links and launching your Binder repository (or, for
393
+ aggregating activity across many repositories).
394
+
395
+ === Access the event analytics archive
396
+
397
+ You can access the event analytics archive at `archive.analytics.mybinder.org`.
398
+ For information about the structure of this dataset, and a description of
399
+ how you can read-in the data in order to analyze it, see the
400
+ link:{binder-sre--analytics}[Binder Site Reliability Guide (SRE), {browser-window--new}].
401
+ instructions.
402
+
403
+ ==== Example repository to show off analyses
404
+
405
+ To give you a little inspiration, check out the
406
+ link:{binder--binderlyzer}[binderlyzer binder, {browser-window--new}].
407
+ This is a Binder that goes through a simple analysis of Binder repositories
408
+ using the events archive. It shows how to access it, and gives an idea for
409
+ questions you can ask with this data!
410
+
411
+ If you do something interesting or fun with the event analytics archive,
412
+ please let us know! We provide this resource in the hopes that it gives
413
+ people insight into the activity going on in Binder land, and would love
414
+ to hear about anything interesting you find.
415
+
416
+
417
+ == Binder API Reference
418
+
419
+ // https://binderhub.readthedocs.io/en/latest/developer/index.html
420
+
421
+ BinderHub connects several services together to provide on-the-fly
422
+ creation and registry of Docker images. It utilizes the following
423
+ tools:
424
+
425
+ * A cloud provider such Google Cloud, Microsoft Azure, Amazon EC2,
426
+ and others
427
+ * Kubernetes to manage resources on the cloud
428
+ * Helm to configure and control Kubernetes
429
+ * Docker to use containers that standardize computing environments
430
+ * A BinderHub UI that users can access to specify Git repos they want built
431
+ repo2docker to generate Docker images using the URL of a Git repository
432
+ * A Docker registry (such as gcr.io) that hosts container images
433
+ * JupyterHub to deploy temporary containers for users
434
+
435
+ After a user clicks a Binder link, the following chain of events happens:
436
+
437
+ . BinderHub resolves the link to the repository.
438
+ . BinderHub determines whether a Docker image already exists for the
439
+ repository at the latest ref (git commit hash, branch, or tag).
440
+ . If the image *doesn’t* exist, BinderHub creates a build pod that uses
441
+ repo2docker to do the following:
442
+
443
+ .. Fetch the repository associated with the link
444
+ .. Build a Docker container image containing the *environment*
445
+ specified in configuration files in the repository.
446
+ .. Push that image to a *Docker registry*, and send the registry
447
+ information to the BinderHub for future reference.
448
+
449
+ . BinderHub sends the Docker image registry to *JupyterHub*.
450
+ . JupyterHub creates a *Kubernetes pod* for the user that serves
451
+ the *built* Docker image for the repository.
452
+ . JupyterHub *monitors* the user’s pod for activity, and *destroys*
453
+ it after a short period of inactivity.
454
+
455
+ // See: https://www.vmware.com/topics/glossary/content/kubernetes-pods.html
456
+ //
457
+ NOTE: *Pods* (smallest compute unit that can be defined, deployed,
458
+ and managed in Kubernetes) are the rough equivalent of a machine instance
459
+ (physical or virtual) to a container. Each pod is allocated its own internal
460
+ IP address, therefore owning its entire port space, and containers within
461
+ pods can share their local storage and networking.
462
+
463
+ .Binderhub Architecture
464
+ lightbox::binderhub--architecture[ 800, {data-binderhub--architecture}, role="mt-3 mb-4" ]
465
+
466
+
467
+ === API Endpoint
468
+
469
+ There’s one API endpoint, which is:
470
+
471
+ [source, text]
472
+ ----
473
+ /build/<provider_prefix>/<spec>
474
+ ----
475
+
476
+ Even though it says build it actually performs launch.
477
+
478
+ * provider_prefix identifies the provider
479
+ * spec defines the source of the computing environment to be built
480
+ and served using the given provider.
481
+
482
+ NOTE: The provider_prefix can be any of the supported repository providers
483
+ in BinderHub, see the Repository Providers section for supported inputs.
484
+
485
+ To use this endpoint, construct an appropriate URL and send a request.
486
+ You’ll get back an Event Stream. It’s pretty much just a long-lived HTTP
487
+ connection with a well known JSON based data protocol. It’s one-way
488
+ communication only (server to client) and is straightforward to implement
489
+ across multiple languages.
490
+
491
+ When the request is received, the following happens:
492
+
493
+ . Check if this image exists in our cached image registry. If so,
494
+ launch it.
495
+ . If it doesn’t exist in the image registry, we check if a build
496
+ is currently running. If it is, we attach to it and start streaming
497
+ logs from it to the user.
498
+ . If there is no build in progress, we start a build and start streaming
499
+ logs from it to the user.
500
+ . If the build succeeds, we contact the JupyterHub API and start launching
501
+ the server.
502
+
503
+ === Events
504
+
505
+ This section catalogs the different events you might receive.
506
+
507
+ .Events
508
+ [cols="2,4a,6a", options="header", width="100%", role="rtable mt-3"]
509
+ |===
510
+ |Event |Response |Description
511
+
512
+ |*Failed*
513
+ |`{"phase": "failed", "message": "Reason"}`
514
+ |Emitted whenever a build or launch fails. You must *close* your
515
+ *EventStream* when you receive this event.
516
+
517
+ |*Built*
518
+ |`{"phase": "built", "message": "Human readable message", "imageName": "Full name of the image that is in the cached docker registry"}`
519
+ |Emitted after the image has been built, before launching begins.
520
+ This is emitted in the start if the image has been found in the cache
521
+ registry, or after build completes successfully if we had to do a build.
522
+
523
+ Note that clients shouldn’t rely on the imageName field for anything
524
+ specific. It should be considered an internal implementation detail.
525
+
526
+ |*Waiting*
527
+ |`{"phase": "waiting", "message": "Human readable message"}`
528
+ |Emitted when we started a build pod and are waiting for it to start.
529
+
530
+ |*Building*
531
+ |`{"phase": "building", "message": "Log message"}`
532
+ |Emitted during the actual building process. Direct stream of logs
533
+ from the build pod from *repo2docker*, in the same form as logs from
534
+ a normal *docker build*.
535
+
536
+
537
+ |`Fetching`
538
+ |`{"phase": "fetching", "message": "log messages from fetching process"}`
539
+ |Emitted when fetching the repository to be built from its source (GitHub, GitLab, wherever).
540
+
541
+ |*Pushing*
542
+ |`{"phase": "pushing", "message": "Human readable message", "progress": {"layer1": {"current": <bytes-pushed>, "total": <full-bytes>}, "layer2": {"current": <bytes-pushed>, "total": <full-bytes>}, "layer3": "Pushed", "layer4": "Layer already exists"}}`
543
+ |Emitted when the image is being pushed to the cache registry. This
544
+ provides structured status info that could be in a progressbar. It’s
545
+ structured similar to the output of *docker push*.
546
+
547
+ |*Launching*
548
+ |`{"phase": "launching", "message": "user friendly message"}`
549
+ |When the repo has been built, and we’re in the process of waiting
550
+ for the hub to launch. This could end up succeeding and emitting a
551
+ *ready* event or failing and emitting a *failed* event.
552
+
553
+ |*Ready*
554
+ |`{"phase": "ready", "message": "Human readable message", "url": "full-url-of-notebook-server", "token": "notebook-server-token"}`
555
+ |When your notebook is ready! You get a endpoint URL and a token
556
+ used to access it. You can access the notebook\|API by using the
557
+ token in one of the ways the notebook accepts security tokens.
558
+
559
+ |===
560
+
561
+ === Heartbeat
562
+
563
+ In EventSource, all lines beginning with `:` are considered comments.
564
+ We send a `:heartbeat` every 30s to make sure that we can pass through
565
+ proxies without our request being killed.
566
+
567
+ === Repository Providers
568
+
569
+ Repository Providers (or RepoProviders) are locations where repositories
570
+ are stored (e.g., GitHub). BinderHub supports a number of providers out
571
+ of the box, and can be extended to support new providers. For a complete
572
+ listing of the provider classes, see table below.
573
+
574
+ .Provider
575
+ [cols="1,1a,6a,4a", options="header", width="100%", role="rtable mt-3"]
576
+ |===
577
+ |Provider |Prefix |Spec |Description
578
+
579
+ |GitHub
580
+ |*gh*
581
+ |`<user>/<repo>/<commit-sha-or-tag-or-branch>`
582
+ |GitHub is a website for hosting and sharing git repositories.
583
+
584
+ |GitLab
585
+ |*gl*
586
+ |`<url-escaped-namespace>/<unresolved_ref>`
587
+ (e.g. group%2Fproject%2Frepo/master)
588
+ |GitLab offers hosted as well as self-hosted git repositories.
589
+
590
+ |Gist
591
+ |*gist*
592
+ |`<github-username>/<gist-id><commit-sha-or-tag>`
593
+ |Gists are small collections of files stored on GitHub. They behave
594
+ like lightweight *repositories*.
595
+
596
+ |Zenodo
597
+ |*zenodo*
598
+ |`<zenodo-DOI>`
599
+ |Zenodo is a non-profit provider of scholarly artifacts (such as code
600
+ repositories) run in partnership with CERN.
601
+
602
+ |Figshare
603
+ |*figshare*
604
+ |`<figshare-DOI>`
605
+ |FigShare is a company that offers hosting for scholarly artifacts
606
+ (such as code repositories).
607
+
608
+ |HydroShare
609
+ |*hydroshare*
610
+ |`<hydroshare-DOI-or-ResourceID>`
611
+ |HydroShare is a hydrologic information system for users to share
612
+ and publish data and models.
613
+
614
+ |Dataverse
615
+ |*dataverse*
616
+ |`<dataverse-DOI>`
617
+ |Dataverse is open source research data repository software installed
618
+ all over the world.
619
+
620
+ |Git
621
+ |*git*
622
+ |`<url-escaped-url>/<commit-sha>`
623
+ |A generic repository provider for URLs that point directly to
624
+ a git repository.
625
+
626
+ |===
627
+
628
+ === Configuration and Source Code Reference
629
+
630
+ Find details for all code references on:
631
+ link:{binderhub-docs--reference}[BinderHub Docs - Reference, {browser-window--new}]