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 |