Commits

Jorge Vargas committed 46baf0d

more renames

  • Participants
  • Parent commits 8b0cdc1

Comments (0)

Files changed (15)

File .DS_Store

Binary file modified.

File 001 - Install.ipynb

+{
+ "metadata": {
+  "name": "001-Install"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "heading",
+     "level": 1,
+     "metadata": {},
+     "source": [
+      "Como lo Instalo?"
+     ]
+    },
+    {
+     "cell_type": "raw",
+     "metadata": {},
+     "source": [
+      "Viene con todos los sistemas operativos que se respeten.\n",
+      "abres terminal, uxterm, xterm, etc. Y simplemente ejecutas\n",
+      "\n",
+      " \u279c ~ python\n",
+      " Python 2.7.2 (default, Jun 20 2012, 16:23:33)\n",
+      " [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n",
+      " >>> print(\"Hello World\")\n",
+      " Hello World"
+     ]
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "Windows\n",
+      "-------\n",
+      "\n",
+      "http://www.python.org/getit/windows/"
+     ]
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "Libros Tutorials y demas?\n",
+      "=========================\n",
+      "\n",
+      "Para los que no lo vieron recopilamos la lista de cosas aqui https://plus.google.com/b/115629166357246025614/115629166357246025614/posts/SEPoJHdzJGL"
+     ]
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "Multiparadigma\n",
+      "==============\n",
+      "\n",
+      "* Structured Programming\n",
+      "* OOP + multiple inheritance\n",
+      "* funcional programming\n",
+      "* metaprogramming and magic methods \u2022 aspect oriented"
+     ]
+    },
+    {
+     "cell_type": "raw",
+     "metadata": {},
+     "source": [
+      "Pero python va mas alla. Hay ciertas caracteristicas del lenguaje que lo hacen especial, por ejemplo:"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "print list"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "<type 'list'>\n"
+       ]
+      }
+     ],
+     "prompt_number": 10
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "print dict"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "<type 'dict'>\n"
+       ]
+      }
+     ],
+     "prompt_number": 11
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "range(5)\n",
+      "#type(range(5))"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "pyout",
+       "prompt_number": 16,
+       "text": [
+        "list"
+       ]
+      }
+     ],
+     "prompt_number": 16
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "for i in range(5):\n",
+      "    print i"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "0\n",
+        "1\n",
+        "2\n",
+        "3\n",
+        "4\n"
+       ]
+      }
+     ],
+     "prompt_number": 17
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def func():\n",
+      "    a = 5\n",
+      "    b = 10\n",
+      "    print locals()\n",
+      "    \n",
+      "func()"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "{'a': 5, 'b': 10}\n"
+       ]
+      }
+     ],
+     "prompt_number": 18
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File 001-Install.ipynb

-{
- "metadata": {
-  "name": "001-Install"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "heading",
-     "level": 1,
-     "metadata": {},
-     "source": [
-      "Como lo Instalo?"
-     ]
-    },
-    {
-     "cell_type": "raw",
-     "metadata": {},
-     "source": [
-      "Viene con todos los sistemas operativos que se respeten.\n",
-      "abres terminal, uxterm, xterm, etc. Y simplemente ejecutas\n",
-      "\n",
-      " \u279c ~ python\n",
-      " Python 2.7.2 (default, Jun 20 2012, 16:23:33)\n",
-      " [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n",
-      " >>> print(\"Hello World\")\n",
-      " Hello World"
-     ]
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Windows\n",
-      "-------\n",
-      "\n",
-      "http://www.python.org/getit/windows/"
-     ]
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Libros Tutorials y demas?\n",
-      "=========================\n",
-      "\n",
-      "Para los que no lo vieron recopilamos la lista de cosas aqui https://plus.google.com/b/115629166357246025614/115629166357246025614/posts/SEPoJHdzJGL"
-     ]
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Multiparadigma\n",
-      "==============\n",
-      "\n",
-      "* Structured Programming\n",
-      "* OOP + multiple inheritance\n",
-      "* funcional programming\n",
-      "* metaprogramming and magic methods \u2022 aspect oriented"
-     ]
-    },
-    {
-     "cell_type": "raw",
-     "metadata": {},
-     "source": [
-      "Pero python va mas alla. Hay ciertas caracteristicas del lenguaje que lo hacen especial, por ejemplo:"
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "print list"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "<type 'list'>\n"
-       ]
-      }
-     ],
-     "prompt_number": 10
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "print dict"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "<type 'dict'>\n"
-       ]
-      }
-     ],
-     "prompt_number": 11
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "range(5)\n",
-      "#type(range(5))"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "pyout",
-       "prompt_number": 16,
-       "text": [
-        "list"
-       ]
-      }
-     ],
-     "prompt_number": 16
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "for i in range(5):\n",
-      "    print i"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "0\n",
-        "1\n",
-        "2\n",
-        "3\n",
-        "4\n"
-       ]
-      }
-     ],
-     "prompt_number": 17
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def func():\n",
-      "    a = 5\n",
-      "    b = 10\n",
-      "    print locals()\n",
-      "    \n",
-      "func()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "{'a': 5, 'b': 10}\n"
-       ]
-      }
-     ],
-     "prompt_number": 18
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}

