Tags
Language
Tags
June 2025
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
    Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

    ( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
    SpicyMags.xyz

    Frontendmasters - Introduction to Elm, v2 (2018)

    Posted By: ParRus
    Frontendmasters - Introduction to Elm, v2 (2018)

    Frontendmasters - Introduction to Elm, v2 (2018)
    WEBRip | English | MP4 + Project files | 1920 x 1080 | AVC ~365 kbps | 30 fps
    A_VORBIS | 192 Kbps | 48.0 KHz | 2 channels | ~5 hours | 1.35 GB
    Genre: Video Tutorial

    In this course, Richard Feldman — returning Frontend Masters instructor and Software Engineer at NoRedInk — demonstrates the benefits of Elm, including its highly cohesive independent package ecosystem and reputation for practically never crashing.
    By coding along with Richard, you will build an Elm application from start to finish using elm-package to access Elm's package ecosystem, write tests with elm-test, work with third-party JavaScript libraries from Elm using JavaScript Interop, and much more! Throughout the course, Richard discusses tips and tricks for getting the most out of the language.

    Table of Contents:

    Course Introduction

    Introduction
    00:00:00 - 00:01:34
    Introduction
    Richard Feldman introduces Elm as a functional programming language that compiles to JavaScript. - 0:19-1:03
    Costs & Benefits
    00:01:35 - 00:09:31
    Costs & Benefits
    Richard explains some of the costs and benefits of using Elm. The concerns that people have when considering Elm are addressed but are countered with its measurable technical advantages.
    Workshop Structure
    00:09:32 - 00:16:20
    Workshop Structure
    The Elm RealWorld Example App, which resembles Medium.com, is introduced at the project that will be built throughout the course. Richard explains how this project will progress from a single webpage to knowledge of how to fix bugs, and to modify and maintain a real-world Elm codebase.

    Elm Introduction

    Functions & if expressions
    00:16:21 - 00:21:22
    Functions & if expressions
    Richard introduces functions and if expressions in Elm by comparing how one would write a simple function in JavaScript, and then in Elm. Elm's compiler plays a similar role to Babel or TypeScript, but then advantages it has over both is demonstrated.
    Nested Function Expressions
    00:21:23 - 00:23:15
    Nested Function Expressions
    Richard covers how to write a comment and how functions are called in Elm.
    Smart Compile Errors
    00:23:16 - 00:27:28
    Smart Compile Errors
    Richard demonstrates how the type inference build into the language can benefit the user by catching errors before the code compiles.
    Virtual DOM
    00:27:29 - 00:35:27
    Virtual DOM
    Richard explains that Elm uses a Virtual DOM for rendering - the same underlying approach React uses. However, Elm does it with plain function calls instead of templates.
    Introduction Review & Q&A
    00:35:28 - 00:40:43
    Introduction Review & Q&A
    Questions are asked regarding the syntax for versions of Elm after 0.9, the learning curve of elm, source maps, and how new features are decided upon in the language.
    Rendering a Page Exercise
    00:40:44 - 00:46:16
    Rendering a Page Exercise
    This exercise explores using Elm's Virtual DOM system to add elements to a static page.
    Rendering a Page Solution
    00:46:17 - 00:49:30
    Rendering a Page Solution
    Richard live-codes the solution to the Rendering a Page exercise.

    Manipulating Values

    Strings
    00:49:31 - 00:52:10
    Strings
    Richard introduces the process of manipulating strings in Elm.
    let Expressions
    00:52:11 - 00:56:52
    let Expressions
    Richard explains how let expressions affect scope, and give names to values.
    Lists
    00:56:53 - 01:00:06
    Lists
    Lists in Elm are as common as Arrays in JavaScript. Richard explains how lists are implemented in Elm.
    Anonymous Functions
    01:00:07 - 01:01:50
    Anonymous Functions
    Richard gives an example of an anonymous function defined inline with a slightly different syntax from named functions. - whole clip
    Partial Application
    01:01:51 - 01:03:51
    Partial Application
    Richard introduces the concept of partial application in Elm.
    Render a List to a View
    01:03:52 - 01:06:11
    Render a List to a View
    Richard demonstrates how using Elm's functional nature can make creating an unordered list an extremely quick task.
    Manipulating Values Review & Q&A
    01:06:12 - 01:12:12
    Manipulating Values Review & Q&A
    Questions from the audience are asked about how Elm handles .map() differently than JavaScript, and backward compatibility in Elm. Richard also discusses the future of compiling to Web Assembly.
    Manipulating Values Exercise
    01:12:13 - 01:15:00
    Manipulating Values Exercise
    In this exercise, students use List.map and string manipulations to add a list of tags to the page rendered.
    Manipulating Values Solution
    01:15:01 - 01:17:16
    Manipulating Values Solution
    Richard live-codes the solution to the Manipulating Values exercise.

    Interaction

    Records
    01:17:17 - 01:19:47
    Records
    Richard introduces interactions in Elm by first explaining what records are, and how to update them.
    Record Iteration
    01:19:48 - 01:21:29
    Record Iteration
    The differences while iterating over records in comparison to other collections.
    Booleans
    01:21:30 - 01:22:45
    Booleans
    Richard introduces how booleans and boolean operations are done in Elm.
    Boolean Operations
    01:22:46 - 01:25:21
    Boolean Operations
    In this section, List.member and List.filter are used to demonstrate booleans in Elm.
    The Elm Architecture
    01:25:22 - 01:29:09
    The Elm Architecture
    To make an application interactive, Richard introduces Elm's architecture. - 1:35 - 3:47
    The Elm Architecture: Update
    01:29:10 - 01:35:29
    The Elm Architecture: Update
    The question is posed about how to update the state of a page when an event happens. Richard explains how update takes the two arguments of msg and model to transition to the new application state.
    Interaction Review & Q&A
    01:35:30 - 01:38:06
    Interaction Review & Q&A
    Questions are asked about whether Elm has anything comparable to the React component lifecycles, and about CSS in Elm. Richard reviews what was covered in this section of the workshop.
    Interaction Exercise
    01:38:07 - 01:47:56
    Interaction Exercise
    In this exercise, students make the selected tag on their page filter the posts on the page.
    Interaction Solution
    01:47:57 - 01:54:15
    Interaction Solution
    Richard live-codes the solution to the Introducing Interaction exercise.

    Type Annotations

    Type Annotation Overview
    01:54:16 - 01:56:20
    Type Annotation Overview
    Richard introduces type annotations, which apply to primitives, parameters, aliases, and functions. In Elm, the compiler enforces types, and it's explained why this is helpful for long-term applications.
    Primitives & Records
    01:56:21 - 01:57:41
    Primitives & Records
    Examples of how to use type annotations on primitives when the type changes is demonstrated. Record type annotations are also explained, and it becomes clear why the syntax for records is different than in JavaScript. - couldn't find the cut here in real-time
    Parameters
    01:57:42 - 01:59:22
    Parameters
    Richard exaplains why Lists in Elm have to have a consistent type, and how to apply type annotation using type parameters.
    Aliases
    01:59:23 - 02:00:42
    Aliases
    Richard demonstrates how type aliases can tersely describe compound types.
    Html Msg
    02:00:43 - 02:04:00
    Html Msg
    Richard introduces the usage Html Msg type parameter on the Html type.
    Functions
    02:04:01 - 02:12:29
    Functions
    Richard uses the Elm REPL to explain why type annotations for functions benefit directly from partial application in Elm.
    Type Annotations Exercise
    02:12:30 - 02:13:41
    Type Annotations Exercise
    Students add type annotations to the page they've built in the previous exercises.
    Type Annotations Solution
    02:13:42 - 02:21:19
    Type Annotations Solution
    Richard live-codes the solution to the Type Annotations exercise.

    Custom Types

    Case Expressions
    02:21:20 - 02:26:01
    Case Expressions
    Richard introduces custom types, and hints that they will allow the audience to add features such as pagination and tabs to the example app. To demonstrate case expressions, it's demonstrated how a snippet would be written with an if statement, and then the same statement is rewritten with a case expression.
    Variants & Booleans
    02:26:02 - 02:29:30
    Variants & Booleans
    Richard goes into detail about how to create custom type variants. Booleans are also revealed to be a custom type in Elm.
    Custom Types in Case Expressions
    02:29:31 - 02:32:28
    Custom Types in Case Expressions
    Custom types are utilized to create a tab bar, wherein Richard demonstrates there is no need for a default case.
    Containers
    02:32:29 - 02:37:59
    Containers
    Richard transforms the custom type enumeration from the previous exercise into a container.
    Custom Types in Messages
    02:38:00 - 02:44:37
    Custom Types in Messages
    Through the use of pagination in the example app, custom types are shown to be a boon when applied to messages.
    Custom Types Review & Q&A
    02:44:38 - 02:48:51
    Custom Types Review & Q&A
    Richard reviews what we've learned with Custom Types and fields a question from the audience.
    Custom Types Exercise
    02:48:52 - 02:55:16
    Custom Types Exercise
    This exercise is designed to teach students how to work within an existing Elm codebase. Custom types are utilized to fix a bug in a Sign Up form.
    Custom Types Solution
    02:55:17 - 03:00:02
    Custom Types Solution
    Richard live-codes the solution to the Custom Types exercise.

    Maybe

    Maybe Overview
    03:00:03 - 03:03:55
    Maybe Overview
    Richard contrasts Elm with JavaScript when accessing the first element of an array, and an empty array. The concepts of "Just" and "Maybe" are introduced.
    Type Variables
    03:03:56 - 03:07:28
    Type Variables
    Richard reveals that type variables allow for different type parameters on functions such as List.head. It's also discussed how the type Maybe could be defined as a custom type.
    Pipelines & Review
    03:07:29 - 03:12:13
    Pipelines & Review
    The pipeline operator (|>) allows the user to express a sequence of transformations without naming the intermediate values. Richard reviews what was learned in the last few sections before going on to the exercise. - 0:35-1:39
    Maybe & Pipelines Exercise
    03:12:14 - 03:15:42
    Maybe & Pipelines Exercise
    Students use Maybe to fix a bug related to users' avatars, and use pipelines on the Edit Article page.
    Maybe & Pipelines Solution
    03:15:43 - 03:19:09
    Maybe & Pipelines Solution
    Richard live-codes the solution to the Maybe and Pipelines exercise. - all of the clip

    Decoding JSON

    Decoding
    03:19:10 - 03:23:50
    Decoding
    Richard explains how to decode data from one format to another in Elm, using String.toInt and Json.Decode.decodeString as examples.
    Result
    03:23:51 - 03:26:39
    Result
    Result has failure case includes a value that provides more detail on what went wrong. Richard points out how JavaScript and TypeScript fail in this regard. - couldn't find the cut :-/
    Pipeline Decoding
    03:26:40 - 03:36:10
    Pipeline Decoding
    Richard walks through how to use Json.Decode.Pipeline to decode JSON objects with several fields.
    Optional & Nullable
    03:36:11 - 03:40:25
    Optional & Nullable
    Richard introduces the concepts of Nullable and Optional Decoders that allow for optional or nonexistent fields in JSON data.
    Decoding Review & Q&A
    03:40:26 - 03:43:57
    Decoding Review & Q&A
    A point is clarified regarding Pipeline decoding, and determining whether the data received may be nullable. Richard reviews what was learned in the last few sections before going on to the exercise.
    Decoding JSON Exercise
    03:43:58 - 03:45:45
    Decoding JSON Exercise
    Students use JSON decoding to read data from the server into the articles in the feed.
    Decoding JSON Solution
    03:45:46 - 03:47:52
    Decoding JSON Solution
    Richard walks through the solution to the Decoding JSON exercise.

    Talking to Servers

    Tuples
    03:47:53 - 03:52:17
    Tuples
    Richard introduces tuples, and explains how they differ from records.
    Function Guarantees, Randomness, & Commands
    03:52:18 - 03:59:15
    Function Guarantees, Randomness, & Commands
    Every Elm function is deterministic in nature. Richard explains how Elm turns a Generator into a randomly value. To do this, a Command must also be introduced. Time is taken to map the Command message into the Elm Architecture model.
    Browser.element
    03:59:16 - 04:00:37
    Browser.element
    Richard introduces Browser.element, which returns a tuple and allows the user to execute Commands.
    Pure Functions
    04:00:38 - 04:02:33
    Pure Functions
    Every Elm function is a pure function. Richard explains that, because of this, Elm has managed effects instead of side effects. - all of the clip
    Http.getString
    04:02:34 - 04:09:53
    Http.getString
    Richard describes how to use Http.getString and Http.send to define a Cmd that sends a HTTP request.
    Http.get
    04:09:54 - 04:11:42
    Http.get
    Richard introduces Http.get, which is built on top of Http.getString, but accepts a decoder for whatever shape of response it might get.
    Pattern Matching & Review
    04:11:43 - 04:14:00
    Pattern Matching & Review
    Pattern matching is utilized in a case-expression to handle the possibility of an HTTP request succeeding or failing. Richard reviews what was learned in the last few sections before going on to the exercise.
    Talking to Servers Exercise
    04:14:01 - 04:18:55
    Talking to Servers Exercise
    Students fix a problem where the Sign Up page is not sending a HTTP request when the user submits the form. Debug.todo is also introduced as a useful tool.
    Talking to Servers Solution
    04:18:56 - 04:24:43
    Talking to Servers Solution
    Richard walks through the solution to the Talking to Servers exercise.

    Talking to JavaScript

    Subscriptions
    04:24:44 - 04:30:35
    Subscriptions
    Richard shows how subscriptions fit into the Elm Architecture, giving the example of Browser.onMouseMove.
    The JavaScript Ecosystem
    04:30:36 - 04:35:07
    The JavaScript Ecosystem
    Richard explains how Elm uses a "client/server" communication strategy to access the JavaScript ecosystem without sacrificing Elm's Guarantees
    Unbound Type Variables
    04:35:08 - 04:41:42
    Unbound Type Variables
    Richard introduces unbound type variables, which are useful because they are compatible with any other type variable.
    port Modules, localForage, & Review
    04:41:43 - 04:53:18
    port Modules, localForage, & Review
    Richard explains and walks through the process of using "ports" to send to and receive data from JavaScript. The ownership of state is also briefly discussed, and what was learned in the last few lessons is reviewed before going on to the exercise.
    Talking to JS Exercise
    04:53:19 - 04:56:18
    Talking to JS Exercise
    In this exercise, students set up ports to send and receive data to localForage.
    Talking to JS Solution
    04:56:19 - 05:01:31
    Talking to JS Solution
    Richard walks through the solution to the Talking to JS Exercise.

    Wrapping Up

    Review & Other Resources
    05:01:32 - 05:07:20
    Review & Other Resources
    Richard reviews the topics the workshop has covered and shares additional resources.

    also You can watch my other last: Programming-posts

    Screenshots

    Frontendmasters - Introduction to Elm, v2 (2018)

    Frontendmasters - Introduction to Elm, v2 (2018)

    Frontendmasters - Introduction to Elm, v2 (2018)

    Frontendmasters - Introduction to Elm, v2 (2018)

    Exclusive eLearning Videos ParRus-blogadd to bookmarks

    Frontendmasters - Introduction to Elm, v2 (2018)