{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

\n", "Python @ SIAM CSE 2015\n", "

\n", "

\n", "Jon Woodring, Aron Ahmadia, Andy Bauer, Joseph Cottam & Andy Terrel \n", "
\n", "
\n", "

\n", "March 15, 2015\n", "

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Getting Started #\n", "\n", "**Three paths:**\n", "\n", "1. Watch the slides\n", "2. Interactive with a virtual machine\n", "3. Download the git repository and use Anaconda/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Path 1: Follow along with the slides #\n", "\n", "Open in your web browser:\n", "## https://github.com/JosephCottam/PythonSIAM2014 ##\n", "\n", "**Scroll down on the page.**\n", "\n", "**Click the \"Section X\" links to the notebooks and slides as needed.**\n", "\n", "If you have section 0 open, here are the links to the static materials:\n", "- [Section 0](http://nbviewer.ipython.org/github/JosephCottam/PythonSIAM2015/blob/master/Section0_intro.ipynb) Introduction\n", " - Additional ipython links:\n", " - https://github.com/barbagroup/CFDPython\n", " - https://github.com/ketch/HyperPython\n", " - https://github.com/barbagroup/AeroPython\n", " - http://nbviewer.ipython.org/github/ketch/teaching-numerics-with-notebo\n", "oks/tree/master/\n", "- [Section 1-1](http://nbviewer.ipython.org/github/JosephCottam/PythonSIAM2015/blob/master/Section1-1_ipython.ipynb) ipython\n", "- [Section 1-2](http://nbviewer.ipython.org/github/JosephCottam/PythonSIAM2015/blob/master/Section1-2_matplotlib.ipynb) matplotlib\n", "- [Section 2](http://nbviewer.ipython.org/github/JosephCottam/PythonSIAM2015/blob/master/Section2_numpy_scipy_pandas.ipynb) numpy, scipy, pandas\n", " - Additional links:\n", " - [Numba](http://numba.pydata.org/)\n", " - [Numba Performance](http://continuum.io/blog/numba_performance)\n", "- [Section 3-1](http://nbviewer.ipython.org/github/JosephCottam/PythonSIAM2015/blob/master/Section3-1_blaze.ipynb) blaze\n", "- [Section 3-2](http://nbviewer.ipython.org/github/JosephCottam/PythonSIAM2015/blob/master/Section3-2_bokeh.ipynb) bokeh\n", "- [Section 4](https://github.com/JosephCottam/PythonSIAM2015/blob/master/VTK_PV.pdf?raw=true) VTK, ParaView\n", "\n", "*Extra reading: Python cloud*\n", "- [Apache Spark](http://spark.apache.org/docs/latest/api/python/)\n", "- [Amazon S3](http://docs.pythonboto.org/en/latest/)\n", "- [Google App](https://cloud.google.com/appengine/docs/python/gettingstartedpyth\n", "on27/introduction)\n", "- [Mongo DB](http://api.mongodb.org/python/current/)\n", "- [Cloudera Impala](https://github.com/cloudera/impyla)\n", "- [sqlalchemy](http://www.sqlalchemy.org/)\n", "- [Apache Libcloud](https://libcloud.apache.org/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Path 2: Follow along interactively #\n", "\n", "Our setup involves using a virtual machine (VM) to ease the process\n", "because everything will be prepackaged right from the start,\n", "and launched after you start the VM. We will have copies of the VM\n", "on USB drives, or you can download the VM directly from the web.\n", "\n", "### The virtual machine is available at: http://goo.gl/V6Ryk0 ### \n", "\n", "### Virtualbox software download link is at: https://www.virtualbox.org/wiki/Downloads ###\n", "\n", "## This link is available for clicking (so you don't have to type the long link) by going to https://github.com/JosephCottam/PythonSIAM2014 ##\n", "\n", "We will provide VirtualBox to be able to run the virtual machine,\n", "on-site at SIAM, (or you can download it directly from Oracle)\n", "but other virtualization systems (VMWare, libvirt/qemu, etc.) should\n", "be able to run the images. The virtual machine is packaged in a OVA\n", "(Open Virtualization Format) for easy installation on your machine." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Step One: Install VirtualBox\n", "----------------------------\n", "\n", "Install VirtualBox on your computer. We will have copies of installers\n", "available on-site, or download it directly from the link below.\n", "\n", "*Virtualbox software download link is at:\n", " https://www.virtualbox.org/wiki/Downloads*\n", "\n", "*We are running a 64-bit Linux on the VM, which should work even if\n", " you are running a 32-bit OS, as long as you have a modern 64-bit\n", " processor.*\n", "\n", "Open the installer and go through the default installation to install\n", "VirtualBox on your computer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Step Two: Open the Virtual Machine\n", "-----------------------------------------\n", "\n", "Copy pyvis_siam_2015.ova from USB drives available on-site at SIAM or download\n", "it from the link below.\n", "\n", "*The virtual machine is available at: http://goo.gl/V6Ryk0*\n", "\n", "Start VirtualBox, and in the main menu, go to \"File->Import Appliance\"\n", "\n", "Open the \"pyvis_siam_2015.ova\" that is provided. Continue through the\n", "default options for the virtual machine.\n", "\n", "This will unpack and install the virtual machine on your computer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Step Three: Launch the Virtual Machine\n", "--------------------------------------\n", "\n", "In VirtualBox, in the virtual machine lists, open the new virtual\n", "machine. This will start Arch Linux in a virtual machine on your computer.\n", "\n", "It will automatically launch into an graphical session with two open\n", "terminals and a ipython notebook session.\n", "\n", "In case you happen to need it, the default user is \"pyvis\" with a\n", "password of \"pyvis\". It has sudo access, and the root password is \"pyvis\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Step Four: You're Ready!\n", "------------------------\n", "\n", "If all went well, a window should have launched in the browser on the VM,\n", "showing the ipython notebook interface." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Path 3. Install on your computer without VM #\n", "\n", "Alternatively, if you can't get the VM to work, you can download\n", "Anaconda, ParaView, VTK & the materials:\n", "\n", "[Tutorial Materials](https://github.com/JosephCottam/PythonSIAM2015/archive/master.zip) -- https://github.com/JosephCottam/PythonSIAM2015/archive/master.zip\n", "\n", "[Anaconda Python](http://continuum.io/downloads) -- http://continuum.io/downloads\n", "\n", "[ParaView](http://www.paraview.org/download/) -- http://www.paraview.org/download/\n", "\n", "[VTK](http://www.vtk.org/VTK/resources/software.html) -- http://www.vtk.org/VTK/resources/software.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3 Reasons why I like Python #" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. It's a fun language #\n", "\n", "## It is so easy to do anything. It's kind of functional, it's kind of procedural, it's all around fun. ##\n", "\n", "## Many of you here may already use Matlab and R, and Python is another tool in that vein. Python may not replace those tools for you, but stick around, maybe something here piques your interest. ##\n", "\n", "## I personally prefer Python to both of those or I wouldn't be teaching this tutorial :) ##\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Rapid prototyping #\n", "\n", "## I have written volume renderers, high-dimensional visualizations, analysis tools, web servers, benchmarks, parallel processing, data manipulation, demonstrations, etc. all in Python. ##\n", "\n", "## I'm a big fan of dynamic typing, rather than static typing, because I'm a \"bottom-up developer\" & \"experimental computer scientist.\" Python and ipython/jupyter fit my workflow really well. ##\n", "\n", "## Premature optimization is the downfall of productivity. There is no good reason to start with C/C++ when 95% of the time in analytics, the bottleneck is I/O. If you need to make it go fast, find your bottlenecks, and optimize LATER not at the start. ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. Batteries are included #\n", "\n", "## XKCD: import antigravity ##\n", "![I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.](python.png)\n", "\n", "# There are tons of useful existing libraries, and more are added everyday. #\n", "\n", "# We'll be showing off several important ones for visualization, analytics, and numerics.#" ] }, { "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.9" } }, "nbformat": 4, "nbformat_minor": 0 }