File 002 - import this.ipynb

+{
+ "metadata": {
+  "name": "002-import this"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "code",
+     "collapsed": true,
+     "input": [
+      "import this"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "The Zen of Python, by Tim Peters\n",
+        "\n",
+        "Beautiful is better than ugly.\n",
+        "Explicit is better than implicit.\n",
+        "Simple is better than complex.\n",
+        "Complex is better than complicated.\n",
+        "Flat is better than nested.\n",
+        "Sparse is better than dense.\n",
+        "Readability counts.\n",
+        "Special cases aren't special enough to break the rules.\n",
+        "Although practicality beats purity.\n",
+        "Errors should never pass silently.\n",
+        "Unless explicitly silenced.\n",
+        "In the face of ambiguity, refuse the temptation to guess.\n",
+        "There should be one-- and preferably only one --obvious way to do it.\n",
+        "Although that way may not be obvious at first unless you're Dutch.\n",
+        "Now is better than never.\n",
+        "Although never is often better than *right* now.\n",
+        "If the implementation is hard to explain, it's a bad idea.\n",
+        "If the implementation is easy to explain, it may be a good idea.\n",
+        "Namespaces are one honking great idea -- let's do more of those!\n"
+       ]
+      }
+     ],
+     "prompt_number": 2
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "this.__file__\r"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "pyout",
+       "prompt_number": 3,
+       "text": [
+        "'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/this.py'"
+       ]
+      }
+     ],
+     "prompt_number": 3
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "open(this.__file__).read()"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "pyout",
+       "prompt_number": 4,
+       "text": [
+        "'s = \"\"\"Gur Mra bs Clguba, ol Gvz Crgref\\n\\nOrnhgvshy vf orggre guna htyl.\\nRkcyvpvg vf orggre guna vzcyvpvg.\\nFvzcyr vf orggre guna pbzcyrk.\\nPbzcyrk vf orggre guna pbzcyvpngrq.\\nSyng vf orggre guna arfgrq.\\nFcnefr vf orggre guna qrafr.\\nErnqnovyvgl pbhagf.\\nFcrpvny pnfrf nera\\'g fcrpvny rabhtu gb oernx gur ehyrf.\\nNygubhtu cenpgvpnyvgl orngf chevgl.\\nReebef fubhyq arire cnff fvyragyl.\\nHayrff rkcyvpvgyl fvyraprq.\\nVa gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.\\nGurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.\\nNygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh\\'er Qhgpu.\\nAbj vf orggre guna arire.\\nNygubhtu arire vf bsgra orggre guna *evtug* abj.\\nVs gur vzcyrzragngvba vf uneq gb rkcynva, vg\\'f n onq vqrn.\\nVs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.\\nAnzrfcnprf ner bar ubaxvat terng vqrn -- yrg\\'f qb zber bs gubfr!\"\"\"\\n\\nd = {}\\nfor c in (65, 97):\\n    for i in range(26):\\n        d[chr(i+c)] = chr((i+13) % 26 + c)\\n\\nprint \"\".join([d.get(c, c) for c in s])\\n'"
+       ]
+      }
+     ],
+     "prompt_number": 4
+    },
+    {
+     "cell_type": "code",
+     "collapsed": true,
+     "input": [
+      "print open(this.__file__).read()"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "s = \"\"\"Gur Mra bs Clguba, ol Gvz Crgref\n",
+        "\n",
+        "Ornhgvshy vf orggre guna htyl.\n",
+        "Rkcyvpvg vf orggre guna vzcyvpvg.\n",
+        "Fvzcyr vf orggre guna pbzcyrk.\n",
+        "Pbzcyrk vf orggre guna pbzcyvpngrq.\n",
+        "Syng vf orggre guna arfgrq.\n",
+        "Fcnefr vf orggre guna qrafr.\n",
+        "Ernqnovyvgl pbhagf.\n",
+        "Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.\n",
+        "Nygubhtu cenpgvpnyvgl orngf chevgl.\n",
+        "Reebef fubhyq arire cnff fvyragyl.\n",
+        "Hayrff rkcyvpvgyl fvyraprq.\n",
+        "Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.\n",
+        "Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.\n",
+        "Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.\n",
+        "Abj vf orggre guna arire.\n",
+        "Nygubhtu arire vf bsgra orggre guna *evtug* abj.\n",
+        "Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.\n",
+        "Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.\n",
+        "Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!\"\"\"\n",
+        "\n",
+        "d = {}\n",
+        "for c in (65, 97):\n",
+        "    for i in range(26):\n",
+        "        d[chr(i+c)] = chr((i+13) % 26 + c)\n",
+        "\n",
+        "print \"\".join([d.get(c, c) for c in s])\n",
+        "\n"
+       ]
+      }
+     ],
+     "prompt_number": 5
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "exec(open(this.__file__).read())"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "The Zen of Python, by Tim Peters\n",
+        "\n",
+        "Beautiful is better than ugly.\n",
+        "Explicit is better than implicit.\n",
+        "Simple is better than complex.\n",
+        "Complex is better than complicated.\n",
+        "Flat is better than nested.\n",
+        "Sparse is better than dense.\n",
+        "Readability counts.\n",
+        "Special cases aren't special enough to break the rules.\n",
+        "Although practicality beats purity.\n",
+        "Errors should never pass silently.\n",
+        "Unless explicitly silenced.\n",
+        "In the face of ambiguity, refuse the temptation to guess.\n",
+        "There should be one-- and preferably only one --obvious way to do it.\n",
+        "Although that way may not be obvious at first unless you're Dutch.\n",
+        "Now is better than never.\n",
+        "Although never is often better than *right* now.\n",
+        "If the implementation is hard to explain, it's a bad idea.\n",
+        "If the implementation is easy to explain, it may be a good idea.\n",
+        "Namespaces are one honking great idea -- let's do more of those!\n"
+       ]
+      }
+     ],
+     "prompt_number": 6
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "Mucha gente se pregunto q le explicaran mejor el algoritmo de arriba. Este es http://en.wikipedia.org/wiki/ROT13 basicamente se toma cada letra y se le suman 13 haciendo el texto \"ilegible\" y la tecnica utilizada aca es generar un translation table. Para cada valor del abcedario se genera la letra que lo va a substituir y luego se hace la subtiticion. "
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "d = {}\n",
+      "for c in (65, 97):\n",
+      "    for i in range(26):\n",
+      "        d[chr(i+c)] = chr((i+13) % 26 + c)\n",
+      "\n",
+      "print d.items()\n",
+      "#NOTA: los dict no son sorted!!! asi que abajo no sale a,b,c,d,e,etc."
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "[('A', 'N'), ('C', 'P'), ('B', 'O'), ('E', 'R'), ('D', 'Q'), ('G', 'T'), ('F', 'S'), ('I', 'V'), ('H', 'U'), ('K', 'X'), ('J', 'W'), ('M', 'Z'), ('L', 'Y'), ('O', 'B'), ('N', 'A'), ('Q', 'D'), ('P', 'C'), ('S', 'F'), ('R', 'E'), ('U', 'H'), ('T', 'G'), ('W', 'J'), ('V', 'I'), ('Y', 'L'), ('X', 'K'), ('Z', 'M'), ('a', 'n'), ('c', 'p'), ('b', 'o'), ('e', 'r'), ('d', 'q'), ('g', 't'), ('f', 's'), ('i', 'v'), ('h', 'u'), ('k', 'x'), ('j', 'w'), ('m', 'z'), ('l', 'y'), ('o', 'b'), ('n', 'a'), ('q', 'd'), ('p', 'c'), ('s', 'f'), ('r', 'e'), ('u', 'h'), ('t', 'g'), ('w', 'j'), ('v', 'i'), ('y', 'l'), ('x', 'k'), ('z', 'm')]\n"
+       ]
+      }
+     ],
+     "prompt_number": 33
+    },
+    {
+     "cell_type": "raw",
+     "metadata": {},
+     "source": [
+      "de 65 a 97 son las letras mayusculas en el ASCII table las cuales son la parte baja de unicode por lo tanto:"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "print chr(65)\n",
+      "print chr(97)\n",
+      "print [chr(c) for c in range(65,97)]"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "A\n",
+        "a\n",
+        "['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\\\', ']', '^', '_', '`']\n"
+       ]
+      }
+     ],
+     "prompt_number": 22
+    },
+    {
+     "cell_type": "raw",
+     "metadata": {},
+     "source": [
+      "Porque 26? "
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "ord(\"Z\")-ord(\"A\")"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "pyout",
+       "prompt_number": 17,
+       "text": [
+        "25"
+       ]
+      }
+     ],
+     "prompt_number": 17
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "d = {}\n",
+      "c = 67\n",
+      "i = 10 \n",
+      "d[chr(i+c)] = chr((i+13) % 26 + c)\n",
+      "print d"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "{'M': 'Z'}\n"
+       ]
+      }
+     ],
+     "prompt_number": 31
+    },
+    {
+     "cell_type": "raw",
+     "metadata": {},
+     "source": [
+      "So volviendo al ejemplo original una vez tenemos el dict."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "s = \"Python is cool!\" \n",
+      "d = {}\n",
+      "for c in (65, 97):\n",
+      "    for i in range(26):\n",
+      "        d[chr(i+c)] = chr((i+13) % 26 + c)\n",
+      "\n",
+      "print \"\".join([d.get(c, c) for c in s])"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "Clguba vf pbby!\n"
+       ]
+      }
+     ],
+     "prompt_number": 34
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File 002-import this.ipynb

