diff --git a/event-description.md b/event-description.md index e5088a7..4e650ab 100644 --- a/event-description.md +++ b/event-description.md @@ -1,11 +1,11 @@ -(From: http://nodejs.eventbrite.com/) - -Ready to learn Node.JS? - -Node Bootcamp is a free event (yep, free, thanks to the awesome Microsoft) for developers and designers who want to learn Node.JS from the ground up with hands-on instruction from Node experts at Microsoft and Cloud9. No prior Node experience is necessary to attend. - -At Node Bootcamp you.ll learn how to build your first Node application from scratch, how to work with popular Node.JS development tools and editors, how to work with popular 3rd party Node frameworks like Express and Socket.IO, and how to deploy your applications to production hosting environments. - -We only have capacity for 50 people and we expect this event to fill up fast. Please only RSVP if you know you will be able to attend. - +(From: http://nodela-esli.eventbrite.com/) + +Ready to learn Node.JS? + +Node Bootcamp is a free event (yep, free, thanks to the awesome Microsoft) for developers and designers who want to learn Node.JS from the ground up with hands-on instruction from Node experts at Microsoft and experts from the community. No prior Node experience is necessary to attend. + +At Node Bootcamp you'll learn how to build your first Node application from scratch, how to work with popular Node.JS development tools and editors, how to work with popular 3rd party Node frameworks like Express and Socket.IO, and how to deploy your applications to production hosting environments. + +We only have capacity for 50 people and we expect this event to fill up fast. Please only RSVP if you know you will be able to attend. + Breakfast, lunch, and snacks will be provided. \ No newline at end of file diff --git a/lessonplan.md b/lessonplan.md index 0933a0a..75df7e1 100644 --- a/lessonplan.md +++ b/lessonplan.md @@ -1,122 +1,123 @@ -## Node Bootcamp Lesson Plan - -1. __Hour 1: Introduction to Node.JS__ - * "Hello World" from Azure - * How to set up an Azure account - * How to configure Cloud9 to deploy to Azure - * Deploy a "Hello World!" - * What is Node and how does it work? - * The Node Event Loop - * JavaScript and Node - * JavaScript primer - * Objects and variables - * The JavaScript typing system - * Functions - * JavaScript event model and callbacks - * Closures and passing arguments - * Node.JS patterns for functions - * Creating Node projects - * Hello World - * What a Node project looks like in the filesystem - * Node modules - * Introduction to modules - * Writing your own module - * Using Node Package Manager (npm) - * Package.json - -2. __Hour 2: Node and Web Applications__ - * HTTP and Node - * Ports and process.env.PORT - * Responding to requests - * Response object - * Content types - * Working with the filesystem - * Reading files - * Sending files in response objects - * Caching - * File watchers - * A Modern Application Framework - * Recap on previous lessons - * Requirements for modern applications - * Example of a modern app - * Node.js enables concurrency - * Socket.io: A Primer - * Why use Socket.io? - * Creating a connection between client and server - * Sending data to the client - * Example application - -3. __Hour 3: Building Real Web Applications with Node__ - * Saving Files - * Overview of Windows Azure Blob Storage - * Saving files to Blob Storage - * Getting files from Blob Storage - * Working with a Database - * Overview of Windows Azure Table Storage - * Using Azure Table Storage in Node.JS - * Saving records - * Looking up a specific key - * Queries - * Updating records - * Working with Cookies - * What are cookies? - * Setting cookie values - * Getting cookie values - * Deleting cookies - -4. __Optional: Socket.IO Breakout Session__ - * What is Socket.IO? - * Introduction to WebSockets and Server-push - * Socket.IO scenarios - * Socket.IO overview - * Server-side "Hello World" - * Client-side "Hello World" - * Socket.IO 101 - * Opening anc closing connections - * Broadcasting (to everyone) - * Broadcasting to groups - -5. __Optional: Express Breakout Session__ - * What is Express? - * Introduction to MVC - * Connect Middleware - * Getting Started with Express - * Installing Express - * Scaffolding Express applications - * Express project structure - * Routing - * Introduction to routes - * Handling HTTP verbs - * Writing route handlers - * Passing route variables - * Creating route modules - * Creating Views - * Introduction to Jade - * Basic rules - * Working with variables - * Working with conditionals - * Iterating over collections - * Creating a layout - * Creating a partial - * Creating a view - * Referencing a view from inside a route handler - * Working with the Response object - * Setting response headers - * Passing local variables to views - * Passing objects back to views - * Creating Redirects - * Sending downloadable files - * Working with the Request object - * Parsing incoming arguments with Request.Param - * Working with sessions - * Working with the Request.Flash object - * Express Extras - * Dynamic view helpers - * App.param interceptors - * Catch-all routes - * Creating real data models with Azure Table Storage - * How table storage works - * How to install the Azure npm module - * Connecting to your table storage account - * Writing a real table storage model - * Integrating your model with route handlers in Express \ No newline at end of file +## Node Bootcamp Lesson Plan + +1. __Hour 1: Introduction to Node.JS__ + * "Hello World" from Azure + * How to set up an Azure account + * Deploy a "Hello World!" + * What is Node and how does it work? + * The Node Event Loop + * JavaScript and Node + * JavaScript primer + * Objects and variables + * The JavaScript typing system + * Functions + * JavaScript event model and callbacks + * Closures and passing arguments + * Node.JS patterns for functions + * Creating Node projects + * Hello World + * What a Node project looks like in the filesystem + * Node modules + * Introduction to modules + * Writing your own module + * Using Node Package Manager (npm) + * Package.json + +2. __Hour 2: Node and Web Applications__ + * HTTP and Node + * Ports and process.env.PORT + * Responding to requests + * Response object + * Content types + * Working with the filesystem + * Reading files + * Sending files in response objects + * Caching + * File watchers + * A Modern Application Framework + * Recap on previous lessons + * Requirements for modern applications + * Example of a modern app + * Node.js enables concurrency + * Socket.io: A Primer + * Why use Socket.io? + * Creating a connection between client and server + * Sending data to the client + * Example application + +3. __Hour 3: Building Real Web Applications with Node__ + * Saving Files + * Overview of Windows Azure Blob Storage + * Saving files to Blob Storage + * Getting files from Blob Storage + * Working with a Database + * Overview of MongoDB + * Using MongoDB in Node.JS + * Saving records + * Looking up a specific key + * Queries + * Updating records + * Working with Cookies + * What are cookies? + * Setting cookie values + * Getting cookie values + * Deleting cookies + +4. __Optional: Socket.IO Breakout Session__ + * What is Socket.IO? + * Introduction to WebSockets and Server-push + * Socket.IO scenarios + * Socket.IO overview + * Server-side "Hello World" + * Client-side "Hello World" + * Socket.IO 101 + * Opening anc closing connections + * Broadcasting (to everyone) + * Broadcasting to groups + +5. __Optional: Express Breakout Session__ + * What is Express? + * Introduction to MVC + * Connect Middleware + * Getting Started with Express + * Installing Express + * Scaffolding Express applications + * Express project structure + * Routing + * Introduction to routes + * Handling HTTP verbs + * Writing route handlers + * Passing route variables + * Creating route modules + * Creating Views + * Introduction to Jade + * Basic rules + * Working with variables + * Working with conditionals + * Iterating over collections + * Creating a layout + * Creating a partial + * Creating a view + * Referencing a view from inside a route handler + * Working with the Response object + * Setting response headers + * Passing local variables to views + * Passing objects back to views + * Creating Redirects + * Sending downloadable files + * Working with the Request object + * Parsing incoming arguments with Request.Param + * Working with sessions + * Working with the Request.Flash object + * Express Extras + * Dynamic view helpers + * App.param interceptors + * Catch-all routes + * Creating real data models with Azure Table Storage + * How table storage works + * How to install the Azure npm module + * Connecting to your table storage account + * Writing a real table storage model + * Integrating your model with route handlers in Express + + \ No newline at end of file diff --git a/package.json b/package.json index 239db92..ad40603 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,10 @@ , "dependencies": { "cookies":"0.2.1", "slang":"0.2.0", - "azure":"0.5.1", + "azure":"0.7.0", "formidable":"1.0.9", "querystring":"0.1.0", "socket.io":"0.8.7", "node-uuid":"1.3.3" } -} \ No newline at end of file +} diff --git a/readme.md b/readme.md index 1c9ab13..7105b4b 100644 --- a/readme.md +++ b/readme.md @@ -60,10 +60,10 @@ Here's what you can expect to learn at Node Bootcamp: * Saving files to Blob Storage * Getting files from Blob Storage * Working with a Database - * Overview of Windows Azure Table Storage - * Using Azure Table Storage in Node.JS - * Azure Table Storage Entity Conventions - * Creating a strongly-typed data model for Table Storage + * Overview of MongoDB + * Using MongoDB in Node.JS + * MongoDB Entity Conventions + * Creating a strongly-typed data model for MongoDB * Saving records * Looking up a specific key * Queries @@ -78,7 +78,7 @@ Here's what you can expect to learn at Node Bootcamp: ### Tools Here are some of the tools and platforms we will be using throughout Node bootcamp: -* [Cloud9 IDE](http://c9.io/ "Cloud9 IDE") +* [Sublime Text](http://www.sublimetext.com/ "Sublime Text") * [Windows Azure](http://windows.azure.com/ "Windows Azure Console") * [Windows Azure SDK for Node.JS](https://github.com/WindowsAzure/azure-sdk-for-node "Windows Azure SDK for Node.JS") @@ -94,10 +94,10 @@ Here's what the schedule looks like: ### Upcoming Events +Here's our schedule for our upcoming Node Bootcamp events! -1. April 21, 2012 MSFT SVC, Mountain View, CA **[register](http://nodejsatmicrosoftsvc.eventbrite.com/)** - -2. April 28, 2012 Gangplank, Phoenix, AZ Coming Soon! +1. Feb 23, 2013 Coloft, Santa Monica, CA **[register](http://nodela-esli.eventbrite.com/)** +2. March 30, 2012 StartupCity, Seattle, WA **[register](nodeseattle-esli.eventbrite.com/)** ### Additional Resources diff --git a/sessions/hour0/GettingStarted.md b/sessions/hour0/GettingStarted.md new file mode 100644 index 0000000..7c9bd41 --- /dev/null +++ b/sessions/hour0/GettingStarted.md @@ -0,0 +1,87 @@ +Getting Started +========================== + +You're going to need a couple of things to get set up to follow along and start to build your very first Node.JS web app. There are obviously a plethora of alternatives to choose from, but we have listed tools that we love and have found useful. + + +CODING +---------------------- + +You are going to need to need a good tool to do the actual coding. We recommend using Sublime Text 2. Here're the direct download links: + +* [download for OS X](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1.dmg "Sublime Text 2 for Mac") + +* [download for PC](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1%20Setup.exe "Sublime Text 2 for PC") + +For PC users who loke to work with a GUI (Graphic User Interface) development tool, we highly recommend WebMatrix 2 from Microsoft. + +* [WebMatrix 2](http://www.microsoft.com/web/webmatrix/ "WebMatrix 2") + + +NODE.JS RUNTIME +--------------------- +You will be using your laptop or desktop to do the majority of the coding and testing it periodically locally on your machine before deploying it to the cloud. This means that your machine will need the files needed to execute and run Node.js files locally. Here're the direct download links: + +* [download for OS X](http://nodejs.org/dist/v0.8.19/node-v0.8.19.pkg "Sublime Text 2 for Mac") + +* [download for PC](http://nodejs.org/dist/v0.8.19/node-v0.8.19-x86.msi "Node.js Windows Installer") + +(Go to Nodejs.org for other downloads, such as the 64-bit version.) + + +DEPLOYING YOUR PROJECT +------------------------- +Obviously, your Node.js project is a web app, and a web app will need to be deployed to the cloud. In this boot camp, we are using Windows Azure from Microsoft. In order to deploy to Azure, you will need an Azure Subscription. There are several ways to get an Azure subscription: + +* MSDN Subscription - If you have an active MSDN subscription, you have a year of free Azure. + +* BizSpark - If you have BizSpark, you have MSDN. In fact, you have 3 years of free MSDN through BizSpark. If you are a privately-held startup, under 5 years old, and making less than $1m in revenue, you qualify for BizSpark. Ask your instructor about this. + +* 90-day trial - You can go to Azure.com and sign up for a trial account. Direct download links: + +[Windows Azure Free Trial](http://www.windowsazure.com/en-us/pricing/free-trial/ "90-day free trial") + +* special event passes - For this boot camp, we have prepared special event passes that goes anywhere from 7 to 30 days. Obviously, this is not meant to be a long-term subscription, but meant for learning or demo purposes. Your instructor should have enough of these passes. All you have to do is go to the Azure portal and log in with the LiveID credentials we give you. + + +SDK - SOFTWARE DEVELOPMENT KIT +--------------------------------- +In order for your Node.js app to be deployed from your machine to Windows Azure, you are going to need the Node.js SDK for Windows Azure. Here's the direct download links: + +* [download for OS X](http://go.microsoft.com/fwlink/?LinkId=253471&clcid=0x409 "Azure SDK for Mac") + +* [download for PC](http://go.microsoft.com/fwlink/?LinkId=254279&clcid=0x409 "Azure SDK for Windows") + + +MANAGING AND STORING YOUR PROJECTS +---------------------- + +GIT is a distributed *revision control* and source code amangemenr system. It helps you manage your project, and does it well. + +* [Read about Version Control](http://git-scm.com/book/en/Getting-Started-About-Version-Control "Verson control") + + +You will need to install GIT into your development machine: + +* [download for OS X](http://git-scm.com/download/mac "Azure SDK for Mac") + +* [download for PC](http://git-scm.com/download/win "Azure SDK for Windows") + +PC Users: During the installation of Git, choose the option that states "Run Git from the Windows Command Prompt". + +If you do not already have a GitHub account, we strongly recommend you create one. GitHub is a web-based hosting for your project. It's free and it integrates with a lot of development tools. Check out the walkthrough on their main page for a quick orientation. + +* [GitHub website](https://github.com/ "GitHub Homepage") + +GitHub has some really nifty tools you can install on your laptop to help you manage your project files. We highly recommend them. Here're the direct download links: + + +* [download for OS X (for 10.7+)](https://central.github.com/mac/latest "GitHub for Mac") + +* [download for PC](http://github-windows.s3.amazonaws.com/GitHubSetup.exe "GitHub for Windows") + + + + + + diff --git a/sessions/hour0/README.md b/sessions/hour0/README.md index 98eb119..182b656 100644 --- a/sessions/hour0/README.md +++ b/sessions/hour0/README.md @@ -1,12 +1,16 @@ Node.JS vs Other Languages -======================== +========================== -Most developers initially struggle with the asynchronous nature of Node.JS, -ecause we're all trained to think like a procedural programmer where we expect a +Most developers initially struggle with the *asynchronous* nature of Node.JS, +because we're all trained to think like a procedural programmer where we expect a function to return a result to us before we move onto the next block of code our program needs to execute. -Node.JS is fundamentally different in this model, and we'd like to illustrate it +Example: + +Ask for "A" -> Get "A" -> Ask for "B" -> Get "B"... + +Node.JS is fundamentally different than this model, and we'd like to illustrate it by way of example using the same program written in a few common programming languages that are found in a lot of moden web development stacks: @@ -52,14 +56,18 @@ fs.readFile(filePath, "utf-8", function(err, data) { So what's so different about Node.JS? -------------------------------------------- -Notice how we have the results of our fs.readFile command wrapped in an anonymous -function and the rest of the business logic conditionally writing to console is +Notice that in the Node.JS falvor, we have the results of our fs.readFile command wrapped in an *anonymous function* and the rest of the business logic conditionally writing to console is contained therein? +* [Read: What is Anonymous Functions?](http://en.wikipedia.org/wiki/Function_literals "Wikipedia") + This is because *reading to the fileSystem is a non-blocking asynchronous operation in Node.JS* - the next block of code immediately after that fs.readFile call would be executed by the Node.JS runtime before the contents of the file were received by the program. -So instead of doing a standard procedural call, we wrap everything into a callback -that gets executed by the server once the read operation is finished. \ No newline at end of file +So instead of doing a standard procedural call, we wrap everything into a *callback* +that gets executed by the server once the read operation is finished. + +* [Read: What is Callback?](http://en.wikipedia.org/wiki/Callback "Wikipedia") + diff --git a/sessions/hour1/00_hello-world-from-azure/readme.md b/sessions/hour1/00_hello-world-from-azure/readme.md index 0c6de6c..a1316e1 100644 --- a/sessions/hour1/00_hello-world-from-azure/readme.md +++ b/sessions/hour1/00_hello-world-from-azure/readme.md @@ -1,95 +1,33 @@ "Hello World" from Azure ======================== -All of our instruction today will be done in the Cloud9 IDE and deployed to Azure. -So, the very first thing you'll need to do is sign up for both of those services. +In observance to tradition, we'll start with a Hello World project, but instead of Hello World, we'll call it Hello Azure. -Step 1: Sign up for your trial Azure account --------------------------------------------- -* See your class instructor for directions on how to sign up for your trial Azure account. -* Visit http://windows.azure.com and make sure that you can sign in. +All of our instruction in this boot camp today will be done with the tools mentioned in Getting Started and deployed to Azure, so let's make sure you've got all the ingredients ready before we start cooking: -Step 2: Sign up for the Cloud9 IDE ----------------------------------- -* Using the same browser that you used to sign in to Windows Azure in Step 1: -* Visit http://c9.io - * Enter in your "Desired username", "Your email", and "Re-enter your email". - * Click "Sign me up". -* Check your email for an email from "info@c9.io" with the Subject line of "Welcome to Cloud9! Please activate your account!" - * Click on the link that looks like this: http://c9.io/activate.html?uid=xxxxx&code=xxxxxx&redirect=%2Fdashboard.html -* You will be sent to an "Activate account" page. - * Enter in your "Password", and "Confirm password" - * Click "ACTIVATE" -* Create a new project: - * Look for the "MY PROJECTS" pane on the left side of your screen. - * Click on the "+" that is pointed to by the "Create a project here" arrow. - * Select the "Create a new project" option. - * Name your project. (We suggest you name it "helloworld". - * Leave the "Project type" set to "Git". - * Click "CREATE". +Checklist +------------ +1. Sublime Text +2. Node.js runtime +3. Azure subscription +4. Node.js SDK for Azure +5. Git -Step 3: Write your "Hello World" in Cloud9! -------------------------------------------- -* Click the green "START EDITING" button. -* If this is your first Cloud9 project, you will be prompted with a "Here are a few pointers to get you started!" dialog. - * Read the text and click on the "click here!" link to see a brief demo. - * This is a short, useful walkthrough, we suggest following it. You'll learn some useful stuff! -* Create a new file named "server.js" - * Click on the "File" menu, select the "New File" option. - * Paste in [this "Hello world" code](https://gist.github.com/1794418). - * Click on the "File" menu, select the "Save" option. - * In the "Save as": box, enter "server.js", then click "Save" -* Run your code! - * Click on the "debug" button. - * Wait a few moments for the "Output" pane to pop up at the bottom of your screen. - * In the output pane, you should see a link that looks like: http://nodebootcamp.xxxxxx.c9.io/ - * Click on that link. - * You should see "Hello world" in your browser! +Optional: +6. GitHub account and GitHub for Mac/PC -Step 4: Deploy to Azure ------------------------ -* Click on the "Deploy" button on the left side of the Cloud9 IDE: -* ![Image of the Deploy button](http://content.screencast.com/users/franusic/folders/Jing/media/671b7cf1-deee-403e-9c4d-e44808afcc35/2012-02-10_1918.png) -* Click on the "+" button. You should see some green text saying "Create a Deploy Server" pointing at it. -* ![Image of "Create a Deploy Server"](http://content.screencast.com/users/franusic/folders/Jing/media/dec9e426-4ad7-43cf-94c0-32c4571c9723/2012-02-10_1921.png) -* On the "Choose type:" menu, select "Windows Azure". -* Click on the green "DOWNLOAD WINDOWS AZURE SETTINGS" button. - * This will open a new window or tab in your browser. - * A file ending in ".publishsettings" should automatically start to download -* ![Image of the Add a deploy target" window](http://content.screencast.com/users/franusic/folders/Jing/media/0067ad35-cd2f-4aee-b4e3-063d4cd75311/2012-02-10_1929.png) -* Switch back to the window or tab where the Cloud9 IDE is running. -* Press the "Choose File" button. -* Select the ".publishsettings" file that was downloaded in the step above. -* Press the green "UPLOAD" button. -* ![What the UPLOAD button looks like](http://content.screencast.com/users/franusic/folders/Jing/media/70151c98-bb61-4c63-9e17-ce281bfb6bce/2012-02-10_1941.png) -* (If you have multiple subscriptions, you'll be prompted to select one) -* Click the "+ Create New" button. -* Give your deployment a name. (We suggest: "nodecamp-" + $your_twitter_handle) -* Change the number of instances to "2" -* Leave all the rest of the settings at their defaults. -* Click the green "CREATE" button. -* (You may be prompted to enter a RDP username and password. If you are, do so.) -* ![What the settings dialog looks like](http://content.screencast.com/users/franusic/folders/Jing/media/11a2a76e-e0dc-42e6-af80-a1f6764b3ef6/2012-02-10_1950.png) -* Wait for the Windows Azure deploy target to say "Active" -* Click on the Windows Azure deploy target. You'll see a fly-out with some options and a big green "DEPLOY" button. -* Click the big green "DEPLOY" button. -* ![What the fly-out looks like](http://content.screencast.com/users/franusic/folders/Jing/media/9398026a-a3d4-4b3b-b038-10e9864c181e/2012-02-10_1957.png) -* You'll be prompted to create "web.config". Click "Yes". -* You'll be prompted to create a "csdef" file. Click "Yes". - * You'll be prompted to select an instance size for the csdef file. Select "Extra small" and click "Create". -* You should see a deploy status with a faint grey spinning gear. - * (You may have to hit "reload" in your browser to get status updates) -* When the deployment finishes (this will take 5-8 minutes). Click on the deploy target, then click on the "Url:" in the flyout. - * (If your followed our naming suggestion above, this Url will look like this: http://nodecamp-xxxxxx.cloudapp.net) -* When you see "Hello World" on your .cloudapp.net url. You're done! -* Hooray! +All set? Let's start cooking :) -See also: -========= +Follow the steps below and when you're done, you tell your friends you have your first live Node.JS website! For the boot camp, we'll walk through this together: + +DIRECTIONS FOR HELLO AZURE +-------------------------- +* [Hello Azure Tutorial](http://tinyurl.com/cmxoahp "Azure SDK for Mac and PC") + + +DIRECTION FOR PC +- Use Windows Azure Powershell for steps 3 onwards, HOWEVER... +- Before you reach step 3 in the tutorial, you may need to add the node.exe to the path. Otherwise you will see a "Node is not a recognized command" error message + +* [adding node to path](http://stackoverflow.com/questions/8768549/node-js-doesnt-recognize-system-path "adding to path") -* Getting started with the Cloud 9 IDE: - * http://support.cloud9ide.com/entries/20583558-lesson-1-creating-a-new-account - * http://support.cloud9ide.com/entries/20548092-lesson-2-creating-a-new-project - * http://support.cloud9ide.com/entries/20640198-lesson-3-writing-a-node-js-hello-world-program -* Connecting Cloud 9 to Windows Azure: - * http://cloud9ide.posterous.com/windows-azure-on-cloud9 \ No newline at end of file diff --git a/sessions/hour1/01_node-explained/readme.md b/sessions/hour1/01_node-explained/readme.md index dac7117..658718f 100644 --- a/sessions/hour1/01_node-explained/readme.md +++ b/sessions/hour1/01_node-explained/readme.md @@ -30,3 +30,7 @@ Node can be broken down into three core technologies: * The next major component of Node is the [CommonJS](http://www.commonjs.org/) module system - it's a standard which allows developers to define modules that can be reused and shared throughout their own applications and others. Without CommonJS' standards we wouldn't have systems like [npm](http://www.npmjs.org/) (Node Package Manager) which allow Node developers to share reusable packages with eachother and provide a standard for handling dependencies in our Node applications. * The final major component of Node is a powerful network I/O library developed by [Joyent](http://www.joyent.com/) called [libuv](https://github.com/joyent/libuv) - this is what handles all of the incoming network connections on both Windows and POSIX-based systems like Linux and OS X. + +#### Resources + +* Node Beginner [Node Beginner](http://www.nodebeginner.org/) \ No newline at end of file diff --git a/sessions/hour1/03_javascript-and-node/readme.md b/sessions/hour1/03_javascript-and-node/readme.md index 5b7879c..a763646 100644 --- a/sessions/hour1/03_javascript-and-node/readme.md +++ b/sessions/hour1/03_javascript-and-node/readme.md @@ -20,13 +20,10 @@ Chrome gets the V8 JavaScript Engine, Webkit gets Squirrelfish, Firefox gets Tra Okay, why do I care? -------------------- -It's important to know that these days, -JavaScript is a powerful and performant language that people use to power large websites. -Since this hasn't always been the case, -expect to encounter people who have misgivings about JavaScript based on poor experices they may have had with JavaScript many years ago. +It's important to know that these days, JavaScript is a powerful and performant language that people use to power large websites. +Since this hasn't always been the case, expect to encounter people who have misgivings about JavaScript based on poor experices they may have had with JavaScript many years ago. -Knowing this little bit of history will also help you understand what V8, namely, Chrome's JavaScript engine. -V8 is also the code that powers the core of Node. +Knowing this little bit of history will also help you understand what V8, namely, Chrome's JavaScript engine. V8 is also the code that powers the core of Node. What is Node? ------------- diff --git a/upcoming-events.md b/upcoming-events.md index 891c212..fc9fb9a 100644 --- a/upcoming-events.md +++ b/upcoming-events.md @@ -1,12 +1,7 @@ # Upcoming Node Bootcamp Events Here's our schedule for our upcoming Node Bootcamp events! -1. March 17, 2012 RocketSpace, San Francisco, CA **[register](http://nodejsatrocketspace.eventbrite.com/)** +1. Feb 23, 2013 Coloft, Santa Monica, CA **[register](http://nodela-esli.eventbrite.com/)** -2. March 24, 2012 Miller Business Innovation Center, Salt Lake City, UT **[register](http://nodejsatmbic.eventbrite.com/)** +2. March 30, 2012 StartupCity, Seattle, WA **[register](nodeseattle-esli.eventbrite.com/)** -3. April 14, 2012 Uncubed, Denver, CO **[register](http://nodejsatuncubed.eventbrite.com/)** - -4. April 21, 2012 MSFT SVC, Mountain View, CA **[register](http://nodejsatmicrosoftsvc.eventbrite.com/)** - -5. April 28, 2012 Gangplank, Phoenix, AZ Coming Soon!