- 45
- 149 864
Tom McGurl
Приєднався 21 тра 2013
I'm a Software Engineer who loves sharing my latest experiments with others. The best way for me to learn a new technology, framework, or programming language is to jump right in and start coding. Join me in this adventure by viewing the videos in this channel, or catch me live streaming on Twitch (Tuesdays from 9pm - 11pm Eastern) www.twitch.tv/tommcgurl
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.
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
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!
I was about to create a very long Dockerfile for this setup, but gladly i found this video. Thank you!
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.
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 } } } }```
for getting latest version of a dependency in cargo u can simply use rand = "*"
Woo Hoo!!!
I made it with all of you!
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!
please fix the playlist order, video 2 comes before 1
having a lot of fun going through this
@1:39:40🤣
I don't see a syllabus for Rust anymore :(
Thanks.
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..)
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.
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,
Awesome
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.
53:00 you forgot to make the main function, this is why the code wasn't working. fn main() {}
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.
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.
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.
I will going to give a party to my self when I reached chapter 10.
I was getting confused, demotivated and bore reading book alone and then I find your video. Thanks! for this awesome help.
i'm suprised the functions are really similar to python
Where is the timestamp guy?
JDSL doesn't support comments because Tom is a F***ing genius.
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
your name literal has an "URL" in it :))) lit 🔥
So much fun learning Rust with you in 2023, coding with a sense of humor is vital!
Nice buddy. Please read books on c as you r doing now
Been binging this series. This is beyond impressive
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...
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.
Learning rust as Python Full-Stack dev... You saved my life 🇮🇳✌️🌟🌟🌟🌟🌟🙌🙌🙌🙌🙌
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.
I've been struggling with everything headers using reqwest. Thank you so much!
Thanks such great tuts. Please, please don't clap 😊
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?
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
Glad I can help and thanks for watching!
"I look like a child" lol
If you sign up for "buy me a coffee", I'll buy you a coffee.
Ok Tom, maybe this is the most direct and correct tutorial on internet :D
Chapter 17 is making me reconsider learning Rust.
You didn't know what 'static or 'a means because you skipped the section on lifetimes from chapter 10 😉
In the current book (Jan 2023), they have removed the note about "primitive obsession". lol
there's a testing community?
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!
Thank you for watching! I'm glad they have helped you!
"hope it helped.. probably didnt" hahahah
hello brother, where is the last part about lifetime? I couldn't find it :( thanks
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