title
15.1: What is Node.js? - Twitter Bot Tutorial

description
This video covers the basics of Node.js. What is Node.js? What is server-side programming? What might you use it for and how do you get started? Basic unix commands and working with terminal are covered. Code: https://thecodingtrain.com/tracks/mastodon/mastodon/what-is-node-js References: 🔗 Darius Kazemi Eyeo talk: https://vimeo.com/112289364 🔗 Twitter Bots: http://air.decontextualize.com/twitterbot/ 📰 NY Magazine on bots: http://nymag.com/following/2015/11/12-weirdest-funniest-smartest-twitter-bots.html Videos: 🚂 Mastodon Playlist: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6byiVX7_Z1rclitVhMBmNFQ 🚂 Data and APIs in Javascript Track: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YxDKpFzf_2D84p0cyk4T7X Timestamps: 1:35 Servers 4:35 Node.js - a framework for writing a custom server 5:14 Twitter API 7:47 How to use Node on your local computer 8:35 Issuing commands on the terminal 11:04 Using Node in the terminal 12:03 Running small programs 13:54 Connecting with the Twitter API Editing by Mathieu Blanchette Animations by Jason Heglund Music from Epidemic Sound 🚂 Website: http://thecodingtrain.com/ 👾 Share Your Creation! https://thecodingtrain.com/guides/passenger-showcase-guide 🚩 Suggest Topics: https://github.com/CodingTrain/Suggestion-Box 💡 GitHub: https://github.com/CodingTrain 💬 Discord: https://thecodingtrain.com/discord 💖 Membership: http://youtube.com/thecodingtrain/join 🛒 Store: https://standard.tv/codingtrain 🖋️ Twitter: https://twitter.com/thecodingtrain 📸 Instagram: https://www.instagram.com/the.coding.train/ 🎥 Coding Challenges: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH 🎥 Intro to Programming: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA 🔗 p5.js: https://p5js.org 🔗 p5.js Web Editor: https://editor.p5js.org/ 🔗 Processing: https://processing.org 📄 Code of Conduct: https://github.com/CodingTrain/Code-of-Conduct This description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecodingtrain.com/issues/new #twitter #bot #nodejs

