Tom McGurl
Tom McGurl
  • 45
  • 149 864
Learning Rust Together: Exercism.org Rust Track Part 6 ( Identifying Sublists and Superlists )
In this video we continue with exercises on the Rust track for exercism.org !
We dive into the "Enums Basic" tracks some more with the "Sublist" exercise. In this exercise we try to identify the relationship between two arrays of string slices. We try and identify if they are Equal, not equal, or if one is a Superlist or Sublist of the other. We leverage a sneaky trick where we convert the array to a string.
Переглядів: 1 310

Відео

Learning Rust Together: Exercism.org Rust Track Part 5 ( Hashmaps, Stacks )
Переглядів 5902 роки тому
In this video we continue with exercises on the Rust track for exercism.org ! We cover both the "Hashmap's Entry AP"I by writing a program that identifies if a note can be constructed from the words in a magazine. Next we try out leveraging a Vector as a stack by implementing a Reverse Polish Notation (RPN) calculator. We also get more into the benefits of test-driven development (TDD) by relyi...
Learning Rust Together: Exercism.org Rust Track Part 4 ( The Option Type )
Переглядів 5612 роки тому
In this video we continue with exercises on the Rust track for exercism.org ! We cover the Options part of the Syllabus by working on a Role Playing Game! We get into some more test-driven development (TDD) as well.
Learning Rust Together: Exercism.org Rust Track Part 3 ( External Crates )
Переглядів 8972 роки тому
In this video we continue with exercises on the Rust track for exercism.org ! We cover the external crates section which was recently added! We also run into some trouble when submitting the results, but we will follow up on that next week.
Learning Rust Together: Exercism.org Rust Track Part 2 ( Tuples, Vec, Destructuring )
Переглядів 2,6 тис.2 роки тому
In this video we continue with exercises on the Rust track for exercism.org ! We cover the tuples, the vec! macro and destructuring
Learning Rust Together: Exercism.org Rust Track Part 1
Переглядів 5 тис.2 роки тому
In this video we go through the first few exercises on the Rust track for exercism.org ! We cover the basics like Structs, floating point numbers, match statements, and Enums.
Learn Rust Together: Making an HTTP Request
Переглядів 12 тис.2 роки тому
In this video I use the Rust Reqwest crate to fetch some data from a REST API! We also pull environment variables from a .env file using the dotenv crate and deserialize our response using the serde crate Crates Used: reqwest: github.com/seanmonstar/reqwest dotenv: www.npmjs.com/package/dotenv serde: github.com/serde-rs/serde VSCode Theme (GrayJack): marketplace.visualstudio.com/items?itemName=...
Getting Started with Supabase As a Backend (An Open Source Firebase Alternative)
Переглядів 2,4 тис.2 роки тому
In this video we try out Supabase (app.supabase.io/) an open source Firebase alternative. We set up a new project and create a new a postgres database by importing from a Google Sheet! Supabase automagically generates out a REST API for us to use. It's super easy to set up and a really easy / convenient way to build a quick backend REST API. I hope you enjoy this. I also use this is my upcoming...
Learn Rust Together Finale: Review of Book and Language
Переглядів 1,3 тис.3 роки тому
In this episode I do a review of The Rust Programming Language book and talk about what I like about Rust as well as some areas that gave / give me trouble. Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Finale: Chapter 20 Building a Multi-threaded Web Server
Переглядів 3,4 тис.3 роки тому
Final episode in a series where we dive into The Rust Programming language and build a multi-threaded web server from scratch! doc.rust-lang.org/book/ch20-00-final-project-a-web-server.html Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Part 26: Chapter 19 Part 2, Macros
Переглядів 5643 роки тому
Twenty sixth episode in a series where we dive into The Rust Programming language and learn about Advanced Patterns! In this session we wrap up Chapter 19 of "The Rust Programming Language" with a section on Macros! Only one more chapter to go! doc.rust-lang.org/book/ch19-00-advanced-features.html Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Part 25: Chapter 19 Part 1, Advanced Patterns
Переглядів 2,8 тис.3 роки тому
Twenty fifth episode in a series where we dive into The Rust Programming language and learn about Advanced Patterns! In this session we start Chapter 19 of "The Rust Programming Language". We learn about advanced Types, Traits, and Functions. doc.rust-lang.org/book/ch19-00-advanced-features.html Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Part 24: Chapter 18, Patterns & Matching
Переглядів 7103 роки тому
Twenty fourth episode in a series where we dive into The Rust Programming language and learn about Patterns & Matching! In this session we finish Chapter 17 and 18 of "The Rust Programming Language". doc.rust-lang.org/book/ch17-00-oop.html Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Part 23: Chapter 17 Part 1, Object Oriented Patterns
Переглядів 8483 роки тому
Twenty third episode in a series where we dive into The Rust Programming language! In this session we start Chapter 17 of "The Rust Programming Language" on Object Oriented Programming patterns in Rust doc.rust-lang.org/book/ch17-00-oop.html Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Part 22: Chapter 16 Part 2. Concurrency with Mutex!
Переглядів 6043 роки тому
Twenty second episode in a series where we dive into The Rust Programming language! In this session we finish Chapter 16 of "The Rust Programming Language" on threads, specifically focusing on Mutexes! doc.rust-lang.org/book/ch16-03-shared-state.html Watch live on Tuesday nights from 9pm - 11pm Eastern at twitch.tv/tommcgurl
Learn Rust Together Part 21: Chapter 15 Part 2, Chapter 16 Part 1. Concurrency!
Переглядів 7233 роки тому
Learn Rust Together Part 21: Chapter 15 Part 2, Chapter 16 Part 1. Concurrency!
Learn Rust Together Part 20: Chapter 15 (Smart Pointers)
Переглядів 1,4 тис.3 роки тому
Learn Rust Together Part 20: Chapter 15 (Smart Pointers)
Learn Rust Together Part 18: Chapter 14 (Cargo and Crates)
Переглядів 5573 роки тому
Learn Rust Together Part 18: Chapter 14 (Cargo and Crates)
Learn Rust Together Part 18: Chapter 13 (Closures and Iterators)
Переглядів 1,5 тис.3 роки тому
Learn Rust Together Part 18: Chapter 13 (Closures and Iterators)
Learn Rust Together Part 17: Chapter 12 (Building a grep clone part 2)
Переглядів 9513 роки тому
Learn Rust Together Part 17: Chapter 12 (Building a grep clone part 2)
Learn Rust Together Part 16: Chapter 12 (Building a grep clone)
Переглядів 1,7 тис.3 роки тому
Learn Rust Together Part 16: Chapter 12 (Building a grep clone)
Learn Rust Together Part 15: Chapter 11 (Automated Testing)
Переглядів 1,5 тис.3 роки тому
Learn Rust Together Part 15: Chapter 11 (Automated Testing)
Learn Rust Together Part 14: Rustlings Exercises Part 4 (finished)
Переглядів 2,7 тис.3 роки тому
Learn Rust Together Part 14: Rustlings Exercises Part 4 (finished)
Learn Rust Together Part 13: Rustlings Exercises Part 3
Переглядів 1,9 тис.3 роки тому
Learn Rust Together Part 13: Rustlings Exercises Part 3
Learn Rust Together Part 12: Rustlings Exercises Part 2
Переглядів 2,5 тис.3 роки тому
Learn Rust Together Part 12: Rustlings Exercises Part 2
Learn Rust Together Part 11: Rustlings Exercises
Переглядів 9 тис.3 роки тому
Learn Rust Together Part 11: Rustlings Exercises
Rust Development with Docker
Переглядів 9 тис.3 роки тому
Rust Development with Docker
Learn Rust Together Part 10: Generic Types and Traits
Переглядів 2,4 тис.3 роки тому
Learn Rust Together Part 10: Generic Types and Traits
Learn Rust Together Part 9: Error handling with Result and panic!
Переглядів 1,9 тис.3 роки тому
Learn Rust Together Part 9: Error handling with Result and panic!
Rust Part 8 Exercises
Переглядів 2,2 тис.3 роки тому
Rust Part 8 Exercises

