{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"images/continuum_analytics_logo.png\" \n",
    "                                alt=\"Continuum Logo\",\n",
    "                                align=\"right\",\n",
    "                                width=\"30%\">\n",
    "\n",
    "# Building Python Data Applications <br> with Blaze, Numba, and Bokeh\n",
    "\n",
    "*NCCU PyDay 2015*\n",
    "\n",
    "by Andy Terrel\n",
    "\n",
    "<hr>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Tutorial sections\n",
    "\n",
    "- Section 0: Introduction\n",
    "- Section 0a: Numba First Steps\n",
    "- Section 0b: Numba Types\n",
    "- Section 0c: Numba and Numpy\n",
    "- Section 1: Blaze\n",
    "- Section 2: Bokeh\n",
    "- Section 3: Apps\n",
    "\n",
    "<hr>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Follow along\n",
    "\n",
    "### http://git.io/vIlk2\n",
    "\n",
    "<br>\n",
    "\n",
    "- Option A: Download repository\n",
    "\n",
    "### https://github.com/aterrel/pydata-apps\n",
    "\n",
    "- Option B: View notebooks on nbviewer\n",
    "\n",
    "### http://nbviewer.ipython.org/github/aterrel/pydata-apps\n",
    "\n",
    "<hr>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Numba\n",
    "\n",
    "http://numba.pydata.org\n",
    "\n",
    "Numba gives a simple way to compile simple functions to assembly via llvm to be used with NumPy kernels.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from IPython.display import IFrame\n",
    "IFrame('http://numba.pydata.org/', width='100%', height=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<hr>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Blaze\n",
    "\n",
    "\n",
    "### http://blaze.pydata.org/en/latest/\n",
    "\n",
    "\n",
    "Blaze allows Python users a familiar interface to query data living in other data storage systems."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from IPython.display import IFrame\n",
    "IFrame('http://blaze.pydata.org/en/latest/', width='100%', height=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<hr>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Bokeh\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### http://bokeh.pydata.org/en/latest/\n",
    "\n",
    "Bokeh is a Python interactive visualization library that targets modern web browsers for presentation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from IPython.display import IFrame\n",
    "IFrame('http://bokeh.pydata.org/en/latest/', width='100%', height=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<hr>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tutorial goals\n",
    "\n",
    "- Learn basics of Numba\n",
    "- Query backends with Blaze expressions \n",
    "- Generate Bokeh visualizations\n",
    "- Create data applications with Blaze and Bokeh\n",
    "\n",
    "<hr>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Installation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Download and install the [Anaconda Python Distribution](http://continuum.io/downloads)\n",
    "- Download [archive of this repository](https://github.com/aterrel/pydata-apps/archive/master.zip) or checkout with git \n",
    "\n",
    "  ```\n",
    "  git clone https://github.com/aterrel/pydata-apps.git\n",
    "  ```\n",
    "\n",
    "- Each tutorial has a slightly different set of requirements. To download all the requirements try:\n",
    "  \n",
    "  ```\n",
    "  conda update conda\n",
    "  conda env create\n",
    "  ```\n",
    "\n",
    "- Activate the environment\n",
    "\n",
    "  ```\n",
    "  source activate pydata_apps\n",
    "  ```\n",
    "\n",
    "### Static notebooks\n",
    "\n",
    "For those want to just follow a static notebook (not all interactive elements will work), see the following links:\n",
    "\n",
    "- [Section 0: Introduction](http://nbviewer.ipython.org/github/ContinuumIO/pydata-apps/blob/master/Section_0_Introduction.ipynb)\n",
    "- [Numba 0: Numba First Steps](http://nbviewer.ipython.org/github/aterrel/pydata-apps/blob/master/numba_tutorial/Numba%20First%20Steps.ipynb)\n",
    "- [Numba 1: Numba Types](http://nbviewer.ipython.org/github/aterrel/pydata-apps/blob/master/numba_tutorial/Numba%20types.ipynb)\n",
    "- [Numba 2: Numba and Numpy](http://nbviewer.ipython.org/github/aterrel/pydata-apps/blob/master/numba_tutorial/Numpy%20and%20numba.ipynb)\n",
    "- [Section 1: Blaze Tutorial](http://nbviewer.ipython.org/github/ContinuumIO/pydata-apps/blob/master/Section_1_blaze.ipynb)\n",
    "- [Section 2: Bokeh Tutorial](http://nbviewer.ipython.org/github/ContinuumIO/pydata-apps/blob/master/Section_2_bokeh.ipynb) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}