-{
- "metadata": {
-  "name": "002-import this"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": true,
-     "input": [
-      "import this"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "this.__file__\r"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "open(this.__file__).read()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": true,
-     "input": [
-      "print open(this.__file__).read()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "exec(open(this.__file__).read())"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}

File 003 - some awesome tools.ipynb

+{
+ "metadata": {
+  "name": "003-some-awesome-tools"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "bpython\n",
+      "-------\n",
+      "\n",
+      "A Fancy Interface to the Python Interpreter\n",
+      "\n",
+      "http://pypi.python.org/pypi/bpython"
+     ]
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "ipython\n",
+      "-------\n",
+      "IPython: Productive Interactive Computing\n",
+      "\n",
+      "http://pypi.python.org/pypi/ipython"
+     ]
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "virtualenv\n",
+      "----------\n",
+      "\n",
+      "Out of the mind of Ian Bicking https://plus.google.com/+IanBicking\n",
+      "\n",
+      "http://pypi.python.org/pypi/virtualenv"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!virtualenv test"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "New python executable in test/bin/python\r\n"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "Installing setuptools..."
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "....."
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "....done.\r\n",
+        "Installing pip..."
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "."
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "...."
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        ".......done.\r\n"
+       ]
+      }
+     ],
+     "prompt_number": 29
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "#source test/bin/activate"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!venv/bin/pip install html"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!ls"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!ls test"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!which pip"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!python -c \"import html;print html\""
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!pip freeze"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!pip freeze > req.txt"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!pip install -r req.txt"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "Requirement already satisfied (use --upgrade to upgrade): Pygments==1.5 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 1))\r\n",
+        "Requirement already satisfied (use --upgrade to upgrade): bpython==0.11 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 2))\r\n",
+        "Requirement already satisfied (use --upgrade to upgrade): html==1.16 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 3))\r\n",
+        "Requirement already satisfied (use --upgrade to upgrade): ipython==0.13 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 4))\r\n",
+        "Requirement already satisfied (use --upgrade to upgrade): pyzmq==2.2.0.1 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 5))\r\n",
+        "Requirement already satisfied (use --upgrade to upgrade): tornado==2.4 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 6))\r\n",
+        "Requirement already satisfied (use --upgrade to upgrade): wsgiref==0.1.2 in /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 (from -r req.txt (line 7))\r\n",
+        "Cleaning up...\r\n"
+       ]
+      }
+     ],
+     "prompt_number": 27
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "!rm -r test"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "rm: test: No such file or directory\r\n"
+       ]
+      }
+     ],
+     "prompt_number": 32
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File 003-some-awesome-tools.ipynb

