![Jon Gjengset](/img/default-banner.jpg)
- 106
- 4 266 030
Jon Gjengset
Norway
Приєднався 17 лис 2013
We're building libraries and tools in the Rust programming language!
The streams are intended for users who are already somewhat familiar with Rust, but who want to see something larger and more involved be built. You can see earlier related videos by looking at the playlists and uploads on this channel. I post about upcoming streams and ideas for new ones at discord.jonhoo.eu, as well as on Twitter, Mastodon, and LinkedIn! Q&A tends to happen using wewerewondering.com/.
You can sponsor my work at github.com/sponsors/jonhoo/.
Streaming schedule: calendar.google.com/calendar/embed?src=719b6cf08a9f11da4a732083a43aa00a61a7943ea864a57417b5da13b1fc8ccb%40group.calendar.google.com&ctz=Europe%2FOslo
The hope of this channel is to help serve the Rust 2018 Roadmap goal of better serving intermediate Rustaceans: blog.rust-lang.org/2018/03/12/roadmap.html#better-serving-intermediate-rustaceans
Also known as (for search purposes): jonhoo
The streams are intended for users who are already somewhat familiar with Rust, but who want to see something larger and more involved be built. You can see earlier related videos by looking at the playlists and uploads on this channel. I post about upcoming streams and ideas for new ones at discord.jonhoo.eu, as well as on Twitter, Mastodon, and LinkedIn! Q&A tends to happen using wewerewondering.com/.
You can sponsor my work at github.com/sponsors/jonhoo/.
Streaming schedule: calendar.google.com/calendar/embed?src=719b6cf08a9f11da4a732083a43aa00a61a7943ea864a57417b5da13b1fc8ccb%40group.calendar.google.com&ctz=Europe%2FOslo
The hope of this channel is to help serve the Rust 2018 Roadmap goal of better serving intermediate Rustaceans: blog.rust-lang.org/2018/03/12/roadmap.html#better-serving-intermediate-rustaceans
Also known as (for search purposes): jonhoo
Open Source Maintenance, 2024-07-14
Due to some recent travel (both for fun and for work), I've yet again fallen behind on my GitHub notifications across the various open-source projects I maintain. In this video, like the others like it in the past, we made our way through as many of those as we could over the course of a few hours! And as with the past ones of these, my hope is that by showing the maintainer side of open-source, you get a better sense for how open-source operates, what it's like to be on the receiving end of issues/PRs, and just generally what maintainer work entails. And hopefully you also learn some stuff along the way!
In particular, we spent an inordinate amount of time on getting CI to be happy for github.com/jonhoo/fantoccini/pull/245 and on landing github.com/jonhoo/inferno/pull/319.
0:00:00 Introduction
0:04:42 Fantoccini 0.20.0 and 0.21.0 with hyper 1.0
0:43:21 PR that fixes typos (with CI)
0:46:52 crates-index-transit dependencies
0:57:46 Fantoccini CI: aws-lc
1:18:25 Various
1:20:50 Fantoccini CI: upgrade drivers and browsers
1:37:48 Various
1:45:05 Check in on fantoccini CI
1:50:33 hdrhistogram sum feature
1:58:19 Fantoccini CI: The root cause
2:35:13 Faktory: flaky test
2:43:15 Fantoccini CI: Chrome on Windows is still sad
2:48:59 Faktory: signals and blocking handlers
3:40:56 Fantoccini CI: A Chrome bug appears
3:45:43 Tea break
3:53:55 Various
4:15:33 Fantoccini CI: Try serial Chrome tests
4:21:52 Inferno: Bump dependencies
5:03:21 Fantoccini CI: Release 0.21.0
5:06:29 Inferno: Catching up with upstream
6:05:37 Inferno: Cut 0.11.20
6:27:47 wewerewondering: bump dependencies
6:31:18 Outro
Live version with chat: ua-cam.com/users/live4zoQ0sGRw3M
In particular, we spent an inordinate amount of time on getting CI to be happy for github.com/jonhoo/fantoccini/pull/245 and on landing github.com/jonhoo/inferno/pull/319.
0:00:00 Introduction
0:04:42 Fantoccini 0.20.0 and 0.21.0 with hyper 1.0
0:43:21 PR that fixes typos (with CI)
0:46:52 crates-index-transit dependencies
0:57:46 Fantoccini CI: aws-lc
1:18:25 Various
1:20:50 Fantoccini CI: upgrade drivers and browsers
1:37:48 Various
1:45:05 Check in on fantoccini CI
1:50:33 hdrhistogram sum feature
1:58:19 Fantoccini CI: The root cause
2:35:13 Faktory: flaky test
2:43:15 Fantoccini CI: Chrome on Windows is still sad
2:48:59 Faktory: signals and blocking handlers
3:40:56 Fantoccini CI: A Chrome bug appears
3:45:43 Tea break
3:53:55 Various
4:15:33 Fantoccini CI: Try serial Chrome tests
4:21:52 Inferno: Bump dependencies
5:03:21 Fantoccini CI: Release 0.21.0
5:06:29 Inferno: Catching up with upstream
6:05:37 Inferno: Cut 0.11.20
6:27:47 wewerewondering: bump dependencies
6:31:18 Outro
Live version with chat: ua-cam.com/users/live4zoQ0sGRw3M
Переглядів: 15 088
Відео
Q&A May 2024
Переглядів 19 тис.2 місяці тому
Audio podcast version: pod.jonhoo.eu/episode/qna/2024-05-04T10-05-43Z/ Links from the stream: - Discord: discord.jonhoo.eu - LogLog Games article: loglog.games/blog/leaving-rust-gamedev/ - Rust API Guidelines: rust-lang.github.io/api-guidelines/ - Rust Design Patterns Book: rust-unofficial.github.io/patterns/ - Data Latam podcast: www.datalatam.com/ - Engineering blogs: - words.filippo.io/dispa...
May 2024 Q&A
Переглядів 4,2 тис.2 дні тому
Also available as a video on UA-cam (ua-cam.com/video/diCEj3F3itc/v-deo.html) . Questions and answers session from May, 2024. Link list • Discord: discord.jonhoo.eu • LogLog Games article: loglog.games/blog/leaving-rust-gamedev/ • Rust API Guidelines: rust-lang.github.io/api-guidelines/ • Rust Design Patterns Book: rust-unofficial.github.io/patterns/ • Data Latam podcast: www.datalatam.com/ • E...
Decrusting the tokio crate
Переглядів 70 тис.3 місяці тому
In this stream, we peeled back the crust on the tokio crate - github.com/tokio-rs/tokio/ - and explored its interface, structure, and mechanisms. We talked about blocking, cancellation, spawning, and mechanisms for synchronization. We also dug into some of what goes on under the hood where that ends up being relevant to you as an application author! For more details about tokio, see docs.rs/tok...
Implementing (parts of) git from scratch in Rust
Переглядів 78 тис.4 місяці тому
In this stream, we implement core pieces of git from scratch by following the CodeCrafters git "course" @ app.codecrafters.io/join?via=jonhoo, just like we did for BitTorrent in ua-cam.com/video/jf_ddGnum_4/v-deo.html. If you sign up with the link above, you get free access to the challenge (and all their challenges) for 7 days. Alternatively, you can access the content for free (albeit without...
Decrusting the tracing crate
Переглядів 47 тис.5 місяців тому
In this stream, we peel back the crust on the tracing crate - github.com/tokio-rs/tracing/ - and explore its interface, structure, and mechanisms. We talk about spans, events, their attributes and fields, and how to think about them in async code. We also dig into into what subscribers are, how they pick up events, and how you can construct your own subscribers through the layer abstraction. Fo...
Hardware and software [2024 edition]
Переглядів 26 тис.6 місяців тому
Today's stream (finally) going over my hardware and software setup is now up! And it's not even that long :p GitHub Sponsors: github.com/sponsors/jonhoo/ Discord server: discord.jonhoo.eu/ Software configs: github.com/jonhoo/configs Hardware: Monitor: www.gigabyte.com/Monitor/M32U#kf Case: lian-li.com/product/o11-air-mini/ Motherboard: www.gigabyte.com/Motherboard/B650-GAMING-X-AX-rev-10-11-12#...
Q&A December 2023
Переглядів 15 тис.7 місяців тому
Links from the stream: Atomic operator in Raku/Perl 6: andrewshitov.com/2019/09/09/atomic-operations-in-perl-6/ Helsing on Glassdoor: www.glassdoor.com/Reviews/Helsing-Reviews-E6763957.htm Simon Singh's The Code Book: simonsingh.net/books/the-code-book/ Rustc dev guide: rustc-dev-guide.rust-lang.org/getting-started.html I automated my bad keyboard: www.reddit.com/r/MechanicalKeyboards/comments/...
December 2023 Q&A
Переглядів 302 дні тому
Also available as a video on UA-cam (ua-cam.com/video/A3qBmLx9uTU/v-deo.html) . Questions and answers session from December, 2023. Link list • Atomic operator in Raku/Perl 6: andrewshitov.com/2019/09/09/atomic-operations-in-perl-6/ • Helsing on Glassdoor: www.glassdoor.com/Reviews/Helsing-Reviews-E6763957.htm • Simon Singh’s The Code Book: simonsingh.net/books/the-code-book/ • Rustc dev guide: ...
Making the (partial) Rust BitTorrent client more reasonable
Переглядів 33 тис.8 місяців тому
After doing the BitTorrent CodeCrafters challenge in #rustlang (ua-cam.com/video/jf_ddGnum_4/v-deo.html), I had an urge to do some re-organization to better fit what a real implementation would look like when it has to handle files, multiple peers, multiple pieces, concurrency, etc. So, that's what we did! If you want to give the whole challenge a try, please consider using my refrral link: app...
Implementing (part of) a BitTorrent client in Rust
Переглядів 89 тис.9 місяців тому
In this stream, we're doing the "implement BitTorrent" challenge from app.codecrafters.io/join?via=jonhoo in Rust. Essentially, we're implementing a BitTorrent client from scratch by following a test-guided set of steps. This is a way of learning I really like (and encourage others to try), and after this stream I'm comfortable saying that this is also a good _implementation_ of that learning m...
Open Source Maintenance, 2023-08-25
Переглядів 13 тис.11 місяців тому
I'm nearly back up speed with my GitHub notifications across the various open-source projects I maintain since my move. In this stream, after many more like it, we finally make it (more or less) to the end of those notifications! As with the past ones of these, my hope is that by showing the maintainer side of open-source, you get a better sense for how open-source operates, what it's like to b...
Open Source Maintenance, 2023-08-13
Переглядів 8 тис.11 місяців тому
I'm still behind on my GitHub notifications across the various open-source projects I maintain. In this stream, we continue going through those notifications and make a (medium-sized) dent in them. My hope is that by showing the maintainer side of open-source, you get a better sense for how open-source operates, what it's like to be on the receiving end of issues/PRs, and just generally what ma...
Open Source Maintenance, 2023-08-06
Переглядів 13 тис.11 місяців тому
Open Source Maintenance, 2023-08-06
Supply Chain Security - MIT 6.5660 Computer Security guest lecture
Переглядів 15 тис.Рік тому
Supply Chain Security - MIT 6.5660 Computer Security guest lecture
Solving distributed systems challenges in Rust
Переглядів 218 тис.Рік тому
Solving distributed systems challenges in Rust
Setting up CI and property testing for a Rust crate
Переглядів 26 тис.Рік тому
Setting up CI and property testing for a Rust crate
From cargo to crates.io and back again
Переглядів 20 тис.Рік тому
From cargo to crates.io and back again
Making a Presentation: Living with Rust long-term
Переглядів 36 тис.Рік тому
Making a Presentation: Living with Rust long-term
Day in the Life of Open Source Maintenance: 2022-10-08
Переглядів 25 тис.Рік тому
Day in the Life of Open Source Maintenance: 2022-10-08
Crust of Rust: Build Scripts and Foreign-Function Interfaces (FFI)
Переглядів 37 тис.Рік тому
Crust of Rust: Build Scripts and Foreign-Function Interfaces (FFI)
I watched this from start to finish.. and man.. this open source stuff requires a lot of time and work! Great stream Jon and thanks for everything you do!
Ian hubert mention is something I did not expected.
I really wish my ADHD doesn't restrict me from watching this for 6hours, thank you for the quality content even though i struggle to watch 😂
I'm unclear about the purpose of the initial shell scripting. Why not simply take all the five-letter words and all the answers and you got everything you need. What was the rationale behind using AWK and merging the stuff?
Chai 😂 means tea in hindi
Don't you get burned out??
Really fucking inspiring
When it comes to code review, I think a good model is @TheCherno, where he only reviews code directly submitted to him.
Would be interesting to also look at cache utilization of this program and your changes
Funny, I failed an test on a job interview a year ago and I've been all this time wondering how I could actually do what they asked the way they asked, I had no idea something like Fantoccini was a thing.
Which editor is this guy using? I really love it.
I just found your channel yesterday as I have started learning rust a few weeks ago. Good thing I found you early, your explanations are very good, I could understand everything perfectly. If I am not sure about something, I just go back to your explanations, and it just clicks. Thank you for making your videos available for us. I haven't watched all your videos yet, but I plan to keep watching until I fully absorb everything you shared.
The content is a cut above the rest. Keep setting the bar high!
Thank you, Jon 🙏
As you can see, the real reason a HashMap is not really order one is because Jon can't draw a straight line.
I'd always do a cargo publish before pushing to git. Otherwise, if cargo publish fails in one of it's misterious ways, you'd have to change the history of the repo to if a change is required to make publish work.
Then you'd lose the commit hash in the vcs file that Cargo sticks in the crate file though?
@@jonhoo Not sure which vcs file you mean, I haven't seen `cargo publish` modify any files in the repo.
doc.rust-lang.org/cargo/commands/cargo-package.html#cargo_vcs_infojson-format
@@jonhoo Why wouldn't that be accurate? Cargo publish requires you to commit all relevant files before allowing you to publish. So the changes to Cargo.toml etc. would all be part of the branch that would be pushed if and once the publishing succeeds. If cargo aborts the process you get to do over, if you pushed the branch and tag before the publishing, if it aborts, then you either have to rewrite the git history or do another version bump (and so on until it succeeds).
Oh, I see what you mean. I thought you also wouldn't commit. Even if you do though, I'd be slightly worried that you then push and end up with failing CI or some such. Or alternatively if you have a branch with succeeding CI that something then lands on main in the meantime. But then again, I suspect every ordering here has some possibility of a race.
6 hours, wow
I love these Open Source Maintenance VODs since it's so cool to see behind the scenes of a repository/package maintainer like this and how much work goes into it.
This whole VOD felt so frustrating to watch, 10/10
1:04:39 I don't know if it's been addressed later on, but there's definitely a difference between Tokio Instant and std Instant. In if the testing feature is enabled, Tokio Instant works off an internal clock so Tokio can time warp through sleep calls so tests don't take forever.
git bisect around 5h40m really felt more like git blame 😅
it's ALWAYS windows 😢
"This job failed. Ok, great."
LLMs have ruined comment sections
So far it's looking clean, maybe they got filtered?
I don't think you actually needed to install nasm. After setting that environment variable it would build without it. Would it be slower? Yes, probably by a lot as well. Does it matter for CI? I don't think so. Would also require an unoptimized build of it.
Thanks for the day in the life show. I work as devops/sre and I enjoy using Rust and watching your stream 1. to learn about awesome rust things and 2. to feel like I'm working in the office again.
Please do more crust of rust. They are incredibly informative
Wait 6hrs of coding non stop? Really? Is that even humanely possible?
I think we’re not talking about human here
I don't know how
Really inspiring! Thanks for maintaining all the open-source projects.
@40:47 is that kdb with the benchmarking clause? 😅
The fact that this video has 60k is the problem with Rust. People come to Rust, from languages which have concurrency primitives like coroutines (and no multi threading) and therefore think that it's a good idea to reach for async first (instead of pure multi threading). My from-the-hip guess, is that I suspect 90% of all projects using Tokio shouldn't and are probably *worse off* for doing so. Coroutines are very rarely better than pure multi threading in my experience and opinion. For many reasons, really.
Very good series to introduce the rust macros.
what about implementing the iter() trait for a LinkedList , its so hard !!!
mind-blowing presentation ❤
41:19 Dude called the libz hack nearly a year before they tried to pull it off
I came here after reading the book Rust for Rustaceans and this helped me understand a lot better. Thanks a lot Jon!
Thanks!
this series should be continued!!!!
I took me three sittings to get through all the content. I'm happy you made this recording. I tried to make sense of everything that's documented but it's hard if you're learning rust and only built one or two applications with it. This is a great walk through with much needed hints to get beyond the basic compile errors!
2:31:47 - it's not cutting off info_hash, you shadowing tracker_url and all it's params by parsing just announce on the next line.
39:00 what if you spawn more OS threads ( std::thread::spawn) from within spawn_blocking? Would that block all other Tokio workers or would Tokio handle that?
I really enjoy these videos. But it can be frustrating to follow along with all the random single-letter variable names. `match m ..... if g == w` only makes sense, if I scroll back up and re-read what's going on. Whereas verbose variables would make it read better.
Can't show my thanks any more. You are a great presenter!
how does he do the thingy in vim where he highlights the code and then pastes it below without moving the curser, he really needs the thing that shows his keyboard keys
2:36:45 uh, Rust has .as_ptr(), which is surprisingly safe, as dereferencing it is unsafe anyway.
Thanks a lot!
Drop of a tuple struct is different from normal struct.
What does he mean "this allocates"?
I can't believe how good these videos are