Section 1 : An Elixir Warmup

Lecture 1 How to Get Help 00:02:53 Duration
Lecture 2 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 3 Installing Elixir 00:02:01 Duration
Lecture 4 Project Outline 00:04:05 Duration
Lecture 5 Generating a Project 00:04:05 Duration
Lecture 6 Elixir Modules and Methods 00:06:05 Duration
Lecture 7 Lists and Strings 00:03:22 Duration
Lecture 8 Object Oriented vs Functional Programming 00:09:13 Duration
Lecture 9 Method Arguments 00:04:48 Duration
Lecture 10 The Enum Module 00:05:54 Duration
Lecture 11 Immutability in Elixir 00:03:57 Duration
Lecture 12 Searching a List 00:06:02 Duration
Lecture 13 Comprehensions Over Lists 00:07:12 Duration
Lecture 14 Not Everything Works the First Time 00:05:03 Duration
Lecture 15 Solving Nested Arrays 00:06:48 Duration
Lecture 16 Importance of Index with Tuples 00:08:34 Duration

Section 2 : Elixir's Amazing Pattern Matching

Lecture 1 Pattern Matching 00:10:44 Duration
Lecture 2 Elixir's Relationship with Erlang 00:05:15 Duration
Lecture 3 Saving a Deck 00:03:53 Duration
Lecture 4 Pattern Matching Continued 00:10:23 Duration
Lecture 5 Pattern Matching in Case Statements 00:14:15 Duration
Lecture 6 The Pipe Operator 00:04:23 Duration
Lecture 7 The Pipe Operator Continued
Lecture 8 Module Documentation 00:03:50 Duration

Section 3 : Testing and Documentation

Lecture 1 Writing and Generating Documentation 00:03:34 Duration
Lecture 2 Creating Function Docs 00:06:18 Duration
Lecture 3 Introduction to Testing 00:02:54 Duration
Lecture 4 Amazingly Productive Doctests 00:03:38 Duration
Lecture 5 Writing Effective Doctests 00:05:16 Duration
Lecture 6 Case Tests 00:06:53 Duration

Section 4 : A Few Side Topics

Lecture 1 Introduction to Maps 00:04:08 Duration
Lecture 2 Updating Values in a Map 00:07:56 Duration
Lecture 3 Keyword Lists 00:08:22 Duration

Section 5 : Image Manipulation with Elixir

Lecture 1 Project Overview 00:03:44 Duration
Lecture 2 Identicon Generation Process 00:02:33 Duration
Lecture 3 Identicon Generation Process Continued 00:03:03 Duration
Lecture 4 The Main Pipeline 00:03:21 Duration
Lecture 5 Hashing a String 00:04:05 Duration
Lecture 6 The Purpose of the Hex List 00:05:46 Duration

Section 6 : Structs - Elixir's Data Modeling Tool

Lecture 1 Modeling Data with Structs 00:06:46 Duration
Lecture 2 Pattern Matching Structs 00:10:40 Duration
Lecture 3 Updating Structs 00:10:09 Duration
Lecture 4 Building the Grid 00:08:16 Duration
Lecture 5 Mirroring a Row 00:05:09 Duration
Lecture 6 Mapping with Custom Functions 00:06:32 Duration
Lecture 7 Grid Structure 00:08:31 Duration
Lecture 8 Giving an Identicon Shape 00:09:34 Duration
Lecture 9 Planning Image Creation 00:07:42 Duration
Lecture 10 Creating the Pixel Map 00:05:48 Duration
Lecture 11 Drawing Rectangles 00:09:47 Duration

Section 7 : On to Phoenix

Lecture 1 Quick Note About Phoenix
Lecture 2 Phoenix Installation 00:04:10 Duration
Lecture 3 Postgres Setup on OSX 00:06:37 Duration
Lecture 4 What is Phoenix 00:06:35 Duration
Lecture 5 App Overview 00:07:17 Duration
Lecture 6 Into Phoenix We Go
Lecture 7 Server Side Templating 00:03:40 Duration
Lecture 8 Templates vs Layouts 00:09:31 Duration

Section 8 : MVC in Phoenix

Lecture 1 Phoenix's MVC Model 00:07:37 Duration
Lecture 2 Exploring the Router and Controller 00:09:47 Duration
Lecture 3 Views vs Templates 00:10:00 Duration
Lecture 4 The Model Layer in Phoenix 00:08:28 Duration
Lecture 5 Migration Files 00:05:29 Duration
Lecture 6 A Game Plan for Creating Topics 00:09:45 Duration
Lecture 7 Routing to the Topic Controller 00:07:25 Duration
Lecture 8 Setting Up the Topic Controller 00:06:06 Duration
Lecture 9 Code Reuse with Import, Alias, and Use 00:09:17 Duration
Lecture 10 Phoenix's Code Sharing Model 00:08:10 Duration
Lecture 11 Phoenix's Conn Struct 00:08:24 Duration
Lecture 12 A Phoenix Approach to Forms 00:04:54 Duration

Section 9 : Models in Phoenix

Lecture 1 The Topic Model 00:03:55 Duration
Lecture 2 Model Changesets and Validations 00:12:06 Duration
Lecture 3 More on Changesets 00:08:27 Duration
Lecture 4 Generating Changesets for the Form 00:06:05 Duration
Lecture 5 New Topic Form 00:07:49 Duration
Lecture 6 Phoenix Template Syntax 00:10:02 Duration
Lecture 7 Handling Form Submissions 00:10:41 Duration
Lecture 8 A Quick Review and Breather 00:08:16 Duration