КОМЕНТАРІ

  • @Marlon-rd1zp
    @Marlon-rd1zp Місяць тому

    I was about to create a very long Dockerfile for this setup, but gladly i found this video. Thank you!

  • @paerrin1
    @paerrin1 3 місяці тому

    Thank you for this series. It's really been helping me understand Rust better than reading alone. Your passion for learning is awesome and infectious.

  • @yulesouzaandrade7681
    @yulesouzaandrade7681 3 місяці тому

    In the first 20 min, Tom initial approach was only failing because he was forgetting to declare the new generic <U> (T is already being used for the closure) in the struct and impl declarations. U will also need to import some traits (Copy + Eq + PartialEq + std::hash::Hash) because those will be used by the get() and insert() HashMap methods below. Here is a snippet that is working: ```struct Cacher<T, U> where T: Fn(U) -> U, U: Copy + Eq + PartialEq + std::hash::Hash, { calculation: T, value: HashMap<U, U> } impl<T, U> Cacher<T, U> where T: Fn(U) -> U, U: Copy + Eq + PartialEq + std::hash::Hash, { fn new(calculation: T) -> Cacher<T, U> { Cacher { calculation, value: HashMap::new(), } } fn value(&mut self, arg: U) -> U { match self.value.get(&arg) { Some(v) => *v, None => { let result = (self.calculation)(arg); self.value.insert(arg, result); result } } } }```

  • @lestrange-du-nil
    @lestrange-du-nil 3 місяці тому

    for getting latest version of a dependency in cargo u can simply use rand = "*"

  • @possessed1973
    @possessed1973 3 місяці тому

    Woo Hoo!!!

  • @possessed1973
    @possessed1973 3 місяці тому

    I made it with all of you!

  • @maxwen6447
    @maxwen6447 4 місяці тому

    really enjoyed following along with someone else reading the Rust book. you kept it lively and interesting. I don't know why you seem to have stopped making videos. on to the next chapter!

  • @__nemesis__1571
    @__nemesis__1571 6 місяців тому

    please fix the playlist order, video 2 comes before 1

  • @AlfredSLotsu
    @AlfredSLotsu 6 місяців тому

    having a lot of fun going through this

  • @justiceessiel6123
    @justiceessiel6123 7 місяців тому

    @1:39:40🤣

  • @ma34529
    @ma34529 7 місяців тому

    I don't see a syllabus for Rust anymore :(

  • @nirajgautam403
    @nirajgautam403 8 місяців тому

    Thanks.

  • @thisisreallyme3130
    @thisisreallyme3130 8 місяців тому

    Thanks you for this series! I'm reading the book also, but it really helps having watched each of your chapters first. I love how the Rust community is making it so inclusive and inviting (in a way I couldn't say exists in this un-named language that Rust is making inroads into..)

  • @thisisreallyme3130
    @thisisreallyme3130 9 місяців тому

    TY for giving your time to add to the already excellent Rust book. It’s nice to hear someone dig into a topic. I’m so impressed by the Rust community, including this.

  • @nguyenminhtuan9696
    @nguyenminhtuan9696 11 місяців тому

    I like the way you're doing like this one. It's really great and makes a lot of sense so far. Thanks for sharing us with this. BR,

  • @gokulrashtrami4340
    @gokulrashtrami4340 Рік тому

    Awesome

  • @Dazza_Doo
    @Dazza_Doo Рік тому

    I started with Rustlings, about 1/2 way though it, but was lacking knowledge, so I needed more information before I could go on. Hence I was using your course. I might skip this and keep on going.

  • @Dazza_Doo
    @Dazza_Doo Рік тому

    53:00 you forgot to make the main function, this is why the code wasn't working. fn main() {}

  • @Dazza_Doo
    @Dazza_Doo Рік тому

    1:00:00 I had different code then you, apart from the Mode, where I struggled to get anywhere on my own. Here was the sneaky solution to Median: fn average(numbers: Vec<f64>) -> f64 { // Sum value, then divide by length //iterator over Vec let sum: f64 = numbers.iter().sum(); sum / (numbers.len() as f64) The Mean fn was also different: fn median(mut numbers: Vec<i32>) -> f64 { //sort numbers.sort(); //dbg!(&numbers); let size = numbers.len(); let size = size / 2; // get middle number or approximate of match size % 2 == 0 { true => numbers[size] as f64, false => { // get values from middle (left and right) let x = numbers[size - 1]; let y = numbers[size]; //dbg!(x, y); ((y - x) / 2 + x) as f64 //take left value and + right value / 2 } } } In the End the compiler would generate the same code in the binary, regardless of the style used. Thanks for the Videos.

  • @Dazza_Doo
    @Dazza_Doo Рік тому

    1:10:00 When I first learnt about recursion, in another c language, I thought, it was brilliant. Until I found out that it will over run the stack. This is really BAD. This where I start looking at name control flows (modern Goto's if necessary). Take unsafe code and making it run in Rust with no unsafe tags is asking for trouble. Rust is meant to be safe by default, this is breaking behaviour. Another solution is to work Forwards instead of backwards. This could be a mut vec! where you pop on the next values and since we have shadowing then update the variables inline.

  • @isiktantanis
    @isiktantanis Рік тому

    First of all, great video, thank you. But I feel like it'd be better if the videos were edited and had a faster pace. Best.

  • @mohammadnoushadsiddiqi2550

    I will going to give a party to my self when I reached chapter 10.

  • @mohammadnoushadsiddiqi2550

    I was getting confused, demotivated and bore reading book alone and then I find your video. Thanks! for this awesome help.

  • @redrum4486
    @redrum4486 Рік тому

    i'm suprised the functions are really similar to python

  • @santiqwerty
    @santiqwerty Рік тому

    Where is the timestamp guy?

  • @santiqwerty
    @santiqwerty Рік тому

    JDSL doesn't support comments because Tom is a F***ing genius.

  • @Penumbrasuslik
    @Penumbrasuslik Рік тому

    I really like your approach to learning a new language. This video really made me think more about exploring everything in detail as oppose to remembering only one implementation from examples. Usually I just roll through exercises watching solutions and applying them to something similar in my project, but now it seems like there is a better way. Thank you

  • @TrungNguyen-xb9dd
    @TrungNguyen-xb9dd Рік тому

    your name literal has an "URL" in it :))) lit 🔥

  • @erezjacob6804
    @erezjacob6804 Рік тому

    So much fun learning Rust with you in 2023, coding with a sense of humor is vital!

  • @drganesh108
    @drganesh108 Рік тому

    Nice buddy. Please read books on c as you r doing now

  • @akanimohosutuk928
    @akanimohosutuk928 Рік тому

    Been binging this series. This is beyond impressive

  • @vaisakh_km
    @vaisakh_km Рік тому

    Thanks..... i was struggling to learn rust... this was a great help... i have morning shift at 6:00 AM, yet i am here learning rust with in the 3:30 AM in the morning... you made it sooo interesting...

  • @HiTab_Software
    @HiTab_Software Рік тому

    Really Great content, I want to build a server with rust and coming from typescript and f# I found it a little confusing, but I will follow along, thanks for your effort, is hard to find beginner friendly content like this one.

  • @chitralekhapal5442
    @chitralekhapal5442 Рік тому

    Learning rust as Python Full-Stack dev... You saved my life 🇮🇳✌️🌟🌟🌟🌟🌟🙌🙌🙌🙌🙌

  • @EdDrain
    @EdDrain Рік тому

    Just want to say, that this might be missed by beginning Rust programmers but runnning `rustup doc --book` generates a nice free reference for Rust.

  • @n0kodoko143
    @n0kodoko143 Рік тому

    I've been struggling with everything headers using reqwest. Thank you so much!

  • @jeyhunahmedov6382
    @jeyhunahmedov6382 Рік тому

    Thanks such great tuts. Please, please don't clap 😊

  • @0xcoder542
    @0xcoder542 Рік тому

    Thanks for creating such a great video. Could you please make a video for rust api using rocket and sqlx in the docker and compose?

  • @C0DeB100D
    @C0DeB100D Рік тому

    i have a terrible lack of motivation these days, the moment your video started it just gave me enough motivation to learn and continue my job, thank u

    • @TomMcGurl
      @TomMcGurl Рік тому

      Glad I can help and thanks for watching!

  • @hansadler6716
    @hansadler6716 Рік тому

    "I look like a child" lol

  • @hansadler6716
    @hansadler6716 Рік тому

    If you sign up for "buy me a coffee", I'll buy you a coffee.

  • @thiagoszbarros
    @thiagoszbarros Рік тому

    Ok Tom, maybe this is the most direct and correct tutorial on internet :D

  • @hansadler6716
    @hansadler6716 Рік тому

    Chapter 17 is making me reconsider learning Rust.

  • @hansadler6716
    @hansadler6716 Рік тому

    You didn't know what 'static or 'a means because you skipped the section on lifetimes from chapter 10 😉

  • @hansadler6716
    @hansadler6716 Рік тому

    In the current book (Jan 2023), they have removed the note about "primitive obsession". lol

  • @hansadler6716
    @hansadler6716 Рік тому

    there's a testing community?

  • @hansadler6716
    @hansadler6716 Рік тому

    Tom, thank you for making these videos. Following along with you is so much easier and faster than trying to read the book by myself. I was 9 chapters in (with eyes glazing over and starting to drool) before I found your videos. You did a great job! Thanks!

    • @TomMcGurl
      @TomMcGurl Рік тому

      Thank you for watching! I'm glad they have helped you!

  • @najdk1930
    @najdk1930 Рік тому

    "hope it helped.. probably didnt" hahahah

  • @najdk1930
    @najdk1930 Рік тому

    hello brother, where is the last part about lifetime? I couldn't find it :( thanks

  • @ytaccount9859
    @ytaccount9859 Рік тому

    Just going through this book now, I want to say thanks because honestly having someone read this out loud makes it so much easier to digest esp with concepts this hard to grok