Skip to content

Instantly share code, notes, and snippets.

@JohnGriffiths
Created November 24, 2013 14:37
Show Gist options
  • Save JohnGriffiths/7627953 to your computer and use it in GitHub Desktop.
Save JohnGriffiths/7627953 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"worksheets": [
{
"cells": [
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Gist extension test v3",
"level": 1
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Testing this as a slideshow for quick sharing of results",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "so add some sub text here \n\n...and on to the next slide"
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Nbconvert calls",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "Trying to run nbconvert with post serve and render the result live in the notebook. \n\nDoesn't seem possible to do it from the notebook; perhaps just run in a separate terminal?\n\n(...but then might as well just use the other browser window)\n\n\nOther option = render the slideviewer webapp using HTML (see end of doc)"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "(this didn't work)"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"input": "%%script bash --bg --out tmpr\n\n!ipython nbconvert Gist_extension_test_v3.ipynb --to slides --post serve",
"cell_type": "code",
"prompt_number": 41,
"outputs": [
{
"output_type": "stream",
"text": "Starting job # 4 in a separate thread.\n",
"stream": "stdout"
}
],
"language": "python",
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Render reveal slideshow locally in the notebook",
"level": 2
},
{
"metadata": {},
"cell_type": "markdown",
"source": "(I saw someone do this online but can't find that bloody show again!)"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "Try: nbconvert --to slides --post serve, and then iframe to there?"
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"input": "\n#HTML('<iframe src=http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html?useformat=mobile width=700 height=350></iframe>')\n\nHTML('<iframe src=http://127.0.0.1:8000/Gist_extension_test_v3.slides.html width=700 height=350></iframe>')\n#http://127.0.0.1:8000/Gist_extension_test_v3.slides.html#/\n ",
"cell_type": "code",
"prompt_number": 28,
"outputs": [
{
"output_type": "pyout",
"prompt_number": 28,
"text": "<IPython.core.display.HTML at 0x3187c10>",
"html": "<iframe src=http://127.0.0.1:8000/Gist_extension_test_v3.slides.html width=700 height=350></iframe>",
"metadata": {}
}
],
"language": "python",
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Table of contents",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "So it looks like the extension one doesn't appear in nbviewer. \n\nWhat about manual ones?"
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Manual table of contents\n\n<a name=\"manualtoc\">\n \n \n[zen](#zenmanual) \n \n[collaboration](#collaborationmanual)"
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "heading",
"source": "Zen mode",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "<a name = \"zenmanual\">"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "addd some more blah so that the hyperlinks are obvious when they work\n\nblah \n\nblah blah\n\n\nblah\n\n\n\nblah\n\nblah \nblah \nblah \nblah \nblah "
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Pastebin",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "(not really that useful because just saves .py files)"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"input": "%pastebin -d pasterbin_tester.py 1-20\n",
"cell_type": "code",
"prompt_number": 15,
"outputs": [
{
"output_type": "pyout",
"prompt_number": 15,
"metadata": {},
"text": "u'https://gist.github.com/7628726'"
}
],
"language": "python",
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "[back to top](#manualtoc)"
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Collaboration",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "<a name=\"collaborationmanual\">"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "addd some more blah so that the hyperlinks are obvious when they work\n\nblah \n\nblah blah\n\n\nblah\n\n\n\nblah\n\nblah \nblah \nblah \nblah \nblah "
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "[back to top](#manualtoc)"
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Code folding",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "let's add in some code now:\n"
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Hide this code cell with a manual little bit of text"
},
{
"metadata": {
"input_collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"input": "<style type=\"text/css\">\n.input, .output_prompt {\ndisplay:none !important;\n}\n</style>\n\n\n\n\"\"\"\nAnimation of Elastic collisions with Gravity\n\nauthor: Jake Vanderplas\nemail: vanderplas@astro.washington.edu\nwebsite: http://jakevdp.github.com\nlicense: BSD\nPlease feel free to use and modify this, but keep the above information. Thanks!\n\"\"\"\nimport numpy as np\nfrom scipy.spatial.distance import pdist, squareform\n\nimport matplotlib.pyplot as plt\nimport scipy.integrate as integrate\nimport matplotlib.animation as animation\n\nclass ParticleBox:\n \"\"\"Orbits class\n \n init_state is an [N x 4] array, where N is the number of particles:\n [[x1, y1, vx1, vy1],\n [x2, y2, vx2, vy2],\n ... ]\n\n bounds is the size of the box: [xmin, xmax, ymin, ymax]\n \"\"\"\n def __init__(self,\n init_state = [[1, 0, 0, -1],\n [-0.5, 0.5, 0.5, 0.5],\n [-0.5, -0.5, -0.5, 0.5]],\n bounds = [-2, 2, -2, 2],\n size = 0.04,\n M = 0.05,\n G = 9.8):\n self.init_state = np.asarray(init_state, dtype=float)\n self.M = M * np.ones(self.init_state.shape[0])\n self.size = size\n self.state = self.init_state.copy()\n self.time_elapsed = 0\n self.bounds = bounds\n self.G = G\n\n def step(self, dt):\n \"\"\"step once by dt seconds\"\"\"\n self.time_elapsed += dt\n \n # update positions\n self.state[:, :2] += dt * self.state[:, 2:]\n\n # find pairs of particles undergoing a collision\n D = squareform(pdist(self.state[:, :2]))\n ind1, ind2 = np.where(D < 2 * self.size)\n unique = (ind1 < ind2)\n ind1 = ind1[unique]\n ind2 = ind2[unique]\n\n # update velocities of colliding pairs\n for i1, i2 in zip(ind1, ind2):\n # mass\n m1 = self.M[i1]\n m2 = self.M[i2]\n \n \n # location vector\n r1 = self.state[i1, :2]\n r2 = self.state[i2, :2]\n\n # velocity vector\n v1 = self.state[i1, 2:]\n v2 = self.state[i2, 2:]\n\n # relative location & velocity vectors\n r_rel = r1 - r2\n v_rel = v1 - v2\n\n # momentum vector of the center of mass\n v_cm = (m1 * v1 + m2 * v2) / (m1 + m2)\n\n # collisions of spheres reflect v_rel over r_rel\n rr_rel = np.dot(r_rel, r_rel)\n vr_rel = np.dot(v_rel, r_rel)\n v_rel = 2 * r_rel * vr_rel / rr_rel - v_rel\n\n # assign new velocities\n self.state[i1, 2:] = v_cm + v_rel * m2 / (m1 + m2)\n self.state[i2, 2:] = v_cm - v_rel * m1 / (m1 + m2) \n\n # check for crossing boundary\n crossed_x1 = (self.state[:, 0] < self.bounds[0] + self.size)\n crossed_x2 = (self.state[:, 0] > self.bounds[1] - self.size)\n crossed_y1 = (self.state[:, 1] < self.bounds[2] + self.size)\n crossed_y2 = (self.state[:, 1] > self.bounds[3] - self.size)\n\n self.state[crossed_x1, 0] = self.bounds[0] + self.size\n self.state[crossed_x2, 0] = self.bounds[1] - self.size\n\n self.state[crossed_y1, 1] = self.bounds[2] + self.size\n self.state[crossed_y2, 1] = self.bounds[3] - self.size\n\n self.state[crossed_x1 | crossed_x2, 2] *= -1\n self.state[crossed_y1 | crossed_y2, 3] *= -1\n\n # add gravity\n self.state[:, 3] -= self.M * self.G * dt\n\n\n#------------------------------------------------------------\n# set up initial state\nnp.random.seed(0)\ninit_state = -0.5 + np.random.random((50, 4))\ninit_state[:, :2] *= 3.9\n\nbox = ParticleBox(init_state, size=0.04)\ndt = 1. / 30 # 30fps\n\n\n#------------------------------------------------------------\n# set up figure and animation\nfig = plt.figure()\nfig.subplots_adjust(left=0, right=1, bottom=0, top=1)\nax = fig.add_subplot(111, aspect='equal', autoscale_on=False,\n xlim=(-3.2, 3.2), ylim=(-2.4, 2.4))\n\n# particles holds the locations of the particles\nparticles, = ax.plot([], [], 'bo', ms=6)\n\n# rect is the box edge\nrect = plt.Rectangle(box.bounds[::2],\n box.bounds[1] - box.bounds[0],\n box.bounds[3] - box.bounds[2],\n ec='none', lw=2, fc='none')\nax.add_patch(rect)\n\ndef init():\n \"\"\"initialize animation\"\"\"\n global box, rect\n particles.set_data([], [])\n rect.set_edgecolor('none')\n return particles, rect\n\ndef animate(i):\n \"\"\"perform animation step\"\"\"\n global box, rect, dt, ax, fig\n box.step(dt)\n\n ms = int(fig.dpi * 2 * box.size * fig.get_figwidth()\n / np.diff(ax.get_xbound())[0])\n \n # update pieces of the animation\n rect.set_edgecolor('k')\n particles.set_data(box.state[:, 0], box.state[:, 1])\n particles.set_markersize(ms)\n return particles, rect\n\nani = animation.FuncAnimation(fig, animate, frames=600,\n interval=10, blit=True, init_func=init)\n\n\n# save the animation as an mp4. This requires ffmpeg or mencoder to be\n# installed. The extra_args ensure that the x264 codec is used, so that\n# the video can be embedded in html5. You may need to adjust this for\n# your system: for more information, see\n# http://matplotlib.sourceforge.net/api/animation_api.html\n#ani.save('particle_box.mp4', fps=30, extra_args=['-vcodec', 'libx264'])\n\nplt.show()\n\n\n",
"cell_type": "code",
"prompt_number": 8,
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"png": "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\nxhuv3L948WLccsstDZym/rq7u2PMmL9+FF1dXXHmzJkGT1Rf8+fPj3nz5jV6jLr58MMPY86cOTFr\n1qwYP358bNiwIQ4fPtzosepqyZIlMXny5EaPkWbatGnR2dkZERGTJk2K1tbWOHfuXIOnqq8bbrgh\nIiIGBgbi8uXLMWXKlKr2NyLjExHx9NNPx8yZM+O1116LJ598stHjpNm3b1+sXLmy0WNQhbNnz8aM\nGTOufN3S0hJnz55t4ETUU19fX5w6dSq6uroaPUpd/fnnn9HZ2RlTp06NZcuWxYIFC6raX8Pi093d\nHe3t7Vfd3nrrrYiI2L59e3z33Xfx6KOPxhNPPNGoMWvmn4434q9jnjBhQmzcuLGBk9bGUI63Wfnd\nttHj4sWLsX79+tizZ09MmjSp0ePU1ZgxY+KTTz6JM2fOxPHjx6v+Uzt1/z2fazl69OiQttu4cWNT\nnAn80/Hu378/jhw5EseOHUuaqL6G+vNtRtOnT/+vN8n09/dHS0tLAyeiHi5duhTr1q2Lhx9+OB58\n8MFGj5PmpptuilWrVsVHH30U5XJ52PsZkZfdTp8+feX+4cOHY9GiRQ2cpv56e3tj9+7dcfjw4Zg4\ncWKjx0lVNOEvIS9evDhOnz4dfX19MTAwEAcOHIg1a9Y0eixqqCiK2Lx5cyxYsCC2bNnS6HHq7scf\nf4yffvopIiJ+++23OHr0aPXPy9W/B6L21q1bVyxcuLDo6Ogo1q5dW/zwww+NHqmu5syZU8ycObPo\n7OwsOjs7i8cff7zRI9XVG2+8UbS0tBQTJ04spk6dWixfvrzRI9XckSNHinnz5hWzZ88uduzY0ehx\n6m7Dhg3FrbfeWkyYMKFoaWkp9u3b1+iR6urEiRNFqVQqOjo6rvy/ffvttxs9Vt189tlnxaJFi4qO\njo6ivb29eP7556veZ93/thsA/K8RedkNgOYmPgCkEx8A0okPAOnEB4B04gNAuv8D6ql/km3VkF4A\nAAAASUVORK5CYII=\n",
"text": "<matplotlib.figure.Figure at 0x314ce10>"
}
],
"language": "python",
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Do code hiding or hierarchical collapse show in nbviewer?",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Do code hiding or hierarhical collapse show in heroku slideshow nbviewer?",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"input": "\"\"\"blah blah blah \nblah blah blah \n\nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \nblah blah blah \"\"\" \n",
"cell_type": "code",
"prompt_number": 12,
"outputs": [
{
"output_type": "pyout",
"prompt_number": 12,
"metadata": {},
"text": "'blah blah blah \\nblah blah blah \\n\\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah \\nblah blah blah '"
}
],
"language": "python",
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "View online",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "view in nbviewer: http://nbviewer.ipython.org/7627953 \n \n \n\n\nview in slideviewer: http://slideviewer.herokuapp.com/7627953 "
},
{
"metadata": {},
"input": "\nHTML('<iframe src= http://slideviewer.herokuapp.com/7627953 width=700 height=350></iframe>')\n \n#HTML('<iframe src=http://127.0.0.1:8000/Gist_extension_test_v3.slides.html width=700 height=350></iframe>')\n ",
"cell_type": "code",
"outputs": [],
"language": "python",
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "That's a rap. How was it?",
"level": 2
}
],
"metadata": {}
}
],
"metadata": {
"gist_id": "7627953",
"name": ""
},
"nbformat": 3
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment