Interview 4 – Jonathan Turner: Part 3

June 17, 2017 22:05 21.22 MB Downloads: 0

Smoothing the Rust dev story Future work on the RLS, in Rust itself, and in Servo. Show Notes Building the Rust Language Service: Language Server Protocol plugins RLS reference VS Code plugin Kalita Alexey's vscode-rust langserver.org The 2017 Rust Roadmap Improved match ergonomics around references const generics RFC #1931 Working on Servo: Servo Windows nightlies LLVM Apple's use on their graphics pipeline: OpenGL Metal clang Swift Project Quantum WebKit KHTML Safari Sponsors Anthony Deschamps Anthony Scotti Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Behnam Esfahbod Benjamin Wasty Charlie Egan Chris Jones Chris Palmer Christopher Giffard Dan Abrams Daniel Collin Derek Morr Eugene Bulkin Henri Sivonen Jakub "Limeth" Hlusička Jonathan Turner Jordan Henderson Jupp Müller Justin Ossevoort Karl Hobley Keith Gray Kilian Rault Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Patrick O'Doherty Peter Tillemans Philipp Keller Ralph Giles ("rillian") Randy MacLeod Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tim Brooks Tom Prince Ty Overby Tyler Harper Vesa Kaihlavirta Warren Harper William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Interview 4 – Jonathan Turner: Part 2

May 30, 2017 25:09 24.2 MB Downloads: 0

Making Rust Better Rust as the fusion of systems and high-level programming languages, and the RLS. Show Notes The survey Language adoption: Guido van Rossum and Python Matz (Yukihiro Matsumoto) and Ruby Dart Building the Rust Language Service: Racer rustw Language Server Protocol Demo at RustConf 2016 Anders Hejlsberg – designer or lead developer of Turbo Pascal, Delphi, C#, and TypeScript Serde Roadmap GitHub Project Language Server Protocol plugins RLS reference VS Code plugin Kalita Alexey’s vscode-rust langserver.org The 2017 Rust Roadmap Improved match ergonomics around references const generics RFC #1931 Sponsors Anthony Deschamps Anthony Scotti Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Jones Chris Palmer Christopher Giffard Dan Abrams Daniel Collin Derek Morr Eugene Bulkin Henri Sivonen Jakub “Limeth” Hlusička Jonathan Turner Jordan Henderson Jupp Müller Justin Ossevoort Karl Hobley Keith Gray Kilian Rault Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Patrick O’Doherty Peter Tillemans Philipp Keller Ralph Giles (“rillian”) Raph Levien reddraggone9 Steven Murawski Stuart Hinson Ty Overby Tyler Harper Vesa Kaihlavirta Warren Harper William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Interview 4 – Jonathan Turner: Part 1

April 30, 2017 22:50 21.95 MB Downloads: 0

Getting to Rust Background, TypeScript, coming to Rust, and how helpful the Rust community can be. Show Notes On Jonathan's programming backstory: TI-99/4A Commodore 64 Cray Chapel TypeScript Yehuda Katz ECMAScript Language Committee Data locality CPPCast BASIC Pascal Ultima After the transition to working on Rust full-time: Improving the error messages— design issue Jonathan's personal blog post "Helping with the Rust Errors" Official Rust blog post announcing and describing the feature, "Shape of Errors to Come" Elm error list issue Sponsors Anthony Deschamps Anthony Scotti Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Jones Chris Palmer Christopher Giffard Dan Abrams Daniel Collin Derek Morr Eugene Bulkin Henri Sivonen Jakub "Limeth" Hlusička Jonathan Turner Jordan Henderson Jupp Müller Justin Ossevoort Karl Hobley Keith Gray Kilian Rault Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Patrick O'Doherty Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Ty Overby Tyler Harper Vesa Kaihlavirta Warren Harper William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

CYSK: RLS

April 18, 2017 11:30 11.06 MB Downloads: 0

