Talk given to the CU Boulder Computational Science and Engineering Research Group on April 20, 2017 about using NBExtensions in Jupyter Notebooks.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

nbextensions_talk.ipynb 9.3 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {
  6. "slideshow": {
  7. "slide_type": "slide"
  8. }
  9. },
  10. "source": [
  11. "# Being More Productive with Jupyter Notebooks \n",
  12. "> ## An Introduction to NBExtensions \n",
  13. "\n",
  14. "<br/>\n",
  15. "<br/>\n",
  16. "\n",
  17. "\n",
  18. "#### Keith Maull / NCAR\n",
  19. "#### April 20, 2017"
  20. ]
  21. },
  22. {
  23. "cell_type": "markdown",
  24. "metadata": {
  25. "slideshow": {
  26. "slide_type": "slide"
  27. }
  28. },
  29. "source": [
  30. "# Jupyter Notebooks\n",
  31. "<img src=\"images/jupyter.jpg\" width=\"360\"/>"
  32. ]
  33. },
  34. {
  35. "cell_type": "markdown",
  36. "metadata": {
  37. "slideshow": {
  38. "slide_type": "subslide"
  39. }
  40. },
  41. "source": [
  42. "## ... are awesome.\n",
  43. "\n",
  44. "[![](./images/icedragon_2017-04-20_14-08-19.png)](https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks)\n"
  45. ]
  46. },
  47. {
  48. "cell_type": "markdown",
  49. "metadata": {
  50. "slideshow": {
  51. "slide_type": "subslide"
  52. }
  53. },
  54. "source": [
  55. "## but if you use Jupyter ... you surely use NBextensions"
  56. ]
  57. },
  58. {
  59. "cell_type": "markdown",
  60. "metadata": {
  61. "slideshow": {
  62. "slide_type": "subslide"
  63. }
  64. },
  65. "source": [
  66. "## ... or maybe you've _heard of them_\n",
  67. "\n",
  68. "<img src=\"images/firefox_2017-04-20_10-03-00.png\" width=\"800\"/>\n"
  69. ]
  70. },
  71. {
  72. "cell_type": "markdown",
  73. "metadata": {
  74. "slideshow": {
  75. "slide_type": "subslide"
  76. }
  77. },
  78. "source": [
  79. "## ... or maybe even _seen_ them lurking ...\n",
  80. "\n",
  81. "<img src=\"images/firefox_2017-04-20_10-06-52_frog.png\" width=\"800\"/>"
  82. ]
  83. },
  84. {
  85. "cell_type": "markdown",
  86. "metadata": {
  87. "slideshow": {
  88. "slide_type": "slide"
  89. }
  90. },
  91. "source": [
  92. "# But have you _really used_ them?"
  93. ]
  94. },
  95. {
  96. "cell_type": "markdown",
  97. "metadata": {
  98. "slideshow": {
  99. "slide_type": "slide"
  100. }
  101. },
  102. "source": [
  103. "# NBExtensions in 30 seconds ..."
  104. ]
  105. },
  106. {
  107. "cell_type": "markdown",
  108. "metadata": {
  109. "slideshow": {
  110. "slide_type": "fragment"
  111. }
  112. },
  113. "source": [
  114. "## NBExtensions are to Jupyter Notebooks what plugins are to Chrome"
  115. ]
  116. },
  117. {
  118. "cell_type": "markdown",
  119. "metadata": {
  120. "slideshow": {
  121. "slide_type": "fragment"
  122. }
  123. },
  124. "source": [
  125. "## They make working <strike>on</strike> in Jupyter fun and interesting"
  126. ]
  127. },
  128. {
  129. "cell_type": "markdown",
  130. "metadata": {
  131. "slideshow": {
  132. "slide_type": "fragment"
  133. }
  134. },
  135. "source": [
  136. "## ... and they might even make you more productive"
  137. ]
  138. },
  139. {
  140. "cell_type": "markdown",
  141. "metadata": {
  142. "slideshow": {
  143. "slide_type": "slide"
  144. }
  145. },
  146. "source": [
  147. "# NB Extensions / How?"
  148. ]
  149. },
  150. {
  151. "cell_type": "markdown",
  152. "metadata": {
  153. "slideshow": {
  154. "slide_type": "fragment"
  155. }
  156. },
  157. "source": [
  158. "## To get started you'll need a few key ingredients ..."
  159. ]
  160. },
  161. {
  162. "cell_type": "markdown",
  163. "metadata": {
  164. "slideshow": {
  165. "slide_type": "fragment"
  166. }
  167. },
  168. "source": [
  169. "## ingredient 0: a current version of Jupyter!"
  170. ]
  171. },
  172. {
  173. "cell_type": "markdown",
  174. "metadata": {
  175. "slideshow": {
  176. "slide_type": "slide"
  177. }
  178. },
  179. "source": [
  180. "## NB Extensions / How? / Installation"
  181. ]
  182. },
  183. {
  184. "cell_type": "markdown",
  185. "metadata": {
  186. "slideshow": {
  187. "slide_type": "fragment"
  188. }
  189. },
  190. "source": [
  191. "### if you're using `pip` :\n",
  192. "```\n",
  193. "pip install jupyter_contrib_nbextensions\n",
  194. "```\n",
  195. "\n",
  196. "### if you're using `conda`:\n",
  197. "```\n",
  198. "jupyter contrib nbextension install [--user | --system | ...]\n",
  199. "```"
  200. ]
  201. },
  202. {
  203. "cell_type": "markdown",
  204. "metadata": {
  205. "slideshow": {
  206. "slide_type": "slide"
  207. }
  208. },
  209. "source": [
  210. "## NB Extensions / How? / Installation"
  211. ]
  212. },
  213. {
  214. "cell_type": "markdown",
  215. "metadata": {
  216. "slideshow": {
  217. "slide_type": "fragment"
  218. }
  219. },
  220. "source": [
  221. "### now check your environment ...\n",
  222. "\n",
  223. "<img src=\"images/firefox_2017-04-20_13-16-38.png\"/>"
  224. ]
  225. },
  226. {
  227. "cell_type": "markdown",
  228. "metadata": {
  229. "slideshow": {
  230. "slide_type": "subslide"
  231. }
  232. },
  233. "source": [
  234. "[![](images/icedragon_2017-04-20_14-11-49.png)](http://localhost:8889/tree#nbextensions_configurator)"
  235. ]
  236. },
  237. {
  238. "cell_type": "markdown",
  239. "metadata": {
  240. "slideshow": {
  241. "slide_type": "slide"
  242. }
  243. },
  244. "source": [
  245. "# Five plugins you should _try today_!"
  246. ]
  247. },
  248. {
  249. "cell_type": "markdown",
  250. "metadata": {
  251. "slideshow": {
  252. "slide_type": "fragment"
  253. }
  254. },
  255. "source": [
  256. "## 5: [Table of Contents](./example_document.ipynb)"
  257. ]
  258. },
  259. {
  260. "cell_type": "markdown",
  261. "metadata": {
  262. "collapsed": false,
  263. "hide_input": true,
  264. "slideshow": {
  265. "slide_type": "fragment"
  266. }
  267. },
  268. "source": [
  269. "## 4: [Code folding](./example_document.ipynb)"
  270. ]
  271. },
  272. {
  273. "cell_type": "markdown",
  274. "metadata": {
  275. "hide_input": false,
  276. "slideshow": {
  277. "slide_type": "fragment"
  278. }
  279. },
  280. "source": [
  281. "## 3: [Gist-it](./example_document.ipynb)"
  282. ]
  283. },
  284. {
  285. "cell_type": "markdown",
  286. "metadata": {
  287. "slideshow": {
  288. "slide_type": "fragment"
  289. }
  290. },
  291. "source": [
  292. "## 2: [Equation autonumbering](./example_document.ipynb)"
  293. ]
  294. },
  295. {
  296. "cell_type": "markdown",
  297. "metadata": {
  298. "hide_input": false,
  299. "slideshow": {
  300. "slide_type": "fragment"
  301. }
  302. },
  303. "source": [
  304. "## 1: [spell checker](./example_document.ipynb)"
  305. ]
  306. },
  307. {
  308. "cell_type": "markdown",
  309. "metadata": {
  310. "slideshow": {
  311. "slide_type": "fragment"
  312. }
  313. },
  314. "source": [
  315. "## 0: [Nbextensions dashboard tab](./example_document.ipynb)"
  316. ]
  317. },
  318. {
  319. "cell_type": "markdown",
  320. "metadata": {
  321. "slideshow": {
  322. "slide_type": "slide"
  323. }
  324. },
  325. "source": [
  326. "<img src=\"images/parachute-1242426_1920.jpg\" width=\"800\"/>\n",
  327. "<center>\n",
  328. "<h1>Thank you!</h1>\n",
  329. "<h4>Let's collaborate: `kmaull@ucar.edu`</h4>\n",
  330. "</center>"
  331. ]
  332. }
  333. ],
  334. "metadata": {
  335. "anaconda-cloud": {},
  336. "celltoolbar": "Slideshow",
  337. "kernelspec": {
  338. "display_name": "Python [default]",
  339. "language": "python",
  340. "name": "python2"
  341. },
  342. "language_info": {
  343. "codemirror_mode": {
  344. "name": "ipython",
  345. "version": 2
  346. },
  347. "file_extension": ".py",
  348. "mimetype": "text/x-python",
  349. "name": "python",
  350. "nbconvert_exporter": "python",
  351. "pygments_lexer": "ipython2",
  352. "version": "2.7.12"
  353. },
  354. "nbpresent": {
  355. "slides": {
  356. "bed0ac58-cf34-4f59-9302-6146dff3ab44": {
  357. "id": "bed0ac58-cf34-4f59-9302-6146dff3ab44",
  358. "layout": "manual",
  359. "prev": null,
  360. "regions": {
  361. "d1854d10-660b-4c3a-89a8-70cdb0a724c0": {
  362. "attrs": {
  363. "height": 0.8,
  364. "width": 0.8,
  365. "x": 0.1,
  366. "y": 0.1
  367. },
  368. "id": "d1854d10-660b-4c3a-89a8-70cdb0a724c0"
  369. }
  370. }
  371. }
  372. },
  373. "themes": {
  374. "default": "b802de63-d7e4-4da1-98e4-ee0067e6956a",
  375. "theme": {
  376. "b802de63-d7e4-4da1-98e4-ee0067e6956a": {
  377. "id": "b802de63-d7e4-4da1-98e4-ee0067e6956a",
  378. "palette": {
  379. "19cc588f-0593-49c9-9f4b-e4d7cc113b1c": {
  380. "id": "19cc588f-0593-49c9-9f4b-e4d7cc113b1c",
  381. "rgb": [
  382. 252,
  383. 252,
  384. 252
  385. ]
  386. },
  387. "31af15d2-7e15-44c5-ab5e-e04b16a89eff": {
  388. "id": "31af15d2-7e15-44c5-ab5e-e04b16a89eff",
  389. "rgb": [
  390. 68,
  391. 68,
  392. 68
  393. ]
  394. },
  395. "50f92c45-a630-455b-aec3-788680ec7410": {
  396. "id": "50f92c45-a630-455b-aec3-788680ec7410",
  397. "rgb": [
  398. 155,
  399. 177,
  400. 192
  401. ]
  402. },
  403. "c5cc3653-2ee1-402a-aba2-7caae1da4f6c": {
  404. "id": "c5cc3653-2ee1-402a-aba2-7caae1da4f6c",
  405. "rgb": [
  406. 43,
  407. 126,
  408. 184
  409. ]
  410. },
  411. "efa7f048-9acb-414c-8b04-a26811511a21": {
  412. "id": "efa7f048-9acb-414c-8b04-a26811511a21",
  413. "rgb": [
  414. 25.118061674008803,
  415. 73.60176211453744,
  416. 107.4819383259912
  417. ]
  418. }
  419. },
  420. "rules": {
  421. "blockquote": {
  422. "color": "50f92c45-a630-455b-aec3-788680ec7410"
  423. },
  424. "code": {
  425. "font-family": "Anonymous Pro"
  426. },
  427. "h1": {
  428. "color": "c5cc3653-2ee1-402a-aba2-7caae1da4f6c",
  429. "font-family": "Lato",
  430. "font-size": 8
  431. },
  432. "h2": {
  433. "color": "c5cc3653-2ee1-402a-aba2-7caae1da4f6c",
  434. "font-family": "Lato",
  435. "font-size": 6
  436. },
  437. "h3": {
  438. "color": "50f92c45-a630-455b-aec3-788680ec7410",
  439. "font-family": "Lato",
  440. "font-size": 5.5
  441. },
  442. "h4": {
  443. "color": "c5cc3653-2ee1-402a-aba2-7caae1da4f6c",
  444. "font-family": "Lato",
  445. "font-size": 5
  446. },
  447. "h5": {
  448. "font-family": "Lato"
  449. },
  450. "h6": {
  451. "font-family": "Lato"
  452. },
  453. "h7": {
  454. "font-family": "Lato"
  455. },
  456. "pre": {
  457. "font-family": "Anonymous Pro",
  458. "font-size": 4
  459. }
  460. },
  461. "text-base": {
  462. "font-family": "Merriweather",
  463. "font-size": 4
  464. }
  465. }
  466. }
  467. }
  468. },
  469. "toc": {
  470. "nav_menu": {
  471. "height": "512px",
  472. "width": "252px"
  473. },
  474. "navigate_menu": true,
  475. "number_sections": false,
  476. "sideBar": true,
  477. "threshold": 4,
  478. "toc_cell": false,
  479. "toc_section_display": "none",
  480. "toc_window_display": false
  481. }
  482. },
  483. "nbformat": 4,
  484. "nbformat_minor": 0
  485. }