{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Development Stack Installation\n",
    "Written by <a href=\"mailto:aric.sanders@nist.gov\">Aric Sanders</a>, 01/2016\n",
    "\n",
    "<hr style=\"height:1px\">\n",
    "## Git Installation\n",
    "<hr style=\"height:1px\">\n",
    "\n",
    "1. Download and install [Git] [git]\n",
    "    + Git is a version control program\n",
    "    + [Github][github] and [bitbucket][bitbucket] are good places to put repositories\n",
    "\n",
    "<hr style=\"height:1px\">\n",
    "## Python Base Installation\n",
    "<hr style=\"height:1px\">\n",
    "\n",
    "1. Install [Anaconda] [Anaconda]\n",
    "    + Use the python 2.7 installer\n",
    "    + This installs a large number of [packages] [Anaconda Packages]\n",
    "    + Includes [Jupyter] [jupyter], which is a mathematica style notebook for python.\n",
    "    + A good overview of jupyter's capability can be found [here] [brynmawr]\n",
    "    + in ubuntu down load the Anaconda package, from the directory run bash Anaconda....sh\n",
    "2. Install [PyCharm] [PyCharm], Communtity Edition is free\n",
    "    + Pycharm is an IDE (Integrated Development Environment) for python\n",
    "    + It integrates very well with [git] [git], and it includes very good tools for\n",
    "    working with code, if you install [git][git] first it will autodetect it.\n",
    "    + Requires OpenJDK to be installed. The ubuntu command is sudo apt-get install openjdk-7-jre or JRE ( Windows ) to be installed.\n",
    "    \n",
    "<hr style=\"height:1px\">\n",
    "## Python Package Installation\n",
    "<hr style=\"height:1px\">  \n",
    "### For python packages using pip\n",
    "\\$ pip install package, in ubuntu make sure you are a superuser, i.e. sudo\n",
    "\n",
    "or in python code\n",
    "    \n",
    "```python\n",
    "    import os\n",
    "    os.system(r'pip install pyvisa')\n",
    "```\n",
    "1. Install [Pdoc][pdoc]\n",
    "    + pdoc makes an html page given an import-able module\n",
    "    + pdoc.html('os') or a text version pdoc.text('os')\n",
    "2. Install [NIVisa] [visa]\n",
    "    + NIVISA requires regstration but is free\n",
    "    + It allows communication through several methods including [GPIB][gpib]\n",
    "    + This is not a python package but you need it for pyvisa,\n",
    "    [pyvisa-py][pyvisa-py] looks to be a potential alternative.\n",
    "3. Install [pyvisa][pyvisa] \n",
    "4. Install [Django] [django]\n",
    "5. Install [WxPython] [wx], not pip but there are prebuilt binaries\n",
    "6. Install [odo] [odo], pip install has <em style=\"color:red;\" >errors</em> on ubuntu.\n",
    "7. Install django-registration and change registration/forms.py to include first_name and last_name on the user form\n",
    "    + at a command prompt: pip install django-registration\n",
    "8. Install django-bootstrap-breadcrumbs\n",
    "    + at a command prompt: pip install django-bootstrap-breadcrumbs\n",
    "9. Install markdown\n",
    "    + at a command prompt: pip install markdown\n",
    "10. Install [Boa Constructor] [boa] for Wx FrontEnds creations\n",
    "    + choose boa-constructor-0.6.1.src.zip from the download page, the binary installers do not work if python is installed under the anaconda directory\n",
    "    + There some problems with the source code that must be fixed:\n",
    "        + All references to wx.NO_3D must be removed (I commented them out)\n",
    "            1. in prefs.rc.py\n",
    "                + splitterStyle = wx.SP_LIVE_UPDATE | wx.SP_3DSASH\n",
    "                + #removed option | wx.NO_3D,03/02/2016 Aric Sanders\n",
    "            2. in enumerations.py\n",
    "                + windowNameStyles\n",
    "                + #removed the option 'wx.NO_3D':wx.NO_3D, 03/02/2016 Aric Sanders\n",
    "                + windowStyles\n",
    "                + #removed the window style wx.NO_3D, 03/02/2016 Aric Sanders\n",
    "            3. in Inspector.py\n",
    "                + self.categories\n",
    "                + #removed the style wx.NO_3D | on 03/02/2016 Aric Sanders\n",
    "                \n",
    "         + Because you unzipped the file into something like C:\\python27\\Lib\\site-packages\\boa-constructor-0.6.1,\n",
    "         you have to make a new folder Boa and add an __init__.py file to it.\n",
    "         + Now there are a lot of things improperly namespaced assuming that you will add an enviornmental variable to help it out. I renamspaced them to Boa.\n",
    "         \n",
    "<hr style=\"height:1px\">\n",
    "## Inkscape Installation\n",
    "<hr style=\"height:1px\">\n",
    "\n",
    "1. Download and install [Inkscape] [Inkscape]\n",
    "    + Inkscape is a [svg] [svg] (scalable vector graphics) editor\n",
    "    + In ubuntu use sudo apt-get install inkscape at a terminal\n",
    " \n",
    "\n",
    "\n",
    "<hr style=\"height:1px\">\n",
    "## Open Office Installation\n",
    "<hr style=\"height:1px\">\n",
    "1. Download and install [open office] [open office]\n",
    "    + Open office can be scripted through pyuno to convert many formats\n",
    "    + This is really optional, any office suite with html conversion will work\n",
    "    + Ultimately the idea is to use [unoconv] [unoconv]\n",
    "\n",
    "[boa]:https://sourceforge.net/projects/boa-constructor/files/Boa-Constructor/0.6.1-beta/\n",
    "[Anaconda]:https://www.continuum.io/downloads\n",
    "[Anaconda Packages]:http://docs.continuum.io/anaconda/pkg-docs\n",
    "[PyCharm]:https://www.jetbrains.com/pycharm/download/#section=windows\n",
    "[Inkscape]:https://inkscape.org/en/download/\n",
    "[jupyter]:http://jupyter.org/\n",
    "[git]:https://git-scm.com/downloads\n",
    "[brynmawr]:http://jupyter.cs.brynmawr.edu/hub/dblank/public/Jupyter%20Notebook%20Users%20Manual.ipynb\n",
    "[github]:https://github.com/\n",
    "[bitbucket]:https://bitbucket.org/\n",
    "[svg]:https://en.wikipedia.org/wiki/Scalable_Vector_Graphics\n",
    "[visa]:http://www.ni.com/download/ni-visa-15.0.1/5693/en/\n",
    "[pyvisa]:https://pyvisa.readthedocs.org/en/stable/getting.html\n",
    "[django]:https://www.djangoproject.com/download/\n",
    "[wx]:http://wxpython.org/\n",
    "[odo]:https://odo.readthedocs.org/en/latest/\n",
    "[pdoc]:https://pypi.python.org/pypi/pdoc\n",
    "[gpib]:https://en.wikipedia.org/wiki/IEEE-488\n",
    "[pyvisa-py]:http://pyvisa-py.readthedocs.org/en/latest/\n",
    "[open office]:http://www.openoffice.org/download/\n",
    "[unoconv]:https://github.com/dagwieers/unoconv"
   ]
  }
 ],
 "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.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