Where the RLS came from, what it can do, and how you can start using it today! Notes One major ergonomic improvement to developing in Rust in 2017 is coming via the Rust Language Service: an initiative that lets us share a common core of functionality between every editor – from Vim to VS Code and everything in between. In today's episode, I give some background on it and talk about how you can start using it today! Links Rust Language Service repo blog posts announcement alpha 2 release first rustup release vscode-rust Language Server Protocol repo VS Code blog post implementations Sponsors Anthony Deschamps Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Jones Chris Palmer Christopher Giffard Dan Abrams Daniel Collin Derek Morr Eugene Bulkin Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Justin Ossevoort Karl Hobley Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Patrick O'Doherty Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tyler Harper Vesa Kaihlavirta Warren Harper William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

e020: Putting code in its place

April 01, 2017 20:20 19.59 MB Downloads: 0

How do we organize code in Rust? Where do we break it apart into modules or crates, and why? Notes Structuring code in a language like Rust can seem a bit more ambiguous than doing the same in a language with classes to attach all our functionality to, but in practice, the concerns are much the same: modules are namespaces, and we group by responsibility. In today's episode, I talk through that philosophy (and give some comparisons to other languages), and then look at what it looks like in practice! Links Learning Rust Modules, by Jeff Walker, has a nice comparison of C# namespaces and Rust modules. The commit on Lightning inspired by this episode. Sponsors Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Jones Chris Palmer Christopher Giffard Dan Abrams Daniel Collin Derek Morr Eugene Bulkin Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Justin Ossevoort Karl Hobley Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Patrick O'Doherty Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tyler Harper Vesa Kaihlavirta Vlad Bezden Warren Harper William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Bonus 8: Giving back (by teaching)

March 19, 2017 13:30 12.98 MB Downloads: 0

On the responsibilities and opportunities we have to help others with our knowledge and abilities. Notes Many of us have been very blessed with opportunities and support as we learn software. We should go out of our way to share with others in kind. Today, my focus is on teaching, but there are lots of ways to "give back." And I'd love to hear your thoughts and things you're doing in that vein! Links Julia Evans keyof and Mapped Types in TypeScript 2.1 -- the blog post I mentioned writing a few months ago. Sponsors Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Jones Chris Palmer Christopher Giffard Dan Abrams Daniel Collin Derek Morr Eugene Bulkin Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Justin Ossevoort Karl Hobley Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Patrick O'Doherty Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tyler Harper Vesa Kaihlavirta Vlad Bezden Warren Harper William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

e019: Let's `Clone` a `Cow`

February 28, 2017 18:11 15.35 MB Downloads: 0

code{white-space: pre;} The final pieces of the story for (single-threaded) memory management in Rust. Notes Sometimes, we actually do need to copy types. Wouldn't it be nice if Rust gave us a convenient way to do that when it's convenient, or when the cost is low enough that the ergonomic tradeoffs are worth it? Well, perhaps unsurprisingly, it does! The Copy and Clone traits, plus the Cow type, give us everything we need! Links underhanded.rs The typess std::marker::Copy "Copy types" in the book "Stack-Only Data: Copy" in the new book 7.2.0.2 Moved and copied types: When a local variable is used as an rvalue, the variable will be copied if its type implements Copy. All others are moved. Extended example in "Traits" section of new book std::clone::Clone std::borrow::Cow Default implementations discussion in the current book discussion in the new book Supertraits from the discussion in the reference (6.1.9 Traits): Traits may inherit from other traits.... The syntax Circle : Shape means that types that implement Circle must also have an implementation for Shape. Multiple supertraits are separated by +, trait Circle : Shape + PartialEq { }. In an implementation of Circle for a given type T, methods can refer to Shape methods, since the typechecker checks that any type with an implementation of Circle also has an implementation of Shape... discussion of trait "inheritance" in the book discussion of trait super- and subtyping in the new book (note: still to-be-written at the time this episode was published) Marker traits std::marker in the reference: 9 Special Traits Previous episodes on traits: e008: Just like something else e009: Composing a Rustic tune Sponsors Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Palmer Christopher Giffard Daniel Collin Derek Morr Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tyler Harper Vesa Kaihlavirta Vlad Bezden William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

CYSK: clap

February 14, 2017 10:42 9.01 MB Downloads: 0

