I decided to make this the last TCP stream even though we're not quite done since the streams are becoming very technical (and hard to follow) as we get deep into the weeds. I think it'll be better to switch to a new topic from scratch like we've done in the past! So let me know what you'd like to see in the next stream over at https://jon.thesquareplanet.com/live-coding/! Remember that you can vote for more than one topic, and that the ranked voting will take into account your order of preference as well 🗳️
Today's Rust stream is now on YouTube! Our TCP implementation now supports reading + writing data, and we _nearly_ got it all to work with a real-world client 🎉 This was the third and last video (for now) in the series, and you can see them all at https://www.youtube.com/watch?list=PLqbS7AVVErFivDY3iKAQk3_VAm8SXwt1X&v=8GE6ltLRJA4.
It's finally time for the next Rust live-stream! This will be the last TCP implementation stream, and will happen Saturday at 4pm UTC (noon EST; https://everytimezone.com/?t=5cd61080,3c0). As always, it'll be live on https://www.twitch.tv/jonfrg and https://www.youtube.com/c/JonGjengset/live. Come join us! :D You can see the two previous streams at https://www.youtube.com/playlist?list=PLqbS7AVVErFivDY3iKAQk3_VAm8SXwt1X. What stream we do next is up to you! Head over to https://jon.thesquareplanet.com/live-coding/ and leave your vote for what you'd like to see 🎉
Hi all! We'll do more live streams soon, I promise. In the meantime though, I was recently interviewed on the CoRecursive podcast about Noria, Rust, evmap, and live-coding, and the episode dropped this morning! Give it a listen @ https://corecursive.com/030-rethinking-databases-with-jon-gjengset/
My co-authors and I wrote an article about Noria (the data-flow database I'm building for my research) for USENIX ;login: that has now been published in their Spring 2019 volume. It presents a slightly more practical view of Noria than the OSDI'18 paper, and you can find it here: https://jon.thesquareplanet.com/papers/login-spring19-noria.pdf
Second part of our live-coding quest to implement a user-land TCP stack in @rustlang is now up at https://www.youtube.com/watch?v=OCpt1I0MWXE! This time we focused on the crate's external interface, and in particular how we could get as close as possible to std::net::Tcp* and std::io::Read/Write. This will sadly be the last stream until early May due to a major upcoming deadline, but there should be enough recordings up at https://www.youtube.com/c/JonGjengset by now that there's plenty of material to keep you busy ^_^
Oh, and you should probably watch part 1 (https://www.youtube.com/watch?v=bzja9fQWzdA) before you watch this one as I won't be covering the basics again. The plan is still to roughly follow https://tools.ietf.org/html/rfc7414 with the ultimate goal of being able to interact with real internet hosts!
I started getting requests for the next "Implementing TCP in #rustlang" immediately after I posted the first one, so no time to waste! Let's do part 2/n this Saturday at 4pm UTC (noon EST) — https://everytimezone.com/s/a539fecc. Come fiddle with one of the Internet's core protocols with me :D
As always, the stream will be live at https://twitch.tv/jonfrg and https://www.youtube.com/c/JonGjengset/live. Do not fret if you miss the live stream though — part 2 will be uploaded to YouTube like all my past streams :)
The first part of our @rustlang TCP implementation journey is now up at https://www.youtube.com/watch?v=bzja9fQWzdA. Definitely some way left to go, but we got to the point where we can perform a TCP handshake with a "normal" client and then shut down the connection cleanly :D Stay tuned for more!
The implementation will be entirely user-level, and will (likely) use https://github.com/libpnet/libpnet to do the low-level network interaction. To write the implementation, we'll follow https://tools.ietf.org/html/rfc7414 , with the ultimate goal of being able to interact with real internet hosts!
New blog post! Remote code execution in apt/apt-get https://justi.cz/security/2019/01/22/apt-rce.html
Back in November I gave a talk at Two Sigma on #rustlang and Noria, the research database prototype I've been building at MIT over the past three years. I just got permission to share the recording of it, so if you're interested it's now up at https://www.youtube.com/watch?v=s19G6n0UjsM 🎉 You can find the slides at https://jon.thesquareplanet.com/slides/rust-twosigma/, the prototype and link to the paper at https://pdos.csail.mit.edu/noria , and the conference publication and presentation at https://www.usenix.org/conference/osdi18/presentation/gjengset!
Control Keys: http://exple.tive.org/blarg/2018/12/16/control-keys/
As planned, I wrote up a website for voting on upcoming stream ideas using ranked-choice voting yesterday! You can now vote for what you'd be more interested in seeing on https://jon.thesquareplanet.com/live-coding/. The stream recording is at https://www.youtube.com/watch?v=8LSNN-Y9Ftg, and you can see the source @ https://github.com/jonhoo/vote.rs.
This stream should also be accessible to less experienced Rustaceans! I'll cover the Future trait, combinators, how futures are executed, the Tokio runtime model (incl. the tokio thread pool), and how tokio provides asynchronous I/O. If we have time, I'll also try to dig into the adoption of futures into std + Pin/Unpin for async/await.
mastodon.at is a microblogging site that federates with most instances on the Fediverse.