{"action":"created","issue":{"url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/76","repository_url":"https://api.github.com/repos/stanford-futuredata/macrobase","labels_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/76/labels{/name}","comments_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/76/comments","events_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/76/events","html_url":"https://github.com/stanford-futuredata/macrobase/issues/76","id":133889063,"number":76,"title":"Refactoring discussion: Configuration","user":{"login":"pbailis","id":970191,"avatar_url":"https://avatars.githubusercontent.com/u/970191?v=3","gravatar_id":"","url":"https://api.github.com/users/pbailis","html_url":"https://github.com/pbailis","followers_url":"https://api.github.com/users/pbailis/followers","following_url":"https://api.github.com/users/pbailis/following{/other_user}","gists_url":"https://api.github.com/users/pbailis/gists{/gist_id}","starred_url":"https://api.github.com/users/pbailis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbailis/subscriptions","organizations_url":"https://api.github.com/users/pbailis/orgs","repos_url":"https://api.github.com/users/pbailis/repos","events_url":"https://api.github.com/users/pbailis/events{/privacy}","received_events_url":"https://api.github.com/users/pbailis/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-02-16T05:23:49Z","updated_at":"2016-02-17T00:11:22Z","closed_at":null,"body":"Right now, we have config file spaghetti. We have a large number of config parameters, each of which is set manually for:\r\n * `BaseAnalyzer` (https://github.com/stanford-futuredata/macrobase/blob/f76a465530a4bcac6cc525908a1669da9a476168/src/main/java/macrobase/analysis/BaseAnalyzer.java#L38)\r\n * `StreamingAnalyzer` (https://github.com/stanford-futuredata/macrobase/blob/f76a465530a4bcac6cc525908a1669da9a476168/src/main/java/macrobase/analysis/StreamingAnalyzer.java#L48)\r\n\r\nThis leads to pretty ugly code like:\r\nhttps://github.com/stanford-futuredata/macrobase/blob/f76a465530a4bcac6cc525908a1669da9a476168/src/main/java/macrobase/runtime/standalone/streaming/MacroBaseStreamingCommand.java#L36\r\n\r\nDo we want to keep this code as is or should we make the config objects generic and pass them into each analyzer?"},"comment":{"url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/comments/184935133","html_url":"https://github.com/stanford-futuredata/macrobase/issues/76#issuecomment-184935133","issue_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/76","id":184935133,"user":{"login":"deepakn94","id":2724038,"avatar_url":"https://avatars.githubusercontent.com/u/2724038?v=3","gravatar_id":"","url":"https://api.github.com/users/deepakn94","html_url":"https://github.com/deepakn94","followers_url":"https://api.github.com/users/deepakn94/followers","following_url":"https://api.github.com/users/deepakn94/following{/other_user}","gists_url":"https://api.github.com/users/deepakn94/gists{/gist_id}","starred_url":"https://api.github.com/users/deepakn94/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deepakn94/subscriptions","organizations_url":"https://api.github.com/users/deepakn94/orgs","repos_url":"https://api.github.com/users/deepakn94/repos","events_url":"https://api.github.com/users/deepakn94/events{/privacy}","received_events_url":"https://api.github.com/users/deepakn94/received_events","type":"User","site_admin":false},"created_at":"2016-02-17T00:11:22Z","updated_at":"2016-02-17T00:11:22Z","body":"I like the idea of defaults for the most part, since most of our parameters _do_ have default values. For those that don't, we can have a default value like `null`, and then throw an exception if any argument is `null`."}}