A Command-Line Argument Parser. Links crates.io docs.rs GitHub videos book YAML: example from clap YAML associated Rust implementation example from lightning-rs: YAML associated Rust implementation Sponsors Sponsors Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Palmer Christopher Giffard Daniel Collin Derek Morr Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tyler Harper Vesa Kaihlavirta Vlad Bezden William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

e018: `Borrow`, `AsRef`, `Deref`: my head hurts now

January 31, 2017 17:25 14.7 MB Downloads: 0

Three traits which are essential for designing good, Rustic APIs. Notes Borrow, AsRef, and Deref are a little complicated, but they're well-worth understanding. Together, they give you tools for dealing with everything from HashMap and friends to conversions involving smart pointer types to easily using String and str or Vec and slice together. Links AsRef, Borrow, and Deref: Borrow and AsRef in The Rust Programming Language collections::borrow::Borrow std::convert::AsRef std::ops::Deref persistent data structures "Rust and Rest" – Arnin Roacher sentry-cli Particularly relevant previous episodes: e008: Just like something else e009: Composing a Rustic tune e017: Point me where I need to go interview::2: Raph Levien Sponsors Aleksey Pirogov Andreas Fischer Andrew Thompson Ben Whitley Cameron Mochrie Chris Palmer Christopher Giffard Daniel Collin Derek Morr Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Micael Bergeron Ovidiu Curcan Pascal Hertleif Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Ryan Ollos Steven Murawski Vesa Kaihlavirta Vlad Bezden William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

CYSK: quick-xml

January 09, 2017 8:38 7.28 MB Downloads: 0

A pull-parser for reading and writing XML. Links crates.io docs.rs GitHub syntax highlighting – example from lightning-rs Sponsors Aleksey Pirogov Andreas Fischer Ben Whitley Cameron Mochrie Chris Palmer Christopher Giffard Daniel Collin Derek Morr Jakub “Limeth” Hlusička Jupp Müller Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Micael Bergeron Ovidiu Curcan Pascal Hertleif Peter Tillemans Philipp Keller Ralph Giles (“rillian”) Raph Levien reddraggone9 Ryan Ollos Steven Murawski Vesa Kaihlavirta Vlad Bezden William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

News 2: Let's talk roadmap!

December 29, 2016 21:08 17.77 MB Downloads: 0

Rust’s achievements in 2016 and goals for 2017 Links Rust releases: 1.10: blog post | release notes 1.11: blog post | release notes 1.12: blog post | release notes 1.12.1: blog post 1.13: blog post | release notes 1.14: blog post | release notes Rust 2017 roadmap RFC text RFC discussion Other official Rust blog posts: Shape of errors to come Incremental compilation Milestone: beta Milestone: across crates Milestone: in typechecking Cargo workspaces: Original RFC and discussion Documentation Rust Language Service: Announcement post on internals.rust-lang.org Demo Non-core projects mentioned on the show: Futures Tokio Rocket My projects Lightning RFC #1636: text discussion tracking issue (where you can contribute!) Sponsors Aleksey Pirogov Andreas Fischer Ben Whitley Cameron Mochrie Chris Palmer Daniel Collin Derek Morr Jakub “Limeth” Hlusička Jupp Müller Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Micael Bergeron Ovidiu Curcan Pascal Hertleif Peter Tillemans Philipp Keller Ralph Giles (“rillian”) Raph Levien reddraggone9 Ryan Ollos Steven Murawski Vesa Kaihlavirta Vlad Bezden William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Meta 1 – Slowing Down

November 12, 2016 7:42 6.49 MB Downloads: 0

Avoiding burnout by taking it a little easier. Sometimes, the way a podcast stays in existence is by coming out less often. That’s what’s happening here. Links lightning-rs Pelican Hugo Jekyll Static Site Generators: The definitive listing of Static Site Generators — all 445 of them! Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Follow New Rustacean: Twitter: @newrustacean App.net: @newrustacean Email: hello@newrustacean.com Chris Krycho Twitter: @chriskrycho

Interview 3 – Carol (Nichols || Goulding)

September 30, 2016 47:11 39.73 MB Downloads: 0

