Jon Gjengset
Jon Gjengset
  • 106
  • 4 266 030
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
Переглядів: 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
Decrusting the axum crate
Переглядів 66 тис.11 місяців тому
Decrusting the axum crate
Q&A July 2023
Переглядів 21 тис.Рік тому
Q&A July 2023
July 2023 Q&A
Переглядів 132 дні тому
July 2023 Q&A
Crust of Rust: std::collections
Переглядів 68 тис.Рік тому
Crust of Rust: std::collections
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
Decrusting the serde crate
Переглядів 54 тис.Рік тому
Decrusting the serde crate
Q&A December 2022
Переглядів 15 тис.Рік тому
Q&A December 2022
December 2022 Q&A
Переглядів 82 дні тому
December 2022 Q&A
Q&A November 2022
Переглядів 13 тис.Рік тому
Q&A November 2022
November 2022 Q&A
Переглядів 1422 дні тому
November 2022 Q&A
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)

КОМЕНТАРІ

  • @rodelias9378
    @rodelias9378 2 дні тому

    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!

  • @zikunwang8286
    @zikunwang8286 2 дні тому

    Ian hubert mention is something I did not expected.

  • @waynelau3256
    @waynelau3256 3 дні тому

    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 😂

  • @weeb3277
    @weeb3277 4 дні тому

    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?

  • @kunal.....
    @kunal..... 4 дні тому

    Chai 😂 means tea in hindi

  • @kunal.....
    @kunal..... 4 дні тому

    Don't you get burned out??

  • @kunal.....
    @kunal..... 4 дні тому

    Really fucking inspiring

  • @alberthalbert1153
    @alberthalbert1153 5 днів тому

    When it comes to code review, I think a good model is @TheCherno, where he only reviews code directly submitted to him.

  • @Unaimend
    @Unaimend 5 днів тому

    Would be interesting to also look at cache utilization of this program and your changes

  • @jonnyso1
    @jonnyso1 5 днів тому

    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.

  • @yoyoma7273_6
    @yoyoma7273_6 5 днів тому

    Which editor is this guy using? I really love it.

  • @thedudegotfourviews
    @thedudegotfourviews 6 днів тому

    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.

  • @FerPerez-mc3wr
    @FerPerez-mc3wr 9 днів тому

    The content is a cut above the rest. Keep setting the bar high!

  • @catsolstice
    @catsolstice 11 днів тому

    Thank you, Jon 🙏

  • @jonnyso1
    @jonnyso1 11 днів тому

    As you can see, the real reason a HashMap is not really order one is because Jon can't draw a straight line.

  • @danielegger6460
    @danielegger6460 12 днів тому

    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.

    • @jonhoo
      @jonhoo 11 днів тому

      Then you'd lose the commit hash in the vcs file that Cargo sticks in the crate file though?

    • @danielegger6460
      @danielegger6460 11 днів тому

      @@jonhoo Not sure which vcs file you mean, I haven't seen `cargo publish` modify any files in the repo.

    • @jonhoo
      @jonhoo 11 днів тому

      doc.rust-lang.org/cargo/commands/cargo-package.html#cargo_vcs_infojson-format

    • @danielegger6460
      @danielegger6460 11 днів тому

      @@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).

    • @jonhoo
      @jonhoo 10 днів тому

      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.

  • @uncleyour3994
    @uncleyour3994 12 днів тому

    6 hours, wow

  • @smallclover
    @smallclover 12 днів тому

    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.

  • @cocacodes
    @cocacodes 12 днів тому

    This whole VOD felt so frustrating to watch, 10/10

  • @gfasterOS
    @gfasterOS 12 днів тому

    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.

  • @dzuchun
    @dzuchun 12 днів тому

    git bisect around 5h40m really felt more like git blame 😅

  • @dzuchun
    @dzuchun 13 днів тому

    it's ALWAYS windows 😢

    • @dzuchun
      @dzuchun 13 днів тому

      "This job failed. Ok, great."

  • @AndyQuinteroM
    @AndyQuinteroM 13 днів тому

    LLMs have ruined comment sections

    • @NetherFX
      @NetherFX 12 днів тому

      So far it's looking clean, maybe they got filtered?

  • @ferdynandkiepski5026
    @ferdynandkiepski5026 13 днів тому

    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.

  • @brandonkauffman7256
    @brandonkauffman7256 13 днів тому

    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.

  • @polares8187
    @polares8187 13 днів тому

    Please do more crust of rust. They are incredibly informative

  • @YuruCampSupermacy
    @YuruCampSupermacy 13 днів тому

    Wait 6hrs of coding non stop? Really? Is that even humanely possible?

    • @nosh3019
      @nosh3019 13 днів тому

      I think we’re not talking about human here

    • @kunal.....
      @kunal..... 4 дні тому

      I don't know how

  • @ProjectFinalAudio
    @ProjectFinalAudio 14 днів тому

    Really inspiring! Thanks for maintaining all the open-source projects.

  • @user-kn4wt
    @user-kn4wt 15 днів тому

    @40:47 is that kdb with the benchmarking clause? 😅

  • @simonfarre4907
    @simonfarre4907 17 днів тому

    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.

  • @isaacyuen5409
    @isaacyuen5409 21 день тому

    Very good series to introduce the rust macros.

  • @Singlton
    @Singlton 21 день тому

    what about implementing the iter() trait for a LinkedList , its so hard !!!

  • @Vlad-hl1gy
    @Vlad-hl1gy 22 дні тому

    mind-blowing presentation ❤

  • @jonmon6691
    @jonmon6691 26 днів тому

    41:19 Dude called the libz hack nearly a year before they tried to pull it off

  • @revanthshalon5626
    @revanthshalon5626 26 днів тому

    I came here after reading the book Rust for Rustaceans and this helped me understand a lot better. Thanks a lot Jon!

  • @2Jujumba
    @2Jujumba 27 днів тому

    Thanks!

  • @raghavdutt4751
    @raghavdutt4751 28 днів тому

    this series should be continued!!!!

  • @willemmeints3123
    @willemmeints3123 28 днів тому

    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!

  • @longbranchgooberdapple2238
    @longbranchgooberdapple2238 Місяць тому

    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.

  • @user-qm6up7kz4n
    @user-qm6up7kz4n Місяць тому

    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?

  • @superhero-studios
    @superhero-studios Місяць тому

    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.

  • @honeywu6862
    @honeywu6862 Місяць тому

    Can't show my thanks any more. You are a great presenter!

  • @idobenamram3743
    @idobenamram3743 Місяць тому

    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

  • @xwtek3505
    @xwtek3505 Місяць тому

    2:36:45 uh, Rust has .as_ptr(), which is surprisingly safe, as dereferencing it is unsafe anyway.

  • @romeil691
    @romeil691 Місяць тому

    Thanks a lot!

  • @hanyanglee9018
    @hanyanglee9018 Місяць тому

    Drop of a tuple struct is different from normal struct.

  • @georgiossmyridis5088
    @georgiossmyridis5088 Місяць тому

    What does he mean "this allocates"?

  • @sebastianfischer3380
    @sebastianfischer3380 Місяць тому

    I can't believe how good these videos are