ZooπΊ Into the exciting world of *Rust Programming* with Adam Chalmers from the *Zoo* team!
In this video, we'll take you on a ride through the realm of *Rust,* with a laser focus on the art of crafting *parsers.*
*What's in store for you:* π· In-depth insights into Rust programming π· Unlock the secrets to mastering parsers π· Hands-on learning to boost your proficiency
Join us today on this enlightening educational expedition, and kickstart your journey to becoming a Rust programming wizard! π§ββοΈ
Zoos Rust Club [Episode 1] - How to Build ParsersZoo2023-10-17 | πΊ Into the exciting world of *Rust Programming* with Adam Chalmers from the *Zoo* team!
In this video, we'll take you on a ride through the realm of *Rust,* with a laser focus on the art of crafting *parsers.*
*What's in store for you:* π· In-depth insights into Rust programming π· Unlock the secrets to mastering parsers π· Hands-on learning to boost your proficiency
Join us today on this enlightening educational expedition, and kickstart your journey to becoming a Rust programming wizard! π§ββοΈ
β Check us out below β Website: https://zoo.dev Github: github.com/KittyCAD LinkedIn: linkedin.com/company/zoodotdev Twitter: twitter.com/zoodotdev Discord: discord.com/invite/JQEpHR7Nt2Dev live-stream: tree-sitter grammarsZoo2024-05-24 | We're building a new programming language for 3D design (KCL aka KittyCADlang). Today we're writing a tree-sitter parser so we can get syntax highlighting and text navigation in editors like Neovim or Helix.Zoos Rust Club [Episode 6] - ParallelismZoo2024-05-02 | Welcome back to Zoo's Rust Club!
*What's in store for you:* π· Use threads to split up computation across all your CPU cores π· Use Rayon to run iterators in parallel π· Using Tokio to wait on many IO events simultaneously
00:00 Intro 02:07 Parallelism in Rust 02:59 Using Rayon 04:10 Fibonacci example 08:15 Set up the Fibonacci example to make it easier to parallelize 09:33 Parallelizing iterator with Rayon 18:30 Rayon Parallel Iterator Traits 21:15 Trying parallelism with Tokio 28:18 Mistake was made! Find out what it was... or skip to the next time stamp 42:51 Mistake was found and fixed! 46:10 Rayon vs Tokio Crossbeam time comparison 46:43 Doing it the proper Tokio way 48:49 Rayon vs Tokio Crossbeam vs Tokio async channels time comparison 59:39 Trying parallelism without Rayon or any other libraries 1:05:18 Manual threading time comparison 1:16:30 Manual threading + batches time comparison
*Zoo* creates infrastructure for hardware design. Design demands have outpaced todayβs hardware design infrastructure, and the industry is due for a refresh. We're laying the foundation for a modern hardware design toolkit, so that you can create new design tools never before possible.
#hardware #software #ZooNerds on Patrol [Episode 4] - Elevated MaterialsZoo2024-02-16 | π Welcome back to Nerds on Patrol! In this episode, Jessie Frazelle and Josh Gomez from the Zoo team had the pleasure of chatting with the team from Elevated Materials while diving into their fascinating technology. Elevated Materials manufactures high-quality, flat carbon fiber sheets and carbon fiber plates that can be used in a huge array of industries and applications. Their carbon fiber sheets are press cured to provide better consolidation, more uniformity, greater consistency, and a better surface finish.
π΅οΈββοΈ Join us as we explore their world, and engage in a candid, eye-opening, and inspiring conversation alongside CEO Ryan Olliges, and CTO Jaysen Harris.
π Timestamps: 00:00β - Introduction 00:37 - Elevated Materials Process Walk Through 34:25 - Sit Down Interview with Ryan and Jaysen 55:51 - Check Out Elevated Materials! 57:08 - Rapid Fire 58:35 - BTS
π Subscribe and hit the notification bell to stay updated as we delve into the tech universe with Nerds on Patrol!
Thanks for watching! If you found this video entertaining, let us know in the comments below.
Credits: Director - Jessie Frazelle Creative Director - Jenna Bryant Producer - YJ Lim EPs - Jordan Noone, Jenna Bryant Director of Photography - A Sleeping Giant asleepinggiant.com Camera Operator - Ruben Lopez Editor - Luigi Lizarondo Composer - LeelanZoos Rust Club [Episode 5] - Operators and TraitsZoo2024-02-01 | Welcome back to Zoo's Rust Club!
*What's in store for you:* π· Learn how to define your types and use them with Rust's built-in mathematical operators like + or - π· Discover the trait system that makes this operator overloading possible π· Explore advanced features of traits, like "associated types"
00:00 Intro 00:52 Making a generic "midpoint" function 04:28 Implementing the Add trait 09:20 The "Output" associated type 11:40 Implementing the Index trait 16:40 IndexMut and supertraits 19:35 Constraining generics with "where" 20:25 What if two different traits use the same method name? 28:45 Implementing IndexMut 30:50 Using enums as indices 34:05 Impling Index twice on the same type 35:37 What traits does this type implement?
*Zoo* creates infrastructure for hardware design. Design demands have outpaced todayβs hardware design infrastructure, and the industry is due for a refresh. We're laying the foundation for a modern hardware design toolkit, so that you can create new design tools never before possible.
#hardware #software #ZooZoos Rust Club [Episode 4] - Error-HandlingZoo2023-12-21 | Welcome back to Zoo's Rust Club! Today we'll learn how to handle errors.
*What's in store for you:* π· Learn how Rust uses Result and generics to handle errors π· Analyze different error-handling libraries, like anyhow and thiserror, and see when each is appropriate π· What is the ? operator and how does it work π· When to return errors vs. panicking
00:00 Intro 01:00 Panics vs. handling 03:12 Unwrap 05:10 Libraries shouldn't panic 07:18 Errors shouldn't be strings 09:02 Errors as enums 13:10 Errors as structs 16:35 Integrating HTTP error codes 20:38 Hiding sensitive information from errors 21:58 Match patterns in Rust 22:40 Wrapping errors from other libraries 25:30 Error conversion with .map_err 26:30 Error conversion with From and ? 28:20 The "thiserror" crate 32:20 CLI tools and exit codes 37:20 Real-world examples from KittyCAD's open source
β Check us out below β Website: https://zoo.dev Github: github.com/KittyCAD LinkedIn: linkedin.com/company/zoodotdev Twitter: twitter.com/zoodotdev Discord: discord.com/invite/JQEpHR7Nt2Nerds on Patrol [Episode 3] - Terraform IndustriesZoo2023-12-15 | π Welcome back to Nerds on Patrol! In this episode, Jessie Frazelle and Josh Gomez from the Zoo team had the pleasure of chatting with the team from Terraform Industries while diving into their fascinating technology. Terraform Industries is scaling technology to produce cheap natural gas with sunlight and air. They are committed to cutting the net CO2 flux from crust to atmosphere as quickly as possible. As solar power gets cheaper, there will come a time when it is cheaper to get carbon from the atmosphere than an oil well. That time is now.
π΅οΈββοΈ Join us as we explore their world, and engage in a candid, eye-opening, and inspiring conversation alongside Founder and CEO Casey Handmer, and Chemical Engineer Lucie Nurdin.
π Timestamps: 00:00β - Opening 00:18 - Introduction 00:38 - Meeting and Interview with Casey 09:52 - Interview with Lucie 36:50 - How to contact Terraform 37:26 - Rapid Fire Questions 38:38 - Outro
π Subscribe and hit the notification bell to stay updated as we delve into the tech universe with Nerds on Patrol!
Thanks for watching! If you found this video entertaining, let us know in the comments below.
Rust has two great tools for measuring your code's speed: π· Write Criterion benchmarks to measure part of your code π· Run the Criterion benchmarks to analyze how long the benchmarked code takes to run π· Use a Flamegraph to visualize how that code is spending its time, and where you should try to improve it.
We'll benchmark the HTML parser from youtube.com/watch?v=QF3kMyzMC40, visualize its performance, try some different strategies to improve and see which ones work!
Timestamps:
0:00:00 Intro 0:01:24 Naive, unoptimized parser 0:02:40 Setting up Criterion benchmarks 0:06:56 Running benchmarks 0:09:00 Criterion HTML reports 0:10:25 Measuring throughput with benchmark groups 0:27:21 Using flamegraphs to visualize benchmarks 0:36:58 Switching to a faster hash function 0:47:51 Analyzing performance tradeoffs 0:57:57 Exploring Criterion's codegen 1:01:40 Benchmarking with Hyperfine 1:04:11 Benchmarking different implementations
β Check us out below β Website: https://zoo.dev Github: github.com/KittyCAD LinkedIn: linkedin.com/company/zoodotdev Twitter: twitter.com/zoodotdev Discord: discord.com/invite/JQEpHR7Nt2Nerds on Patrol [Episode 2] - LaunchpadZoo2023-11-30 | π Welcome back to Nerds on Patrol! In this episode, Jessie Frazelle and Josh Gomez from the Zoo team had the pleasure of chatting with the team from Launchpad while diving into their fascinating technology. Whether you outsource or manufacture in-house, Launchpad can accelerate your manufacturing and shorten your supply chain. Turn complex and expensive manufacturing into an easy-to-use, AI-powered process.
π΅οΈββοΈ Join us as we explore their world, and engage in a candid, eye-opening, and inspiring conversation alongside CEO Yoav Zingher, and systems engineer Josh Pillitiere.
β Check out Launchpad β https://www.launchpad.build/
π Timestamps: 00:00β - Opening 00:17 - Introduction 00:38 - Meeting Yoav 01:05 - Meeting Josh P 01:17 - Interview with Yoav and Josh P 22:42 - Rapid Fire Questions 26:19 - Outro
π Subscribe and hit the notification bell to stay updated as we delve into the tech universe with Nerds on Patrol!
Thanks for watching! Who else should we visit? π΅ββοΈ Let us know in the comments below!
Credits: Director - Jessie Frazelle Creative Director - Jenna Bryant Producer - YJ Lim EPs - Jordan Noone, Jenna Bryant Director of Photography - Demi Brooks Editor - Luigi Lizarondo Composer - LeelanNerds on Patrol [Episode 1] - Machina LabsZoo2023-11-16 | π Welcome to Nerds on Patrol!! In this episode, Jessie Frazelle and Josh Gomez from the Zoo team had the pleasure of chatting with the team from Machina Labs while diving into their fascinating technology. Machina Labs is unlocking the centuries-old manufacturing industry by combining the latest advances in robotics and AI to build the next generation of factories.
π΅οΈββοΈ Join us as we explore their world, and engage in a candid, eye-opening, and inspiring conversation alongside CEO Edward Mehr, and engineers Ashkan Pourkand and Naghmeh Zamani.
π Timestamps: 00:00β - Introduction 00:37 - Interview with Ed 27:35 - Interview with Ashkan and Naghmeh 1:09:37 - Rapid Fire with Ed 1:13:17 - Check out Machina Labs! 1:13:56 - Behind the Scene
π Subscribe and hit the notification bell to stay updated as we delve into the tech universe with Nerds on Patrol!
Thanks for watching! If you found this video entertaining, let us know in the comments below.
Credits: Director - Jessie Frazelle Creative Director - Jenna Bryant Producer - YJ Lim EPs - Jordan Noone, Jenna Bryant Director of Photography - A Sleeping Giant asleepinggiant.com Camera Operator - Ruben Lopez Set PA - Demi Brooks Editor - Luigi Lizarondo Composer - LeelanZoos Rust Club [Episode 2] - How to Build Parsers [Pt 2]Zoo2023-11-10 | Welcome back to Zoo's Rust Club! We will be going more in depth about parsers with a concise recap of our last video!
*What's in store for you:* π· Building a realistic tokenizer and parser for a real-world programming language π· Use Winnow for performant, readable code π· Learn the nuances of actually implementing a programming language
0:00:00 Fumbling around 0:00:50 Intro to Winnow 0:03:00 Tokenizing a programming language 0:07:15 Raw string literals 0:08:45 How Winnow works 0:11:40 Combinator: one_of, repeat, recognize 0:15:09 Combinator: alt, dispatch 0:21:22 PResult and ErrMode 0:23:34 Parser inputs 0:26:08 Unit testing the parser 0:31:30 Combinator: separated, tuples, opt 0:40:30 Slices of tokens with lifetimes 0:42:30 Handling custom error types 0:49:30 Combinator: try_map, verify 0:55:15 Parsing whitespace and comments 0:58:40 The most complicated parser 1:04:39 Shortcomings and limitations of our parser 1:07:00 Beautiful error messages and testing