Carol (Nichols || Goulding) on learning Rust, teaching Rust, and building community NotesChris talks with Carol (Nichols || Goulding), a Rust community team member, co-author of the first major revision of The Rust Programming Language, and co-founder of the first Rust consultancy. Links XSLT (XML Style Sheet Transformations) Rspec Rails Think Through Math — remedial math tutoring app built with Rails Rust for Rubyists The Rust Programming Language Julia Evans RustConf 2016 keynote Rust by Example Rustlings SASS language Carol’s in-progress implementation #rust-community — open meetings at 4pm UTC every Wednesday, with minutes available online first Rust community survey Rust community on GitHub new version of the book on GitHub — you can help, and especially if you’re new, because Steve and Carol both need input to deal with the “familiarity”/“curse of knowledge” problem ownership and borrowing chapters RustConf RustFest Rust Belt Rust — October 27–28, 2016. Don’t forget to use code newrustacean to get 20% off of your registration cost! Integer32 Panoptics – nickel-jwt: crate | docs | source Jake (Nichols || Goulding) on Stack Overflow Friends of the Tree Friends of the Forest Working Effectively With Legacy Code Tilde The C Programming Language – the book Carol compared The Rust Programming Language to in terms of its responsibilities, and also one of the books from which Chris learned C. Sponsors Aleksey Pirogov Cameron Mochrie Chris Palmer Daniel Collin Derek Morr Doug Reeves Hamza Sheikh Jakub “Limeth” Hlusička Jupp Müller Keith Gray Lachlan Collins Leif Arne Storset Luca Schmid Matthew Piziak Micael Bergeron Nils Tekampe Ovidiu Curcan Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Sean Jensen-Gray Steven Murawski Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Bonus 7: Katas—or: learning by doing

September 10, 2016 10:19 7.53 MB Downloads: 0

Katas—or: learning by doing Notes One of the best ways to learn is to pick a small problem you have already internalized, and to do it again but in a new language or in a new way in a language you already know. Links AreWeGameYet AreWeIDEYet AreWeWebYet Setting our vision for the 2017 cycle Incremental Compilation cargo-incremental: internals post repo Elm Dave Thomas’ CodeKata Crates I used in my Rust “kata”: Hyper docs crate repo Serde docs crate repo Pencil (inspired by Flask) docs crate repo handlebars-rust: docs crate repo Sponsors Aleksey Pirogov Cameron Mochrie Chris Palmer Daniel Collin Derek Morr Doug Reeves Hamza Sheikh Jakub “Limeth” Hlusička Jupp Müller Keith Gray Lachlan Collins Leif Arne Storset Luca Schmid Matthew Piziak Micael Bergeron Ovidiu Curcan Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Steven Murawski Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Bonus 6: It doesn‘t have to be sexy

August 20, 2016 11:27 8.27 MB Downloads: 0

Building (and celebrating) all the little, not-so-glorious pieces of the Rust ecosystem. Notes We love the Rust compiler team. But there’s more to the Rust community, and more required for Rust to be as great as it can be, than just the language itself. We need to celebrate other libraries, and even the small ones, just as much (and maybe more) than changes to the language. We need to dig in and work on building the whole ecosystem. (The good news is, we are!) Links futures-rs “Zero-cost futures in Rust” Tokio “Announcing Tokio” (Carl Lerche on Medium) “What’s new with ‘The Rust Programming Language’?” Friends of Rust ring – Safe, fast, small crypto using Rust alexa-rs – Rust library for building Alexa skills gilrs – Game Input Library for Rust Sponsors Aleksey Pirogov Cameron Mochrie Cass Costello Chris Palmer Daniel Collin Derek Morr Doug Reeves Eric Fulmer Hamza Sheikh Jakub “Limeth” Hlusička Jared Smith Keith Gray Lachlan Collins Leif Arne Storset Luca Schmid Micael Bergeron Pascal Hertleif Ralph Giles (“rillian”) Ralph “FriarTech” Loizzo Raph Levien reddraggone9 Ryan Ollos Steven Murawski Vesa Kaihlavirta William Roe (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: hello@newrustacean.com Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho