{"action":"created","comment":{"url":"https://api.github.com/repos/olinjs/olinjs/pulls/comments/49223207","id":49223207,"diff_hunk":"@@ -57,28 +57,24 @@ Flight | https://github.com/flightjs/flight | https://flightjs.github.io/\n Knockout | https://github.com/knockout/knockout | http://knockoutjs.com/\n Riot | https://github.com/muut/riotjs | https://muut.com/riotjs/\n \n-Every framework have different features and organizational structures. Best way to understand these differences is to visit the webpage of the framework and just try to implement some very basic system in the framework. \n-\n-###Backbone\n-Backbone is one of the earlier client side frameworks that hit the scene. \n-It doesn't actually have a separate controller and just puts the controller logic in the view (bad form). \n-It has models that you can specify data elements of and easily connect it to your server. \n-\n-###Ember\n-Definitely one of (if not the) most complicated and uniquely organized frameworks.\n-In addition to views, models, and controllers it has many other systems and subsystems that allow interesting functionality. \n-Quote from the top of their web page: \"A framework for creating **ambitious** web applications\"\n+Every framework has different features and organizational structures. Best way to understand these differences is to visit the webpage of the framework and just try to implement some very basic system in the framework. Let's look into more detail as to what Angular and React entail.\n \n ###Angular\n Angular is developed by Google and has as its chief aim to make html what it would be if it was created today.\n It has several interesting qualities such as html directives.\n A primary focus of angular is to build for testability and it has functionality to help enable exactly that. \n \n+####Highlight - Two-way data binding\n+Angular uses has event listeners attached to data changes in an application; whether it is by the user or by the database, Angular knows to update all relational content. Two-way data binding also reduces the amount of code needed to develop sleek interaction and content transitions.\n+\n ###React\n Developed by Facebook and focuses on the view part of MVC.\n Mission statement is to allow users to create large applications with data that changes over time.\n Allows its views to update as the data changes. \n \n+####Highlight - Virtual DOM\n+React works by creating a virtual DOM in pure JavaScript that acts as an intermediate representation of the DOM. This way, React is able to create a diff of your active DOM and your virtual DOM to decide which elements to change.","path":"lessons/09-clientside-frameworks/README.md","position":99,"original_position":99,"commit_id":"8710c78f67c06cc9543edbf22772ad6ac5f66fdf","original_commit_id":"8710c78f67c06cc9543edbf22772ad6ac5f66fdf","user":{"login":"benkahle","id":3596325,"avatar_url":"https://avatars.githubusercontent.com/u/3596325?v=3","gravatar_id":"","url":"https://api.github.com/users/benkahle","html_url":"https://github.com/benkahle","followers_url":"https://api.github.com/users/benkahle/followers","following_url":"https://api.github.com/users/benkahle/following{/other_user}","gists_url":"https://api.github.com/users/benkahle/gists{/gist_id}","starred_url":"https://api.github.com/users/benkahle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benkahle/subscriptions","organizations_url":"https://api.github.com/users/benkahle/orgs","repos_url":"https://api.github.com/users/benkahle/repos","events_url":"https://api.github.com/users/benkahle/events{/privacy}","received_events_url":"https://api.github.com/users/benkahle/received_events","type":"User","site_admin":false},"body":"... greatly increasing rendering performance","created_at":"2016-01-08T18:54:46Z","updated_at":"2016-01-08T18:54:46Z","html_url":"https://github.com/olinjs/olinjs/pull/128#discussion_r49223207","pull_request_url":"https://api.github.com/repos/olinjs/olinjs/pulls/128","_links":{"self":{"href":"https://api.github.com/repos/olinjs/olinjs/pulls/comments/49223207"},"html":{"href":"https://github.com/olinjs/olinjs/pull/128#discussion_r49223207"},"pull_request":{"href":"https://api.github.com/repos/olinjs/olinjs/pulls/128"}}},"pull_request":{"url":"https://api.github.com/repos/olinjs/olinjs/pulls/128","id":55494361,"html_url":"https://github.com/olinjs/olinjs/pull/128","diff_url":"https://github.com/olinjs/olinjs/pull/128.diff","patch_url":"https://github.com/olinjs/olinjs/pull/128.patch","issue_url":"https://api.github.com/repos/olinjs/olinjs/issues/128","number":128,"state":"open","locked":false,"title":"Filippos frameworks","user":{"login":"flymperopoulos","id":6156036,"avatar_url":"https://avatars.githubusercontent.com/u/6156036?v=3","gravatar_id":"","url":"https://api.github.com/users/flymperopoulos","html_url":"https://github.com/flymperopoulos","followers_url":"https://api.github.com/users/flymperopoulos/followers","following_url":"https://api.github.com/users/flymperopoulos/following{/other_user}","gists_url":"https://api.github.com/users/flymperopoulos/gists{/gist_id}","starred_url":"https://api.github.com/users/flymperopoulos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flymperopoulos/subscriptions","organizations_url":"https://api.github.com/users/flymperopoulos/orgs","repos_url":"https://api.github.com/users/flymperopoulos/repos","events_url":"https://api.github.com/users/flymperopoulos/events{/privacy}","received_events_url":"https://api.github.com/users/flymperopoulos/received_events","type":"User","site_admin":false},"body":"Edited Class 9.\r\n\r\nUpdated README and added INCLASS markdown doc. Discussed differences between React and Angular and wrote a more comprehensive list of pro's and con's in INCLASS that will trigger discussion in class. Further addressed JSX and provided useful links on all topics alluded to.\r\n\r\nDecided to focus on Angular as the framework illustrating the hello world example. After INCLASS example code is exhibited and all points are explained, students are urged to get in pairs and think about the architecture a \"ToDo\" app would take. Teaching team will address questions as students write application and, hence, will be more interactive than just presenting how I did it. After class email will be sent out with a \"ToDo\" solution, if necessary. Thoughts? Finally, added HW in the end of INCLASS, linking to prior examples of Wiki projects - if you have more to add there, please do so.","created_at":"2016-01-08T18:33:46Z","updated_at":"2016-01-08T18:54:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"81f6838f0f97b86d9e7b2648daaed4b2f4a4b953","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/olinjs/olinjs/pulls/128/commits","review_comments_url":"https://api.github.com/repos/olinjs/olinjs/pulls/128/comments","review_comment_url":"https://api.github.com/repos/olinjs/olinjs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/olinjs/olinjs/issues/128/comments","statuses_url":"https://api.github.com/repos/olinjs/olinjs/statuses/8710c78f67c06cc9543edbf22772ad6ac5f66fdf","head":{"label":"olinjs:filipposFrameworks","ref":"filipposFrameworks","sha":"8710c78f67c06cc9543edbf22772ad6ac5f66fdf","user":{"login":"olinjs","id":3213751,"avatar_url":"https://avatars.githubusercontent.com/u/3213751?v=3","gravatar_id":"","url":"https://api.github.com/users/olinjs","html_url":"https://github.com/olinjs","followers_url":"https://api.github.com/users/olinjs/followers","following_url":"https://api.github.com/users/olinjs/following{/other_user}","gists_url":"https://api.github.com/users/olinjs/gists{/gist_id}","starred_url":"https://api.github.com/users/olinjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olinjs/subscriptions","organizations_url":"https://api.github.com/users/olinjs/orgs","repos_url":"https://api.github.com/users/olinjs/repos","events_url":"https://api.github.com/users/olinjs/events{/privacy}","received_events_url":"https://api.github.com/users/olinjs/received_events","type":"Organization","site_admin":false},"repo":{"id":28649083,"name":"olinjs","full_name":"olinjs/olinjs","owner":{"login":"olinjs","id":3213751,"avatar_url":"https://avatars.githubusercontent.com/u/3213751?v=3","gravatar_id":"","url":"https://api.github.com/users/olinjs","html_url":"https://github.com/olinjs","followers_url":"https://api.github.com/users/olinjs/followers","following_url":"https://api.github.com/users/olinjs/following{/other_user}","gists_url":"https://api.github.com/users/olinjs/gists{/gist_id}","starred_url":"https://api.github.com/users/olinjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olinjs/subscriptions","organizations_url":"https://api.github.com/users/olinjs/orgs","repos_url":"https://api.github.com/users/olinjs/repos","events_url":"https://api.github.com/users/olinjs/events{/privacy}","received_events_url":"https://api.github.com/users/olinjs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/olinjs/olinjs","description":"A practical web development course teaching Node.js, MongoDB, and other modern technologies","fork":false,"url":"https://api.github.com/repos/olinjs/olinjs","forks_url":"https://api.github.com/repos/olinjs/olinjs/forks","keys_url":"https://api.github.com/repos/olinjs/olinjs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/olinjs/olinjs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/olinjs/olinjs/teams","hooks_url":"https://api.github.com/repos/olinjs/olinjs/hooks","issue_events_url":"https://api.github.com/repos/olinjs/olinjs/issues/events{/number}","events_url":"https://api.github.com/repos/olinjs/olinjs/events","assignees_url":"https://api.github.com/repos/olinjs/olinjs/assignees{/user}","branches_url":"https://api.github.com/repos/olinjs/olinjs/branches{/branch}","tags_url":"https://api.github.com/repos/olinjs/olinjs/tags","blobs_url":"https://api.github.com/repos/olinjs/olinjs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/olinjs/olinjs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/olinjs/olinjs/git/refs{/sha}","trees_url":"https://api.github.com/repos/olinjs/olinjs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/olinjs/olinjs/statuses/{sha}","languages_url":"https://api.github.com/repos/olinjs/olinjs/languages","stargazers_url":"https://api.github.com/repos/olinjs/olinjs/stargazers","contributors_url":"https://api.github.com/repos/olinjs/olinjs/contributors","subscribers_url":"https://api.github.com/repos/olinjs/olinjs/subscribers","subscription_url":"https://api.github.com/repos/olinjs/olinjs/subscription","commits_url":"https://api.github.com/repos/olinjs/olinjs/commits{/sha}","git_commits_url":"https://api.github.com/repos/olinjs/olinjs/git/commits{/sha}","comments_url":"https://api.github.com/repos/olinjs/olinjs/comments{/number}","issue_comment_url":"https://api.github.com/repos/olinjs/olinjs/issues/comments{/number}","contents_url":"https://api.github.com/repos/olinjs/olinjs/contents/{+path}","compare_url":"https://api.github.com/repos/olinjs/olinjs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/olinjs/olinjs/merges","archive_url":"https://api.github.com/repos/olinjs/olinjs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/olinjs/olinjs/downloads","issues_url":"https://api.github.com/repos/olinjs/olinjs/issues{/number}","pulls_url":"https://api.github.com/repos/olinjs/olinjs/pulls{/number}","milestones_url":"https://api.github.com/repos/olinjs/olinjs/milestones{/number}","notifications_url":"https://api.github.com/repos/olinjs/olinjs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/olinjs/olinjs/labels{/name}","releases_url":"https://api.github.com/repos/olinjs/olinjs/releases{/id}","created_at":"2014-12-30T23:29:53Z","updated_at":"2016-01-06T22:34:50Z","pushed_at":"2016-01-08T18:33:47Z","git_url":"git://github.com/olinjs/olinjs.git","ssh_url":"git@github.com:olinjs/olinjs.git","clone_url":"https://github.com/olinjs/olinjs.git","svn_url":"https://github.com/olinjs/olinjs","homepage":"http://olinjs.github.io/","size":15931,"stargazers_count":15,"watchers_count":15,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":55,"mirror_url":null,"open_issues_count":10,"forks":55,"open_issues":10,"watchers":15,"default_branch":"master"}},"base":{"label":"olinjs:master","ref":"master","sha":"b7f5acb414d4e6fe274146e02dea9b3d8db0b2e3","user":{"login":"olinjs","id":3213751,"avatar_url":"https://avatars.githubusercontent.com/u/3213751?v=3","gravatar_id":"","url":"https://api.github.com/users/olinjs","html_url":"https://github.com/olinjs","followers_url":"https://api.github.com/users/olinjs/followers","following_url":"https://api.github.com/users/olinjs/following{/other_user}","gists_url":"https://api.github.com/users/olinjs/gists{/gist_id}","starred_url":"https://api.github.com/users/olinjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olinjs/subscriptions","organizations_url":"https://api.github.com/users/olinjs/orgs","repos_url":"https://api.github.com/users/olinjs/repos","events_url":"https://api.github.com/users/olinjs/events{/privacy}","received_events_url":"https://api.github.com/users/olinjs/received_events","type":"Organization","site_admin":false},"repo":{"id":28649083,"name":"olinjs","full_name":"olinjs/olinjs","owner":{"login":"olinjs","id":3213751,"avatar_url":"https://avatars.githubusercontent.com/u/3213751?v=3","gravatar_id":"","url":"https://api.github.com/users/olinjs","html_url":"https://github.com/olinjs","followers_url":"https://api.github.com/users/olinjs/followers","following_url":"https://api.github.com/users/olinjs/following{/other_user}","gists_url":"https://api.github.com/users/olinjs/gists{/gist_id}","starred_url":"https://api.github.com/users/olinjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olinjs/subscriptions","organizations_url":"https://api.github.com/users/olinjs/orgs","repos_url":"https://api.github.com/users/olinjs/repos","events_url":"https://api.github.com/users/olinjs/events{/privacy}","received_events_url":"https://api.github.com/users/olinjs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/olinjs/olinjs","description":"A practical web development course teaching Node.js, MongoDB, and other modern technologies","fork":false,"url":"https://api.github.com/repos/olinjs/olinjs","forks_url":"https://api.github.com/repos/olinjs/olinjs/forks","keys_url":"https://api.github.com/repos/olinjs/olinjs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/olinjs/olinjs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/olinjs/olinjs/teams","hooks_url":"https://api.github.com/repos/olinjs/olinjs/hooks","issue_events_url":"https://api.github.com/repos/olinjs/olinjs/issues/events{/number}","events_url":"https://api.github.com/repos/olinjs/olinjs/events","assignees_url":"https://api.github.com/repos/olinjs/olinjs/assignees{/user}","branches_url":"https://api.github.com/repos/olinjs/olinjs/branches{/branch}","tags_url":"https://api.github.com/repos/olinjs/olinjs/tags","blobs_url":"https://api.github.com/repos/olinjs/olinjs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/olinjs/olinjs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/olinjs/olinjs/git/refs{/sha}","trees_url":"https://api.github.com/repos/olinjs/olinjs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/olinjs/olinjs/statuses/{sha}","languages_url":"https://api.github.com/repos/olinjs/olinjs/languages","stargazers_url":"https://api.github.com/repos/olinjs/olinjs/stargazers","contributors_url":"https://api.github.com/repos/olinjs/olinjs/contributors","subscribers_url":"https://api.github.com/repos/olinjs/olinjs/subscribers","subscription_url":"https://api.github.com/repos/olinjs/olinjs/subscription","commits_url":"https://api.github.com/repos/olinjs/olinjs/commits{/sha}","git_commits_url":"https://api.github.com/repos/olinjs/olinjs/git/commits{/sha}","comments_url":"https://api.github.com/repos/olinjs/olinjs/comments{/number}","issue_comment_url":"https://api.github.com/repos/olinjs/olinjs/issues/comments{/number}","contents_url":"https://api.github.com/repos/olinjs/olinjs/contents/{+path}","compare_url":"https://api.github.com/repos/olinjs/olinjs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/olinjs/olinjs/merges","archive_url":"https://api.github.com/repos/olinjs/olinjs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/olinjs/olinjs/downloads","issues_url":"https://api.github.com/repos/olinjs/olinjs/issues{/number}","pulls_url":"https://api.github.com/repos/olinjs/olinjs/pulls{/number}","milestones_url":"https://api.github.com/repos/olinjs/olinjs/milestones{/number}","notifications_url":"https://api.github.com/repos/olinjs/olinjs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/olinjs/olinjs/labels{/name}","releases_url":"https://api.github.com/repos/olinjs/olinjs/releases{/id}","created_at":"2014-12-30T23:29:53Z","updated_at":"2016-01-06T22:34:50Z","pushed_at":"2016-01-08T18:33:47Z","git_url":"git://github.com/olinjs/olinjs.git","ssh_url":"git@github.com:olinjs/olinjs.git","clone_url":"https://github.com/olinjs/olinjs.git","svn_url":"https://github.com/olinjs/olinjs","homepage":"http://olinjs.github.io/","size":15931,"stargazers_count":15,"watchers_count":15,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":55,"mirror_url":null,"open_issues_count":10,"forks":55,"open_issues":10,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/olinjs/olinjs/pulls/128"},"html":{"href":"https://github.com/olinjs/olinjs/pull/128"},"issue":{"href":"https://api.github.com/repos/olinjs/olinjs/issues/128"},"comments":{"href":"https://api.github.com/repos/olinjs/olinjs/issues/128/comments"},"review_comments":{"href":"https://api.github.com/repos/olinjs/olinjs/pulls/128/comments"},"review_comment":{"href":"https://api.github.com/repos/olinjs/olinjs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/olinjs/olinjs/pulls/128/commits"},"statuses":{"href":"https://api.github.com/repos/olinjs/olinjs/statuses/8710c78f67c06cc9543edbf22772ad6ac5f66fdf"}}}}