{"action":"created","issue":{"url":"https://api.github.com/repos/martinisgroup/servers/issues/104","labels_url":"https://api.github.com/repos/martinisgroup/servers/issues/104/labels{/name}","comments_url":"https://api.github.com/repos/martinisgroup/servers/issues/104/comments","events_url":"https://api.github.com/repos/martinisgroup/servers/issues/104/events","html_url":"https://github.com/martinisgroup/servers/pull/104","id":69377733,"number":104,"title":"Make averaging, dithering, and zeroing optional and off by default.","user":{"login":"DanielSank","id":4584456,"avatar_url":"https://avatars.githubusercontent.com/u/4584456?v=3","gravatar_id":"","url":"https://api.github.com/users/DanielSank","html_url":"https://github.com/DanielSank","followers_url":"https://api.github.com/users/DanielSank/followers","following_url":"https://api.github.com/users/DanielSank/following{/other_user}","gists_url":"https://api.github.com/users/DanielSank/gists{/gist_id}","starred_url":"https://api.github.com/users/DanielSank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanielSank/subscriptions","organizations_url":"https://api.github.com/users/DanielSank/orgs","repos_url":"https://api.github.com/users/DanielSank/repos","events_url":"https://api.github.com/users/DanielSank/events{/privacy}","received_events_url":"https://api.github.com/users/DanielSank/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/martinisgroup/servers/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/martinisgroup/servers/labels/critical","name":"critical","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2015-04-19T03:26:10Z","updated_at":"2015-04-21T03:41:34Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/martinisgroup/servers/pulls/104","html_url":"https://github.com/martinisgroup/servers/pull/104","diff_url":"https://github.com/martinisgroup/servers/pull/104.diff","patch_url":"https://github.com/martinisgroup/servers/pull/104.patch"},"body":"The deconvolution server was mutating the user's waveform data without respect to any parameters passed into `Correct` or `Correct FT`:\r\n\r\n* For Z waveforms, dithering had the appearance of being set by a boolean parameter on the context, but was actually being defaulted to `True` at context initialization! It was also optionally set by a global registry key for the entire server. This should be a per-request variable.\r\n* For Z waveforms, averaging the first and last four SRAM samples was done without regard for any input parameters. This meant that there was *no way* to not have your pulse sequence mutated by the server.\r\n* For IQ waveforms, zeroing the first and last four SRAM samples was done without regard for any input parameters. This meant that there was *no way* to not have your pulse sequence mutated by the server.\r\n\r\nThis is problematic: anyone trying to use the deconvolution server outside of qubit experiments had their waveforms mysteriously mutated. Note that this is *not* just me. Other people are starting to use fpgaTest for bringup and debugging purposes. We need to be mindful of everyone's use cases when modifying our code base. Aside from that, it is not good software design to bake unexpected behavior into the code.\r\n\r\nThis change makes all of these mutations optional and off by default. This means that the qubit sequencer code needs to be updated to turn these features on.\r\n\r\n@pomalley, would you mind doing that on this branch?\r\n\r\n@maffoo @ejeffrey @JulianSKelly @rb25 I will not merge these changes until all of you sign off on it. This is an important and complex piece of code. In fact, I propose that we set this (and in the future other) pieces of code such that they are immutable without LGTM from at least three of the people pinged here.\r\n"},"comment":{"url":"https://api.github.com/repos/martinisgroup/servers/issues/comments/94629304","html_url":"https://github.com/martinisgroup/servers/pull/104#issuecomment-94629304","issue_url":"https://api.github.com/repos/martinisgroup/servers/issues/104","id":94629304,"user":{"login":"JulianSKelly","id":8152707,"avatar_url":"https://avatars.githubusercontent.com/u/8152707?v=3","gravatar_id":"","url":"https://api.github.com/users/JulianSKelly","html_url":"https://github.com/JulianSKelly","followers_url":"https://api.github.com/users/JulianSKelly/followers","following_url":"https://api.github.com/users/JulianSKelly/following{/other_user}","gists_url":"https://api.github.com/users/JulianSKelly/gists{/gist_id}","starred_url":"https://api.github.com/users/JulianSKelly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JulianSKelly/subscriptions","organizations_url":"https://api.github.com/users/JulianSKelly/orgs","repos_url":"https://api.github.com/users/JulianSKelly/repos","events_url":"https://api.github.com/users/JulianSKelly/events{/privacy}","received_events_url":"https://api.github.com/users/JulianSKelly/received_events","type":"User","site_admin":false},"created_at":"2015-04-21T03:41:34Z","updated_at":"2015-04-21T03:41:34Z","body":"LGTM."}}