-{
- "metadata": {
-  "name": "003-some-awesome-tools"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "bpython\n",
-      "-------\n",
-      "\n",
-      "A Fancy Interface to the Python Interpreter\n",
-      "\n",
-      "http://pypi.python.org/pypi/bpython"
-     ]
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "ipython\n",
-      "-------\n",
-      "IPython: Productive Interactive Computing\n",
-      "\n",
-      "http://pypi.python.org/pypi/ipython"
-     ]
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "virtualenv\n",
-      "----------\n",
-      "\n",
-      "Out of the mind of Ian Bicking https://plus.google.com/+IanBicking\n",
-      "\n",
-      "http://pypi.python.org/pypi/virtualenv"
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!virtualenv test"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "New python executable in test/bin/python\r\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Installing setuptools..."
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "....."
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "....done.\r\n",
-        "Installing pip..."
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "."
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "...."
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        ".......done.\r\n"
-       ]
-      }
-     ],
-     "prompt_number": 29
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "#source test/bin/activate"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!venv/bin/pip install html"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!ls"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!ls test"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!which pip"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!python -c \"import html;print html\""
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!pip freeze"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!pip freeze > req.txt"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!pip install -r req.txt"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Requirement already satisfied (use --upgrade to upgrade): Pygments==1.5 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 1))\r\n",
-        "Requirement already satisfied (use --upgrade to upgrade): bpython==0.11 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 2))\r\n",
-        "Requirement already satisfied (use --upgrade to upgrade): html==1.16 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 3))\r\n",
-        "Requirement already satisfied (use --upgrade to upgrade): ipython==0.13 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 4))\r\n",
-        "Requirement already satisfied (use --upgrade to upgrade): pyzmq==2.2.0.1 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 5))\r\n",
-        "Requirement already satisfied (use --upgrade to upgrade): tornado==2.4 in ./venv/lib/python2.7/site-packages (from -r req.txt (line 6))\r\n",
-        "Requirement already satisfied (use --upgrade to upgrade): wsgiref==0.1.2 in /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 (from -r req.txt (line 7))\r\n",
-        "Cleaning up...\r\n"
-       ]
-      }
-     ],
-     "prompt_number": 27
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "!rm -r test"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "rm: test: No such file or directory\r\n"
-       ]
-      }
-     ],
-     "prompt_number": 32
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}

