{"action":"created","issue":{"url":"https://api.github.com/repos/nengo/nengo_gui/issues/673","repository_url":"https://api.github.com/repos/nengo/nengo_gui","labels_url":"https://api.github.com/repos/nengo/nengo_gui/issues/673/labels{/name}","comments_url":"https://api.github.com/repos/nengo/nengo_gui/issues/673/comments","events_url":"https://api.github.com/repos/nengo/nengo_gui/issues/673/events","html_url":"https://github.com/nengo/nengo_gui/pull/673","id":131926712,"number":673,"title":"Server refactoring","user":{"login":"jgosmann","id":850157,"avatar_url":"https://avatars.githubusercontent.com/u/850157?v=3","gravatar_id":"","url":"https://api.github.com/users/jgosmann","html_url":"https://github.com/jgosmann","followers_url":"https://api.github.com/users/jgosmann/followers","following_url":"https://api.github.com/users/jgosmann/following{/other_user}","gists_url":"https://api.github.com/users/jgosmann/gists{/gist_id}","starred_url":"https://api.github.com/users/jgosmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgosmann/subscriptions","organizations_url":"https://api.github.com/users/jgosmann/orgs","repos_url":"https://api.github.com/users/jgosmann/repos","events_url":"https://api.github.com/users/jgosmann/events{/privacy}","received_events_url":"https://api.github.com/users/jgosmann/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nengo/nengo_gui/labels/needs%20merge","name":"needs merge","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"jgosmann","id":850157,"avatar_url":"https://avatars.githubusercontent.com/u/850157?v=3","gravatar_id":"","url":"https://api.github.com/users/jgosmann","html_url":"https://github.com/jgosmann","followers_url":"https://api.github.com/users/jgosmann/followers","following_url":"https://api.github.com/users/jgosmann/following{/other_user}","gists_url":"https://api.github.com/users/jgosmann/gists{/gist_id}","starred_url":"https://api.github.com/users/jgosmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgosmann/subscriptions","organizations_url":"https://api.github.com/users/jgosmann/orgs","repos_url":"https://api.github.com/users/jgosmann/repos","events_url":"https://api.github.com/users/jgosmann/events{/privacy}","received_events_url":"https://api.github.com/users/jgosmann/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/nengo/nengo_gui/milestones/7","html_url":"https://github.com/nengo/nengo_gui/milestones/0.3%20release","labels_url":"https://api.github.com/repos/nengo/nengo_gui/milestones/7/labels","id":1246280,"number":7,"title":"0.3 release","description":null,"creator":{"login":"jgosmann","id":850157,"avatar_url":"https://avatars.githubusercontent.com/u/850157?v=3","gravatar_id":"","url":"https://api.github.com/users/jgosmann","html_url":"https://github.com/jgosmann","followers_url":"https://api.github.com/users/jgosmann/followers","following_url":"https://api.github.com/users/jgosmann/following{/other_user}","gists_url":"https://api.github.com/users/jgosmann/gists{/gist_id}","starred_url":"https://api.github.com/users/jgosmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgosmann/subscriptions","organizations_url":"https://api.github.com/users/jgosmann/orgs","repos_url":"https://api.github.com/users/jgosmann/repos","events_url":"https://api.github.com/users/jgosmann/events{/privacy}","received_events_url":"https://api.github.com/users/jgosmann/received_events","type":"User","site_admin":false},"open_issues":19,"closed_issues":0,"state":"open","created_at":"2015-08-08T03:52:59Z","updated_at":"2016-06-08T13:48:53Z","due_on":null,"closed_at":null},"comments":41,"created_at":"2016-02-07T02:47:31Z","updated_at":"2016-06-17T19:14:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nengo/nengo_gui/pulls/673","html_url":"https://github.com/nengo/nengo_gui/pull/673","diff_url":"https://github.com/nengo/nengo_gui/pull/673.diff","patch_url":"https://github.com/nengo/nengo_gui/pull/673.patch"},"body":"### Todo list:\r\n\r\n* [x] open browser at start\r\n* [x] Check IPython integration (probably needs some refactoring as startup of server changed somewhat)\r\n* [x] Documentation, especially `InteractiveGUI` docstring is outdated\r\n* [x] disable log messages, but make sure we get exceptions\r\n* [x] user authentication\r\n* [x] SSL encryption for the user authentication (it's 2016 we should not transmit passwords in plain text)\r\n* [x] remaining TODOs and FIXMEs in the code\r\n* [x] Make sure command-line arguments like backend work properly\r\n* [x] Make sure that `interactive` attribute on GUI object isn't need anywhere. Same for other changed attributes.\r\n* [x] `ws_default` in the request handler is a bit longish and could potentially be refactored\r\n* [x] Remove old `server.py` and `swi.py` and move files in  `backend` to a more appropriate place (?)\r\n\r\n### Todo list for later:\r\n\r\n* [x] Python 3 compatibility: It seems that the test suite itself cannot be run with Python 3 at the moment (e.g., Py 2.7 style print in `conftest.py`). These issues should be fixed first and are not in the scope of this PR.\r\n* [ ] Transmitting POST data as multipart. (Not sure, if we actually need this, but at least it would make the implementation complete)\r\n* [ ] More tests?\r\n\r\n### Some general comments\r\n\r\n* The code is still based on the Python standard `BaseHTTPServer` stuff. That simplifies the implementation somewhat, but there are also points where it is a bit awkward because when we deal with WebSockets (they have to be registerd with the server to be able to close them properly on server shutdown). I still think that the refactoring improves things because it more clearly delineates what the server class and request handler do. Previously starting the server was implemented in the request handler and there where other weird cross-references.\r\n* I'm trying to remove interactive from the server and move differences in interactive/non-interactive mode outside of the server.\r\n* The new request handler does not pass arguments to the submethods, but sets class attributes. I don't necessarily think that this is the best style, but it is more consistent with what the `BaseHTTPRequestHandler` is doing anyways.\r\n* There are probably a bunch of other decisions I made for (hopefully) good reasons, but can't remember right now.\r\n\r\nResolves #456 and #554 "},"comment":{"url":"https://api.github.com/repos/nengo/nengo_gui/issues/comments/226856995","html_url":"https://github.com/nengo/nengo_gui/pull/673#issuecomment-226856995","issue_url":"https://api.github.com/repos/nengo/nengo_gui/issues/673","id":226856995,"user":{"login":"jgosmann","id":850157,"avatar_url":"https://avatars.githubusercontent.com/u/850157?v=3","gravatar_id":"","url":"https://api.github.com/users/jgosmann","html_url":"https://github.com/jgosmann","followers_url":"https://api.github.com/users/jgosmann/followers","following_url":"https://api.github.com/users/jgosmann/following{/other_user}","gists_url":"https://api.github.com/users/jgosmann/gists{/gist_id}","starred_url":"https://api.github.com/users/jgosmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgosmann/subscriptions","organizations_url":"https://api.github.com/users/jgosmann/orgs","repos_url":"https://api.github.com/users/jgosmann/repos","events_url":"https://api.github.com/users/jgosmann/events{/privacy}","received_events_url":"https://api.github.com/users/jgosmann/received_events","type":"User","site_admin":false},"created_at":"2016-06-17T19:14:19Z","updated_at":"2016-06-17T19:14:19Z","body":"I believe ace_editor had to be changed to editor. I feel like I already fixed that problem ... but maybe I missed a spot.\n\nOn June 17, 2016 2:09:20 PM EDT, Sean Aubin <notifications@github.com> wrote:\n>This code currently gives the following intermittent error. I'm not\n>sure what causes it, but I thought I would paste it here anyways.\n>```\n>ERROR:nengo_gui.guibackend:Error during websocket communication.\n>Traceback (most recent call last):\n>File \"c:\\nengo_summer_school\\nengo_gui\\nengo_gui\\guibackend.py\", line\n>230, in ws_default\n>    component.update_client(self.ws)\n>File\n>\"c:\\nengo_summer_school\\nengo_gui\\nengo_gui\\components\\netgraph.py\",\n>line 378, in update_client\n>    self.check_for_reload()\n>File\n>\"c:\\nengo_summer_school\\nengo_gui\\nengo_gui\\components\\netgraph.py\",\n>line 63, in check_for_reload\n>    self.reload()\n>File\n>\"c:\\nengo_summer_school\\nengo_gui\\nengo_gui\\components\\netgraph.py\",\n>line 86, in reload\n>    self._reload(code=code)\n>File\n>\"c:\\nengo_summer_school\\nengo_gui\\nengo_gui\\components\\netgraph.py\",\n>line 104, in _reload\n>    self.page.ace_editor.update_code(code)\n>AttributeError: 'Page' object has no attribute 'ace_editor'\n>```\n>\n>---\n>You are receiving this because you were mentioned.\n>Reply to this email directly or view it on GitHub:\n>https://github.com/nengo/nengo_gui/pull/673#issuecomment-226840923\n\n-- \nSent from my Android device with K-9 Mail. Please excuse my brevity."}}
{"actor":{"display_login":"jgosmann"}}