Evented Mind

On-demand video tutorials and classes for the enthusiast programmer. Topics include the web, frameworks and tools, servers, and computer science.

Get Involved

Sign up for the newsletter for updates!

  1. Jan 8, 2016
    34:13

    SSH

    In this class I'll show you how to use SSH and the OpenSSH program to login to a remote shell session, run remote commands, upload and download files. You'll also see how to combine IO redirection and pipes with the ssh command to make some powerful combinations. These are the tricks...

    • Servers and Tools
    • Class
  2. Dec 29, 2015
    54:18

    Running Time and Asymptotic Notation

    Do you ever feel like you never completely understood asymptotic notation and running time analysis? What exactly is the difference between Θ(n), Ο(n) and Ω(n)? In computer science, asymptotic analysis is used to compare the relative performance of different algorithms. The symbols used...

    • Computer Science
    • Class
  3. Dec 18, 2015
    39:44

    Users, Groups and Permissions

    In this class you'll learn how to manage users and groups on the Ubuntu operating system. The concepts will apply to most Unix-flavor systems including Linux and Mac.

    • Servers and Tools
    • Class
  4. Dec 7, 2015
    1:01:31

    The Shell

    In this class you'll learn about the command line. That includes the terminal and shell. We'll be using a shell program called Bash, the most common shell program on Unix systems (and Macs). The concepts will apply for other shell programs too. Along with learning about the shell, you'l...

    • Servers and Tools
    • Class
  5. Dec 2, 2015
    9:51

    WebSockets and the Real-Time Web

    AJAX was great for not refreshing the entire page every time we needed to make an HTTP request. But we still need a way for the browser to stay up to date with the latest data. For example, Facebook would be less interesting if we had to hit the refresh button every two seconds to se...

    • Web
    • Tutorial
  6. Nov 25, 2015
    15:15

    Understanding AJAX

    AJAX lets us make an HTTP request without refreshing the entire browser page. It's worth understanding because it's in widespread use and helps explain how we got to where we are with client-side rendering. In this video I'll give you the intuition for how ajax works. Then I'll write...

    • Web
    • Tutorial
  7. Nov 18, 2015
    14:08

    Template Engines

    Template engines have been used in Web frameworks for many years. They let us generate html with dynamic data from a database. Example template engines include Handlebars, ERB, JSP, CF, ASP.NET - you get the idea. They're also incredibly useful in other cases like creating dynamic co...

    • Web
    • Tutorial
  8. Nov 12, 2015
    36:53

    The npm Package System

    The npm command line tool allows us to work with packages. You can even use it as a build tool. The npm package server provides a place to publish and consume packages created by authors all over the world. In this class you'll learn how an npm package is structured and what we can do w...

    • Node.js
    • Class
  9. Nov 2, 2015
    51:00

    The Binary Number System

    Did you know we get our positional number system from the Babylonians about 4,000 years ago? Actually, we still use their base (60) to tell time! Number systems is a fascinating subject that showcases thousands of years of human ingenuity. In this class you'll learn about the binary num...

    • Computer Science
    • Class
  10. Oct 29, 2015
    8:50

    VirtualBox and Vagrant

    Let's say you want to try a new operating system like Linux or Windows. Or, you want to have a clean machine with no software installed. Or, maybe you want to create a test deployment environment on your laptop for free. You can do all of these things using virtual machines. VirtualB...

    • Servers and Tools
    • Tutorial
  11. Oct 26, 2015
    7:13

    Pattern: Asynchronous Iteration

    Why does connect middleware make you call a next() method? In this tutorial I'll show you the asynchronous iteration pattern. It allows us to call a list of functions, in sequence, even if one of those functions does something asynchronous. If you're using Meteor, this pattern is als...

    • Node.js
    • Tutorial
  12. Oct 19, 2015
    9:35

    HTTP Middleware With Connect

    The connect package provides a nice way to reuse functionality across different http servers even if that code was written by different package authors. Several higher level frameworks like Meteor and Express use the connect package under the hood to provide middleware support. There...

    • Node.js
    • Tutorial
  13. Oct 13, 2015
    37:36

    Introduction to Node.js

    Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. You can write JavaScript on the server, read and write from and to files and the network asynchronously, and easily spin up an http server. Several popular application frameworks are built on top of Node.js, includi...

    • Node.js
    • Class
  14. Oct 8, 2015
    9:13

    Uploading a File with Node.js and Busboy

    You've already seen how file uploading works in HTTP. But we still need a way to parse the HTTP body on the server and turn those form parts into JavaScript objects and files. In this tutorial you'll see how to use the busboy NPM package to upload files in NodeJS. You'll also see how...

    • Node.js
    • Tutorial
  15. Oct 5, 2015
    10:41

    What Happens When You Upload a File?

    Web browsers let you upload files to a server using a form and file input control. The browser sends an HTTP request with the body of the request containing the encoded contents of the form. In this tutorial you'll see what these requests look like on the browser and on the server. ...

    • Web
    • Tutorial
  16. Oct 1, 2015
    14:38

    Customizing Meteor Login with React

    In this tutorial you'll learn how to convert our previous custom login UI to use React components. We'll build React components for each of the possible login states, and you'll see how to render the correct component depending upon the login state we're in (i.e. logging in, logged i...

    • Meteor
    • Tutorial
  17. Sep 28, 2015
    15:36

    Customizing Meteor Login

    In this tutorial you'll learn how to customize Meteor's login configuration and user interface. We'll add the accounts-github package to authenticate against Github, and the service-configuration package to provide a client id and secret in our code instead of the app. Then we'll use...

    • Meteor
    • Tutorial
  18. Sep 24, 2015
    8:16

    Passing Components and Methods As React Properties

    In a previous tutorial we created a reusable React dialog box component. In this tutorial we'll extend the dialog box component with two advanced properties. The first will let us pass custom html to be used in the save button. The second will let us pass a method to call when the user ...

    • React
    • Tutorial
  19. Sep 21, 2015
    13:18

    Creating a Reusable React Dialog Box

    In this tutorial you'll see how to create a reusable dialog box using React, Meteor and Bootstrap. You'll see how to use React state to dynamically add or remove a css class depending on whether the dialog box is shown or not. Then you'll see how to wire up event handlers to change the ...

    • React
    • Tutorial
  20. Sep 16, 2015
    8:43

    Render a Collection with Meteor and React

    In this tutorial, I'll show you how to use the ReactMeteorData mixin to use reactive data sources in your React components. You'll see how to create a new list item element for each document in a Mongo collection. Then you'll see how the React virtual DOM diffing algorithm only re-rende...

    • Meteor
    • Tutorial
  21. Sep 14, 2015
    8:01

    Using React With Meteor

    In this tutorial we'll create a Meteor project that uses React. We'll start off by adding the react package. Then you'll see how you can structure your application to use React components, and render a layout and home page using React's children property. Finally we'll combine React ...

    • Meteor
    • Tutorial
  22. Sep 10, 2015
    1:02:33

    ES2015

    ES2015 is the latest version of JavaScript, sometimes called ES6, or Harmony. It has a lot of great new syntax that captures behaviors that developers have been implementing themselves for a long time. It's also the version of JavaScript used in Meteor and React. In this class I'll star...

    • JavaScript
    • Class
  23. Sep 1, 2015
    10:17

    Meteor 1.2 - ES6 and React

    A few days ago Meteor published a release candidate for version 1.2. It has a ton of new features including full support for ECMAScript 6 (a.k.a. ES6, ES2015 and Harmony) using the Babel compiler to make sure it works on existing browsers. In this video I'll tour a few key features of E...

    • Meteor
    • News
  24. Jul 10, 2015
    1:04:37

    How The Web Works

    How does the web actually work? In this class we'll build a simple web server to understand the core principles. If you're using any application framework like Meteor, Rails, Express, Spring or .NET, they all start here.

    • Web
    • Class
  25. Jul 3, 2015
    1:07:44

    Tracker

    Meteor uses a programming technique called 'Reactive Programming' in the browser to automatically propagate data changes through your application. You're probably already using several reactive data sources like Session and Cursor. In this class you'll dive into how the reactive system ...

    • Meteor
    • Class
  26. Apr 21, 2015
    36:33

    Understanding React

    Now that you understand the basics of React, it's time to dive a little deeper. In this class you'll learn more about the fundamental building blocks of React. You'll start off by understanding React Elements and Components. Then you'll learn what JSX is and what it looks like after it ...

    • React
    • Class
  27. Mar 30, 2015
    51:36

    Getting Started With React

    The React UI framework from Facebook allows us to make reactive user interface components that render in the browser or on the server. You can create components using a combination of html markup and JavaScript by using something called JSX. In this class you'll get a tour of the React ...

    • React
    • Class
  28. Feb 28, 2015
    1:43:43

    Build a Multi Page App with Iron Meteor

    In this class we'll build a more sophisticated, multi-page application in Meteor. We'll use the iron scaffolding tool to create project structure and boilerplate code. In addition to understanding the concepts of a multi-page app, we'll build several features including multiple users, a...

    • Meteor
    • Class
  29. Jan 29, 2015
    32:13

    Introduction to DDP

    The Distributed Data Protocol (DDP) is Meteor's real-time wire protocol based on simple JSON messages. First you'll learn how a stateful protocol like DDP differs from HTTP. Then you'll get a detailed look at the DDP server using the node-inspector server side debugging tool. Finally w...

    • Meteor
    • Class
  30. Jan 29, 2015
    58:40

    Meteor Fibers and Dynamics

    The meteor runtime lets you write asynchronous code in a synchronous style using the Fibers co-routines module. This way, you can make Mongo queries without passing callback after callback while waiting for results. Dynamics is Meteor's implementation of dynamically scoped variables tha...

    • Meteor
    • Class
  31. Dec 24, 2014
    1:04:18

    Setting Up Meteor Projects

    This class will explore tips and tricks for setting up a more advanced project structure. You'll learn about configuration settings, installing multiple versions of NodeJS, the Meteor build system, the new Meteor packaging system, working with different Meteor versions and a more sophis...

    • Meteor
    • Class
  32. Dec 5, 2014
    55:25

    The JavaScript Runtime

    The JavaScript runtime is the code that runs our code. In NodeJS or the Chrome browser, JavaScript is powered by an open source project from Google called V8. In this class we'll explore the parts of the runtime that affect our applications the most. We'll dive into the call stack, try ...

    • JavaScript
    • Class
  33. Nov 27, 2014
    8:09

    The New Packaging System

    Just prior to releasing v1.0, Meteor pulled the packaging system into Core. In this episode I'll show you around the new packaging system.

    • Meteor
    • Tutorial
  34. Oct 27, 2014
    1:44:57

    JavaScript Functions

    Functions are first class objects in JavaScript. That means we can create them on the heap, pass them as parameters and even return them from other functions. In this class, you'll learn the concepts and vocabulary required to master JavaScript functions. You'll be able to write more po...

    • JavaScript
    • Class
  35. Sep 29, 2014
    1:31:57

    Using Iron Router

    The iron:router package is often how people organize their Meteor applications. We'll start off by learning how to create dynamic paths and links. Then you'll see how the router uses the Blaze rendering engine to render dynamic layouts and regions. Then we'll study route controllers, in...

    • Meteor
    • Class
  36. Sep 19, 2014
    7:06

    Preview - Layouts and Regions in Iron Router

    The new iron:router coming in a few weeks has better support for layouts and dynamic regions. In this video, from the Using Iron Router Class coming soon, shows you around some of these features. You can play around by installing iron:router@1.0.0-pre2.

    • Meteor
    • Tutorial
  37. Sep 12, 2014
    8:04

    Preview - The New Iron Router Controllers

    Use reactive state and event handlers with the next major version of Iron Router Controllers.

    • Meteor
    • Tutorial
  38. Aug 25, 2014
    14:39

    Writing a Custom Inherits Function

    Objects inherit from other objects in JavaScript. But how do we allow multiple levels of inheritance from constructor functions? In this video we'll implement our own inherits function.

    • JavaScript
    • Tutorial
  39. Aug 19, 2014
    13:01

    Type Checking Objects

    JavaScript is a weakly typed language but there are still ways to check the type of an object. Getting comfortable with these techniques will help you understand framework source code and build more sophisticated applications.

    • JavaScript
    • Tutorial
  40. Aug 15, 2014
    1:30:20

    JavaScript Objects

    Everything in JavaScript is an object. Understanding object allocation, construction and inheritance is key to being fluent in the language. If you're coming from a class based language, these concepts will be new. If you've already been working in JavaScript, this class will build more...

    • JavaScript
    • Class
  41. Aug 14, 2014
    10:31

    Reactive Properties

    JavaScript allows us to configure object properties. We can use this idea to create reactive properties in Meteor. In this video I'll show you how to create a reactive property method and turn it into a local package.

    • Meteor
    • Tutorial
  42. Aug 5, 2014
    11:22

    Using wait, waitOn and ready in Routes

    Confused about how to use waitOn, wait and the reactive ready method in your routes? In this video I'll show you how these work using the reactive WaitList.

    • Meteor
    • Tutorial
  43. Aug 1, 2014
    10:58

    The Reactive WaitList Data Structure

    The WaitList lets us determine if everything in a list is ready. We use it in iron-router when you call this.wait(..) or return a subscription handle from waitOn. In this video I'll show you why I built it and how it works.

    • Meteor
    • Tutorial
  44. Jul 29, 2014
    10:31

    Waiting on Subscriptions

    What does it mean to "wait" on a subscription to be ready? In this video we'll explore the DDP "ready" message and two ways of waiting on subscription data to be ready.

    • Meteor
    • Tutorial
  45. Jun 12, 2014
    10:07

    Synchronizing Method Writes

    Meteor synchronizes writes that happen on the client with the result we ultimately get back from the server. In this video you'll get some intuition about what this means. Then in the rest of the class we'll dive into the mechanics of how it works. This video is part of the RPC with Met...

    • Meteor
    • Tutorial
  46. May 29, 2014
    47:33

    Publish Subscribe in Meteor

    In the Meteor PubSub system the server publishes data to subscribing clients. On the server, you'll take a detailed look at the mechanics of publish functions. On the client, you'll see what happens when publish messages come off the wire.

    • Meteor
    • Class
  47. May 29, 2014
    2:00:47

    RPC with Meteor Methods

    A Meteor remote procedure call (RPC) invokes a function on the server from the client using DDP. You're using RPC every time you insert, update or remove a document from a minimongo collection or making a Meteor method call. We'll take a detailed look at how a document write to a mongo ...

    • Meteor
    • Class
  48. Apr 28, 2014
    16:13

    Github Issues and Reproductions

    Collaborating on an open source project can be tricky. In this video I'll show you a good way to create new Github issues, whether for bugs, new features or questions. Then we'll create a reproduction and I'll show you what it looks like from a project maintainer's perspective.

    • Github
    • Tutorial
  49. Apr 28, 2014
    10:54

    Setting up to Contribute

    In this video I'll show you how to set up to contribute to the Iron Router project. We'll fork the project and clone it to our machine, pull in changes from the upstream repository, and use the local package in a development application.

    • Meteor
    • Tutorial
  50. Apr 24, 2014
    1:48:07

    Inside Iron Router

    Have you ever wondered how a router actually works? In this class we'll dive into Iron Router's internals. You'll start off by building a simple router yourself to understand the key ideas. Then we'll tour each of the major Iron Router components by explaining the source code. Iron Rout...

    • Meteor
    • Class
    • Archived
  51. Mar 31, 2014
    11:05

    Introducing the em Scaffolding Tool

    em is a new command line tool for generating scaffolds in your application. A scaffold is just boilerplate folders, files and code that you tend to create over and over. In this video I'll show you how to install and use em in your own projects.

    • Meteor
    • Tutorial
    • Archived
  52. Mar 31, 2014
    2:50

    Creating a Mixpanel UserAgent Blacklist

    As your site grows, the indexing bots like Google will spend more time crawling your site. In this video I'll show you how to filter out metrics from a list (blacklist) of user agents.

    • Meteor
    • Tutorial
  53. Mar 31, 2014
    5:16

    Updating Meteor and Package Versions

    In this video we'll update a project to use Meteor 0.8.0 and iron-router 0.7.0.

    • Meteor
    • Tutorial
    • Archived
  54. Mar 31, 2014
    1:43:33

    Building an Application with Meteor and Iron Router

    NOTE: We are working on an update to the class which will be released shortly! In this class we'll begin building a real application with Iron Router and scaffolding. First, we'll migrate our legacy todos application to the new structure and Meteor 0.8.0. We'll create routes with data,...

    • Meteor
    • Class
    • Archived
  55. Feb 26, 2014
    55:57

    Getting Started with Meteor

    New to Meteor? Start here. Meteor is a full-stack framework for building real-time JavaScript web applications. In this class we'll start by looking at key Meteor technologies. Then, we'll install Meteor, look at the package system and finally build a simple application so you can see t...

    • Meteor
    • Class
View the Entire Feed