File 004 - beautiful.ipynb

+{
+ "metadata": {
+  "name": "004-beautiful"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "Beautiful is better than ugly.\n",
+      "===============================\n",
+      "\n",
+      "![beautifil](http://www.tutztutz.com/wp-content/uploads/2011/10/most-beautiful-girls24.jpg)\n",
+      "![ugly](http://cdn.ebaumsworld.com/picture/mrhahn530/FuglyChicks.png)"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File 004-beautiful.ipynb

-{
- "metadata": {
-  "name": "004-beautiful"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "Beautiful is better than ugly.\n",
-      "===============================\n",
-      "\n",
-      "![beautifil](http://www.tutztutz.com/wp-content/uploads/2011/10/most-beautiful-girls24.jpg)\n",
-      "![ugly](http://cdn.ebaumsworld.com/picture/mrhahn530/FuglyChicks.png)"
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}

File 005 - Simple.ipynb

-{
- "metadata": {
-  "name": "005 - Simple"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "heading",
-     "level": 1,
-     "metadata": {},
-     "source": [
-      "Simple is better than complex.\n",
-      "Complex is better than complicated."
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def parse_input(rawinput):\n",
-      "        if rawinput.startswith(\"//\"):\n",
-      "                delimiter_text,numbers= rawinput.split(\"\\n\",1)\n",
-      "                return delimiter_text[2:3],numbers\n",
-      "        else:\n",
-      "                return \",\",rawinput\n",
-      "delimiter,numbers=parse_input(\"//;\\n1;2\")\n",
-      "print delimiter\n",
-      "print numbers"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        ";\n",
-        "1;2\n"
-       ]
-      }
-     ],
-     "prompt_number": 3
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import re"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "![regexp](http://cdn.memegenerator.net/instances/250x250/23687441.jpg)"
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    }
-   ],
-   "metadata": {}
-  }
- ]
+{
+ "metadata": {
+  "name": "005 - Simple"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "heading",
+     "level": 1,
+     "metadata": {},
+     "source": [
+      "Simple is better than complex.\n",
+      "Complex is better than complicated."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def parse_input(rawinput):\n",
+      "        if rawinput.startswith(\"//\"):\n",
+      "                delimiter_text,numbers= rawinput.split(\"-\",1)\n",
+      "                return delimiter_text[2:3],numbers\n",
+      "        else:\n",
+      "                return \",\",rawinput\n",
+      "delimiter,numbers=parse_input(\"//;-1;2\")\n",
+      "print delimiter\n",
+      "print numbers"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        ";\n",
+        "1;2\n"
+       ]
+      }
+     ],
+     "prompt_number": 1
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "import re"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "![regexp](http://cdn.memegenerator.net/instances/250x250/23687441.jpg)"
+     ]
+    }
+   ],
+   "metadata": {}
+  }
+ ]
 }