Section 10 : Working with Postgres

Lecture 1 Introduction to the Repo Module 00:11:59 Duration
Lecture 2 Handling Failed Form Submissions 00:04:28 Duration
Lecture 3 Styling with CSS in Phoenix 00:06:34 Duration
Lecture 4 Breaking Restful Conventions Safely 00:06:43 Duration
Lecture 5 Using the Repo Module for Queries 00:07:04 Duration
Lecture 6 Building Lists in EEX Templates 00:06:48 Duration
Lecture 7 Redirects in the Controller 00:08:17 Duration
Lecture 8 Generating Anchors with Link Tags 00:12:09 Duration
Lecture 9 Router Wildcards 00:07:57 Duration
Lecture 10 Setting up the Edit Form 00:09:38 Duration
Lecture 11 Defining the Update Route 00:06:48 Duration
Lecture 12 Editing a Topic 00:11:21 Duration
Lecture 13 Linking to the Edit Topic Form 00:06:24 Duration
Lecture 14 The Resources Helper 00:07:00 Duration
Lecture 15 Deleting a Topic 00:09:44 Duration
Lecture 16 Wrapping up TopicController 00:06:58 Duration

Section 11 : Handling Authentication with OAuth

Lecture 1 OAuth Overview 00:06:28 Duration
Lecture 2 OAuth Setup with Ueberauth 00:07:50 Duration
Lecture 3 Creating a Github OAuth App 00:09:53 Duration
Lecture 4 Defining OAuth Routes 00:11:58 Duration
Lecture 5 Receiving User Info From Github 00:09:41 Duration
Lecture 6 Users Migration 00:07:41 Duration
Lecture 7 Digesting the OAuth Response 00:07:00 Duration
Lecture 8 The User Changeset 00:08:02 Duration
Lecture 9 Creating New Users 00:07:48 Duration
Lecture 10 Our Auth Grand Plan 00:07:09 Duration
Lecture 11 Handling OAuth Success 00:07:09 Duration

Section 12 : Transforming Requests with Plugs

Lecture 1 Introduction to Plugs 00:12:44 Duration
Lecture 2 Using a Module Plug to Set the User 00:11:44 Duration
Lecture 3 Implementing Module Plugs 00:09:03 Duration
Lecture 4 Allowing Users to Signout 00:10:27 Duration
Lecture 5 Restricting Access of Users 00:05:48 Duration
Lecture 6 The Require Auth Plug 00:13:04 Duration
Lecture 7 Controller Scoped Plugs
Lecture 8 Associating Users with Topics 00:06:57 Duration
Lecture 9 Altering Existing Tables 00:02:27 Duration
Lecture 10 Playing Around with Associations 00:09:07 Duration
Lecture 11 Using the Build Assoc Function
Lecture 12 Finalizing the Association 00:03:03 Duration
Lecture 13 Checking the Topics Owner 00:12:10 Duration

Section 13 : Websockets in Phoenix

Lecture 1 Introduction to Websockets 00:04:17 Duration
Lecture 2 Showing Individual Topics 00:06:40 Duration
Lecture 3 Making the Comments Migration 00:03:51 Duration
Lecture 4 The Comments Model 00:03:45 Duration
Lecture 5 Overview of Channels in Phoenix 00:06:14 Duration
Lecture 6 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 7 Introducing the Comments Channel
Lecture 8 Making Progress with Sockets 00:09:11 Duration
Lecture 9 Quick Breather and Review 00:07:28 Duration
Lecture 10 Publishing Messages 00:07:30 Duration
Lecture 11 Figuring Out What Topics to Show 00:05:08 Duration
Lecture 12 Refactoring to Determine Topic Id 00:09:08 Duration
Lecture 13 Fetching Topics on Join 00:05:40 Duration
Lecture 14 Debugging Topic Fetching 00:02:45 Duration
Lecture 15 Building the Comment Form 00:05:53 Duration
Lecture 16 Inserting Comments into the Database 00:07:58 Duration
Lecture 17 Remaining Items with Sockets 00:04:56 Duration
Lecture 18 Poison Encoder 00:08:42 Duration
Lecture 19 Rendering a List of Comments 00:08:25 Duration
Lecture 20 Broadcasting Updates 00:06:44 Duration
Lecture 21 Updating the Client 00:06:15 Duration
Lecture 22 The Socket Event Object 00:03:08 Duration
Lecture 23 Authentication with Sockets 00:07:53 Duration
Lecture 24 Transporting Tokens to the Server 00:04:51 Duration
Lecture 25 Verifying the Current Socket User 00:04:42 Duration
Lecture 26 Associating Comments with Users 00:05:17 Duration
Lecture 27 Fetching Users with Comments 00:08:02 Duration
Lecture 28 Rendering Associated Users 00:03:57 Duration

Section 14 : Phoenix 1

Lecture 1 New in Phoenix 1 00:03:42 Duration
Lecture 2 CLI Command Changes 00:03:25 Duration
Lecture 3 Assets Folder Changes 00:04:12 Duration
Lecture 4 Directory Structure Changes 00:05:20 Duration
Lecture 5 Contexts 00:07:48 Duration
Lecture 6 More on Contexts 00:12:30 Duration