detail
{'title': '15.1: What is Node.js? - Twitter Bot Tutorial', 'heatmap': [{'end': 768.332, 'start': 711.007, 'weight': 0.766}], 'summary': 'This tutorial series introduces creating a twitter bot with node.js, covering technical aspects, use of local server for javascript code, p5.js for web animations, interaction with web servers, challenges of using twitter api, and getting started with node.js for connecting to twitter api and server programming.', 'chapters': [{'end': 175.937, 'segs': [{'end': 28.699, 'src': 'embed', 'start': 1.482, 'weight': 0, 'content': [{'end': 10.505, 'text': 'Hello, This video is the first in a series of videos where the ultimate goal at the end of this video is to make a Twitter bot that posts images to Twitter.', 'start': 1.482, 'duration': 9.023}, {'end': 15.447, 'text': "Now, why you might do this, what's the point of making a Twitter bot, what are Twitter bots? It's kind of a..", 'start': 10.545, 'duration': 4.902}, {'end': 21.552, 'text': "a big topic and we'll sort of get to that discussion along the way.", 'start': 17.047, 'duration': 4.505}, {'end': 28.699, 'text': "I'll put some links in this video's description of some articles and some examples that you might look at to think about making Twitter bots,", 'start': 21.892, 'duration': 6.807}], 'summary': 'First in a series to create a twitter bot posting images.', 'duration': 27.217, 'max_score': 1.482, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU1482.jpg'}, {'end': 164.812, 'src': 'embed', 'start': 141.138, 'weight': 1, 'content': [{'end': 148.623, 'text': "All of that has, in fact, been happening if you're writing JavaScript code, making web pages on your laptop.", 'start': 141.138, 'duration': 7.485}, {'end': 154.266, 'text': 'Your laptop, using the p5.js editor, is running a little server to simulate what might happen.', 'start': 148.663, 'duration': 5.603}, {'end': 157.188, 'text': 'should you ever deploy or upload your stuff somewhere else?', 'start': 154.266, 'duration': 2.922}, {'end': 162.051, 'text': 'And so if you have your own website, like my website is Schiffman.', 'start': 157.568, 'duration': 4.483}, {'end': 164.812, 'text': 'It really needs to be redesigned and fixed up.', 'start': 162.791, 'duration': 2.021}], 'summary': 'Javascript code running on laptop simulates website behavior using p5.js editor.', 'duration': 23.674, 'max_score': 141.138, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU141138.jpg'}], 'start': 1.482, 'title': 'Creating a twitter bot with node.js', 'summary': 'Introduces the goal of creating a twitter bot using node.js, emphasizing technical aspects and the use of a local server for running javascript code, along with implications and applications of twitter bots.', 'chapters': [{'end': 175.937, 'start': 1.482, 'title': 'Creating a twitter bot with node.js', 'summary': 'Introduces the goal of creating a twitter bot using node.js, focusing on the technical aspects and the use of a server for running javascript code locally, while also hinting at the significance and applications of twitter bots.', 'duration': 174.455, 'highlights': ['The chapter introduces the goal of creating a Twitter bot using Node.js The ultimate goal is to make a Twitter bot that posts images to Twitter.', 'The use of a server for running JavaScript code locally is explained The p5.js editor runs a server to simulate the behavior of deploying web content, providing a local environment for JavaScript code and web pages.', 'The significance and applications of Twitter bots are briefly mentioned The video hints at the importance and potential use cases of Twitter bots, setting the stage for further exploration in the series.']}], 'duration': 174.455, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU1482.jpg', 'highlights': ['The ultimate goal is to make a Twitter bot that posts images to Twitter.', 'The p5.js editor runs a server to simulate the behavior of deploying web content, providing a local environment for JavaScript code and web pages.', 'The video hints at the importance and potential use cases of Twitter bots, setting the stage for further exploration in the series.']}, {'end': 357.968, 'segs': [{'end': 223.272, 'src': 'embed', 'start': 200.507, 'weight': 0, 'content': [{'end': 209.109, 'text': 'But in this case with p5.js running it locally or uploading the thing you made with p5.js to your own web server.', 'start': 200.507, 'duration': 8.602}, {'end': 216.01, 'text': "the only thing that's happening on the web server that the web server is doing is delivering static content.", 'start': 209.109, 'duration': 6.901}, {'end': 217.911, 'text': "It's delivering an HTML file.", 'start': 216.331, 'duration': 1.58}, {'end': 219.551, 'text': "It's delivering a JavaScript file.", 'start': 218.191, 'duration': 1.36}, {'end': 220.751, 'text': "It's delivering some images.", 'start': 219.591, 'duration': 1.16}, {'end': 223.272, 'text': "It's delivering some styles, some CSS.", 'start': 220.871, 'duration': 2.401}], 'summary': 'Using p5.js involves delivering static content like html, javascript, images, and css from a web server.', 'duration': 22.765, 'max_score': 200.507, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU200507.jpg'}, {'end': 295.443, 'src': 'embed', 'start': 247.06, 'weight': 2, 'content': [{'end': 256.082, 'text': 'a little server program runs and it connects to their massive, crazy database of the entire universe of thought and information,', 'start': 247.06, 'duration': 9.022}, {'end': 258.702, 'text': 'and it processes it and figures out what to give back to you.', 'start': 256.082, 'duration': 2.62}, {'end': 261.363, 'text': "That's a little server program that's running on Google servers.", 'start': 258.963, 'duration': 2.4}, {'end': 265.665, 'text': 'If you log into your online banking and put in your username and password,', 'start': 261.944, 'duration': 3.721}, {'end': 271.667, 'text': "a little server program has to read that figure out if it's the right username and password and give you back your account balance that sort of thing.", 'start': 265.665, 'duration': 6.002}, {'end': 286.517, 'text': 'So Node is a framework, a JavaScript framework for writing Custom, I would say, servers.', 'start': 272.027, 'duration': 14.49}, {'end': 288.818, 'text': 'Now the thing is even though so.', 'start': 286.517, 'duration': 2.301}, {'end': 295.443, 'text': "so there's a lot that you could do here, And I know in terms of like writing your own web server.", 'start': 288.818, 'duration': 6.625}], 'summary': "Google's server program processes massive amounts of data. node is a framework for writing custom servers.", 'duration': 48.383, 'max_score': 247.06, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU247060.jpg'}, {'end': 341.283, 'src': 'embed', 'start': 318.126, 'weight': 4, 'content': [{'end': 328.073, 'text': "Word, Nick, New York Times, Giphy, all these are APIs that in previous videos I've shown you how to connect to from p5.js itself.", 'start': 318.126, 'duration': 9.947}, {'end': 335.398, 'text': 'But Twitter is a special sort of API that requires something called OAuth.', 'start': 329.173, 'duration': 6.225}, {'end': 336.999, 'text': 'I think of that as like, oh my god.', 'start': 335.738, 'duration': 1.261}, {'end': 338.382, 'text': 'to authenticate.', 'start': 337.642, 'duration': 0.74}, {'end': 341.283, 'text': "That's when I see OAuth, I think OAuth.", 'start': 338.602, 'duration': 2.681}], 'summary': "Connecting to various apis from p5.js, including twitter's oauth authentication.", 'duration': 23.157, 'max_score': 318.126, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU318126.jpg'}], 'start': 175.937, 'title': 'P5.js, web server interaction, and node.js for server programming', 'summary': 'Covers the use of p5.js for web animations and its interaction with web servers, emphasizing the minimal role of a web server. it also discusses the significance of server programs, focusing on node.js for writing custom servers and explores challenges of using the twitter api, including the oauth authentication process.', 'chapters': [{'end': 223.272, 'start': 175.937, 'title': 'P5.js and web server interaction', 'summary': 'Discusses how p5.js can be used to create javascript code for web animations, emphasizing the minimal role of a web server in delivering static content like html, javascript, images, and css.', 'duration': 47.335, 'highlights': ['The role of a web server in delivering static content like HTML, JavaScript, images, and CSS for p5.js animations.', 'Usage of p5.js to create JavaScript code for web animations with minimal web server involvement.', 'The exception of Google from the servers involved in delivering static content for p5.js animations.']}, {'end': 357.968, 'start': 225.236, 'title': 'Node.js for server programming', 'summary': 'Discusses the importance of server programs, particularly focusing on node.js as a framework for writing custom servers, and explores the challenges and complexities of using the twitter api, particularly the oauth authentication process.', 'duration': 132.732, 'highlights': ["The chapter emphasizes the significance of server programs and the role they play in processing and delivering information, particularly citing examples of Google's search functionality and online banking operations.", 'The transcript highlights Node.js as a JavaScript framework for writing custom servers, showcasing its relevance in building server programs for various applications, including accessing APIs like the Twitter API.', 'The complexities and challenges associated with using the Twitter API, specifically the OAuth authentication process, are detailed, expressing the frustration and stress it can induce due to its intricate requirements and procedures.']}], 'duration': 182.031, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU175937.jpg', 'highlights': ['Usage of p5.js to create JavaScript code for web animations with minimal web server involvement.', 'The role of a web server in delivering static content like HTML, JavaScript, images, and CSS for p5.js animations.', "The chapter emphasizes the significance of server programs and the role they play in processing and delivering information, particularly citing examples of Google's search functionality and online banking operations.", 'The transcript highlights Node.js as a JavaScript framework for writing custom servers, showcasing its relevance in building server programs for various applications, including accessing APIs like the Twitter API.', 'The complexities and challenges associated with using the Twitter API, specifically the OAuth authentication process, are detailed, expressing the frustration and stress it can induce due to its intricate requirements and procedures.']}, {'end': 911.517, 'segs': [{'end': 384.814, 'src': 'embed', 'start': 358.228, 'weight': 0, 'content': [{'end': 366.589, 'text': 'But ultimately, an answer to dealing with OAuth is, writing your own node application.', 'start': 358.228, 'duration': 8.361}, {'end': 370.051, 'text': 'You must authenticate with your account information.', 'start': 367.23, 'duration': 2.821}, {'end': 373.273, 'text': 'You cannot do that from just the browser directly.', 'start': 370.091, 'duration': 3.182}, {'end': 376.174, 'text': 'A server can do that, however, for you.', 'start': 373.693, 'duration': 2.481}, {'end': 384.814, 'text': 'So if you wanted to connect to Twitter from, camera shut off, if you want to connect to Twitter from Facebook, Lost my train of thought.', 'start': 376.474, 'duration': 8.34}], 'summary': 'Dealing with oauth involves writing your own node application for authentication, as a server is required to connect to twitter from facebook.', 'duration': 26.586, 'max_score': 358.228, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU358228.jpg'}, {'end': 432.501, 'src': 'embed', 'start': 403.291, 'weight': 1, 'content': [{'end': 404.732, 'text': 'Other things you might need a server for.', 'start': 403.291, 'duration': 1.441}, {'end': 407.192, 'text': 'You want to save stuff to a database on a server.', 'start': 404.972, 'duration': 2.22}, {'end': 416.896, 'text': 'If you want to process a massive amount of data and pass that back to your p5.js sketch, you might want to write your own server.', 'start': 407.873, 'duration': 9.023}, {'end': 419.536, 'text': 'If you want to build your own API.', 'start': 417.736, 'duration': 1.8}, {'end': 430.34, 'text': 'an example that I was thinking about the other day is if you wanted to make an exposed information about yourself through an API and you put all these sensors on your body all day that are tracking all sorts of things,', 'start': 419.536, 'duration': 10.804}, {'end': 432.501, 'text': 'Then on your own server, you could expose that.', 'start': 430.56, 'duration': 1.941}], 'summary': 'Use a server to save to a database, process data, build api, and expose personal information through api.', 'duration': 29.21, 'max_score': 403.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU403291.jpg'}, {'end': 532.973, 'src': 'embed', 'start': 501.195, 'weight': 4, 'content': [{'end': 506.898, 'text': "So, once you've downloaded and installed Node, another question opens up, like well, what do you do??", 'start': 501.195, 'duration': 5.703}, {'end': 508.258, 'text': 'How do you run Node??', 'start': 507.178, 'duration': 1.08}, {'end': 509.779, 'text': 'How do you even make anything with Node??', 'start': 508.318, 'duration': 1.461}, {'end': 513.681, 'text': "So this involves using your computer's command line.", 'start': 510.059, 'duration': 3.622}, {'end': 520.583, 'text': 'So on a Mac, there is something called Terminal, and I have it sort of already here.', 'start': 514.601, 'duration': 5.982}, {'end': 522.684, 'text': "I'm inside the terminal.", 'start': 520.604, 'duration': 2.08}, {'end': 524.125, 'text': "I can't see where I am.", 'start': 522.784, 'duration': 1.341}, {'end': 532.973, 'text': "I think I'm touching, am I touching the terminal? Yeah, anyway, this over here, this is the terminal.", 'start': 524.145, 'duration': 8.828}], 'summary': "Introduction to using node involves utilizing the computer's command line such as terminal on a mac.", 'duration': 31.778, 'max_score': 501.195, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU501195.jpg'}, {'end': 772.575, 'src': 'heatmap', 'start': 705.965, 'weight': 2, 'content': [{'end': 710.987, 'text': 'So first of all, Node just lets you run arbitrary JavaScript through the command line.', 'start': 705.965, 'duration': 5.022}, {'end': 714.268, 'text': 'Now, if I want to get out of this, I need to type Control-C, Control-C.', 'start': 711.007, 'duration': 3.261}, {'end': 720.632, 'text': 'Other thing Node lets you do is run small JavaScript programs through the command line.', 'start': 715.268, 'duration': 5.364}, {'end': 723.734, 'text': "So for example, I'm going to use this editor Sublime.", 'start': 720.932, 'duration': 2.802}, {'end': 726.756, 'text': "And I'm going to save this file.", 'start': 724.594, 'duration': 2.162}, {'end': 730.018, 'text': "And I'm going to go to that folder, YouTube code.", 'start': 727.296, 'duration': 2.722}, {'end': 733.46, 'text': "And I'm going to name it as Node 1.", 'start': 730.078, 'duration': 3.382}, {'end': 734.561, 'text': "I'm going to make a folder.", 'start': 733.46, 'duration': 1.101}, {'end': 736.522, 'text': "And then I'm going to say, hello.js.", 'start': 734.581, 'duration': 1.941}, {'end': 742.326, 'text': "So I've now saved a file in that directory called hello.js.", 'start': 738.183, 'duration': 4.143}, {'end': 747.288, 'text': 'Here, by the way, is another command that you might find useful, ls.', 'start': 742.606, 'duration': 4.682}, {'end': 750.43, 'text': 'You can see, oh, list.', 'start': 749.15, 'duration': 1.28}, {'end': 752.251, 'text': 'I have a directory called node1.', 'start': 750.73, 'duration': 1.521}, {'end': 756.174, 'text': "Let's change into that directory and type ls again.", 'start': 752.832, 'duration': 3.342}, {'end': 758.135, 'text': 'And I can see hello.js is there.', 'start': 756.474, 'duration': 1.661}, {'end': 765.93, 'text': 'Now, what if I were to put into this program console.log Hello, YouTube.', 'start': 758.615, 'duration': 7.315}, {'end': 768.332, 'text': "I don't know, I might upload this to video.", 'start': 765.95, 'duration': 2.382}, {'end': 772.575, 'text': 'Hello, arbitrary video website.', 'start': 768.812, 'duration': 3.763}], 'summary': 'Node allows running javascript through command line, creating and running small programs, and managing files and directories.', 'duration': 66.61, 'max_score': 705.965, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU705965.jpg'}, {'end': 904.328, 'src': 'embed', 'start': 874.88, 'weight': 3, 'content': [{'end': 877.543, 'text': 'figure out that you can type Node, that you can enter some JavaScript,', 'start': 874.88, 'duration': 2.663}, {'end': 881.526, 'text': 'that you can run a short little JavaScript program that just spits something back out to the console.', 'start': 877.543, 'duration': 3.983}, {'end': 895.016, 'text': "And in the next video what I'm going to look at is how to use something called NPM Node Package Manager to spin up a larger Node project and use a Twitter package to connect to the Twitter API.", 'start': 881.826, 'duration': 13.19}, {'end': 900.543, 'text': 'OK, so thanks for watching, and see you in the next video.', 'start': 895.777, 'duration': 4.766}, {'end': 904.328, 'text': 'That was me making a rainbow symbol.', 'start': 902.145, 'duration': 2.183}], 'summary': 'Learn how to use node and npm to develop a twitter api project', 'duration': 29.448, 'max_score': 874.88, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU874880.jpg'}], 'start': 358.228, 'title': 'Using node.js to connect to twitter api and getting started with node', 'summary': 'Discusses the need for using node.js to connect to twitter from p5.js, the requirement for a server to authenticate with account information, and potential use cases for building your own server for apis and data processing. it also provides a guide on installing and using node.js locally, including using the terminal to run javascript, executing small programs, and a preview of upcoming topics such as using npm and connecting to the twitter api.', 'chapters': [{'end': 460.039, 'start': 358.228, 'title': 'Using node for twitter api', 'summary': 'Discusses the need for using node.js to connect to twitter from p5.js, the requirement for a server to authenticate with account information, and the potential use cases for building your own server for apis and data processing.', 'duration': 101.811, 'highlights': ["You must authenticate with your account information. A server can do that for you. If you wanted to connect to Twitter from p5.js, what you need is a server program that's serving up your p5.js code and also talking to Twitter for you. And there's some sort of communication thing that's going on there. There's a lot of steps involved.", 'If you want to process a massive amount of data and pass that back to your p5.js sketch, you might want to write your own server. If you want to build your own API.', 'If you wanted to make an exposed information about yourself through an API and you put all these sensors on your body all day that are tracking all sorts of things, Then on your own server, you could expose that. We could write a server that spits out all that information via JSON.']}, {'end': 911.517, 'start': 460.92, 'title': 'Getting started with node', 'summary': 'Provides a guide on installing and using node.js locally, including using the terminal to run javascript, executing small programs, and a preview of upcoming topics such as using npm and connecting to the twitter api.', 'duration': 450.597, 'highlights': ['Node.js allows running arbitrary JavaScript through the command line and executing small JavaScript programs through the command line. Node.js enables running arbitrary JavaScript and executing small JavaScript programs through the command line, offering a real-time console experience similar to the browser console.', 'Upcoming topics include using NPM to spin up a larger Node project and using a Twitter package to connect to the Twitter API. The next video will cover using NPM to create a larger Node project and employing a Twitter package for connecting to the Twitter API, enabling users to perform tasks like posting tweets and retrieving information from Twitter through the command line.', 'Instructions on downloading and installing Node, accessing the command line, and running JavaScript programs are provided, with a preview of using NPM and connecting to the Twitter API in the next video. The chapter offers guidance on downloading, installing Node, accessing the command line, running JavaScript programs, and teases upcoming topics related to using NPM and connecting to the Twitter API in the next video.']}], 'duration': 553.289, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/RF5_MPSNAtU/pics/RF5_MPSNAtU358228.jpg', 'highlights': ['You must authenticate with your account information. A server can do that for you.', 'If you want to process a massive amount of data and pass that back to your p5.js sketch, you might want to write your own server.', 'Node.js allows running arbitrary JavaScript through the command line and executing small JavaScript programs through the command line.', 'Upcoming topics include using NPM to spin up a larger Node project and using a Twitter package to connect to the Twitter API.', 'Instructions on downloading and installing Node, accessing the command line, and running JavaScript programs are provided.']}], 'highlights': ['The ultimate goal is to make a Twitter bot that posts images to Twitter.', 'The p5.js editor runs a server to simulate the behavior of deploying web content, providing a local environment for JavaScript code and web pages.', 'The video hints at the importance and potential use cases of Twitter bots, setting the stage for further exploration in the series.', 'The role of a web server in delivering static content like HTML, JavaScript, images, and CSS for p5.js animations.', "The chapter emphasizes the significance of server programs and the role they play in processing and delivering information, particularly citing examples of Google's search functionality and online banking operations.", 'The transcript highlights Node.js as a JavaScript framework for writing custom servers, showcasing its relevance in building server programs for various applications, including accessing APIs like the Twitter API.', 'The complexities and challenges associated with using the Twitter API, specifically the OAuth authentication process, are detailed, expressing the frustration and stress it can induce due to its intricate requirements and procedures.', 'You must authenticate with your account information. A server can do that for you.', 'If you want to process a massive amount of data and pass that back to your p5.js sketch, you might want to write your own server.', 'Node.js allows running arbitrary JavaScript through the command line and executing small JavaScript programs through the command line.', 'Upcoming topics include using NPM to spin up a larger Node project and using a Twitter package to connect to the Twitter API.', 'Instructions on downloading and installing Node, accessing the command line, and running JavaScript programs are provided.']}