{"action":"created","comment":{"url":"https://api.github.com/repos/hackedu/hackedu/pulls/comments/40897757","id":40897757,"diff_hunk":"@@ -0,0 +1,615 @@\n+# Remote Control\n+\n+The objective of this workshop is to learn to wield powerful\n+[APIs](http://www.quora.com/What-is-an-API) with minimal code.\n+\n+This tutorial can be used by complete beginners or more advanced programmers.\n+\n+**For Beginners**\n+\n+You will learn how to do really cool things with really simple code. You won't\n+understand how it all works and that's totally cool. Your objective is to learn\n+how to make things happen. Later you can come back and figure out how it all\n+works.\n+\n+**For More Experienced Folk**\n+\n+This tutorial will likely show you things that you didn't know that you could\n+do. I'd recommend skipping around in the tutorial and find what strikes your\n+interest.\n+\n+## Partners\n+\n+Before starting this workshop, find a partner! You'll be pair\n+programming!\n+\n+## Quick Demo\n+\n+We're going to write some code that calls your phone and speaks some\n+text.\n+\n+Ready?\n+\n+Open [this JS Bin](http://jsbin.com/papawo/6/edit?html,js,console). Leave this\n+tab open for the rest of the tutorial.\n+\n+JS Bin is a website to easily write code for websites.\n+\n+### Adding your Twilio sid and token\n+\n+We are going to use a service called Twilio to do things like send text messages\n+and make phone calls.\n+\n+To add this capability to any HTML file, just add this script tag inside the\n+bottom of your body tag:\n+\n+```html\n+<script src=\"//bit.ly/twilio-basic-v1\"\n+  sid=\"YOUR_TWILIO_ACCOUNT_SID_HERE\"\n+  token=\"YOUR_TWILIO_AUTH_TOKEN_HERE\"\n+></script>  \n+```\n+\n+You can see this snippet of code inside the HTML tab of the JS Bin:\n+\n+> ![](img/html_tab.png)\n+\n+Before this will work though we need to change `\"YOUR_TWILIO_ACCOUNT_SID_HERE\"`\n+and `\"YOUR_TWILIO_AUTH_TOKEN_HERE\"` to your actual Twilio sid and token.\n+\n+The facilitator should have given you an sid and a token. If you don't have one\n+yet, ask your facilitator.\n+\n+If you are the facilitator (or you're just doing this workshop by yourself),\n+follow the directions [here](../twilio/signup.md) to get your own Twilio\n+sid and token.\n+\n+Once we have the sid and auth token, replace\n+`YOUR_TWILIO_ACCOUNT_SID_HERE` and `YOUR_TWILIO_AUTH_TOKEN_HERE` with the actual\n+Account SID and Auth Token.\n+\n+> ![](img/enter_account_sid.gif)\n+\n+### Writing the one line of code to send a text message\n+\n+Then type the below code into the left side of JS Bin _exactly_:\n+\n+```js\n+Twilio.callAndSay(\"555-555-5555\", \"You just subscribed to Gossip Girl\");\n+```\n+_**Don't forget the parentheses commas, and quotation marks.**_\n+\n+> ![](img/demo_1.gif)\n+\n+This code calls the phone number `555-555-5555` and says the message\n+`Gossip Girl here, your one and only.` We don't want that.\n+\n+Change `555-555-5555` to your own phone number. Feel free to change the\n+message too.\n+\n+> ![](img/demo_2.gif)\n+\n+Now go ahead and press the \"Run\" button.\n+\n+> ![](img/demo_3.gif)\n+\n+Your phone should ring shortly! Answer it!\n+\n+```\n+If it doesn't work, ask a neighboring group to see if they can see what's wrong.\n+Otherwise, raise your hand to ask a facilitator for help! We <3 questions!\n+```\n+\n+### Having some fun\n+\n+If you want, you can now duplicate the code to call more people's phones! Ask\n+your neighbors for their phone number!\n+\n+> ![](img/demo_4.gif)\n+\n+Go ahead and click run!\n+\n+![](img/celebrate.gif)\n+\n+## Outline for the rest of this tutorial\n+\n+### Part I\n+\n+This first section is linear and more guided.\n+\n+In this section, you will learn to build an HTML5 app that, when you press a\n+a button, it will call a phone.\n+\n+[Here is a demo of the app we will\n+make](http://jsbin.com/fawuda/86/edit?html,css,js,console,output). To make this\n+work for you:\n+\n+1. make sure you change change `555-555-5555` to your phone number\n+2. click the \"Run with JS\" button in the output and enter your Twilio sid and\n+   token\n+\n+Here is an outline of what you'll learn on the way:\n+\n+1. [Send text messages and make phone calls with one line of code]\n+   (#send-text-messages-and-make-phone-calls)\n+2. [Creating an account on JS Bin](#saving-our-work)\n+3. [Call a phone when a button is clicked]\n+   (#call-a-phone-when-a-button-is-clicked)\n+\n+If you're more advanced, feel free to skip this section and go to the next.\n+Do make sure that you create a JS Bin account first though.\n+\n+### Part II\n+\n+This section is less guided. It showcases snippets of various APIs and how to\n+use them.\n+\n+With you partner, look around to see what snippets you think are cool.\n+Pick and choose some of them to build a mini project!\n+\n+We can break the tools into two categories:\n+\n+**Actions**\n+\n+Actions are just actions:\n+\n+- send a text message (addressed above)","path":"playbook/workshops/remote_control/README.md","position":156,"original_position":156,"commit_id":"74b607cf93d15f0af6e9e3e5de7f6863fb05030a","original_commit_id":"74b607cf93d15f0af6e9e3e5de7f6863fb05030a","user":{"login":"paked","id":8407370,"avatar_url":"https://avatars.githubusercontent.com/u/8407370?v=3","gravatar_id":"","url":"https://api.github.com/users/paked","html_url":"https://github.com/paked","followers_url":"https://api.github.com/users/paked/followers","following_url":"https://api.github.com/users/paked/following{/other_user}","gists_url":"https://api.github.com/users/paked/gists{/gist_id}","starred_url":"https://api.github.com/users/paked/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paked/subscriptions","organizations_url":"https://api.github.com/users/paked/orgs","repos_url":"https://api.github.com/users/paked/repos","events_url":"https://api.github.com/users/paked/events{/privacy}","received_events_url":"https://api.github.com/users/paked/received_events","type":"User","site_admin":false},"body":"These list items should be capitalised","created_at":"2015-10-01T10:08:32Z","updated_at":"2015-10-01T10:08:32Z","html_url":"https://github.com/hackedu/hackedu/pull/234#discussion_r40897757","pull_request_url":"https://api.github.com/repos/hackedu/hackedu/pulls/234","_links":{"self":{"href":"https://api.github.com/repos/hackedu/hackedu/pulls/comments/40897757"},"html":{"href":"https://github.com/hackedu/hackedu/pull/234#discussion_r40897757"},"pull_request":{"href":"https://api.github.com/repos/hackedu/hackedu/pulls/234"}}},"pull_request":{"url":"https://api.github.com/repos/hackedu/hackedu/pulls/234","id":45511658,"html_url":"https://github.com/hackedu/hackedu/pull/234","diff_url":"https://github.com/hackedu/hackedu/pull/234.diff","patch_url":"https://github.com/hackedu/hackedu/pull/234.patch","issue_url":"https://api.github.com/repos/hackedu/hackedu/issues/234","number":234,"state":"open","locked":false,"title":"This is the MVP of the Twilio workshop","user":{"login":"jonleung","id":654941,"avatar_url":"https://avatars.githubusercontent.com/u/654941?v=3","gravatar_id":"","url":"https://api.github.com/users/jonleung","html_url":"https://github.com/jonleung","followers_url":"https://api.github.com/users/jonleung/followers","following_url":"https://api.github.com/users/jonleung/following{/other_user}","gists_url":"https://api.github.com/users/jonleung/gists{/gist_id}","starred_url":"https://api.github.com/users/jonleung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonleung/subscriptions","organizations_url":"https://api.github.com/users/jonleung/orgs","repos_url":"https://api.github.com/users/jonleung/repos","events_url":"https://api.github.com/users/jonleung/events{/privacy}","received_events_url":"https://api.github.com/users/jonleung/received_events","type":"User","site_admin":false},"body":"Not ready for merge:\r\n\r\n**EDIT**: The below was fixed!: \r\n\r\nI wasn't able to squash the commits for some reason, I tried doing\r\n\r\n```\r\ngit rebase -i 8767add9f939eef40619f2ba7326cc104fe416f6\r\n```\r\n\r\nThat gave me:\r\n\r\n```\r\npick 35b7d37 Add content guidelines for contributing case studies\r\n\r\n# Rebase c517118..35b7d37 onto c517118\r\n#\r\n# Commands:\r\n#  p, pick = use commit\r\n#  r, reword = use commit, but edit the commit message\r\n#  e, edit = use commit, but stop for amending\r\n#  s, squash = use commit, but meld into previous commit\r\n#  f, fixup = like \"squash\", but discard this commit's log message\r\n#  x, exec = run command (the rest of the line) using shell\r\n#\r\n# These lines can be re-ordered; they are executed from top to bottom.\r\n#\r\n# If you remove a line here THAT COMMIT WILL BE LOST.\r\n#\r\n# However, if you remove everything, the rebase will be aborted.\r\n#\r\n# Note that empty commits are commented out\r\n```\r\n\r\nI expected this:\r\n\r\n```\r\npick 12bb4fe fix newline issues\r\npick 49cb859 fix 80 char word wrap\r\npick 0f4d996 update to rawgit's cdn\r\npick 83a5ca8 More fixes\r\npick b24df5c Grammar issues\r\npick 7088215 Fixed grammar\r\npick a67b5dd asdf\r\npick 97f84af finish mvp\r\npick 6d49cfa just got into lecture hall\r\npick 4c6e92d add text\r\npick ab162de add moar files\r\npick e169c18 remove debugger\r\npick 9a98747 initial trigger workshop commit\r\n```\r\n\r\nAny suggestions @zachlatta, @MaxWofford, @TheThirdOne, @paked?","created_at":"2015-09-21T03:15:41Z","updated_at":"2015-10-01T10:08:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bbfbc089b762fdc473e26f6b493d18619e88c261","assignee":{"login":"paked","id":8407370,"avatar_url":"https://avatars.githubusercontent.com/u/8407370?v=3","gravatar_id":"","url":"https://api.github.com/users/paked","html_url":"https://github.com/paked","followers_url":"https://api.github.com/users/paked/followers","following_url":"https://api.github.com/users/paked/following{/other_user}","gists_url":"https://api.github.com/users/paked/gists{/gist_id}","starred_url":"https://api.github.com/users/paked/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paked/subscriptions","organizations_url":"https://api.github.com/users/paked/orgs","repos_url":"https://api.github.com/users/paked/repos","events_url":"https://api.github.com/users/paked/events{/privacy}","received_events_url":"https://api.github.com/users/paked/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/hackedu/hackedu/pulls/234/commits","review_comments_url":"https://api.github.com/repos/hackedu/hackedu/pulls/234/comments","review_comment_url":"https://api.github.com/repos/hackedu/hackedu/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hackedu/hackedu/issues/234/comments","statuses_url":"https://api.github.com/repos/hackedu/hackedu/statuses/74b607cf93d15f0af6e9e3e5de7f6863fb05030a","head":{"label":"hackedu:jon-remote-control","ref":"jon-remote-control","sha":"74b607cf93d15f0af6e9e3e5de7f6863fb05030a","user":{"login":"hackedu","id":5633654,"avatar_url":"https://avatars.githubusercontent.com/u/5633654?v=3","gravatar_id":"","url":"https://api.github.com/users/hackedu","html_url":"https://github.com/hackedu","followers_url":"https://api.github.com/users/hackedu/followers","following_url":"https://api.github.com/users/hackedu/following{/other_user}","gists_url":"https://api.github.com/users/hackedu/gists{/gist_id}","starred_url":"https://api.github.com/users/hackedu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hackedu/subscriptions","organizations_url":"https://api.github.com/users/hackedu/orgs","repos_url":"https://api.github.com/users/hackedu/repos","events_url":"https://api.github.com/users/hackedu/events{/privacy}","received_events_url":"https://api.github.com/users/hackedu/received_events","type":"Organization","site_admin":false},"repo":{"id":33744138,"name":"hackedu","full_name":"hackedu/hackedu","owner":{"login":"hackedu","id":5633654,"avatar_url":"https://avatars.githubusercontent.com/u/5633654?v=3","gravatar_id":"","url":"https://api.github.com/users/hackedu","html_url":"https://github.com/hackedu","followers_url":"https://api.github.com/users/hackedu/followers","following_url":"https://api.github.com/users/hackedu/following{/other_user}","gists_url":"https://api.github.com/users/hackedu/gists{/gist_id}","starred_url":"https://api.github.com/users/hackedu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hackedu/subscriptions","organizations_url":"https://api.github.com/users/hackedu/orgs","repos_url":"https://api.github.com/users/hackedu/repos","events_url":"https://api.github.com/users/hackedu/events{/privacy}","received_events_url":"https://api.github.com/users/hackedu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hackedu/hackedu","description":"Start a coding club at your school.","fork":false,"url":"https://api.github.com/repos/hackedu/hackedu","forks_url":"https://api.github.com/repos/hackedu/hackedu/forks","keys_url":"https://api.github.com/repos/hackedu/hackedu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hackedu/hackedu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hackedu/hackedu/teams","hooks_url":"https://api.github.com/repos/hackedu/hackedu/hooks","issue_events_url":"https://api.github.com/repos/hackedu/hackedu/issues/events{/number}","events_url":"https://api.github.com/repos/hackedu/hackedu/events","assignees_url":"https://api.github.com/repos/hackedu/hackedu/assignees{/user}","branches_url":"https://api.github.com/repos/hackedu/hackedu/branches{/branch}","tags_url":"https://api.github.com/repos/hackedu/hackedu/tags","blobs_url":"https://api.github.com/repos/hackedu/hackedu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hackedu/hackedu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hackedu/hackedu/git/refs{/sha}","trees_url":"https://api.github.com/repos/hackedu/hackedu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hackedu/hackedu/statuses/{sha}","languages_url":"https://api.github.com/repos/hackedu/hackedu/languages","stargazers_url":"https://api.github.com/repos/hackedu/hackedu/stargazers","contributors_url":"https://api.github.com/repos/hackedu/hackedu/contributors","subscribers_url":"https://api.github.com/repos/hackedu/hackedu/subscribers","subscription_url":"https://api.github.com/repos/hackedu/hackedu/subscription","commits_url":"https://api.github.com/repos/hackedu/hackedu/commits{/sha}","git_commits_url":"https://api.github.com/repos/hackedu/hackedu/git/commits{/sha}","comments_url":"https://api.github.com/repos/hackedu/hackedu/comments{/number}","issue_comment_url":"https://api.github.com/repos/hackedu/hackedu/issues/comments{/number}","contents_url":"https://api.github.com/repos/hackedu/hackedu/contents/{+path}","compare_url":"https://api.github.com/repos/hackedu/hackedu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hackedu/hackedu/merges","archive_url":"https://api.github.com/repos/hackedu/hackedu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hackedu/hackedu/downloads","issues_url":"https://api.github.com/repos/hackedu/hackedu/issues{/number}","pulls_url":"https://api.github.com/repos/hackedu/hackedu/pulls{/number}","milestones_url":"https://api.github.com/repos/hackedu/hackedu/milestones{/number}","notifications_url":"https://api.github.com/repos/hackedu/hackedu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hackedu/hackedu/labels{/name}","releases_url":"https://api.github.com/repos/hackedu/hackedu/releases{/id}","created_at":"2015-04-10T18:28:39Z","updated_at":"2015-09-30T22:25:04Z","pushed_at":"2015-10-01T05:47:33Z","git_url":"git://github.com/hackedu/hackedu.git","ssh_url":"git@github.com:hackedu/hackedu.git","clone_url":"https://github.com/hackedu/hackedu.git","svn_url":"https://github.com/hackedu/hackedu","homepage":"","size":184468,"stargazers_count":22,"watchers_count":22,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":43,"forks":34,"open_issues":43,"watchers":22,"default_branch":"master"}},"base":{"label":"hackedu:master","ref":"master","sha":"4510763ebf41dc915f1248cbcfcc7822de7433ec","user":{"login":"hackedu","id":5633654,"avatar_url":"https://avatars.githubusercontent.com/u/5633654?v=3","gravatar_id":"","url":"https://api.github.com/users/hackedu","html_url":"https://github.com/hackedu","followers_url":"https://api.github.com/users/hackedu/followers","following_url":"https://api.github.com/users/hackedu/following{/other_user}","gists_url":"https://api.github.com/users/hackedu/gists{/gist_id}","starred_url":"https://api.github.com/users/hackedu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hackedu/subscriptions","organizations_url":"https://api.github.com/users/hackedu/orgs","repos_url":"https://api.github.com/users/hackedu/repos","events_url":"https://api.github.com/users/hackedu/events{/privacy}","received_events_url":"https://api.github.com/users/hackedu/received_events","type":"Organization","site_admin":false},"repo":{"id":33744138,"name":"hackedu","full_name":"hackedu/hackedu","owner":{"login":"hackedu","id":5633654,"avatar_url":"https://avatars.githubusercontent.com/u/5633654?v=3","gravatar_id":"","url":"https://api.github.com/users/hackedu","html_url":"https://github.com/hackedu","followers_url":"https://api.github.com/users/hackedu/followers","following_url":"https://api.github.com/users/hackedu/following{/other_user}","gists_url":"https://api.github.com/users/hackedu/gists{/gist_id}","starred_url":"https://api.github.com/users/hackedu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hackedu/subscriptions","organizations_url":"https://api.github.com/users/hackedu/orgs","repos_url":"https://api.github.com/users/hackedu/repos","events_url":"https://api.github.com/users/hackedu/events{/privacy}","received_events_url":"https://api.github.com/users/hackedu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hackedu/hackedu","description":"Start a coding club at your school.","fork":false,"url":"https://api.github.com/repos/hackedu/hackedu","forks_url":"https://api.github.com/repos/hackedu/hackedu/forks","keys_url":"https://api.github.com/repos/hackedu/hackedu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hackedu/hackedu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hackedu/hackedu/teams","hooks_url":"https://api.github.com/repos/hackedu/hackedu/hooks","issue_events_url":"https://api.github.com/repos/hackedu/hackedu/issues/events{/number}","events_url":"https://api.github.com/repos/hackedu/hackedu/events","assignees_url":"https://api.github.com/repos/hackedu/hackedu/assignees{/user}","branches_url":"https://api.github.com/repos/hackedu/hackedu/branches{/branch}","tags_url":"https://api.github.com/repos/hackedu/hackedu/tags","blobs_url":"https://api.github.com/repos/hackedu/hackedu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hackedu/hackedu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hackedu/hackedu/git/refs{/sha}","trees_url":"https://api.github.com/repos/hackedu/hackedu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hackedu/hackedu/statuses/{sha}","languages_url":"https://api.github.com/repos/hackedu/hackedu/languages","stargazers_url":"https://api.github.com/repos/hackedu/hackedu/stargazers","contributors_url":"https://api.github.com/repos/hackedu/hackedu/contributors","subscribers_url":"https://api.github.com/repos/hackedu/hackedu/subscribers","subscription_url":"https://api.github.com/repos/hackedu/hackedu/subscription","commits_url":"https://api.github.com/repos/hackedu/hackedu/commits{/sha}","git_commits_url":"https://api.github.com/repos/hackedu/hackedu/git/commits{/sha}","comments_url":"https://api.github.com/repos/hackedu/hackedu/comments{/number}","issue_comment_url":"https://api.github.com/repos/hackedu/hackedu/issues/comments{/number}","contents_url":"https://api.github.com/repos/hackedu/hackedu/contents/{+path}","compare_url":"https://api.github.com/repos/hackedu/hackedu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hackedu/hackedu/merges","archive_url":"https://api.github.com/repos/hackedu/hackedu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hackedu/hackedu/downloads","issues_url":"https://api.github.com/repos/hackedu/hackedu/issues{/number}","pulls_url":"https://api.github.com/repos/hackedu/hackedu/pulls{/number}","milestones_url":"https://api.github.com/repos/hackedu/hackedu/milestones{/number}","notifications_url":"https://api.github.com/repos/hackedu/hackedu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hackedu/hackedu/labels{/name}","releases_url":"https://api.github.com/repos/hackedu/hackedu/releases{/id}","created_at":"2015-04-10T18:28:39Z","updated_at":"2015-09-30T22:25:04Z","pushed_at":"2015-10-01T05:47:33Z","git_url":"git://github.com/hackedu/hackedu.git","ssh_url":"git@github.com:hackedu/hackedu.git","clone_url":"https://github.com/hackedu/hackedu.git","svn_url":"https://github.com/hackedu/hackedu","homepage":"","size":184468,"stargazers_count":22,"watchers_count":22,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":43,"forks":34,"open_issues":43,"watchers":22,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hackedu/hackedu/pulls/234"},"html":{"href":"https://github.com/hackedu/hackedu/pull/234"},"issue":{"href":"https://api.github.com/repos/hackedu/hackedu/issues/234"},"comments":{"href":"https://api.github.com/repos/hackedu/hackedu/issues/234/comments"},"review_comments":{"href":"https://api.github.com/repos/hackedu/hackedu/pulls/234/comments"},"review_comment":{"href":"https://api.github.com/repos/hackedu/hackedu/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hackedu/hackedu/pulls/234/commits"},"statuses":{"href":"https://api.github.com/repos/hackedu/hackedu/statuses/74b607cf93d15f0af6e9e3e5de7f6863fb05030a"}}}}