{"action":"created","issue":{"url":"https://api.github.com/repos/rico-project/rico/issues/11","repository_url":"https://api.github.com/repos/rico-project/rico","labels_url":"https://api.github.com/repos/rico-project/rico/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/rico-project/rico/issues/11/comments","events_url":"https://api.github.com/repos/rico-project/rico/issues/11/events","html_url":"https://github.com/rico-project/rico/issues/11","id":327269305,"number":11,"title":"(feature) Polymer: Remoting controller for Polymer 3.","user":{"login":"hendrikebbers","id":9443847,"avatar_url":"https://avatars2.githubusercontent.com/u/9443847?v=4","gravatar_id":"","url":"https://api.github.com/users/hendrikebbers","html_url":"https://github.com/hendrikebbers","followers_url":"https://api.github.com/users/hendrikebbers/followers","following_url":"https://api.github.com/users/hendrikebbers/following{/other_user}","gists_url":"https://api.github.com/users/hendrikebbers/gists{/gist_id}","starred_url":"https://api.github.com/users/hendrikebbers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hendrikebbers/subscriptions","organizations_url":"https://api.github.com/users/hendrikebbers/orgs","repos_url":"https://api.github.com/users/hendrikebbers/repos","events_url":"https://api.github.com/users/hendrikebbers/events{/privacy}","received_events_url":"https://api.github.com/users/hendrikebbers/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-29T10:56:52Z","updated_at":"2018-05-29T10:56:53Z","closed_at":null,"author_association":"MEMBER","body":"_From @hastebrot on May 7, 2018 6:31_\n\nGoogle will release Polymer 3 at Google I/O 2018 this week (conference sessions on May 9th). With Polymer 3 we'll still have the option to use `<remoting-controller>` as mixin for `PolymerElement`. But the stated goal of the Polymer team it to allow lighter and more loosely coupled elements, hence they'll introduce `LitElement` (headed for 1.0 release in the coming months). This new Web Component base class will be the successor of `PolymerElement`.\r\n\r\nTo support `PolymerElement` in Polymer 3 we probably have to additionally provide `<remoting-controller>` on npm registry. It would also be nice if the element is converted to JavaScript modules, though still using HTML imports should still be fine. The `PolymerElement` will not see active development in the future.\r\n\r\nTo support `LitElement` in Polymer 3 we'd have to rethink how Dolphin Platform communicates changes to this base class. It will get rid of the Polymer data system and template stamping (no property effects with `set()` and `splice()`, no templates with two-way bindings). The Polymer team suggests to use Redux state store instead, but also says with `LitElement` you should be free for more different options.\r\n\n\n_Copied from original issue: canoo/dolphin-platform#908_"},"comment":{"url":"https://api.github.com/repos/rico-project/rico/issues/comments/392736114","html_url":"https://github.com/rico-project/rico/issues/11#issuecomment-392736114","issue_url":"https://api.github.com/repos/rico-project/rico/issues/11","id":392736114,"user":{"login":"hendrikebbers","id":9443847,"avatar_url":"https://avatars2.githubusercontent.com/u/9443847?v=4","gravatar_id":"","url":"https://api.github.com/users/hendrikebbers","html_url":"https://github.com/hendrikebbers","followers_url":"https://api.github.com/users/hendrikebbers/followers","following_url":"https://api.github.com/users/hendrikebbers/following{/other_user}","gists_url":"https://api.github.com/users/hendrikebbers/gists{/gist_id}","starred_url":"https://api.github.com/users/hendrikebbers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hendrikebbers/subscriptions","organizations_url":"https://api.github.com/users/hendrikebbers/orgs","repos_url":"https://api.github.com/users/hendrikebbers/repos","events_url":"https://api.github.com/users/hendrikebbers/events{/privacy}","received_events_url":"https://api.github.com/users/hendrikebbers/received_events","type":"User","site_admin":false},"created_at":"2018-05-29T10:56:53Z","updated_at":"2018-05-29T10:56:53Z","author_association":"MEMBER","body":"_From @hastebrot on May 8, 2018 11:52_\n\nRegarding `LitElement`, `lit-html`, and redux stores. I played a bit with Dolphin Platform and found following obstacles:\r\n\r\n- **Dolphin → redux → `LitElement`:** Using the Dolphin's approach to identify beans by object reference and redux's nature (freeze'd objects) give some obstacles. Redux has the concept of selectors (see: `reselect` [1]) which could be helpful to specify changes/splices to bean properties). `LitElement` uses `lit-html` which takes the complete property tree (say: Dolphin `model`) and only update the template parts that causes changes, i.e. only applies the subproperties that causes these changes.\r\n\r\n- **`LitElement` → redux → Dolphin:** Here we probably need to diff the objects, to explictly send the changes to the Dolphin controller. The `immer` library [2] could be helpful, if it allow to retrieve a list of changed subproperties.\r\n\r\nAdditionally how to mix uni-directional changes (the `LitElement`/redux appoach) and bi-directional changes (the `PolymerElement` approach) is an open question.\r\n\r\nOverall the problem seems to be, that with Redux we can not identify whether an object is the same or a different object, caused by the immutable nature of it.\r\n\r\nReferences:\r\n- [1] https://github.com/reduxjs/reselect\r\n- [2] https://github.com/mweststrate/immer"}}
{"actor":{"display_login":"hendrikebbers"}}