File 006 - Flat is better than Nested.ipynb

+{
+ "metadata": {
+  "name": "006 - Flat is better than Nested"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "heading",
+     "level": 1,
+     "metadata": {},
+     "source": [
+      "Flat is better than nested. Sparse is better than dense. Readability counts."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "choices = [(field.name, field.verbose_name) for field in obj._meta.fields\n",
+      "                    if field.attname.startswith('only') and field.attname not in exclude]"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "        choices = []\n",
+      "        for field in Promotion._meta.fields:\n",
+      "            if field.attname.startswith('only') and field.attname not in exclude:\n",
+      "                choices.append((field.name, field.verbose_name))\n",
+      "                if obj:\n",
+      "                    if getattr(obj,field.name):\n",
+      "                        initial.append(field.name)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File 006 - Flat.ipynb

-{
- "metadata": {
-  "name": "006 - Flat"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "heading",
-     "level": 1,
-     "metadata": {},
-     "source": [
-      "Flat is better than nested. Sparse is better than dense. Readability counts."
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "choices = [(field.name, field.verbose_name) for field in obj._meta.fields\n",
-      "                    if field.attname.startswith('only') and field.attname not in exclude]\n",
-      "\n",
-      "        choices = []\n",
-      "        for field in Promotion._meta.fields:\n",
-      "            if field.attname.startswith('only') and field.attname not in exclude:\n",
-      "                choices.append((field.name, field.verbose_name))\n",
-      "                if obj:\n",
-      "                    if getattr(obj,field.name):\n",
-      "                        initial.append(field.name)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "ename": "NameError",
-       "evalue": "name 'obj' is not defined",
-       "output_type": "pyerr",
-       "traceback": [
-        "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
-        "\u001b[0;32m<ipython-input-2-d45db88b61b4>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m choices = [(field.name, field.verbose_name) for field in obj._meta.fields\n\u001b[0m\u001b[1;32m      2\u001b[0m                     if field.attname.startswith('only') and field.attname not in exclude]\n",
-        "\u001b[0;31mNameError\u001b[0m: name 'obj' is not defined"
-       ]
-      }
-     ],
-     "prompt_number": 2
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}

File 008 - Although practicality beats purity..ipynb

-{
- "metadata": {
-  "name": "008 - Although practicality beats purity."
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "heading",
-     "level": 1,
-     "metadata": {},
-     "source": [
-      "Although practicality beats purity."
-     ]
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import random\n",
-      "#some voodoo to make Django work from the command line\n",
-      "all_reviews=MattressReview.objects.filter(status=2).filter(rating__lte=2.5).values_list('id',flat=True)\n",
-      "print \"\\n\".join([(\"http://stage.goodbed.com/admin/reviews/mattressreview/%i\"%i) for i in random.sample(all_reviews,int(len(all_reviews)*0.1))])"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "all_reviews = range(2*4*12*5)\n",
-      "print \"\\n\".join([(\"http://stage.goodbed.com/admin/reviews/mattressreview/%i\"%i) for i in random.sample(all_reviews,int(len(all_reviews)*0.1))])"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    }
-   ],
-   "metadata": {}
-  }
- ]
+{
+ "metadata": {
+  "name": "008 - Although practicality beats purity."
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "heading",
+     "level": 1,
+     "metadata": {},
+     "source": [
+      "Although practicality beats purity."
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "import random\n",
+      "#some voodoo to make Django work from the command line\n",
+      "all_reviews=MattressReview.objects.filter(status=2).filter(rating__lte=2.5).values_list('id',flat=True)\n",
+      "print \"\\n\".join([(\"http://stage.somedjangosite.com/admin/reviews/mattressreview/%i\"%i) for i in random.sample(all_reviews,int(len(all_reviews)*0.1))])"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "import random\n",
+      "all_reviews = range(2*4*12*5)\n",
+      "print \"\\n\".join([(\"http://stage.somedjangosite.com/admin/reviews/mattressreview/%i\"%i) for i in random.sample(all_reviews,int(len(all_reviews)*0.1))])"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/347\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/345\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/19\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/153\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/142\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/297\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/276\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/405\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/272\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/285\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/201\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/58\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/48\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/284\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/148\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/264\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/134\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/179\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/28\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/140\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/312\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/265\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/84\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/332\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/161\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/292\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/466\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/5\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/189\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/86\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/404\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/443\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/113\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/230\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/160\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/262\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/127\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/116\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/205\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/329\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/203\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/166\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/243\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/370\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/133\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/296\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/377\n",
+        "http://stage.somedjangosite.com/admin/reviews/mattressreview/18\n"
+       ]
+      }
+     ],
+     "prompt_number": 3
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    }
+   ],
+   "metadata": {}
+  }
+ ]
 }

File 010 - hard implementation.ipynb

+{
+ "metadata": {
+  "name": "010 - hard-implementation"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "If the implementation is hard to explain, it's a bad idea.\n",
+      "==========================================================\n",
+      "\n",
+      "![hard_cards](cards.jpg) \n",
+      "\n",
+      "If the implementation is easy to explain, it may be a good idea.\n",
+      "=================================================================\n",
+      "\n",
+      "![easy_cards](cards2.jpg)"
+     ]
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}

File 010 - hard-implementation.ipynb

-{
- "metadata": {
-  "name": "010 - hard-implementation"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "markdown",
-     "metadata": {},
-     "source": [
-      "If the implementation is hard to explain, it's a bad idea.\n",
-      "==========================================================\n",
-      "\n",
-      "![hard_cards](cards.jpg) \n",
-      "\n",
-      "If the implementation is easy to explain, it may be a good idea.\n",
-      "=================================================================\n",
-      "\n",
-      "![easy_cards](cards2.jpg)"
-     ]
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}