{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# This is an IPython notebook backed by a Ruby kernel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I am developing [IRuby](https://github.com/SciRuby/iruby) a kernel in Ruby that adheres to the [IPython](http://ipython.org/) messaging protocol. It integrates nicely with different Ruby gems as will be shown later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What does this give you?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives us a very fancy web notebook interface for Ruby. It's a very good tool for programming presentations. It's basically an in-browser REPL loop, with some extra goodies." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Usage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Install IRuby with:\n", "\n", "~~~\n", "gem install iruby\n", "~~~\n", "\n", "Start the IRuby notebook with:\n", "\n", "~~~\n", "iruby notebook\n", "~~~" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`$stdout` and `$stderr` are redirected to the notebook" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello, world!\n" ] } ], "source": [ "puts 'Hello, world!'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Error!\n" ] } ], "source": [ "$stderr.puts 'Error!'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The last computed result is returned." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.4142135623730951" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Math.sqrt(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This works even for images." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "image/svg+xml\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "" ], "text/plain": [ "#" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "File.open('logo/ruby.svg')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcMAAAAwCAYAAABt9xHdAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAA/RklEQVR42u2dd3xUZfb/3/feqZlUUiCEEHoHqQuICjZAYVEBda2LiAXWXde1rGV3basulv1i11UXlLUsigqoCIJSpAih10hNhySkTjLtlt8fd+Yyk0zCTACB/eXzeg3M3MwtzzP3Pp/nnOeczxE0TdM4jdBkGc3jAlFCrq7GfegA7oP7cecewpN7EHfeYeTKKjRFRVM0VBW8kkiVJiOktiHlgpFkjZtAar/zEETxdF5qC1rQgha04P9TCKecDFUVT1E+tZs34Nq6AbkwD626AlOMA1uv/pj7DsJbXYPr5z249u/DtT8Hb0E+ituLT1VxKQpOxYdLUXFrAl7JjKVtO7pd9xsG3v07Ylu3OdN99v8dioqKWLp0KbIsA2C1WrniiitISUk505fWghacFSjauJHirVsRBAFNVYnPyKDzmDGIJtOZvrT/GVQcPMjhH35A0zTQNCyxsXQdNw5rfPwpOf4p+6U02UfNlmxKP5tL9Y/fIxfmIXjdSIAkCoiAadnX2PsMIH7afVgyMpErypEr0/BWVuDyHMOtePDKMj5EFEFEFUQUDaoKC1j3yj8p2rWDsS/MIjGrw8ldq6ZRXV2N1+s1tkmSRGJiIuIJrE+n04nL5YroPKIoYjKZsFqtWCyWEx77bMWePXuYMWOG0e6kpCR69uzZQoanAJqq4qmqQvVPNIJhdjgwx8Q0+7juyko0RTG2mex2LLGxZ7rJ/5PY8/nnrPrHPxABFeg0ahQdRo1qIcNTiKKNG1l0112o/ns6ITOTtkOGnF1kWLVlI4Wz36Ri2dcoZSVIooAkSYiihCAICAIgCCgC1G3PxvL9VyTd+1eUujpKNm2k8lgpcl0tGqAgogAKAjICiiCgiQKaKPLzD8sw/+Npfv3SK1hiHM2+Xp/Px2OPPcaqVauQJAlVVcnMzOS9996jdevWTe772muv8dFHHyFJ0gnPI4oiZrOZuLg4MjIy6N69O0OGDKF///7nFJEIgtDk5xY0H56aGr6ePp2S3bsRg+4pVVHIuugiRr/wAia7Perj1paUsHDaNKrz8xFEEVVR6H3ddVz02GPQ8vuderT06S8Cwf8y3JmnsN9Pigw9pSXkz32H/Dlv4S0sQJIETKJU72q1oMsXQBBx/rSaZEEjefIN5G3bRuX2HQiYEARBJ0JNJ0MVAU0QUAUBVRTQBJFdS76m54Rr6HXF+GZft6qq7N+/nx07dhjbqqqq8Pl8J9w3Pz8/ZL9o4XA46N27NzfddBM33XQTycnJJ/MTtOAchybLlO7ZQ/GOHQT7DTSg8tAhul55JV2vvDLq4ypeLyU7dlCel2dYK+2GDTvTzQ0L2eXip1deoeLgQQRRRFNVul91VbPafdaghRxPO051DzebDI+tW03Oc3+lfN1qUFVMoogKKFoo+emcGLrNV12N70gRjs49GPTCy1jbd2DXW2/gc9boVoegIQE2DUyCgAnwahoIAu7aWnZ/s4geo68ImUlHi/ouy0gsvXD7RYva2lo2bNhAdnY2ixcv5oUXXqBPnz4ndcwWnNsQJMmY8RrbALfTSfabb5J10UXNcm8KkoTI8dn02WrRK14vuz/7jLzsbET0USKubdtzmwxbcM4hajJUPR7yPplDzkt/x51fgCgJugtU09CMxznwPkCCcJwcNURRALMFzeNC8jjpNXECFncVOz/8hLqKSt21CkiCvreogaRomBUVs6rg3L0Hb3U1tqSkM91/iKJImzZtsFqtDf7m8/nweDzU1NTgdrtD+1FV+fbbb6msrGTu3Ll06dLlTDelBWcZRODg8uXsX7yYXtdee6Yv57QiQNwBMmyJHG/BL42oyNBXVcGeF57i8Jy3UVwuRJOApumEpQJoDcmvPiFqaJhtDpA9OJd+hu9IHsqxElJ85fQa2Jmftx2k5lgl+I8pE1g/1N9rgkBtWQl1FeVnBRnGxsby5ptvMnDgQFRVDfmboijU1tZy+PBhVq1axfz58zl48GDId9avX8/MmTN5/fXXsVgsZ7o5LTjL4HW52Pjmm3S87DLsZ8H93oIW/K8iYjJ0lxxhxxMPkf/Zh6CqCKLfBRq0Ptg0Iepf1lQVU7sOePbvpHbV1yh1dShuN4rbi8Un0yHNQb6mUl7hRNZUPYgGnQhlAWQE6mqceJzOM913gG4Zpqen065du0a/06dPH8aPH88tt9zCgw8+yJIlS0L+/vnnnzNlyhRGjBhxppvTgrMAotms5+dqGiKQ/+OP5Hz5Jf1vu+1MX1oLWvA/i4h8EXUFuWy6/y4OfzoXTVPRBJ0IjZef+zR0QlQ1TQ+C0fQ1xOD3KgK23v2o2ZpN9b5D1OQWUZN3lJrCUmoKS1FKS0mTZJKSYlElk2ER6kSok6GMHjp+tkCN8Fr69u3LK6+80mCNsLy8nG+//fZMN6MFZwE0IH3AAFJ69TKmkD6fj+y336b26NEzfXktaMH/LE5Ihu6SI2x+5F4KFi8EQY/uBELJkMYJUQ0iRFXVEBJbYc7IomJjNrVHy6ktraSuogZ3TR0elwePR0Z2uUiS60iLtyNYLPiEUHepinBSwTNnEt26dePWW29tsH3Tpk0R5y+ezdA0Da/Xi8fjiSg6twWh0IDErCwG3XGHcY+L6DlWu+bNO9OXB4Dq86F4PMgeD+op+I0Fk+kXT99RZRnF40E5RW2IBpqioHi9+rnD5JeerrbKHg+K18tpFh3T26iqKF6vfk6Px8gNPJvRpJvUW1nOlicepODbBcfdoqBnSGhB2RNhtodzmWqqSvLwkSheL86CQp1ENQ1dUEBD1QKfNVRNJlbw0dYWQ75kpcbtNdylsTYbZqvtTPdds3HBBReQkJBAVVWVsS0/Px+n04m9kZwyr9fL7t27cbvd/txNgU6dOkWdr1heXs7+/fuNB8JisdCzZ09stub3p6Io7N69m9WrV7Nt2zaKiopwu93Y7XYyMzMZPHgwo0aNomPHjhEdLzc3l+LiYl3NQ9Ow2Wz07NkzbJBSJNA0jX379lFeXm4cMy4ujh49ekQcRfxLQtM0el17LTs/+YS89ev11AhVZdM779D9qqtIaN/+F70eVZY59vPPFKxfz9Ht26nOz8dTU6OrgMTFEd+uHa379qXdsGEk9+iBZDaf8JiKx0Pp7t0oXi9epxNPTU1ING1Vfj5FGzc26QFK7NgRR1paRG2QPR7K9u6l8KefKN21i+rCQrw1NWiqiiUujoTMTNr070+7YcNo1a3bKZ9se51OirKzyfvxR47l5FBXVoaqKNgSEmjVpQuZI0aQef752Fu1OiXnq8rPp2jDBoo2baLy0CFcFRWosozZbie2TRtSevQgY9gw2vTrhyUu7pSc01NVxZFt2yj86SfK9u7FefQostuNaDJhb9WKpE6daDt4MBlDhhCXkXFK+zdS1B07RsWBA35u0p81UZJI7tatcTJUPB52vPAkh+d/FD6hI0pC1DQNyRFLyvhJHF3wKV6vD0QxhAA1Tbcoj5OjgtVbRYbNQb7dSrnbi6qqxMTHY4s7d5U0UlNTG5BhuIjTYJSWlnLzzTdz8OBBRFFEkiTefvttfvOb30R17hUrVnD77bfj8/nQNI3MzEwWL14cMVHVx8GDB5k1axbz58+nqKgo7HdEUaRLly5MmTKFO+6444QEvmLFCv7whz+g+GeTcXFxfPLJJ4wcObJZ11hcXMzNN9/Mzp07EUURRVGYOnUqr7zyivEdRVEMubkATCbTGSFLTdOIa9uWwXffTfGmTSg+HwJQsmMH2//zHy589NFf7FoKN2wg+623OLB0Kc7iYpRGyEkSBBxt2tDpsssYfPfdZA4f3mSunfPIET77zW+oLigAQUB2uYxhRgC2zpnDjo8+MgatBn0EXPnaa/SfMqXJ61d9Pg4uX86W994jd/VqaktKUBs5piSKxGVk0G38eIbMmEHayaY8+dt/6PvvWffPf5K3ahXumhrCnd1it5MxZAhD//AHuk+YgBjBhCIcKnNz2fLuu+z+7DMqDh7EF6SyFXJpgD0hgYyhQxk4bRrdfv1rTM2cEPvq6tj7xRdsee89ijZtwl1dTWO2p9liIblbN3pffz39b7uN+F+QFMv37WPJn/7EoR9+0CNZNA3RbGbgtGlc+OijjZPhwU/msG/uO6iaiigI0AjxhW11GELUVI3kMROwtu9IxdbN+FTdUjxuCYYjRf296KuircWGaHNQ4qzDYYvBbG+eTNXZgACZ1UdT7gtVVamrqzNcqaIoNhi8I4EsyzidTmPfurq6iNc8gyFJElu2bOHuu+9mw4YNTX5XVVV+/vlnHnvsMdauXcv//d//NZlKMmrUKNLT08nJyQH03Mz58+dz0UUXNct99sMPP7BlyxajzXa7nSuuuCLkN5g3bx4ff/yxkUeqaRpTpkzhmmuuifp8pwKBxPNtH3zAge+/N1IOts6ZQ6/Jk0nu1u20nl/xetn8zjusfu45qgoLjVzFwHUEIzCw1BQXs3XuXA5+9x3nP/ggQ2bMaHSA1TQNb20tnrq6BjmWgfPLjQzkAZzIvVl79Cirn3uOrbNn46quDtuGgO9K8Pd5VX4+G958k4PffcclzzxDr2uvbbbLVlNVtrz3Hssfe4yao0cbtDG43bLLxaFVqyjevJlhf/wjFzz8MGZHdCpbB5YuZfkjj1C0ebNx/MbaCuCqqmLf0qXk/fgj/W65hVGPP05senpU56zKz+eHv/6VXZ98gtfjCclr1QjNJRD8v+vRnTsp2bmTfd98w2XPPUdWMye50aBo40YW/+EP5K9fb1yb2WbjV7/7HRc8/DCWuLjwZHhk3Sq2/vNpfC4XYlDUaDhLUBAambwFR5mqGjHtMulwzwNUbtqI80hxWNLTqP9ZOB6s43aT4vPhkyHOZkc6CbfemYbT6cRZLxo2JiamSVfl2SSJJooiOTk5vPzyyyFEmJaWRrt27YiJicHpdFJQUEBZWZnxd03T+Oqrr3C73fz73/8mMzMz7PGzsrIYP368QYYA3377LYcPH47agnW73cyfPz9k4jBw4MAGkbu7d+9m0aJFIdvOP//8M9bHmqZhS0xk8IwZFKxbh89vOR3bt4+ts2dz6XPPnbZzqz4fa194gVXPPKOPAYFrAkxmM7Ft2hCTmgrobidncTGy12sMgjVHjrD8kUdwV1Rw0V/+ghTGvS0IAtbYWKwOB4Ig4HO5QnRUJYtF36+JCaLURCpSdX4+39xzDzkLF6JxnBQ0wBobiyMtDVtiIoIo4qqowFlcjDeImI/t38/X06cju92cF2aN/0QQBIE98+fz3UMPUVderudNm83EZ2QQ26YNgiThOnaM6oICPE6nQVwep5Mf//EPNE1j5N/+1mQbg5GzcCHfzJhBZWFhyO8lCgKO1FRi27RBsljwVFVRU1xsROOLgLeuzgjQGvfGGxETYlVeHl/deSf7lixpQLy2uDhi09Oxxscjezw4jxyhrrQ0hBzz1q3jyylTGP/223QePTrqPo4UB5Yu5dt776V0716DluxJSYx6/HEGz5hhuPUbkKH7WBnZM5+gKr8Qs0kInc00Ygk2Roj6dg3BbCJr2j3Edu/NrheeweWVESxWVE1DVWVURQNRRDOZUFQNWVH0oBtJQpEkfBrIqPhUDWSZuNh4hLNwrSdS7Ny5k4qKipBtmZmZxJ0i3/3phsfj4fnnn2fLli2ATl533nkn48aNo127dpjNZrxeL/n5+Xz55Ze8++67IS7UZcuW8fTTT/PKK680OgGYNGkSs2fPpry8HIADBw6wdOlS7rrrrqiudfv27axevTpk2zXXXENSvZy9cMpCZ4NiS5exY+l42WXsXbTIGOS2f/ghfW64gdb9+p2Wc+74+GNWP/ecQcCgJ8V3vvRS+t92G20HD8aWmAiCgKeqiqLsbLbOmcPB775DlWUEQPZ6Wfvii8RlZDD47rsbnMPRujVXzZ6N7PXiczr57sEHKdmzxxhi+t50E/2nTGlyzTCle/ew290VFSy5/372LlwYYqW06tSJ3tdfT+fRo0nq1Amzw4EAeGtrKduzh13z5rH7009x+9cv68rLWf7IIyRmZUVlvQjoFRZWPvWUToSCQPsRIxh0113GuqAginidTkp37WLr+++zZ/58fG63bj3JMuv/7/9I6dGDfjfffMLzFW/ezNI//YmqekTYum9fBt5+Ox0vuQRH69aIJhO+ujqO5eSw87//Zdd//4vbbzED7PnyS2JSU7ni5ZdPqIfrdTr5/tFHDSIMnDOmVSv63ngjvSZPplWXLpjsdlRZpqaoiANLl7Ll3/+mLCfHIM/yw4dZct99XDtvHqm9e5+S+zcATdPY+fHHfPfQQ1T7vRsaEJ+RweXPP0+fG24IecYbkOHuj2aTv2YVkiig+AlOChoTmia+cFcE6RMm0+G2u9E0leqqGiq8KhIyoqYh+F+aoqIqXhQjr1BAUVVkVTOiSBUEbLKKPTHxnCXD2tpa5s2b18DFOXTo0EaDZ8421NTUGEQ4cOBAXn/9dYaF0b1MSUlhwIABjBo1ihkzZrB3717jbx9++CGjR49m8uTJYc8xYMAALrzwQhYsWADortb58+dz0003ERuFNNmCBQtCrNP27dszbty4M92FEcPicDBkxgxyV640Bq6q/Hw2v/MOY2fNOuXPwbGff+bHZ5/FW1trDHKSxWK47uoLXcQkJ5PUqRNdxoxhzQsvsO7FF5E9HgTA53azZuZMMs8/vwFxm2w22g0fDuhkZE1ICLEaWnXqRNZFFzWrDRvfeIM9n30WMpHvcdVVXPL3v4ddB7QnJ5PQvj0dL72UDhdfzHcPPkjNkSN6XxcVsfrZZ2l93nn6BCACCEDl4cN6ewSB/lOmcOmzzxLbJrT8nDU+nri2bWl/4YW0HTSIH/72N8NK9NbVsWbmTNqPGEFiE94Qb20tq595hrIDB0KIsPuvf82Yl16iVdeuoW1t1Yr4du3IGjmSDqNGsfSBB6gpLjYmDdvnzqXDyJH0vemmJtu48+OP2TVvXggRJmVlMWbWLLpPmNBAQciRlkab/v3peuWVfPvHP3Jw+XKDEI/u3s3q555jwrvvNnvdsj4Ur5fsN99kxZNP4qqoMIgwtUcPxs6aRecxYxrsE3LFZbt2sPXdN/H5FBQNZCM/MDSNAiFMakWY7aqikThwMD0ffRqTw4EoiST37YeoAbIMqoKkqXqZJzS/HJNmdFLw/wFZNqsMFr9741yD1+vl1VdfbZBTmJaWxq9//eszfXlRIyMjg5dffjksEQbj4osv5qWXXgoRJa+rq+PNN98MCSIKhs1m49prr8UcFEjw008/kZ2dHfH1FRcX89VXX4Vsu/zyy+lab4A429Hh4ovpOm5ciFNm17x5FG7ceMrPtXX2bEr9M/cA+k+ZwsgnnmhS8cmakMBFf/0rA++4w9gmABWHD7P53XebtPACAgMh25oZ/n9k61ay33rLCJLRgK7jxjH+rbdOGBAjmkz0u/lmLvn737H4J6YicHjFCvY3Mw+4y5gxXD5zZgMiDIbJZuNXf/gDv/r97/X4DH/flezcyfYPP2zy+Ae/+459ixeHEGH74cO54tVXGxBh/bb2vfFGLn3mGSxBZcK8bjcb33iDumPHGt3XeeQI2W+9ZaROaejBOJe/+CI9rr66ybE5rU8frnztNdqcd55xP4vobt7clSub1cf14a2pYeWTT7LskUdCiLDd0KFc/cEHYYkwcB3+XtTY/tEcjh08hCIIyH4ylINIMRpCVFWNmI4d6f23mVhjrLhztuHdt4OE9BRMNrMu4a1pfn++5ie84Aeg4XuLomIGrOeILJWmaciyTGVlJWvWrGH69Ok89dRTeDyekO9NnTqVgQMHnunLjRp33nknF1xwQUTfHTt2LLfcckvItvXr17Nu3bpG97n00kvpHeQ6qa6u5vPPP494oPz+++/Zs2eP8dnhcDBp0qSwwUsmkwmz2YzVajXqT5rOklp0JquVwdOn40hONqwnZ0kJ2W+9hXKCIJNoUJWXx94vvzQ+a0Bqr16M+POfMUfgtTBZrZz/wAO07tcv5On9edEiPZz9F8CODz+kqqDAGAAT2rXj4qeeapKM6qPvTTfRddw4AvTt8wuJR9PXAZfhiIcfNtZXm4IoSQz9/e9JHzQoJOBlz/z5jYotKF4vOz/+GG9QfrItLo4LH3uMxKysyNp64430nDgxhJiKNm1qkpgOLlvG0e3bQyypvjffTM8Ig81SevRgxEMPYQ6yAt01Nez85JOTzkesLSlhyZ/+xJqZM0Pc/F2vuIJrPviAjCFDGt3XeNqP7cthz8IvUNADZRpDJC5TNI2Ythn0ffwfOGJEnKsWock+UFVs3kps8XHUlpWjCTrJyoKABEFC31Bfw18ArD4FEd0yPFvgcrl46aWXaNOmTYNB2ufzUVlZyaFDh9i3b1+DdUKAG264gfvvv/+szHdrCllZWVx//fURf18URW6++WY++ugjSkpKAN06XLZsGWPHjg27T5s2bbjqqqvYunWrsS3SQJpA4Exw4v/AgQMZ7nfN1cdNN93E8OHDQ9YQzibx9Mzhw+k5cSKb3nnH2JazYAHn3XorHS+55JSco3DDBioOHAh58vrecANJnTpFfIyErCz63XwzRx96CNCf4qq8PPLWrGnSUjkVqCkqYt/ixSHbek6cSHqUE02TzUafG24gZ9EiFL/Ltzg7m+r8fJI6d47oGBrQ8ZJL9BSTCBGbnk7fG2+kyO/9EICynByKt2yhS5hnpPLwYQrWrTN+LxXIGjUqqvtBsloZcPvt5CxahMfvpfF5PBxYsoQe11zTYN1cVRQOLFmCLMtGwExsWhr9p0yJymXfbdw42g0dysGVKw3vX96PP1JdUBAxkddHxcGDLL3/fmNCJ6ALvve98UYumzmTuLZtm9zfIMO8pd9Qm5+H4k+jaLIDmyBETdWwpabR+4HHcMiVVC1abBAhqgqyQkxCLM7ScvDXKpTRiTDQleEsTpOiYZFVBEnCehaRocfj4dNPP41qH0EQaNOmDVOnTuW+++47J2saDhs2jM4RDgwB9OrVi0GDBrE4aMDKzs7G6XQ2ug549dVX8/bbb3PkyBFAD6RZsmQJd4cJyghGuMCZiRMnktjIvdOpUyc6RTHo/9IQTSYG3XUX+776imr/Gk9dZSUb33iDdsOHR2S5nQiFGzbg8/mMQS4mOblRl1JT6Dx6NGtffBFnSYkeEKKqFKxfT//f/va01vkr2bGDyoMHDXIw2+10bmSidSKkDxhAXHo6FYcP65b40aMc27cvYjKURJEuY8dGHA0aQMdLL8XRujVOfyqGz+WicOPGsGRYumsXTv/aJuiRo12vvDLqYtDpAwfSul8/Dq9ebVh7xZs34y4vx15vbHKVlXFk27aQtcK2gwdHnZNpTUigyxVXcMhvgQpAdUEBpbt3N4sMj2zdyuI//IHc1asNr4DJYmHI737HyL/9LaL1XhFAcbuo+ulH4s0SFklCDXKNNvZ/fSm2gGvUntGOvvc/hr22hIpvPsWVl4u7sAhXUTGuoiN4S8uIcdjRRAFV8Eu3IaAI4BEEPIJe4V4VdIIMuCqsXgVB0wcFyzniJg3b4aLIhAkTWLhwIU8//fQ5SYSgW1nRuhHtdnsDd3Bubq5hKYZD7969uSRopquqKp9//nmD1JT6qB8406FDB648x+vjpQ8YQO8gkQUROPDttxxctuykjy17PJQFuZQBkjp2jHjwD0Zix4606to1ZE5dtncvvrq609o/R7ZtM1yGGhDbujVpzYxQjElLI65tW6MNsttN5aFDEe2rAbaEBFqfd170fdehA0mdOoW4Sst27w7rPizdvRs5aN3OlpgYtRUMeiBP20GDjM+BIC1nGPdsTVERNUGR4QLQdsiQZgW+tB0yBEtQLqXP7W5wDzYJvxLX4RUr+OKWW0KI0BoXx6gnnuDSZ5+NOPDJBOApzIfD+0mKsSF6ZKo8XnyKQnC8Y31jUQNMwvEOUVWNhC5d6TPjfsTcvRzb9KO+JqhrrqHpWfV650sigsmEoih6NXsCxKeTnyb69U/9NRJNPhWzrNOiYDJhTUiIuuNPJyRJauBO0DTNUFAJhqqqbNy4kSVLltC9e/dzJp0iGCaTqdlBKF27djUk0UCXhysrK2vUKjObzVx33XV8/vnnhkJPIJBm1KhRYfcJFzgzevTos8rt2RwIosjAadPY+8UXhsXirq0l+4036DByJNb4+GYfW66rCxnkNHRSa84xLXFxJHXqRO6aNfp1o6/luKuqok4kjxiaRsWBA6EF41SVnAULdLmxIPmt4H2Ovw0d4RSPB7c/+AL0SXtt0OTqRIhJTY06gR3A7HCQ1LEjeUFr6dWFhfhqaxv8FlX5+SHtdaSkNFvmLKVHD8MqFNCDUJzFxaT26hXyvZriYnxBkcaiKDZbACKhfXtiWrWi0n88DajKzY14f01V2TVvHpveftt4HgJu20ueeYb+t90WlayeCUA+VkqMJpNktyGIXgQBqtxevPUI0biIoPcSGoIGqUOH0/PmO/CsW0HN5nV+EvTfZP5Eer/OGoImYrJa8Na60ARQBcFvIQa/1xPuRVUzrEIAk92OqRlVv08XHA4Hjz32GN27dw9RclEUBafTyYEDB1izZg0bNmwwBvOioiIef/xxSkpKePbZZ3GcrgHiNMFqtUatiRpASkoKVqvV6Aufz2fkEjaGCy+8kAEDBhjBNoFAmpEjR4bNBawfOBMbG8vEiRPD5hKea0jt1Yvzbr2VlU89BfijHX/4gX1ff02fG25o9nG9tbV4/WH9ATjS0hCbEUQkCAKxrVuHHr+mBu9pLLum+HwhlkxgrXLxvfdGfpAwARDB/SFHaNlqgC0pKSRKM1KIkhSityqg503WD95RZRlX0HMTOKe1mZPrmNRUJLMZxW9pKj5f2IhSV3l5iPKPyWbDEUGAUDjYEhIa6KLWHTuGpignXH8MuK5XPvmkkZ8ZSO8Y+8ordJ8wIerrMQFoiowtNY14rxehpsYfriJQ5fHilWUaE/3SVA3BYqbLpBvofMXVlMx9l5ot2Xp1C4MEMUhQ88vMaKKI2WRGFdxo9cgvYCVqflepCQ1JPR4mbYqJOX2zy2bAbDYzevRoBgW5GeqjqqqKhQsX8vjjj3PI72pRFIU33niDtm3b8tBDD50VCd7RtLm5otl2uz0kWEhRlCY1WQFatWrFxIkTQyJPGwukCRc4M2jQoBOmf5xLOO+3v2XXvHmGoobX4yH7zTfpPHp0gzWeSKF4vcZAGIDlJCadltjYECJRvN5TGvlaH5qq4qutbbj9FFVo0CCqChMmq7XZ+qL11/xkt7vBuVVFQa733JhjYpotMG52OBBNJuMe0MIc37iWoEm/aDJFvUZp7Gs2Y7bbQ6zbwPEjCShUfT5DtzcAe3IyKT17Nut6TACiPQZruyy9an1xIVBjfKEa8MgysgZaYGVd0LVEHe0yOG/6fbTp0ZtD/3gK587tEJh9+9MmgmHcmIKAWTLr64ZBsmsBUlT9RCgKIIlaSJSO2eHA1IwZ1+nEiTRCExISuOWWW0hLS2Pq1KmGGossy7z00ksMHTq0UZdfC3SMHz+e1157jVy/G6UxRZr6gTOCIDBx4kQSzjLX+skgqVMnBtx+O8seeuh4AeB169jz+echeX4njVNZ6ucXmOzVz2U0Oxw40tI4FWdWFaXZE42TRiN912Dryfxev0BZp7CnPVGbmtgvplUr0vr0Ie/HH9FUFQEo2ryZRdOmMe7NNxu4eE8Ek+ZxY4qNw95RXwMSBEAoRECXJNJdpjohourWoGi30HH0lQz+0yNIVVXk/OUBavfngCiBf53MaGSwXz7oxGbJhCBKuvJMGCIEMAkamiigiSCqekfZ4mIxnUWWYTQYM2YMjz76KPfdd59huZSWljJz5kwGDBhwzgzYPp+vQa5kpHC5XCFrqZIkRaS8061bN8aMGcO//vUvoHFFmnCBM1dcccWZ7rJTjr433MDOjz6iaMsWQ8Jr09tv0238+GatVUkWS4PSS94wllak8PirMxgqNmZz1JGV0UAQhJAgDhXIGDKE8W+/rW8/ycFeA2xRrJ/Kbnez6yTWDzQyWa0N3NWiJDWwyLx1dc3O0/PV1YVYn4IkhY1QNtntiKJonEeVZXzNrMOq+nwh1UqCjx8JLHFxXPb882x+5x22/vvfuvQncHjVKhbefjvj3347KslC0b19I77dW4jp3A1bZgesmR2wp7cjLiGeRLuFRJuFBKsJC4DJTPrwEVw6620ue2MOHD3Cjj9Npypnj16BXlWNl6IoyIoSss14KQqCIiNKpuNrhf7gGZ0IBcyC7izVBEAUMIkiFgHsiQmn9aE63bj11lsZUy9cffny5XzxxRcn3DdckE608Pl8zapSEQyPx0NpaWmz9i0tLQ0hUovFQqsIariJosjkyZNDiK++Ik24wJkxY8ZEnQJyLiAuI4OBd95puJMEoHjLFnZ+/HGzjmeJjcUSGxsyYa0tKWlW8VlNVRskilvj4k5Z3bxwEM3mkOR2AZ2QHampJLRvT0JW1km9ErOymlTgCYYAuCoqmjWZUGWZ2qDo6oCodH2xc9Fkwh50PQLgqazEU13drP6rLSkJcZNLFktYSzimVasQ96/sdlPXzLHAXVmp18UMgj05OeJ8RU1VcaSlMeaf/2TQXXcZyjcCkL9+PQumTqVo06aIr0es+2kl1Z+/j9Vhx9Gnv06I7dpjb9OWuNhYkmwWWmdk0OfXVzHu1X8x6ZMv6XPTFJz7fmb9Q/dRXlCALEq6jmiAAJsgwcDfNJ8Pk0nyW4X+tUJBXyuUBA1RCKwTaggmEYtJxCKJxLRqhXCWKIM0B3Fxcfz+978PsQJ9Ph//+te/miQYQRBC/OiqqhrlnKJBaWnpSZOhLMvs27evWfvu27cvhMSTkpIiDsYZNmwYQ4cONT7XV6QJFzgzadKk/4nAmXDoNXkyGcOGGelHqqqy+b33qMrLi1qu0Gy3h9SWE4DKQ4eaNbh6a2qoOHjQ+KyhC3PbTqPnQxBFkjp2DLEyqgsK9HqJZwB1ZWXUFBdHvZ+3trZBCkdcu3aYwywNJWRlhbS3tqwsJCI4GhzLyTHuo0BqQjjVntj0dCwOhzFpUlWVYz//3KxzVuXl4Tp27HhkKnpqSaQIlN2yxsdz2cyZupydyWR4JIo2bWLh1KkUrF8f0fFEz+ED1O3ZiWvHJpIuuozksRNodemVJI+bSLtp99Drr89y0Tsfcemr79Dn6muwCiry0XyKvlpAeW4+5bJCuapRI4i4RREfArKmhZJfOIL0+TADmiDqi9N+UpQEDZMQ/LMAkoBFkjBLIvZWSeesSHcAI0eObJDztnHjRr4MksKqD7PZHOJO1DTthFGY9aFpGjt37jwlbdi0aVNIkEokcLlcbKo3U+vQoQOpEUajxcXFMXny5BByCwTSeL3eBoEzQ4YM4Ve/+tUpae/ZiJiUFAZPn47ZbzUI6Lln2z74IGqvgWS1klJvjaXi0KEQUosUFYcOUb5/f8hAndKzZ+PCAP58sWBozZiwtT7vPEx+r5EA1JWWRjwQnkoErLSjQcpJkaLy8GEqgoQDBPQI4nCBMSm9eoW0111ZSbG/lmE08FRXG6o34Jexy8wMS4ZxbduGpG9o6LUC5RMEwYVD4caNeINcwiabrdnBL9b4eC555hmG3XcfJrPZIMQj27ez8PbbyV216oTHEL3VNXg9MlVrV6JUV+Lo3ptWF19O66smkTZuAsnDz8dml5AP76Fu2zpc29bi/GkFJT/8gEkVERUN2eujzuOl2qdQpYFTlHCLErIo6kLfqoqiqqj+/wPvJUXWq9371wpFQcMshK4xahqoIpj81qEtKemcFOkO+eGsVqZNmxaihiLLMu+9916jCegOh6OBBZWTkxOVlVdYWMjatWtPSRt++uknDkSpN7lr1y4213tYhwwZElUVirFjx4bkCx44cIDly5ezc+fOBoEzkyZNIv4kcu/OBXQfP54OI0eGzOq3vf8+ZXv2RG0RZwwdijlocHUdO8aBJUuivqYDS5ZQ61efATBJki5L1kggiChJDdbE5GasSbcZMICErCzDalFUld2ffYa3nivul4Ciaez/9luUKNtxaNmykL6zxMSQ0ciELq13b+LS049baZrG/m++QY7SY1S0aVMDrdH0wYND3LABxCQn02bAAOOcAlCUnU3prl1RndNdWcn+xYtDxAUS2rcntZlkCHqFl4uffFLX0rVaDUIs2b2bRdOmcXD58ib3Fz3VNfh8KmV793F49r9wb1+He/s6XNvW4dqyBtemVdRtWo1r6xrc29bi3r6OirU/UHXgIIIoIiEgoiFqGigqiizj8spUKxqVSNSYLXjMVhTJhBb0MOgSazKiJKIK+kVb/OuE+t8DlYQ1PcVCErGYTFgTz131mWCMGDGiQWBHdnZ2o9ahw+FokJi+ceNGQ6YsEnz66achBXNPBnl5eXzyyScRf19VVebOnRviCo6NjeXyyy+P6rwdOnRg/PjxIcedN28ec+bMCQmc6dSpU6Oap+HgcrkoLy8PeZ0o5eNsgDUhgcHTp2P1B5UJQPn+/Wx57z2UKNf7MoYMoVWXLiED1M6PP45YeQWgMjeX7R9+GDrIdehAZr1iysEQzeaQhHINmrUOldC+PV2DnikRyF21il2ffXbqOjxCCOj5n/lRTD5riorY8fHHIX2X0rMnbQYMCPv9xKwsMkeMCBHZPrxyJYd++CHic8oeD1veew93kDvcYrPRZcyYsJMXQZLoMnYsJv+6YUA0fuv774cUZz4R9n39NYUbNoRU28i66CLi27U7qX432e1c9Je/cOFf/oIlKG2jbN8+Ft1xB/vradcGQ/RU1+DxKpRWucj973+pXPktrm1rcW9bqxPi9vW4d23Es2cznpzteA/soWLHHjw1tWgCCIiICMfLL2n+6hOqiizL1HllKhSNY4KJSrMNl8WGYjKDICAqMiZNv1yLqK8cHs8oPB59KgsgSQJWixlrUuJJddbZgnDWoaIoTVqHQ4YMCXEn5eTkRBR4A7Bq1SpmzZp10uuFwXj33XdZFYH7AeCbb77hP//5T8i24cOHh6wBRoqJEyeGFOddtWoV77//fsh3xowZE5XW6Ny5cxk9ejRjx45l7NixjBkzJmrN2TOFzqNH03n0aIJ/2ZyFC3H6NUwjRXy7dvScNMn4LAAlu3ax5oUXInKDyW43a59/npIdO0LO233ChCZr8klmMwnt24dsK929O+r1SkEQOO+3vyU+I8MYO3xuN6ueeopDJ7AKmoKrvJzKKJRRAn1XV1HBjzNnUhsBsauyzIZXXqF48+YQF2mvSZMaTWoXzWb63HCDMRECcFdXs/rZZ6nKy4voOnf85z/s/eKLEKWdjF/9ivYXXtjoPh0vuYT0AQNC7rftc+ey11979EQo3bOHNc8/j89/T2mAPT6e3tdff0q8fpLVyog//5lRTz6J1b++KaC777+66y5yGrlO0VtVQ7UPatw+aguOULJyFd79u/Ae/Bk57yByYT5KcTHy0RKUsmPIpeVU5JWiqgq6/aYZP1zgFYBRZVpV8ckKNV6ZUlnjiGCiRLRQrYLk9WIVVEMcONA5gX80QEUDUSfDc1mXtD7CWYebNm1qlOAuvPBC2gXNnGRZ5oUXXmBJE64sWZb56quvuPvuu8nLy0MIsz7TXBQWFnLvvfeyxi+71RiWLVvG/fffH7LG6XA4mD59erPcmAMHDuTCoIfV4/FQHTRwxsXFMWnSpKjaWVBQwKZNm9i4cSMbN24kOzvbyAc922GOiWHI9OnE+Avkgk5MzUly7//b35LWu3dIVOmW995jxeOPhyie1IerooKVTz7J5vfeM7ZpQHKXLgycNq3p30IQaNO/v1HLTwSObNnCln//W6+kEMX6Z/qAAfzqnnuMNbZATcWF06bpx4uQYFVZpvzAAbLfeotPJkxg6+zZUfelABxYupTvHnigycAWn8vF+lmz2PDaa8Zar4q+Btr3xhubPEfHSy6h2/jxBjEJQP6aNSy+554mA1sUn49tH3zA9489ZqzbaYA1JoYhv/sd9iYivB1paQyeMSNkrdpVWalXjPjiiyYtxCPbtvHNjBkc2b49hCt6TppEVhMEHC0ks5lh993HJc8+iy0+3iDEyvx8vp4xg91hJromd52bSp+CIisoqkDp3lwS7Hogi6aooCh64xQVVAWPV6PmWI1fKSZAVvWqBDeCgIapV1NwIeDCTKqsYRKgTgp1jwan7CtoqCJYLOazqnzTySJgHS5evJjKykq9rX7r8Oqrr6Z1PUmr7t27M2nSJGbNmmVsy83N5bbbbuPWW29l7NixtG3bFpPJhNPpJCcnh0WLFvHVV19RUVGBw+FgxIgRrFixAu9JqIHEx8fTvXt3srOz2bp1KzfccANTp05l/PjxZGZmGnJrubm5fPnll8yZM6eBO/fWW29ttnC23W7n2muvZfHixWGDeIYOHcqQJuqWhUO4wfpcUgXKGjmSbhMmsHXu3JNKMk/q3JmLHnuMr+66C3eNnmuseL2sfeklijZtov9vf0vbIUMM8WN3ZSVF2dlse/99Dv3wgzEQaujrXRc88khEyc/t/S6yqvx8o1rD8kcfZde8eaT26oW9VasG64o9r7mGtvV/Z0FgyIwZHMvJYeucOfomdEL8ZsYMdn78Md0nTKDtkCHEtmmjB/UIAorPh7emhpqiIkp37SJ/3ToK1q+nKjcXn6o26eatDw1o1akTgiRRtm8f2z74gGP79jFw2jQyR4zAkZKCIIp4qqsp2bmTbR98QM6CBfj85aI0wBYbywUPP0zCCSo4mGNiuPDRRzm6dSslOTnGOLx30SLKDx5kwG230eHii4lt3RrRbMZbW0vZ3r3s+u9/2TN/Pp4gCT4B6H/bbXS/6qoTtrH3tdeSu3IlW2bPNoyeisOHWXD77fS5/np6Tp5Mq86dMcfEoPh81BQWcmDpUrbOmUN5UJkwFUjv148Rf/5zg/SRk4VoMvGre+5BslpZHlTot7qoiG/uuQfF66XvTTcZ3zc5PT7qvDISGpogUF1eQ1X+URJjLWiKgqaoemSXqsup1dSBx+UBQZda09BQ/bQohinP29iczqZBqqLhQABVoEoUqBRCXXgBelQBGQ2rzYop7n8rICJgHX4clB+2efNmvvjiiwZlikRR5He/+x0rVqwIqfFXXFzMzJkzef3110lISMBsNuN0OqmqqjLIQhRFZsyYQZ8+ffghijWFcLBYLDz44IO88sor/Pjjj+Tn5/Pkk0/y6quv0rZtW+x2O3V1dRQVFYWt4XjllVfy17/+tdmSbqAX/u3Vqxfbtm1r0EcTJ048JwXQTwaSxcLgu+9m/7ffUltaelKE2Ou666guLGTlE0/gCYgoKwoHli8nd+VKHGlpenCFIOAqL6e2pMSobwf6c2u22bjg4YfpV6+gc2NI6dGDAbfdxsqnnzaSp2WXi7x160JEq4OR2KFDQzJEjyy8/PnnEQSBbR98gKIo+vE8HvYvW8bBZcuwJiQQk5yM2eFAEAQUrxd3VRWeqio9AZ1Qb1c00bkBkfMBU6fy7b33UltWRv66dRRt2EBsejqO1FQEScJdUUF1UZFRhDa49ND5Dz5Ir8mTIzpf6379GDNrFl/ffTflublGfcCSXbtY+sADxCQn69qjFgue6mpqjx7FW++cAtD7uusY+be/YYrguTTHxHDJ00/jOnaMvQsXAsfzKze+9Rbb587F0bo1lthYFI+H2pISXBUVIUIMKpDStStjX36ZlO7do79RI4Agigy6805MFgvfPfQQtWVlxjrnt/fei+z16rUYBQFTeY3TH8asJ73LskpJcRX2tBjQNFS/vqim6hUkKmv0agwByzBAWUrgnRDQFg29OYKJ0a5Bqgp2UUQSRSRRIAYBq6BSovpQghymgfN4UbE4YpBOkfpM/Zs70pu9ufs1hoB1+M0331DlL66pKArvvvsuV199NW3qhTd36dKFWbNmMX369JCcOgCn0xm2tFFMTAwzZszgiSee4Ouvvw5ZN4zk+rWArqwfiqLQuXNnXn/9daZPn25EqAYCTxqDKIpcc801vPjii6Q3QyUlGOnp6Vx11VUNyDDawJmzAtrxNXIt6HO0yBg6lF6TJ7PhzTcbniKK44iSxLA//hF7UhKr/v53yv0VAUR092F1URHV9cr4BJY5NCCxXTsueOQRBk6b1kDVpjEIgsCw++7D63SyZfZs6vyTKOEE+zSGmNRUxr78Mqm9e/PTq68aa34BwvZUVeH2P28hxwz6P9BnjoQEEjIzm25Avd9QUxS6T5iAKssse/hhqouLURSFqoICKv25j/WXllTAnpDA+Q88wPn33x+VSHqXsWO5+v33WfbIIxSsWxdCOrXHjlEbJLodTIIBK3TA1Klc+Je/RCW6HZeRwbi33iK2TRu2/+c/eOrqjGN7a2vx1EvLCfxNRa+92PGii7jsuedoF2EBZD274DjrGMUfTgBBEOh/221IVitL/vQnavy1Ip3HjrHkvvtQPB4GTpuGSRGOzw0U9NqEFU4viTEmrJKAqvrJUNNQkHDW+tA0Fb2MhBbiLlXqdfJxUjz+f5wmkIKAVRQQRRGTKCD5X+1EE3ZNJF/24NHUkAKSblXFFHNqyFAQBBISEkhMTMRkMqGqKq1atYooFD02NtbYT9M04/3JYMSIEVxzzTUsWLAASZLQNI2CggKWLVvGzTff3OD7I0eO5JNPPuGFF15g8eLFHAujLg9gs9kYMGAAv//975k4cSJWqxWLxUJqaio+nw9N00hOTj6hKK7FYiElJcVI8k9KSkIURfr168dHH33Eyy+/zGeffUZBQUFYcjWZTHTr1o2pU6cyderUkOCXk8Hll1/OrFmzQtYLr7jiCjpEkbgbQExMDElJSUZfqKoakUzcSUPU04VikpIQJQlVlptdikmUJAbdeSe5K1boxWGD7mdVlqMS3hZNJgbcfjvpgwax6V//Yt8331BdUBC2LJmGXsw2PiODLmPGMOjuu0Pq40UKW2Iil/7jH3S/6ir2ff01xZs3U1NUhKe6GsXjCbm3NE07YQ09S1wcw++/n86jR7Nt7lz2ff01FYcO4XO5mpwcmMxmXfC5Rw+yRo6k8+jRjUZ0BmB2OIhJTEQ0mfTfMCEBQZI479ZbSezQgXUvvUTuypW4ggg4ME4K6GkB7YYNY9i999LlyiubJbidNXIk1336KVvnzGHnf/9L+c8/4/N4wpbfE9HVZDLPP5+Bd95JlzFjmqXsFZeeztiXX6bT5Zez+d13KfzpJ9yVlTQWpmf25xL2vfFGzrvlFhz1loKagslqJSY1FU2W0TQNe3JyVP3U98YbkSwWlj/6KK7ycr2UnKqy9sUXARDm9e+h1eQexoSIpAkGsaXE2Ui2Srpl6CdEr2ihpMKNT/agoKBoKgoKKmqQZagb6UZtQkDx18FIQCQJEbMo6BahoJOgKfDZT4rlqsw+Tx11qh5hqgKtJInRg4eR+cFnSKlpEXdAOGiaRn5+Pk6n06itZ7FY6NChwwmJ7ciRI5QHOlLTkCSJ9u3bn/TAWVZWRklJiTHb1TSNpKSkJi0oj8fD1q1bWbt2LTt37jTUZeLi4ujcuTPDhg1j2LBhIfmJ1dXVFBYWGucwm81kZWVhaeJBqK2tJT8/37AQTSYT7du3x+YfjFRVZe/evaxdu5Zt27ZRVFSE2+3GbrfTvn17Bg8ezAUXXED7ehGDJ4vZs2dz5513GkLp8fHxLFiwoFmi56WlpZSWlob0f+vWrU978WVVUajKy9Nzw/yC9Nb4eF0Nphlrlpqq6utcgeMZf9CwJyU1S7dUUxTKDxygaONGju7YQVVenq6fqWmYY2KIz8wkrW9fIzWjOWWfwsHncuGprNQ1N/2Tt2DEpadHXLgV9NSFo9u2cXTHDioPHaK2tNTQD5WsVmJSUkho357krl1J7tGDxPbtI5aQqy0poa6szPgNLQ4H8ZmZxoTEV1dH8ebN5K9dS9nevbgrKtBUFUtsLMndutFu+HDaDR16ymq11hQVUbxpE0e2bqXi4EHclZVoqopkNhObnk5Kjx60HTKEtD59wqrbNAdep5OSHTsoys6mbO9enEePovp8CP4JX6vOnWkzYADpgwY1KPEVCTzV1dQUFhreE8lsJiErK2oSr8zN1SucBJ4PVUWyWhGWTJ6gFSxbgiRICEEV7K1mE22sEoJ/rVDTwC3ZqKqpQ9Fkgwh1MtQMjVENEQKqMuiaoxYEkhCJEwKEF2oRSkLwZ/19hSKzq66GSkUGNByCwPiLL6fD7E8R/j9bD4oEgWLCAYI+kxJkiqKgqiqiKEZUiqU5cLlcXHvttXz99dfGttGjRzN//vyokvhbED00VT3unhKEc1YE44y1Q9OOK+yI4ukP1Ao+3y/YzuD+FUTxF6lccjIwpV80iqIV36Mqemdp/jU/l6pS5RWwyYpuGYoSHpOKpqnUW+EIWRNUDcepgIBAPCJJgogtYPkJxy3A+hZhMCm2NduINZvY4qziqNeDV1XxxscjNLNG2P86BEE4aXftqYIkSaeNBAPYvHlziJpOOCHvFpwenKvkd9a0QxB+WUnJX/p8gdOeY/eJmDnmSuI6dtRl0iQBRRRRJAGfKFCNgMuj4HL58CgCPjmwXqAZ7lQtjPdd1TRMgkiKIJEqStj9uqIWScJiErGaRKwmCYtJwiKJWCVJfwUJcpslkdZ2GyNSU2nvcCBr4HY44CwZ8Ftw5qCqKh999FFIpGqPHj3OvcCZFrSgBWcNxMRu3el5x3QEuw1FEFAk0f8SqJMEXAh4vQqKIKEqikGDwUQYHDCDKCKazCBJVEsCRySNQkGhEIVCTaZYlTmqypSqPspVmWpNoVZTcKPi87tbEQUEk4hmlkiMsXFB2zZ0jo/FZbWB6dwW6W7ByWPNmjV8Vk9i65prriHzRBF/LWhBC1rQCEwA3W68lbK9e9j18VwUVQFJQhN0GTR3jIUYjwKSiOb1GuLZIXQoCHr1CVHyB9DoeYE+/ME3aEYY7HFL0u9IFfRINJPJhMVsxmKxYLOYibGYccTGEpuURFxiEgMGDsHyq/OJvBZyC/7XIMsy27Zt45FHHgmRrOvYsSM3BSXPtqAFLWhBtDABmBwOhj3xd+wZGez46H1qjhSjaCoaArUWEbvDhqoo+kuTUTQFRVCRBVBEAVWQQJQQRBHRZEI0WxDNJkSTCZPVisnhwBwfj9keg9lqwRIbhzUpCVtKGuaYGCw2G5a4eKytkrG0SsZktWCyWDHZ7Zhj4zDZY5BMJiTzuVvUtwXRY+fOnXz44YfIsoyiKBQUFLBu3ToKgmrUCYLA7bffTs+TULtvQQta0AJBC03e4VjOHnJX/cDRrZupKTmCXOsk1ikjVDsRYmOQkuLBZkOw2TDHx2NPScWWkoLJasNst2GJS8CWkowlIRHJbEYyWzDH2DHFxunhq4KIIIr6gu5ZHl3UgjOLzz//nGuvvbZJcfGxY8cyd+7ciAsEt6AFLWhBOIRGowgCyT16kdyjF5qiILtdKC43ituF5k96NzliEc0mv+CzCOdYxFALzh2Ifvd5OB1VSZK47LLLmDVrVgsRtqAFLThpNBqaKUgSZkcsZkdLqHoLzh7ExMTQs2dPJk+ezJQpUxrI1bWgBS1oQXPw/wCGGk94+X7FLAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMy0xMC0wMlQwNTo0NTo0MiswMjowMFPFMCcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTMtMTAtMDJUMDU6NDU6NDIrMDI6MDAimIibAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==", "text/plain": [ "#" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "File.open('logo/iruby.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Display" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "IRuby provides a method to display objects `IRuby.display` and methods to create $\\LaTeX$ and HTML representations." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "Hello, world!" ], "text/plain": [ "\"Hello, world!\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IRuby.display 'Hello, world!', mime: 'text/html'" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "\"\"" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IRuby.html ''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\LaTeX$ is rendered using MathJax." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "\\begin{eqnarray}\n", "\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n", "\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{B}} & = 0 \n", "\\end{eqnarray}\n" ], "text/plain": [ "\"\\\\begin{eqnarray}\\n\\\\nabla \\\\times \\\\vec{\\\\mathbf{B}} -\\\\, \\\\frac1c\\\\, \\\\frac{\\\\partial\\\\vec{\\\\mathbf{E}}}{\\\\partial t} & = \\\\frac{4\\\\pi}{c}\\\\vec{\\\\mathbf{j}} \\\\\\\\\\n\\\\nabla \\\\cdot \\\\vec{\\\\mathbf{E}} & = 4 \\\\pi \\\\rho \\\\\\\\\\n\\\\nabla \\\\times \\\\vec{\\\\mathbf{E}}\\\\, +\\\\, \\\\frac1c\\\\, \\\\frac{\\\\partial\\\\vec{\\\\mathbf{B}}}{\\\\partial t} & = \\\\vec{\\\\mathbf{0}} \\\\\\\\\\n\\\\nabla \\\\cdot \\\\vec{\\\\mathbf{B}} & = 0 \\n\\\\end{eqnarray}\\n\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$$" ], "text/plain": [ "\"$$F(k) = \\\\int_{-\\\\infty}^{\\\\infty} f(x) e^{2\\\\pi i k} dx$$\"" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IRuby.display IRuby.latex <<-'TEX'\n", "\\begin{eqnarray}\n", "\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n", "\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{B}} & = 0 \n", "\\end{eqnarray}\n", "TEX\n", "\n", "IRuby.math('F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Arrays and Hashes can be printed as HTML tables." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
1
2
3
" ], "text/plain": [ "\"
1
2
3
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abc
123
" ], "text/plain": [ "\"
abc
123
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
11121314
212223
not an Array
31323334
" ], "text/plain": [ "\"
11121314
212223
not an Array
31323334
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abc
112131
122232
132333
1434
" ], "text/plain": [ "\"
abc
112131
122232
132333
1434
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abce
123
not an Array
2345
" ], "text/plain": [ "\"
abce
123
not an Array
2345
\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
abcd012
123
2345
xy
abc
" ], "text/plain": [ "\"
abcd012
123
2345
xy
abc
\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IRuby.display IRuby.table([1,2,[],3])\n", "IRuby.display IRuby.table({a:1,b:2,c:3})\n", "IRuby.display IRuby.table([[11,12,13,14],[21,22,23],'not an Array',[31,32,33,34]])\n", "IRuby.display IRuby.table({a:[11,12,13,14],b:[21,22,23],c:[31,32,33,34]})\n", "IRuby.display IRuby.table([{a:1,b:2,c:3},'not an Array',{a:2,b:3,c:4,e:5}])\n", "IRuby.display IRuby.table([{a:1,b:2,c:3},{a:2,b:3,c:4,d:5},{0=>:x,1=>:y},[:a,:b,:c]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integration with Ruby gems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pry" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Pry](https://github.com/pry/pry) is an enhanced Ruby REPL. It will be automatically used by IRuby if available. You can use the code browsing utilities for example." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[1;34mArray.methods\u001b[0m\u001b[0m: [] try_convert\n", "\u001b[1m\u001b[1;34mArray#methods\u001b[0m\u001b[0m: \n", " & count include? reject! slice! \n", " * cycle index repeated_combination sort \n", " + delete insert repeated_permutation sort! \n", " - delete_at inspect replace sort_by! \n", " << delete_if join reverse take \n", " <=> drop keep_if reverse! take_while\n", " == drop_while last reverse_each to_a \n", " [] each length rindex to_ary \n", " []= each_index map rotate to_h \n", " assoc empty? map! rotate! to_s \n", " at eql? pack sample transpose \n", " bsearch fetch permutation select uniq \n", " clear fill pop select! uniq! \n", " collect find_index pretty_print shelljoin unshift \n", " collect! first pretty_print_cycle shift values_at \n", " combination flatten product shuffle zip \n", " compact flatten! push shuffle! | \n", " compact! frozen? rassoc size \n", " concat hash reject slice \n" ] } ], "source": [ "ls Array" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gnuplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Gnuplot::Plot` objects are automatically displayed inline as SVG." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 4.6 patchlevel 6 \n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\n", "\n", "\n", "\n", "\t\t\n", "\t\t-1\n", "\t\n", "\t\t\n", "\t\t-0.8\n", "\t\n", "\t\t\n", "\t\t-0.6\n", "\t\n", "\t\t\n", "\t\t-0.4\n", "\t\n", "\t\t\n", "\t\t-0.2\n", "\t\n", "\t\t\n", "\t\t 0\n", "\t\n", "\t\t\n", "\t\t 0.2\n", "\t\n", "\t\t\n", "\t\t 0.4\n", "\t\n", "\t\t\n", "\t\t 0.6\n", "\t\n", "\t\t\n", "\t\t 0.8\n", "\t\n", "\t\t\n", "\t\t 1\n", "\t\n", "\t\t\n", "\t\t-0.4\n", "\t\n", "\t\t\n", "\t\t-0.2\n", "\t\n", "\t\t\n", "\t\t 0\n", "\t\n", "\t\t\n", "\t\t 0.2\n", "\t\n", "\t\t\n", "\t\t 0.4\n", "\t\n", "\t\t\n", "\t\tx\n", "\t\n", "\t\n", "\t\tsin(1/x)\n", "\t\n", "\t\n", "\t\tExample plot\n", "\t\n", "\n", "\tgnuplot_plot_1\n", "\n", "\n", "\n", "\t\n", "\t\tsin(1/x)\n", "\t\n", "\t\n", "\t\n", "\n", "\n", "\n", "\t\n", "\n", "\n", "\n" ], "text/plain": [ "#]>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'gnuplot'\n", "\n", "Gnuplot::Plot.new do |plot| \n", " plot.xrange '[-0.5:0.5]'\n", " plot.title 'Example plot'\n", " plot.ylabel 'x'\n", " plot.xlabel 'sin(1/x)'\n", " plot.samples 10000\n", " plot.data << Gnuplot::DataSet.new('sin(1/x)') do |ds|\n", " ds.with = 'lines'\n", " ds.linewidth = 2\n", " end\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also create nice 3D plots" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "Gnuplot\n", "Produced by GNUPLOT 4.6 patchlevel 6 \n", "\n", "\n", "\n", "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t \n", "\t \n", "\t\n", "\n", "\n", "\n", "\n", "\t\n", "\t\tSpiral\n", "\t\n", "\n", "\tgnuplot_plot_1\n", "\n", "\t\t\t\t\n", "\t\n", "\tgnuplot_plot_2\n", "\n", "\n", "\t\n", "\n", "\t\t\n", "\t\t-8\n", "\t\n", "\t\t\n", "\t\t-6\n", "\t\n", "\t\t\n", "\t\t-4\n", "\t\n", "\t\t\n", "\t\t-2\n", "\t\n", "\t\t\n", "\t\t 0\n", "\t\n", "\t\t\n", "\t\t 2\n", "\t\n", "\t\t\n", "\t\t 4\n", "\t\n", "\t\t\n", "\t\t 6\n", "\t\n", "\t\t\n", "\t\t 8\n", "\t\n", "\t\t\n", "\t\t-8\n", "\t\n", "\t\t\n", "\t\t-6\n", "\t\n", "\t\t\n", "\t\t-4\n", "\t\n", "\t\t\n", "\t\t-2\n", "\t\n", "\t\t\n", "\t\t 0\n", "\t\n", "\t\t\n", "\t\t 2\n", "\t\n", "\t\t\n", "\t\t 4\n", "\t\n", "\t\t\n", "\t\t 6\n", "\t\n", "\t\t\n", "\t\t 8\n", "\t\n", "\t\t\n", "\t\t-8\n", "\t\n", "\t\t\n", "\t\t-6\n", "\t\n", "\t\t\n", "\t\t-4\n", "\t\n", "\t\t\n", "\t\t-2\n", "\t\n", "\t\t\n", "\t\t 0\n", "\t\n", "\t\t\n", "\t\t 2\n", "\t\n", "\t\t\n", "\t\t 4\n", "\t\n", "\t\t\n", "\t\t 6\n", "\t\n", "\t\t\n", "\t\t 8\n", "\t\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "#]>" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Gnuplot::SPlot.new do |plot|\n", " plot.title 'Spiral'\n", " plot.nokey\n", " plot.parametric\n", " plot.hidden3d\n", " plot.view '80,50'\n", " plot.isosamples '60,15'\n", " plot.xrange '[-8:8]'\n", " plot.yrange '[-8:8]'\n", " plot.zrange '[-8:8]'\n", " plot.urange '[-2*pi:2*pi]'\n", " plot.vrange '[-pi:pi]'\n", " plot.data << Gnuplot::DataSet.new('cos(u)*(cos(v)+3), sin(u)*(cos(v)+3), sin(v)+u') do |ds|\n", " ds.with = 'lines'\n", " end\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rubyvis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Rubyvis` objects are automatically displayed inline as SVG." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "#, #, #, @_type=3, @fixed=nil>, #, #, @_type=3, @fixed=nil>], @defs={}, @child_index=0, @index=nil, @index_defined=false, @scale=nil, @scene=nil, @parent=#, @root=#, @seen={:left=>#, @_type=3, @fixed=nil>, :bottom=>#, :height=>#, @_type=3, @fixed=nil>, :width=>#, :data=>#, :fill_style=>#, @_type=3, @fixed=nil>, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :right=>#, :top=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#}, @types={1=>[], 2=>[#, #, #, #, #, #, #, #, #, #, #, #], 3=>[#, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>]}, @_data=#, @_required=[#], @binds=##, @_type=3, @fixed=nil>, :bottom=>#, :height=>#, @_type=3, @fixed=nil>, :width=>#, :data=>#, :fill_style=>#, @_type=3, @fixed=nil>, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :right=>#, :top=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#}, data=#, required=[#], optional=[#, #, #, #, #, #, #, #, #, #, #, #, #, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>, #, @_type=3, @fixed=nil>]>>], @root=#, @_properties=[#, #], @defs={}, @child_index=-1, @index=nil, @index_defined=false, @scale=nil, @scene=), children: 0, data: >, @stack=[], @indexes=[], @seen={:height=>#, :width=>#, :overflow=>#, :fill_style=>#, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :data=>#, @_type=3, @fixed=nil>, :left=>#, :right=>#, :top=>#, :bottom=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#, :transform=>#, :canvas=>#}, @types={1=>[], 2=>[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #], 3=>[]}, @_data=#, @_type=3, @fixed=nil>, @_required=[#], @binds=##, :width=>#, :overflow=>#, :fill_style=>#, :line_width=>#, :events=>#, :antialias=>#, :visible=>#, :data=>#, @_type=3, @fixed=nil>, :left=>#, :right=>#, :top=>#, :bottom=>#, :cursor=>#, :title=>#, :reverse=>#, :id=>#, :stroke_style=>#, :transform=>#, :canvas=>#}, data=#, @_type=3, @fixed=nil>, required=[#], optional=[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]>, @_canvas={0=> ... }>" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'rubyvis'\n", " \n", "Rubyvis::Panel.new do \n", " width 150\n", " height 150\n", " bar do\n", " data [1, 1.2, 1.7, 1.5, 0.7, 0.3]\n", " width 20\n", " height {|d| d * 80}\n", " bottom(0)\n", " left {index * 25}\n", " end\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix & GSL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Matrix` and `GSL::Matrix` objects are automatically displayed as $\\LaTeX$." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\left(\\begin{array}{ccc}\n", " 1&2&3\\\\\n", " 1&2&3\\\\\n", "\\end{array}\\right)$$" ], "text/plain": [ "Matrix[[1, 2, 3], [1, 2, 3]]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'matrix'\n", "Matrix[[1,2,3],[1,2,3]]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Nyaplot" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "if(window['d3'] === undefined ||\n", " window['Nyaplot'] === undefined){\n", " var path = {\"d3\":\"http://d3js.org/d3.v3.min\",\"downloadable\":\"http://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\"};\n", "\n", "\n", "\n", " var shim = {\"d3\":{\"exports\":\"d3\"},\"downloadable\":{\"exports\":\"downloadable\"}};\n", "\n", " require.config({paths: path, shim:shim});\n", "\n", "\n", "require(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\n", "\n", "\tvar script = d3.select(\"head\")\n", "\t .append(\"script\")\n", "\t .attr(\"src\", \"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\")\n", "\t .attr(\"async\", true);\n", "\n", "\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\n", "\n", "\n", "\t var event = document.createEvent(\"HTMLEvents\");\n", "\t event.initEvent(\"load_nyaplot\",false,false);\n", "\t window.dispatchEvent(event);\n", "\t console.log('Finished loading Nyaplotjs');\n", "\n", "\t};\n", "\n", "\n", "});});\n", "}\n" ], "text/plain": [ "\"if(window['d3'] === undefined ||\\n window['Nyaplot'] === undefined){\\n var path = {\\\"d3\\\":\\\"http://d3js.org/d3.v3.min\\\",\\\"downloadable\\\":\\\"http://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\\\"};\\n\\n\\n\\n var shim = {\\\"d3\\\":{\\\"exports\\\":\\\"d3\\\"},\\\"downloadable\\\":{\\\"exports\\\":\\\"downloadable\\\"}};\\n\\n require.config({paths: path, shim:shim});\\n\\n\\nrequire(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\\n\\n\\tvar script = d3.select(\\\"head\\\")\\n\\t .append(\\\"script\\\")\\n\\t .attr(\\\"src\\\", \\\"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\\\")\\n\\t .attr(\\\"async\\\", true);\\n\\n\\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\\n\\n\\n\\t var event = document.createEvent(\\\"HTMLEvents\\\");\\n\\t event.initEvent(\\\"load_nyaplot\\\",false,false);\\n\\t window.dispatchEvent(event);\\n\\t console.log('Finished loading Nyaplotjs');\\n\\n\\t};\\n\\n\\n});});\\n}\\n\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n" ], "text/plain": [ "#[#[#:line, :options=>{:x=>\"data0\", :y=>\"data1\"}, :data=>\"7fbe3169-3c02-4fbb-bbb3-d481b2b734a4\"}, @xrange=[-0.33650797881023503, 1.3755593581827972], @yrange=[-0.21722891503668823, 0.9410707889917257]>], :options=>{:zoom=>true, :width=>700, :xrange=>[-0.33650797881023503, 1.3755593581827972], :yrange=>[-0.21722891503668823, 0.9410707889917257]}}>], :data=>{\"7fbe3169-3c02-4fbb-bbb3-d481b2b734a4\"=>#1.3755593581827972, :data1=>0.9410707889917257}, {:data0=>1.0926316961206979, :data1=>0.9203109817681301}, {:data0=>0.8708833866839569, :data1=>0.8966951136244035}, {:data0=>0.6906777425229607, :data1=>0.870363232919426}, {:data0=>0.5403023058681399, :data1=>0.8414709848078965}, {:data0=>0.4123601103868887, :data1=>0.8101885091467594}, {:data0=>0.30196479539722804, :data1=>0.7766992383060219}, {:data0=>0.20576832971122103, :data1=>0.7411986041670715}, {:data0=>0.12140510207160057, :data1=>0.7038926642774715}, {:data0=>0.047158134445135114, :data1=>0.6649966577360362}, {:data0=>-0.018249701438305645, :data1=>0.6247335019009406}, {:data0=>-0.07579087899736768, :data1=>0.5833322414426284}, {:data0=>-0.12622338594060414, :data1=>0.5410264615989971}, {:data0=>-0.17015240361237047, :data1=>0.4980526777302179}, {:data0=>-0.20807341827357134, :data1=>0.45464871341284063}, {:data0=>-0.24040290695231323, :data1=>0.4110520793566063}, {:data0=>-0.2675005078433391, :data1=>0.36749836537254077}, {:data0=>-0.28968522664340196, :data1=>0.3242196574681389}, {:data0=>-0.30724738147551905, :data1=>0.2814429918963125}, {:data0=>-0.3204574462187736, :data1=>0.23938885764158221}, {:data0=>-0.32957259744959516, :data1=>0.19826975839287045}, {:data0=>-0.3348415340803931, :data1=>0.1582888445310477}, {:data0=>-0.33650797881023503, :data1=>0.11963862505567989}, {:data0=>-0.33481316039641046, :data1=>0.08249976869447621}, {:data0=>-0.32999749886681506, :data1=>0.04704000268662195}, {:data0=>-0.3223016613784771, :data1=>0.013413116913964239}, {:data0=>-0.31196711743586014, :data1=>-0.018241919821119185}, {:data0=>-0.29923629391177703, :data1=>-0.04780172549795451}, {:data0=>-0.28435240958219415, :data1=>-0.07515914765495083}, {:data0=>-0.26755905351165576, :data1=>-0.10022377933989181}, {:data0=>-0.24909956009281825, :data1=>-0.12292234535968162}, {:data0=>-0.2292162247865964, :data1=>-0.14319895700229582}, {:data0=>-0.20814939787221448, :data1=>-0.16101523445861063}, {:data0=>-0.18613648825644571, :data1=>-0.17635029722666024}, {:data0=>-0.16341090521590257, :data1=>-0.18920062382698227}, {:data0=>-0.14020096256908965, :data1=>-0.19957978318644173}, {:data0=>-0.1167287669858806, :data1=>-0.2075180410508544}, {:data0=>-0.09320910978604059, :data1=>-0.21306184575568723}, {:data0=>-0.06984837954054984, :data1=>-0.21627319861125363}, {:data0=>-0.04684351098461771, :data1=>-0.21722891503668823}, {:data0=>-0.024380984116316277, :data1=>-0.21601978339857925}, {:data0=>-0.0026358858431683933, :data1=>-0.21274962926895766}, {:data0=>0.018228954883217817, :data1=>-0.20753429350746688}, {:data0=>0.03806374886174981, :data1=>-0.20050053318863942}, {:data0=>0.05673243709264494, :data1=>-0.19178485493262787}, {:data0=>0.0741132828848978, :data1=>-0.18153229065249676}, {:data0=>0.09009935986545672, :data1=>-0.1698951261000298}, {:data0=>0.10459893135455828, :data1=>-0.15703159287243457}, {:data0=>0.11753571776715413, :data1=>-0.14310453473259072}, {:data0=>0.12884904987113782, :data1=>-0.12828005919461727}, {:data0=>0.13849390687682997, :data1=>-0.1127261853343437}, {:data0=>0.14644083944546632, :data1=>-0.09661149870134066}, {:data0=>0.15267577878298577, :data1=>-0.08010382403685547}, {:data0=>0.15719973402441265, :data1=>-0.06336892624241378}, {:data0=>0.16002838110839424, :data1=>-0.04656924969982187}, {:data0=>0.1611915472856696, :data1=>-0.029862705618377262}, {:data0=>0.16073259629406741, :data1=>-0.013401516583468174}, {:data0=>0.15870772006085973, :data1=>0.0026688730927529386}, {:data0=>0.1551851435559679, :data1=>0.01821081325788855}, {:data0=>0.150244250112004, :data1=>0.03309538278273982}, {:data0=>0.14397463514523226, :data1=>0.04720323689596537}, {:data0=>0.13647509675154085, :data1=>0.06042536128605843}, {:data0=>0.12785257211026915, :data1=>0.07266372810861792}, {:data0=>0.1182210290036758, :data1=>0.08383184991133241}, {:data0=>0.10770032204904449, :data1=>0.0938552283883976}, {:data0=>0.09641502344264985, :data1=>0.10267169579237617}, {:data0=>0.084493238129481, :data1=>0.11023164775682615}, {:data0=>0.07206541333987868, :data1=>0.11649816720939184}, {:data0=>0.05926315237491899, :data1=>0.12144703997454372}, {:data0=>0.046218042378004844, :data1=>0.12506666356996485}, {:data0=>0.033060505602929786, :data1=>0.12735785158309013}, {:data0=>0.019918683381542335, :data1=>0.12833353686714286}, {:data0=>0.006917361610597611, :data1=>0.12801837761212895}, {:data0=>-0.005823053878420835, :data1=>0.12644827111895873}, {:data0=>-0.01818750422607518, :data1=>0.12366978082792314}, {:data0=>-0.03006717947355302, :data1=>0.1197394828203816}, {:data0=>-0.04136034890046627, :data1=>0.11472323861948523}, {:data0=>-0.05197311385188057, :data1=>0.10869540165738566}, {:data0=>-0.06182007787103266, :data1=>0.10173796524860587}, {:data0=>-0.0708249297276251, :data1=>0.09393966030864707}, {:data0=>-0.0789209357348841, :data1=>0.08539501138071212}, {:data0=>-0.0860513385744127, :data1=>0.07620335977956266}, {:data0=>-0.09216966068882364, :data1=>0.06646786282861088}, {:data0=>-0.09723991115068603, :data1=>0.05629447825369656}, {:data0=>-0.10123669576496355, :data1=>0.04579094280464132}, {:data0=>-0.10414523100341852, :data1=>0.035065754104326136}, {:data0=>-0.10596126319610455, :data1=>0.024227164576115612}, {:data0=>-0.10669089520995732, :data1=>0.01338219607603006}, {:data0=>-0.1063503236207668, :data1=>0.0026356835588697415}, {:data0=>-0.10496549012593491, :data1=>-0.007910644259135973}, {:data0=>-0.10257165164522208, :data1=>-0.018159039710725258}, {:data0=>-0.0992128742094141, :data1=>-0.02801655942380679}, {:data0=>-0.09494145633722063, :data1=>-0.03739582951550111}, {:data0=>-0.08981728814397692, :data1=>-0.04621574684599039}, {:data0=>-0.08390715290764647, :data1=>-0.05440211108893545}, {:data0=>-0.077283978234574, :data1=>-0.0618881830586998}, {:data0=>-0.07002604431639366, :data1=>-0.06861516545034606}, {:data0=>-0.062216157048059315, :data1=>-0.07453260288966702}, {:data0=>-0.05394079398338919, :data1=>-0.07959869895054264}, {:data0=>-0.04528923123771545, :data1=>-0.08378054856872968}, {:data0=>-0.036352659506778316, :data1=>-0.08705428505781135}, {:data0=>-0.027223297357137057, :data1=>-0.0894051417074938}, {:data0=>-0.017993509856977577, :data1=>-0.09082742870986009}, {:data0=>-0.00875494045880494, :data1=>-0.09132442690884195}, {:data0=>0.00040233618072979115, :data1=>-0.0909082005955187}, {:data0=>0.009390633050961633, :data1=>-0.08959933227063006}, {:data0=>0.018125434269529304, :data1=>-0.08742658295993966}, {:data0=>0.02652613657318512, :data1=>-0.0844264822922211}, {:data0=>0.034516742662093765, :data1=>-0.08064285312848135}, {:data0=>0.04202650076112915, :data1=>-0.07612627605986455}, {:data0=>0.048990485324823654, :data1=>-0.07093349956626938}, {:data0=>0.055350114414859694, :data1=>-0.06512680204436334}, {:data0=>0.06105359991447642, :data1=>-0.058773312269249416}, {:data0=>0.06605632740680879, :data1=>-0.05194429514597106}, {:data0=>0.07032116322770664, :data1=>-0.044714409833371556}, {:data0=>0.07381868690159607, :data1=>-0.03716094748220052}, {:data0=>0.07652734787496966, :data1=>-0.02936305592105364}, {:data0=>0.07843354616964264, :data1=>-0.02140095864762837}, {:data0=>0.07953163728055332, :data1=>-0.01335517543938208}, {:data0=>0.07982386233428648, :data1=>-0.005305751788098336}, {:data0=>0.0793202051984927, :data1=>0.0026684958111990766}, {:data0=>0.07803817888301255, :data1=>0.0104907119228279}, {:data0=>0.07600254419511286, :data1=>0.018086705086055477}, {:data0=>0.07324496419843975, :data1=>0.025385615437028313}, {:data0=>0.06980359857309315, :data1=>0.03232054129435496}, {:data0=>0.06572264247804, :data1=>0.038829119417736556}, {:data0=>0.061051814972762915, :data1=>0.04485405414448486}, {:data0=>0.05584580245892426, :data1=>0.050343591142600015}, {:data0=>0.05016366295175323, :data1=>0.05525193208600215}, {:data0=>0.04406819728221623, :data1=>0.05953958715197065}, {:data0=>0.03762529356273365, :data1=>0.06317366285709423}, {:data0=>0.030903251419758793, :data1=>0.06612808338017886}, {:data0=>0.023972092605005768, :data1=>0.06838374416261565}, {:data0=>0.01690286464315514, :data1=>0.06992859722265975}, {:data0=>0.00976694415770481, :data1=>0.07075766826391915}, {:data0=>0.0026353464390681007, :data1=>0.07087300629417864}, {:data0=>-0.004421952318594946, :data1=>0.07028356709270185}, {:data0=>-0.011336673881096757, :data1=>0.06900503246675675}, {:data0=>-0.018042871959286264, :data1=>0.06705956781592286}, {:data0=>-0.024477535640598114, :data1=>0.06447552107066883}, {:data0=>-0.03058115694604349, :data1=>0.06128706658496728}, {:data0=>-0.03629825759109449, :data1=>0.057533798036935736}, {:data0=>-0.04157787046991168, :data1=>0.05326027482265818}, {:data0=>-0.046373971860342325, :data1=>0.048515526812886144}, {:data0=>-0.05064586085725326, :data1=>0.043352522677143124}, {:data0=>-0.054358483078983375, :data1=>0.037827607262253024}, {:data0=>-0.057482696250727904, :data1=>0.03199991374038379}, {:data0=>-0.05999547584407059, :data1=>0.025930756413767905}, {:data0=>-0.061880059538127974, :data1=>0.019683010178294824}, {:data0=>-0.06312602985928249, :data1=>0.013320482705666796}, {:data0=>-0.06372933494768035, :data1=>0.006907285403813025}, {:data0=>-0.06369224798403453, :data1=>0.0005072091583424485}, {:data0=>-0.06302326638438575, :data1=>-0.005816889254913999}, {:data0=>-0.061736952428075136, :data1=>-0.012003684363154073}, {:data0=>-0.05985371752021243, :data1=>-0.01799395729156418}, {:data0=>-0.05739955279957443, :data1=>-0.02373114392447023}, {:data0=>-0.0544057092816207, :data1=>-0.02916185101224894}, {:data0=>-0.05090833116997993, :data1=>-0.0342363356617637}, {:data0=>-0.046948046374518056, :data1=>-0.03890894404560497}, {:data0=>-0.04256951863652972, :data1=>-0.04313850559812725}, {:data0=>-0.037820965978699696, :data1=>-0.04688867942977577}, {:data0=>-0.032753650466722364, :data1=>-0.05012825018082221}, {:data0=>-0.027421344488773317, :data1=>-0.05283137104651735}, {:data0=>-0.02187977892681658, :data1=>-0.05497775223280234}, {:data0=>-0.0161860787089191, :data1=>-0.056552793639973564}, {:data0=>-0.010398191293751106, :data1=>-0.05754766111588537}, {:data0=>-0.0045743136472014565, :data1=>-0.05795930616520904}, {:data0=>0.0012276767730416867, :data1=>-0.057790429541792664}, {:data0=>0.006950781605083513, :data1=>-0.05704938968222052}, {:data0=>0.012539426469225073, :data1=>-0.055750057455323625}, {:data0=>0.017939986074955876, :data1=>-0.05391161919989385}, {:data0=>0.02310128471180023, :data1=>-0.05155833049667755}, {:data0=>0.02797506757238205, :data1=>-0.04871922356660624}, {:data0=>0.0325164386816822, :data1=>-0.04542777160120098}, {:data0=>0.036684261569115, :data1=>-0.04172151370953812}, {:data0=>0.0404415192159634, :data1=>-0.03764164450582933}, {:data0=>0.043755630235819624, :data1=>-0.03323257265968643}, {:data0=>0.04659871869567585, :data1=>-0.02854145298506781}, {:data0=>0.04894783545569379, :data1=>-0.02361769685173388}, {:data0=>0.05078512939179751, :data1=>-0.01851246586322267}, {:data0=>0.05209796736231443, :data1=>-0.013278153856807948}, {:data0=>0.05287900228310939, :data1=>-0.007967862343005474}, {:data0=>0.05312618918017076, :data1=>-0.0026348745148069667}, {:data0=>0.05284274958960326, :data1=>0.002667867079725462}, {:data0=>0.05203708516771943, :data1=>0.007888274192786966}, {:data0=>0.05072264185378063, :data1=>0.012975612983401037}, {:data0=>0.04891772639046195, :data1=>0.017880985876036388}, {:data0=>0.04664527744804677, :data1=>0.022557790692896183}, {:data0=>0.043932594013683525, :data1=>0.026962152843180535}, {:data0=>0.040811024093022535, :data1=>0.03105332665228751}, {:data0=>0.037315617124769974, :data1=>0.03479406224837451}, {:data0=>0.03348474382606363, :data1=>0.03815093478944949}, {:data0=>0.029359687465375085, :data1=>0.041094633207429856}, {:data0=>0.024984210797547368, :data1=>0.04360020606239567}, {:data0=>0.020404103090668937, :data1=>0.04564726253638164}, {:data0=>0.015666711825269675, :data1=>0.04722012704715912}, {:data0=>0.010820463751744808, :data1=>0.04830794642410785}, {:data0=>0.005914380051350196, :data1=>0.04890474905595608}, {:data0=>0.000997590359395179, :data1=>0.04900945588934651}, {:data0=>-0.0038811496233444502, :data1=>0.04862584362335593}, {:data0=>-0.008673932282755113, :data1=>0.04776246090381608}, {:data0=>-0.013334159480651721, :data1=>0.046432498768217804}, {:data0=>-0.017816986819118464, :data1=>0.04465361702294375}, {:data0=>-0.02207974662277196, :data1=>0.042447728645566354}, {:data0=>-0.02608234572496626, :data1=>0.03984074469219235}, {:data0=>-0.029787634422735035, :data1=>0.03686228254981393}, {:data0=>-0.03316174327667017, :data1=>0.03354534070311127}, {:data0=>-0.03617438477270366, :data1=>0.02992594348123067}, {:data0=>-0.038799117229371204, :data1=>0.026042759510169673}, {:data0=>-0.041013568722853, :data1=>0.021936697818333212}, {:data0=>-0.04279961920898767, :data1=>0.017650485724764197}, {:data0=>-0.044143539442475815, :data1=>0.013228232780077905}, {:data0=>-0.045036085724462493, :data1=>0.008714985128229312}, {:data0=>-0.045472549946382716, :data1=>0.004156274712319874}, {:data0=>-0.04545276483611976, :data1=>-0.00040233224047484044}, {:data0=>-0.044981064747930094, :data1=>-0.004915683050865246}, {:data0=>-0.04406620276605837, :data1=>-0.00933947840571187}, {:data0=>-0.04272122530942836, :data1=>-0.013630699946685669}, {:data0=>-0.04096330582731426, :data1=>-0.01774802156792311}, {:data0=>-0.03881353955971064, :data1=>-0.021652200553802306}, {:data0=>-0.03629670169767516, :data1=>-0.025306444916354132}, {:data0=>-0.03344097161490544, :data1=>-0.02867675355358087}, {:data0=>-0.030277626149190013, :data1=>-0.031732226142292985}, {:data0=>-0.026840705188402772, :data1=>-0.034445339998927925}, {:data0=>-0.023166653057971658, :data1=>-0.036792191485878215}, {:data0=>-0.019293939413172343, :data1=>-0.03875269990561493}, {:data0=>-0.015262663508461274, :data1=>-0.04031077220666198}, {:data0=>-0.011114145846032285, :data1=>-0.04145442722043277}, {:data0=>-0.006890511295902791, :data1=>-0.0421758785521648}, {:data0=>-0.0026342678295470873, :data1=>-0.04247157565869777}, {:data0=>0.0016121149817726389, :data1=>-0.042342203056636545}, {:data0=>0.005806623584048197, :data1=>-0.041792638012537735}, {:data0=>0.009908110123974266, :data1=>-0.04083186746822876}, {:data0=>0.01387669025955295, :data1=>-0.039472865345377785}, {:data0=>0.017674125305710837, :data1=>-0.037732431750274624}, {:data0=>0.021264185105578027, :data1=>-0.03563099595891662}, {:data0=>0.024612988234515156, :data1=>-0.0331923854005747}, {:data0=>0.0276893163917037, :data1=>-0.03044356317192761}, {:data0=>0.030464900110500938, :data1=>-0.027414336900736233}, {:data0=>0.03291467322091013, :data1=>-0.02413704203530855}, {:data0=>0.0350169938223065, :data1=>-0.0206462028614046}, {:data0=>0.03675382986867314, :data1=>-0.016978174739803877}, {:data0=>0.03811090782855624, :data1=>-0.013170771213896933}, {:data0=>0.03907782325413718, :data1=>-0.009262879756116945}, {:data0=>0.03964811247453926, :data1=>-0.005294070003907522}, {:data0=>0.03981928501397987, :data1=>-0.0013041983797115533}, {:data0=>0.03959281672186988, :data1=>0.002666987004982671}, {:data0=>0.03897410398568952, :data1=>0.006580237293962302}, {:data0=>0.037972379774729205, :data1=>0.010397185881281794}, {:data0=>0.03660059262995629, :data1=>0.014080719765578557}, {:data0=>0.034875250068861906, :data1=>0.01759533571388555}, {:data0=>0.032816228210816666, :data1=>0.02090747786017707}, {:data0=>0.03044654974507149, :data1=>0.02398585357054699}, {:data0=>0.027792132657144943, :data1=>0.02680172464294637}, {:data0=>0.024881512397252385, :data1=>0.029329171172294777}, {:data0=>0.021745540414232174, :data1=>0.03154532569877911}, {:data0=>0.018417062187977583, :data1=>0.033430575565302885}, {:data0=>0.014930578070866141, :data1=>0.034968731736199875}, {:data0=>0.011321890392589724, :data1=>0.03614716267017898}, {:data0=>0.007627740391965162, :data1=>0.03695689219260131}, {:data0=>0.0038854386129272343, :data1=>0.03739266067209944}, {:data0=>0.00013249243950561038, :data1=>0.03745294917067479}, {:data0=>-0.003593765553950366, :data1=>0.03713996660117703}, {:data0=>-0.007256544795473344, :data1=>0.03645960028792292}, {:data0=>-0.010819955879034952, :data1=>0.03542133068164688}, {:data0=>-0.014249358231034535, :data1=>0.034038111325573356}, {:data0=>-0.017511692949085157, :data1=>0.032326215501862675}, {:data0=>-0.020575797651327634, :data1=>0.03030505130385748}, {:data0=>-0.02341270037308295, :data1=>0.02799694717647625}, {:data0=>-0.02599588977380896, :data1=>0.025426910242000306}, {:data0=>-0.02830155916866617, :data1=>0.02262235997885124}, {:data0=>-0.03030882217289834, :data1=>0.019612840044481626}, {:data0=>-0.03199989804087271, :data1=>0.016429711228204323}, {:data0=>-0.03336026509200453, :data1=>0.013105828683960596}, {:data0=>-0.034378780939771314, :data1=>0.009675206725276596}, {:data0=>-0.03504776857435075, :data1=>0.006172674563906241}, {:data0=>-0.03536306769076166, :data1=>0.0026335264391570876}, {:data0=>-0.03532405099937108, :data1=>-0.0009068303837699921}, {:data0=>-0.03493360560086018, :data1=>-0.0044132262710057215}, {:data0=>-0.034198079849846415, :data1=>-0.007851075094278138}, {:data0=>-0.03312719646701783, :data1=>-0.01118671195399736}, {:data0=>-0.031733932985612744, :data1=>-0.014387719485737433}, {:data0=>-0.030034370931253992, :data1=>-0.01742323961877401}, {:data0=>-0.028047515431544826, :data1=>-0.020264267819183737}, {:data0=>-0.025795087230651804, :data1=>-0.022883927041830017}, {:data0=>-0.023301289341733707, :data1=>-0.025257718833294515}, {:data0=>-0.020592550804145047, :data1=>-0.027363749269167716}, {:data0=>-0.017697250220711672, :data1=>-0.029182927671574793}, {:data0=>-0.014645421931173236, :data1=>-0.030699136333681806}, {:data0=>-0.011468447829522478, :data1=>-0.03189936977433896}, {:data0=>-0.008198737954147777, :data1=>-0.032773842354973534}, {:data0=>-0.004869403069413179, :data1=>-0.03331606340924418}, {:data0=>-0.0015139225149113592, :data1=>-0.03352287936063594}, {:data0=>0.0018341893762598733, :data1=>-0.03339448263089635}, {:data0=>0.005141714996257924, :data1=>-0.03293438746976108}, {:data0=>0.008376060064012527, :data1=>-0.03214937316059006}, {:data0=>0.01150557192653669, :data1=>-0.031049395374179493}, {:data0=>0.014499846479146612, :data1=>-0.029647466751065336}, {:data0=>0.017330020755353462, :data1=>-0.02795950808813281}, {:data0=>0.019969048396933854, :data1=>-0.026004171785481353}, {:data0=>0.022391955400787655, :data1=>-0.023802639471616913}, {:data0=>0.024576073749665524, :data1=>-0.02137839596669905}, {:data0=>0.026501250766482545, :data1=>-0.018756981962519233}, {:data0=>0.028150032284313543, :data1=>-0.01596572799212386}, {:data0=>0.02950781799369662, :data1=>-0.013033472429771188}, {:data0=>0.03056298761280836, :data1=>-0.009990266401743038}, {:data0=>0.03130699682154785, :data1=>-0.0068670685992216806}, {:data0=>0.03173444220461047, :data1=>-0.0036954330650818966}, {:data0=>0.03184309475821592, :data1=>-0.0005071930764307037}, {:data0=>0.03163390182720966, :data1=>0.0026658557362515354}, {:data0=>0.031110957650709332, :data1=>0.005792269904454481}, {:data0=>0.030281443002268746, :data1=>0.008841267185148008}, {:data0=>0.029155534711685242, :data1=>0.011783027158793329}, {:data0=>0.02774628614716924, :data1=>0.014588980450003647}, {:data0=>0.026069480015825115, :data1=>0.017232083788807546}, {:data0=>0.024143455104595275, :data1=>0.019687078286823194}, {:data0=>0.02198890883049289, :data1=>0.02193072848386525}, {:data0=>0.019628677695776576, :data1=>0.023942039924654417}, {:data0=>0.01708749794859543, :data1=>0.02570245325024324}, {:data0=>0.014391748930673886, :data1=>0.027196013032182005}, {:data0=>0.011569181749176496, :data1=>0.028409509836828082}, {:data0=>0.008648636038616203, :data1=>0.0293325942799122}, {:data0=>0.005659747679438863, :data1=>0.0299578621147613}, {:data0=>0.0026326504119060425, :data1=>0.03028090968859802}, {:data0=>-0.0004023256734320707, :data1=>0.03030035939718965}, {:data0=>-0.0034149557742803563, :data1=>0.0300178550658721}, {:data0=>-0.006375419166190321, :data1=>0.029438027481693087}, {:data0=>-0.009254592210849889, :data1=>0.028568430594195598}, {:data0=>-0.012024332724919531, :data1=>0.02741944918834523}, {:data0=>-0.014657752953146775, :data1=>0.02600417910952447}, {:data0=>-0.01712947851790203, :data1=>0.02433828138471185}, {:data0=>-0.019415890870804253, :data1=>0.02243981183341019}, {:data0=>-0.02149535094909383, :data1=>0.020329027994218495}, {:data0=>-0.023348401937990624, :data1=>0.018028175405971198}, {:data0=>-0.0249579492583739, :data1=>0.015561255474112929}, {:data0=>-0.026309416134484856, :data1=>0.012953777321672428}, {:data0=>-0.027390873346571296, :data1=>0.010232496168317552}, {:data0=>-0.02819314203592568, :data1=>0.007425140899236749}, {:data0=>-0.02870986870196237, :data1=>0.004560133576982309}, {:data0=>-0.028937571810108653, :data1=>0.0016663037131798347}, {:data0=>-0.028875659712563884, :data1=>-0.00122739984731709}, {:data0=>-0.0285264198686042, :data1=>-0.004092196569862213}, {:data0=>-0.027894979634270733, :data1=>-0.00689975856189637}, {:data0=>-0.026989239170200904, :data1=>-0.009622488802789509}, {:data0=>-0.025819777288325813, :data1=>-0.012233790557038677}, {:data0=>-0.024399731320525617, :data1=>-0.01470832535840793}, {:data0=>-0.022744652342581027, :data1=>-0.017022257079955777}, {:data0=>-0.02087233732248808, :data1=>-0.019153479756032085}, {:data0=>-0.01880263998117458, :data1=>-0.021081826995623377}, {:data0=>-0.016557262353808264, :data1=>-0.022789261020057433}, {:data0=>-0.014159529219350535, :data1=>-0.024260039570030013}, {:data0=>-0.011634147723132798, :data1=>-0.02548085915500335}, {:data0=>-0.009006954650588771, :data1=>-0.026440973359917096}, {:data0=>-0.0063046539186818054, :data1=>-0.027132285177392048}, {:data0=>-0.003554546934087895, :data1=>-0.027549412595642777}, {:data0=>-0.0007842585231598053, :data1=>-0.02768972694052086}, {:data0=>0.001978538832304169, :data1=>-0.027553363741812817}, {:data0=>0.004706399717572825, :data1=>-0.027143206166422993}, {:data0=>0.007372376754954244, :data1=>-0.026464841331694713}, {:data0=>0.00995028516209018, :data1=>-0.025526490078208463}, {:data0=>0.012414958317062501, :data1=>-0.02433891104034815}, {:data0=>0.014742491851470387, :data1=>-0.022915280102233277}, {:data0=>0.01691047391920453, :data1=>-0.021271046563872006}, {:data0=>0.01889819943773913, :data1=>-0.019423767565324504}, {:data0=>0.020686866268797368, :data1=>-0.017392922523156735}, {:data0=>0.022259751494437697, :data1=>-0.015199709521564617}, {:data0=>0.023602366150992652, :data1=>-0.012866825768499653}, {:data0=>0.024702587004747357, :data1=>-0.010418234373380655}, {:data0=>0.02555076418751097, :data1=>-0.007878919826203324}, {:data0=>0.026139803754937418, :data1=>-0.005274634656965418}, {:data0=>0.02646522448312654, :data1=>-0.0026316398284581713}, {:data0=>0.026525188477152763, :data1=>2.3558535967652164e-05}, {:data0=>0.026320505426154484, :data1=>0.002664473465417155}, {:data0=>0.025854610600886088, :data1=>0.005264899874381281}, {:data0=>0.025133516948610737, :data1=>0.007799173123937923}, {:data0=>0.024165741894353967, :data1=>0.01024242087423076}, {:data0=>0.022962209704366025, :data1=>0.012570805770641163}, {:data0=>0.021536130504758628, :data1=>0.01476175660932761}, {:data0=>0.01990285727340094, :data1=>0.01679418575377798}, {:data0=>0.01807972233412171, :data1=>0.018648690721346284}, {:data0=>0.016085855077060618, :data1=>0.020307738025866825}, {:data0=>0.013941982805803062, :data1=>0.021755827547608485}, {:data0=>0.011670216769065217, :data1=>0.022979635903133063}, {:data0=>0.009293825570720005, :data1=>0.02396813750298933}, {:data0=>0.006836998265632342, :data1=>0.02471270221241427}, {:data0=>0.004324599539094928, :data1=>0.025207168767024907}, {:data0=>0.0017819194338480426, :data1=>0.025447893339485144}, {:data0=>-0.0007655798698042863, :data1=>0.025433772901879793}, {:data0=>-0.003292517698692222, :data1=>0.025166243279545582}, {:data0=>-0.005773846442617254, :data1=>0.024649252042908975}, {:data0=>-0.008185098540854465, :data1=>0.023889206631990068}, {:data0=>-0.01050262647638368, :data1=>0.02289489835121626}, {:data0=>-0.01270383343610124, :data1=>0.02167740310767642}, {:data0=>-0.014767392399185942, :data1=>0.020249959991649205}, {:data0=>-0.016673451541311984, :data1=>0.018627829011978604}, {:data0=>-0.01840382398817506, :data1=>0.016828129498594552}, {:data0=>-0.01994216011628862, :data1=>0.014869660868283858}, {:data0=>-0.021274100780501223, :data1=>0.012772707615969535}, {:data0=>-0.0223874100443104, :data1=>0.010558830540700337}, {:data0=>-0.02327208619878958, :data1=>0.008250646341929136}, {:data0=>-0.023920450076668858, :data1=>0.005871597826320038}, {:data0=>-0.024327209897587257, :data1=>0.003445717047340738}, {:data0=>-0.024489502116455484, :data1=>0.000997383758567455}, {:data0=>-0.024406907986875066, :data1=>-0.0014489184035133976}, {:data0=>-0.024081445793262664, :data1=>-0.0038688455806101573}, {:data0=>-0.023517538946333426, :data1=>-0.006238434784265651}, {:data0=>-0.022721960374527773, :data1=>-0.008534340041677337}, {:data0=>-0.021703753876487566, :data1=>-0.010734061279675642}, {:data0=>-0.02047413332452915, :data1=>-0.012816163713779482}, {:data0=>-0.019046360824038884, :data1=>-0.014760485613872719}, {:data0=>-0.017435605136753983, :data1=>-0.01654833244321868}, {:data0=>-0.015658781865038867, :data1=>-0.018162655511919274}, {:data0=>-0.013734377067721707, :data1=>-0.01958821344801495}, {:data0=>-0.011682256134177147, :data1=>-0.02081171496752809}, {:data0=>-0.009523459880667825, :data1=>-0.021821941617041842}, {:data0=>-0.0072799899502204385, :data1=>-0.022609849366913477}, {:data0=>-0.004974585693445686, :data1=>-0.02316864814786924}, {:data0=>-0.002630494781863884, :data1=>-0.023493858646349293}, {:data0=>-0.0002712398568379915, :data1=>-0.02358334590233018}, {:data0=>0.002079616454262059, :data1=>-0.02343732948516604}, {:data0=>0.004398705817711398, :data1=>-0.02305837025595221}, {:data0=>0.006663085449758154, :data1=>-0.022451333956718736}, {:data0=>0.008850464071157128, :data1=>-0.021623332095121357}, {:data0=>0.010939420344461685, :data1=>-0.020583640815973234}, {:data0=>0.012909611663276858, :data1=>-0.019343598665776802}, {:data0=>0.014741971268020132, :data1=>-0.017916484361285023}, {:data0=>0.01641889178763814, :data1=>-0.016317375866064826}, {:data0=>0.017924393449864573, :data1=>-0.014562992258199833}, {:data0=>0.019244275362479905, :data1=>-0.012671520035945912}, {:data0=>0.020366248442991636, :data1=>-0.010662425654793454}, {:data0=>0.02128004876239727, :data1=>-0.008556256217621471}, {:data0=>0.021977530268301154, :data1=>-0.0063744303482657595}, {:data0=>0.022452736061605933, :data1=>-0.004139021366879999}, {:data0=>0.022701947617183058, :data1=>-0.001872534952166029}]>}, :extension=>[]}>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "require 'nyaplot'\n", "\n", "x = []; y = []; theta = 0.6; a=1\n", "while theta < 14*Math::PI do\n", " x.push(a*Math::cos(theta)/theta)\n", " y.push(a*Math::sin(theta)/theta)\n", " theta += 0.1\n", "end\n", "plot1 = Nyaplot::Plot.new\n", "plot1.add(:line, x, y)\n", "plot1.show" ] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.1.2", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": "rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.1.2" } }, "nbformat": 4, "nbformat_minor": 0 }