{"action":"created","comment":{"url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/comments/33862892","id":33862892,"diff_hunk":"@@ -0,0 +1,560 @@\n+:author: Mark Wickert\n+:email: mwickert@uccs.edu\n+:institution: University of Colorado Colorado Springs\n+\n+\n+----------------------------------------------------------------------------------\n+Signal Processing and Communications: Teaching and Research Using IPython Notebook\n+----------------------------------------------------------------------------------\n+\n+.. class:: abstract\n+\n+   This paper will take the audience through the story of how an electrical and computer\n+   engineering faculty member has come to embrace Python, in particular IPython Notebook\n+   (IPython kernel for Jupyter),\n+   as an analysis and simulation tool for both teaching and research in signal processing\n+   and communications. Legacy tools such as MATLAB are well established (entrenched) in\n+   this discipline, but engineers need to be aware of alternatives, especially in the case\n+   of Python where there is such a vibrant community of developers.\n+   In this paper case studies will also be used to describe domain\n+   specific code modules that are being developed to support both lecture and lab oriented\n+   courses going through the conversion from MATLAB to Python. These modules in particular\n+   augment ``scipy.signal`` in a very positive way and enable rapid prototyping of\n+   communications and signal processing algorithms. Both student and industry team\n+   members in subcontract work, have responded favorably to the use of Python as an\n+   engineering problem solving platform. In teaching, IPython notebooks are used to augment\n+   lecture material with live calculations and simulations. These same notebooks are then\n+   placed on the course Web Site so students can download and *tinker* on their own. This\n+   activity also encourages learning more about the language core and Numpy, relative to\n+   MATLAB. The students quickly mature and are able to turn in homework solutions and\n+   complete computer simulation projects, all in the notebook. Rendering notebooks to\n+   PDF via LaTeX is also quite popular. The next step is to get other signals and systems faculty\n+   involved.\n+\n+.. class:: keywords\n+\n+   numerical computing, signal processing, communications systems, system modeling\n+\n+Introduction\n+------------\n+\n+This journey into Python for electrical engineering problem solving began with\n+the writing of the book *Signals and Systems for Dummies* [Wic2013]_, published summer\n+2013. This book features the use of Python (``Pylab``) to\n+bring life to the mathematics behind signals and systems theory. Using Python in the Dummies book is done to make\n+it easy for all readers of the book to develop their signals and system problem solving skills, without additional\n+software tools investment. Additionally, the provided custom code module ``ssd.py`` [ssd]_, which is built on\n+top of  ``numpy``,  ``matplotlib``, and ``scipy.signal``, makes it easy to work and extend the examples found in\n+the book. Engineers love to visualize their work with plots of various types. All of the plots in the book are\n+created using Python, specifically ``matplotlib``.\n+\n+The next phase of the journey, focuses on the research and development\n+side of signals and systems work. During a recent sabbatical [#]_ Python and IPython notebook\n+(IPython kernel for Jupyter) served as the primary digital signal\n+processing modeling tools on three different projects. Initially it was not clear which tool would be best, but\n+following discussions with co-workers [#]_ Python seemed to be the right choice. Note, for the most part, the analysis\n+team was new to Python, all of us having spent many years using MATLAB/Octave [MATLAB]_/[Octave]_. A nice motivating\n+factor is that Python is already in the workflow in the real-time DSP platform used by the company.\n+\n+.. [#] Academic year 2013-2014 was spent working for a small engineering firm, Cosmic AES.\n+.. [#] Also holding the Ph.D. and/or MS in Electrical Engineering, with emphasis in communications and signal processing.\n+\n+The third and current phase of the Python\n+transformation began at the start of the 2014-2015 academic year. The move was made to push out Python to the\n+students, via the IPython Notebook, in five courses: digital signal processing, digital communications, analog\n+communications, statistical signal processing, and real-time signal processing. Four of the courses are traditional\n+lecture format, while the fifth is very hands-on lab oriented, involving embedded systems programming and hardware\n+interfacing. IPython Notebook works very well for writing lab reports, and easily allows theoretical and experimental\n+results to be integrated. A notebook interface is not a new concept in scientific computing tool sets [#]_. Both of\n+these tools are very powerful for specific problem classes.\n+\n+.. [#] See for example *Mathematica* [Mathematica]_ (commercial) and *wxMaxima* [Maxima]_ (open source).\n+\n+Getting other faculty on-board is the next step. I am optimistic and\n+look forward to this challenge as tutorial sessions are planned over summer 2015.\n+\n+The remainder of this paper is organized into the following sections: arriving at Python for communications and signal\n+processing modeling, describing IPython notebook usage, case studies, and conclusions.\n+\n+Arriving at Python for Communications and Signal Processing Modeling\n+--------------------------------------------------------------------\n+\n+About three years ago while working on a study contract for a small business, I started investigating the use of\n+open-source alternatives over MATLAB. I initially homed in on using Octave [Octave]_ for its syntax compatibility\n+with MATLAB. Later I started to explore Python and became fascinated by the ease of use offered by the IPython (QT)\n+console and the high quality of ``matplotlib`` 2D plots. The full power of Python\n+for engineering and scientific computing became evermore obvious as I learned more about the language and the\n+engineering problem capabilities offered by ``pylab``.\n+\n+When I took on the assignment of writing the *Signals and Systems for Dummies* book [Wic2013]_ Python seemed like a\n+good choice because of the relative ease with which anyone could obtain the tools and then get hands-on experience with\n+the numerical examples I was writing into the book. The power of ``numpy`` and algorithms available in ``scipy`` are\n+indeed wonderful, but I immediately recognized that enhancements to ``scipy.signal`` are needed to make signals\n+and systems tinkering user friendly. As examples were written for the book, I began to write support functions that\n+fill in some of the missing details not found in ``scipy``. This is the basis for the module ``ssd.py``.\n+At present writing additional support modules for signals and systems work (in particular communications and signal\n+processing) is ongoing.\n+\n+Modules Developed or Under Development\n+======================================\n+\n+As already briefly mentioned, the first code module I developed is ``ssd.py`` [#]_. This module contains 61 functions\n+supporting *signal* generation, manipulation, and display, and *system* generation and characterization. Some of\n+the functions implement subsystems such as a ten band audio equalization filter or the moel of an automobile cruise\n+control system. A pair of wrapper functions ``to_wav()`` and ``from_wav()`` make it easy for students to write and read 1D\n+``ndarrays`` from a wave file. Specialized plotting functions are present to make it easy to visualize both signals and\n+systems. The collection of functions provides general support for both continuous and discrete-time signals and systems, as\n+well as specific support for examples found in [Wic2013]_. Most all of functions are geared toward undergraduate education.\n+More modules have followed since then.\n+\n+.. [#] ``http://www.eas.uccs.edu/wickert/SSD/docs/python/``\n+\n+The second module developed, ``digitalcom.py``, focuses on the special needs of digital communications, both *modulation*\n+and *demodulation*. At present this module contains 32 functions. These functions are focused on waveform level simulation of\n+contemporary digital communication systems. When I say simulation I specifically mean *Monte Carlo* techniques which\n+involve the use of *random bit streams*,  noise, channel fading, and interference. Knowledge of\n+digital signal processing techniques plays a key role in implementation of these systems. The functions in this module\n+are a combination of communcation waveform generators and specialized signal processing building blocks, such as the\n+*upsampler* and *downsampler*, which allow the sampling rate of a signal to be raised or lowered, respectively.\n+More functions are under development for this module, particularly in the area of orthogonal frequency division\n+multiplexing (OFDM), the key modulation type found in the wireless telephony standard, long term evolution (LTE).\n+\n+A third module, ``fec_conv.py``, implements a rate one-half *convolutional encoding* and *decoding* class.\n+Arbitrary constraint length codes can be employed as well as *puncturing* and *depuncturing* patterns. For decoding the\n+Viterbi algorithm with soft decision metrics is used. The class contains seven methods that include two graphical\n+display functions, one of which shows the *survivor traceback paths* through the trellis back to the\n+decoder *decision depth*. This graphical display gives students insight into the operation of the Viterbi algorithm,\n+which at a high level is a *dynamic programming* algorithm. Besides the class ``fec_conv``, this module also contains\n+four functions for computing error probability bounds using\n+the *weight structure* of the code under both *hard* and *soft* branch metric distance calculations [Zie2015]_.\n+\n+Both the encoder and especially the Viterbi decoder, are numerically intensive. Speed enhancements, perhaps using\n+*Cython*, are on the list of things to do. An example of using the class ``fec_conv`` can be found in the Case\n+Studies section.\n+\n+A fourth module, ``synchronization.py``, was developed while teaching a *phase-locked loops* course, Summer 2014. This\n+module supplies eight simulation functions ranging from a basic phase-locked loop and both carrier and symbol synchronization\n+functions for digital communications waveforms. Synchronization is extremely important is all modern communications\n+communications schemes. This module was also utilized in an analog communications course taught Spring 2015.","path":"papers/mark_wickert/mark_wickert.rst","position":138,"original_position":138,"commit_id":"de29ba917b7374d34574aa8857f649272305940e","original_commit_id":"de29ba917b7374d34574aa8857f649272305940e","user":{"login":"dalippa","id":7816645,"avatar_url":"https://avatars.githubusercontent.com/u/7816645?v=3","gravatar_id":"","url":"https://api.github.com/users/dalippa","html_url":"https://github.com/dalippa","followers_url":"https://api.github.com/users/dalippa/followers","following_url":"https://api.github.com/users/dalippa/following{/other_user}","gists_url":"https://api.github.com/users/dalippa/gists{/gist_id}","starred_url":"https://api.github.com/users/dalippa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dalippa/subscriptions","organizations_url":"https://api.github.com/users/dalippa/orgs","repos_url":"https://api.github.com/users/dalippa/repos","events_url":"https://api.github.com/users/dalippa/events{/privacy}","received_events_url":"https://api.github.com/users/dalippa/received_events","type":"User","site_admin":false},"body":"\"Synchronization is extremely important...\" needs some more explanation.","created_at":"2015-07-03T13:14:55Z","updated_at":"2015-07-03T13:14:55Z","html_url":"https://github.com/scipy-conference/scipy_proceedings/pull/157#discussion_r33862892","pull_request_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157","_links":{"self":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/comments/33862892"},"html":{"href":"https://github.com/scipy-conference/scipy_proceedings/pull/157#discussion_r33862892"},"pull_request":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157"}}},"pull_request":{"url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157","id":37763352,"html_url":"https://github.com/scipy-conference/scipy_proceedings/pull/157","diff_url":"https://github.com/scipy-conference/scipy_proceedings/pull/157.diff","patch_url":"https://github.com/scipy-conference/scipy_proceedings/pull/157.patch","issue_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues/157","number":157,"state":"open","locked":false,"title":"Paper: Signal Processing and Communications: Teaching and Research Using IPython Notebook (Wickert)","user":{"login":"mwickert","id":12569094,"avatar_url":"https://avatars.githubusercontent.com/u/12569094?v=3","gravatar_id":"","url":"https://api.github.com/users/mwickert","html_url":"https://github.com/mwickert","followers_url":"https://api.github.com/users/mwickert/followers","following_url":"https://api.github.com/users/mwickert/following{/other_user}","gists_url":"https://api.github.com/users/mwickert/gists{/gist_id}","starred_url":"https://api.github.com/users/mwickert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwickert/subscriptions","organizations_url":"https://api.github.com/users/mwickert/orgs","repos_url":"https://api.github.com/users/mwickert/repos","events_url":"https://api.github.com/users/mwickert/events{/privacy}","received_events_url":"https://api.github.com/users/mwickert/received_events","type":"User","site_admin":false},"body":"First draft submitted  for review.\r\n\r\n[Edit by jaberg] http://nipy.bic.berkeley.edu:5000/download/5","created_at":"2015-06-16T06:31:09Z","updated_at":"2015-07-03T13:14:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"54b065eb7d35dd66efa2ec3d57574d5c720afa56","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157/commits","review_comments_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157/comments","review_comment_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues/157/comments","statuses_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/statuses/de29ba917b7374d34574aa8857f649272305940e","head":{"label":"mwickert:2015","ref":"2015","sha":"de29ba917b7374d34574aa8857f649272305940e","user":{"login":"mwickert","id":12569094,"avatar_url":"https://avatars.githubusercontent.com/u/12569094?v=3","gravatar_id":"","url":"https://api.github.com/users/mwickert","html_url":"https://github.com/mwickert","followers_url":"https://api.github.com/users/mwickert/followers","following_url":"https://api.github.com/users/mwickert/following{/other_user}","gists_url":"https://api.github.com/users/mwickert/gists{/gist_id}","starred_url":"https://api.github.com/users/mwickert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwickert/subscriptions","organizations_url":"https://api.github.com/users/mwickert/orgs","repos_url":"https://api.github.com/users/mwickert/repos","events_url":"https://api.github.com/users/mwickert/events{/privacy}","received_events_url":"https://api.github.com/users/mwickert/received_events","type":"User","site_admin":false},"repo":{"id":37464064,"name":"scipy_proceedings","full_name":"mwickert/scipy_proceedings","owner":{"login":"mwickert","id":12569094,"avatar_url":"https://avatars.githubusercontent.com/u/12569094?v=3","gravatar_id":"","url":"https://api.github.com/users/mwickert","html_url":"https://github.com/mwickert","followers_url":"https://api.github.com/users/mwickert/followers","following_url":"https://api.github.com/users/mwickert/following{/other_user}","gists_url":"https://api.github.com/users/mwickert/gists{/gist_id}","starred_url":"https://api.github.com/users/mwickert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwickert/subscriptions","organizations_url":"https://api.github.com/users/mwickert/orgs","repos_url":"https://api.github.com/users/mwickert/repos","events_url":"https://api.github.com/users/mwickert/events{/privacy}","received_events_url":"https://api.github.com/users/mwickert/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mwickert/scipy_proceedings","description":"Tools used to generate the SciPy conference proceedings","fork":true,"url":"https://api.github.com/repos/mwickert/scipy_proceedings","forks_url":"https://api.github.com/repos/mwickert/scipy_proceedings/forks","keys_url":"https://api.github.com/repos/mwickert/scipy_proceedings/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mwickert/scipy_proceedings/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mwickert/scipy_proceedings/teams","hooks_url":"https://api.github.com/repos/mwickert/scipy_proceedings/hooks","issue_events_url":"https://api.github.com/repos/mwickert/scipy_proceedings/issues/events{/number}","events_url":"https://api.github.com/repos/mwickert/scipy_proceedings/events","assignees_url":"https://api.github.com/repos/mwickert/scipy_proceedings/assignees{/user}","branches_url":"https://api.github.com/repos/mwickert/scipy_proceedings/branches{/branch}","tags_url":"https://api.github.com/repos/mwickert/scipy_proceedings/tags","blobs_url":"https://api.github.com/repos/mwickert/scipy_proceedings/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mwickert/scipy_proceedings/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mwickert/scipy_proceedings/git/refs{/sha}","trees_url":"https://api.github.com/repos/mwickert/scipy_proceedings/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mwickert/scipy_proceedings/statuses/{sha}","languages_url":"https://api.github.com/repos/mwickert/scipy_proceedings/languages","stargazers_url":"https://api.github.com/repos/mwickert/scipy_proceedings/stargazers","contributors_url":"https://api.github.com/repos/mwickert/scipy_proceedings/contributors","subscribers_url":"https://api.github.com/repos/mwickert/scipy_proceedings/subscribers","subscription_url":"https://api.github.com/repos/mwickert/scipy_proceedings/subscription","commits_url":"https://api.github.com/repos/mwickert/scipy_proceedings/commits{/sha}","git_commits_url":"https://api.github.com/repos/mwickert/scipy_proceedings/git/commits{/sha}","comments_url":"https://api.github.com/repos/mwickert/scipy_proceedings/comments{/number}","issue_comment_url":"https://api.github.com/repos/mwickert/scipy_proceedings/issues/comments{/number}","contents_url":"https://api.github.com/repos/mwickert/scipy_proceedings/contents/{+path}","compare_url":"https://api.github.com/repos/mwickert/scipy_proceedings/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mwickert/scipy_proceedings/merges","archive_url":"https://api.github.com/repos/mwickert/scipy_proceedings/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mwickert/scipy_proceedings/downloads","issues_url":"https://api.github.com/repos/mwickert/scipy_proceedings/issues{/number}","pulls_url":"https://api.github.com/repos/mwickert/scipy_proceedings/pulls{/number}","milestones_url":"https://api.github.com/repos/mwickert/scipy_proceedings/milestones{/number}","notifications_url":"https://api.github.com/repos/mwickert/scipy_proceedings/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mwickert/scipy_proceedings/labels{/name}","releases_url":"https://api.github.com/repos/mwickert/scipy_proceedings/releases{/id}","created_at":"2015-06-15T12:35:57Z","updated_at":"2015-06-15T12:35:57Z","pushed_at":"2015-07-03T06:39:02Z","git_url":"git://github.com/mwickert/scipy_proceedings.git","ssh_url":"git@github.com:mwickert/scipy_proceedings.git","clone_url":"https://github.com/mwickert/scipy_proceedings.git","svn_url":"https://github.com/mwickert/scipy_proceedings","homepage":"","size":3130,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"scipy-conference:2015","ref":"2015","sha":"e3df71a5659ce32396b7c520b89109716a3210fa","user":{"login":"scipy-conference","id":4884274,"avatar_url":"https://avatars.githubusercontent.com/u/4884274?v=3","gravatar_id":"","url":"https://api.github.com/users/scipy-conference","html_url":"https://github.com/scipy-conference","followers_url":"https://api.github.com/users/scipy-conference/followers","following_url":"https://api.github.com/users/scipy-conference/following{/other_user}","gists_url":"https://api.github.com/users/scipy-conference/gists{/gist_id}","starred_url":"https://api.github.com/users/scipy-conference/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scipy-conference/subscriptions","organizations_url":"https://api.github.com/users/scipy-conference/orgs","repos_url":"https://api.github.com/users/scipy-conference/repos","events_url":"https://api.github.com/users/scipy-conference/events{/privacy}","received_events_url":"https://api.github.com/users/scipy-conference/received_events","type":"Organization","site_admin":false},"repo":{"id":1825629,"name":"scipy_proceedings","full_name":"scipy-conference/scipy_proceedings","owner":{"login":"scipy-conference","id":4884274,"avatar_url":"https://avatars.githubusercontent.com/u/4884274?v=3","gravatar_id":"","url":"https://api.github.com/users/scipy-conference","html_url":"https://github.com/scipy-conference","followers_url":"https://api.github.com/users/scipy-conference/followers","following_url":"https://api.github.com/users/scipy-conference/following{/other_user}","gists_url":"https://api.github.com/users/scipy-conference/gists{/gist_id}","starred_url":"https://api.github.com/users/scipy-conference/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scipy-conference/subscriptions","organizations_url":"https://api.github.com/users/scipy-conference/orgs","repos_url":"https://api.github.com/users/scipy-conference/repos","events_url":"https://api.github.com/users/scipy-conference/events{/privacy}","received_events_url":"https://api.github.com/users/scipy-conference/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scipy-conference/scipy_proceedings","description":"Tools used to generate the SciPy conference proceedings","fork":false,"url":"https://api.github.com/repos/scipy-conference/scipy_proceedings","forks_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/forks","keys_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/teams","hooks_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/hooks","issue_events_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues/events{/number}","events_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/events","assignees_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/assignees{/user}","branches_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/branches{/branch}","tags_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/tags","blobs_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/git/refs{/sha}","trees_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/statuses/{sha}","languages_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/languages","stargazers_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/stargazers","contributors_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/contributors","subscribers_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/subscribers","subscription_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/subscription","commits_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/commits{/sha}","git_commits_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/git/commits{/sha}","comments_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/comments{/number}","issue_comment_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues/comments{/number}","contents_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/contents/{+path}","compare_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/merges","archive_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/downloads","issues_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues{/number}","pulls_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls{/number}","milestones_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/milestones{/number}","notifications_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/labels{/name}","releases_url":"https://api.github.com/repos/scipy-conference/scipy_proceedings/releases{/id}","created_at":"2011-05-31T10:26:48Z","updated_at":"2015-06-22T07:22:47Z","pushed_at":"2015-07-03T06:39:02Z","git_url":"git://github.com/scipy-conference/scipy_proceedings.git","ssh_url":"git@github.com:scipy-conference/scipy_proceedings.git","clone_url":"https://github.com/scipy-conference/scipy_proceedings.git","svn_url":"https://github.com/scipy-conference/scipy_proceedings","homepage":"","size":158447,"stargazers_count":76,"watchers_count":76,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":142,"mirror_url":null,"open_issues_count":38,"forks":142,"open_issues":38,"watchers":76,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157"},"html":{"href":"https://github.com/scipy-conference/scipy_proceedings/pull/157"},"issue":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues/157"},"comments":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/issues/157/comments"},"review_comments":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157/comments"},"review_comment":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/pulls/157/commits"},"statuses":{"href":"https://api.github.com/repos/scipy-conference/scipy_proceedings/statuses/de29ba917b7374d34574aa8857f649272305940e"}}}}