Rust Belt Rust Conference
Rust Belt Rust Conference
  • 58
  • 306 831
Lightning talk - Why maintaining winit is hard - Holden Marcsisin
docs.google.com/presentation/d/1yuNIxsMYHCMJ2ADlU-ncR8ZZaStVHZQIC0ty__XTZ_I/edit?usp=sharing
Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Переглядів: 4 380

Відео

Lightning talk - Writing Hello World in 0x A Presses - Cassie Jones
Переглядів 1,1 тис.5 років тому
Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Lightning talk - A tour of the compiler guided by bitvec - Alexander Payne
Переглядів 1,1 тис.5 років тому
Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Lightning talk - How to run a RustBridge event - Jonathan Knapp
Переглядів 2955 років тому
Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Lightning talk - What happens when you give blood - Jess Sacksteder
Переглядів 3715 років тому
givingblood.org/donate-blood/where-to-donate.aspx www.redcrossblood.org/give.html/find-drive www.aabb.org/tm/donation/Pages/Blood-Bank-Locator.aspx Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Lightning talk - Oracle bone script - Jenny Manning
Переглядів 6125 років тому
Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Lightning talk - Metamorphic testing - Zach Mitchell
Переглядів 2,5 тис.5 років тому
Zach Mitchell is a physics graduate student at Purdue University. github.com/zmitchell/monarch Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
Lightning talk - How to organize a workshop across continents - Phil Fried & Daan van Berkel
Переглядів 3245 років тому
Lightning talks are 5 minutes long, on any topic, by anyone. Proposals are voted on by attendees and selected by conference organizers. Not all lightning talks have slides, and due to some technical limitations, not all slides were captured.
The Death and Rebirth of Docs.rs - Quiet Misdreavus
Переглядів 1,9 тис.5 років тому
Docs.rs is a beloved resource in the Rust community, but it was not long ago that such a resource did not exist. Join QuietMisdreavus as she tells the story of docs.rs, from its humble beginnings as crates.fyi and a Rustacean's learning project; through to its heyday and decline as a single-maintainer project that became a trusted community resource; to its rebirth in the present day as an offi...
Type Theory for the Working Rustacean - Dan Pittman
Переглядів 19 тис.5 років тому
Rust really hits a sweet spot with respect to programming languages on account of a) its usefulness when working at a low level, coupled with b) its style of type system. Because of a), Rust can be - and is - used in places which tend to safety-critical: cyber-physical systems, autonomous vehicle infrastructure, robotics, etc. When building systems for these safety-critical environments, one al...
Introducing Rust into a Legacy Embedded System - Steven Walter
Переглядів 4,6 тис.5 років тому
Discuss the what to do, what not to do, and the “we’re still not sure if this is a good idea” parts of using Rust in an existing code base that is both resource-constrained and littered with history. Specific topics will include building Rust projects inside the bitbake build system, as well as balancing different deployment methods against code size constraints.
Polonius: Either Borrower or Lender Be, but Responsibly - Niko Matsakis
Переглядів 18 тис.5 років тому
Rust 2018 brought with it “non-lexical lifetimes” (NLL), a big overhaul of how the borrow checker worked that allowed it to accept a lot more programs. And yet, we’re still not accepting the full range of programs that was envisioned by the original NLL RFC - this is both for performance reasons and because the formulation didn’t turn out to be as flexible as originally thought. Polonius is a “...
Are we *actually* IDE yet? A look on the Rust IDE Story - Igor Matuszewski
Переглядів 7 тис.5 років тому
Ever since appearing on the Rust 2017 roadmap, IDE support has been and continues to be a highly-requested feature that should boost productivity when working with Rust code. Despite the landscape shifting a lot during these last 3 years, including a proliferation of new tools and improved integration between tools, it feels like the Rust IDE story is not yet complete. This talk will explore th...
Tips for Writing a Web Server and Beyond - Apoorv Kothari
Переглядів 3,9 тис.5 років тому
github.com/toidiu/talk_rust_belt_rust_2019 I will be presenting Fin, a non-trivial web server. In the process of creating Fin, I have had to think about and solve many common challenges one would face when writing a web application or even a general Rust program. A few of the topics include database testing, hardening SQL queries, auth, module isolation, error handling, logging, and more.
Unicode in Rust - Illustrated by Kanji - Jenny Manning
Переглядів 2,9 тис.5 років тому
Have you ever wondered why you can’t look up a character in a string by its index? Or why the length of a string can be wildly different from the number of characters in the string? In this talk, we’ll dive into Unicode by looking at how Kanji is represented in Rust. You’ll learn about things like the Han unification, the origins of CJK languages from Oracle bone script, and why Rust handles st...
Evolving API design in Rust - Simon Nicholas Heath
Переглядів 7 тис.6 років тому
Evolving API design in Rust - Simon Nicholas Heath
Syntax conveniences afforded by the compiler - Tshepang Lekhonkhobe
Переглядів 1,8 тис.6 років тому
Syntax conveniences afforded by the compiler - Tshepang Lekhonkhobe
Actix and Actors in Rust - Nathan Hawkins
Переглядів 17 тис.6 років тому
Actix and Actors in Rust - Nathan Hawkins
Move fast and don't break things: High-performance networking in Rust - Joshua Liebow-Feeser
Переглядів 17 тис.6 років тому
Move fast and don't break things: High-performance networking in Rust - Joshua Liebow-Feeser
Lightning Talks: Rust Quiz - Alex Crichton and David Tolnay
Переглядів 4,5 тис.6 років тому
Lightning Talks: Rust Quiz - Alex Crichton and David Tolnay
Core Team Talk - Ashley Williams and Niko Matsakis
Переглядів 2,3 тис.6 років тому
Core Team Talk - Ashley Williams and Niko Matsakis
Lightning Talks: Personal Wiki - James Sacksteder
Переглядів 1,4 тис.6 років тому
Lightning Talks: Personal Wiki - James Sacksteder
Maintaining the Rust Community - Arshia Mufti
Переглядів 1,2 тис.6 років тому
Maintaining the Rust Community - Arshia Mufti
Lightning Talks: Rust In Space - myrrlyn
Переглядів 2,6 тис.6 років тому
Lightning Talks: Rust In Space - myrrlyn
Monotron - a 1980s style home computer written in Rust - Jonathan Pallant
Переглядів 15 тис.6 років тому
Monotron - a 1980s style home computer written in Rust - Jonathan Pallant
Lightning Talks: Rust's Family Tree - Jenny Manning
Переглядів 9386 років тому
Lightning Talks: Rust's Family Tree - Jenny Manning
Lightning Talks: Announcing the Ann Arbor Meetup - Esty Thomas
Переглядів 2126 років тому
Lightning Talks: Announcing the Ann Arbor Meetup - Esty Thomas
State of the crates.io - Sean Griffin
Переглядів 4,2 тис.6 років тому
State of the crates.io - Sean Griffin
Percy: Isomorphic Web Apps with Rust + WebAssembly - Chinedu Francis Nwafili
Переглядів 9 тис.6 років тому
Percy: Isomorphic Web Apps with Rust WebAssembly - Chinedu Francis Nwafili
Lightning Talks: Rustbots - Robots powered by Rust - Rahul Thakoor
Переглядів 8896 років тому
Lightning Talks: Rustbots - Robots powered by Rust - Rahul Thakoor

КОМЕНТАРІ

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

    But to talk about types shouldn't we also kind of use types to talk about types? If we are going to say nothing exist, how do we then make something exist when nothing exists in the first place?

    • @JasminUwU
      @JasminUwU 8 днів тому

      We can accept a little circularity at the root, as a treat.

  • @2002budokan
    @2002budokan 2 місяці тому

    He tried to talk 1 hrs content in 5 minutes. And this pacing makes the whole video useless.

  • @FadiAkil
    @FadiAkil 4 місяці тому

    2:30 Wrong historical & conceptual information. Russell's Type Theory wasn't constructivist in any meaningful sense. It only aimed at incorporating Poincaré's "vicious circle principle" to avoid the contradictions of naïve set theory. Type theory didn't become properly construvist until Per Martin-Löf reconstructed it on an explicitly intuitionistic principles following an astute analysis of Brouwer's original program of intuitionsim.

  • @MrHirenP
    @MrHirenP 5 місяців тому

    6:57 ah but now we can, as generic constants have since landed in stable rust🎉

  • @hanyanglee9018
    @hanyanglee9018 7 місяців тому

    I'm recently waiting for some dnd or coc game in real life, and, I found one here.....

  • @CrapE_DM
    @CrapE_DM Рік тому

    I don't get it. How does a typical OO background make traits hard to understand? Also, for a "deep dive", this doesn't dive very deep. I was hoping to learn the differences between using generics on a trait and having a type field.

  • @konstantinrebrov675
    @konstantinrebrov675 Рік тому

    The video game example is really good for understanding traits.

  • @asitisj
    @asitisj Рік тому

    This is a lot like nix build

  • @NonTwinBrothers
    @NonTwinBrothers Рік тому

    I wouldn't exactly consider myself a rustaceon, but I found this to be a nice talk

  • @shailendrajadhav8603
    @shailendrajadhav8603 Рік тому

    I came across this video today and I think this is the best explanation of Traits in Rust on the internet!

  • @teeI0ck
    @teeI0ck Рік тому

    👀

  • @GrahamTodd-ca
    @GrahamTodd-ca Рік тому

    In _raku_ (`raku_lang`) the type hierarchy starts with "Mu" - which puts "the developer" in the realm of logical philosophy and Buddhist metaphysics right from the get go.

  • @aakarshanraj1176
    @aakarshanraj1176 Рік тому

    18:41 should be Vec<Box<dyn Cast>>

    • @jvcmarc
      @jvcmarc 4 місяці тому

      dyn wasn't in Rust when the presentation was made, it was introduced later to create trait objects. in earlier versions using a trait in the place of a type would implicitly mean a trait object (impl Trait didn't exist then either)

  • @sergesolkatt
    @sergesolkatt Рік тому

  • @GrandpaRanOverRudolf
    @GrandpaRanOverRudolf Рік тому

    isn't it Box<dyn Cast>

  • @minandychoi8597
    @minandychoi8597 Рік тому

    omg let him hit the spacebar!!

    • @minandychoi8597
      @minandychoi8597 Рік тому

      wow mathematicians couldn’t be bothered to type out Natural and succeed or increment but would/expect me to say ‘suck suck naturals’ with a straight face

    • @minandychoi8597
      @minandychoi8597 Рік тому

      actually a brilliant talk. thanks for making this understandable for those of us who aren’t type theorists!! i’ve always been really bothered by how i have to check the lengths of vectors and such at runtime, learnt something really cool from this talk, and i’m gonna try and apply this idea in my code later. i still stand by my point that mathematicians should get over themselves and stop with the silly symbol business already. computers have been around for decades. just learn to type faster ffs. it’s 2023 and it’s ur fault if you type so slowly that you still have to Nat this and suc that.

  • @JCake
    @JCake Рік тому

    I wish this project resumes development, because I actually really like KDevelop, and I think it's just a shame that it doesn't see much use because of the lack of language support in general. That being said, C/C++ support is fantastic.

  • @SweetPotatoTim
    @SweetPotatoTim Рік тому

    Dang, unfortunately the project the become stagnant:(

  • @EngineerNick
    @EngineerNick 2 роки тому

    I just wish slice::Windows could produce `Item`s of known length so that they could be unpacked. This would seem to be a solution. But there has got to be a limit somewhere; I think the typescript type system has been shown to be Turing complete. Maybe rust can beat it by being the first to run Doom on a type system.

  • @jonaskoelker
    @jonaskoelker 2 роки тому

    Without defining what "0.999..." means or what operations you can do on that object, one can hardly consider this a proof. Here's one definition: "0.999..." is shorthand for the sequence 0.9, 0.99, 0.999, 0.9999 and so on(*). When we say that "1 = 0.999..." what we really mean is that 1 is the limit of this sequence. If this is what we mean, the proof should follow easily from the kind of real analysis I expect first-year math students to learn at most universities. I guess we can call the sequence X, and let 10X be the component-wise scaling by 10, i.e. 9, 0.9, 0.99, etc.; then the component-wise difference (= 9X) is 8.1, 0.81, 0.081 and so on. We can then divide by 9 and get back X = 0.9, 0.99, 0.999 and so on, i.e. we can go back to where we started. But this doesn't prove that the sequence has a limit. (*) Note: we can define the sequence recursively: x_0 = 0.9 and x_{n+1} = 1 - (1 - x_n)/10. This recurrence has a single fixpoint, at 1, the iterated function is continuous and the distance to the fixpoint decreases by a constant factor. Together these facts imply convergence to the fixpoint.

  • @parlor3115
    @parlor3115 2 роки тому

    Mayb you should achieve volume first

  • @ZiggyGrok
    @ZiggyGrok 2 роки тому

    The question I had that wasn't answered: what prevents this from being the way we do borrow checking today?

    • @shekhinah5985
      @shekhinah5985 Рік тому

      it's expensive to type check. the current implementation in rustc can be very slow and memory expensive. you can use it with the nightly compiler and RUSTFLAGS="-Zpolonius".

  • @porky1118
    @porky1118 2 роки тому

    Will this solve this problem: - case that doesn't work: object.call(object.value()); - case that works: let value = object.value(); object.call(value);

  • @erikwg3814
    @erikwg3814 2 роки тому

    Great talk! Cool timeline :)

  • @haystackdmilith
    @haystackdmilith 2 роки тому

    The difference is in HOW you write an unsafe code. If the programmer has to do something too advanced for the Rust compiler to comprehend, you can take over control. There's nothing wrong in calling unsafe function that has no flaws (aka is "pure")

  • @warwolt
    @warwolt 2 роки тому

    Hadn't seed that thing about dependent types moving up one universe level, very cool

  • @tf_d
    @tf_d 2 роки тому

    lmao this is wonderful

  • @kolskytraveller1369
    @kolskytraveller1369 2 роки тому

    That's not dependent types, but rather an overengineered, hardcoded, typed nightmare bullshit. Imagine trying to use this in a production code. Actual dependent types don't depend on types (pun not intended) and can be inferred automatically by proof checker from context.

    • @warwolt
      @warwolt 2 роки тому

      The talk was clearly framed as bending the rust type system, this is just a demo and not meant for prod

    • @PhthaloJohnson
      @PhthaloJohnson 7 місяців тому

      Dependent types cannot always be inferred by the proof assistant unfortunately. I think dependent types are better understood as a kind of macro, since (almost) all of the type information is completely deleted at compile time.

    • @luiswirth
      @luiswirth 2 місяці тому

      chill out wtf

    • @AndreiGeorgescu-j9p
      @AndreiGeorgescu-j9p Місяць тому

      ​@@warwoltRust is a systems language. It's a meme for anything else

  • @dionysis_
    @dionysis_ 2 роки тому

    Great talk!!

  • @Chris-on5bt
    @Chris-on5bt 2 роки тому

    TBH, Most pragmatically useful content is at the beginning and end. IMO, the content in the middle while nice background information is a little light on utility. @ ~ 1:20 Ms. Manning points out difference between string.len() & string.char().count() @ ~ 15:40 Ms. Manning talks over UTF-8, UTF-16, & UTF-32

  • @Bravo-oo9vd
    @Bravo-oo9vd 2 роки тому

    28:00 couldn't we save some space in Dashed variant by making it Option<NonZeroU32> and the resulting Option would have the same size as u32, 4 bytes? Dashed with zero spacing should theoretically look the same as Solid.

  • @rodelias9378
    @rodelias9378 2 роки тому

    Thanks a lot for such an impressive talk!!

  • @alwaysradical1613
    @alwaysradical1613 3 роки тому

    Wait, what happens if vector length is already usize::MAX, and then we push again? I don't see how the code presented deals with this potential problem.

    • @mbartelsm
      @mbartelsm 3 роки тому

      It panics, it said so in the docs. Push panics if pushing would overflow a usize integer.

  • @alwaysradical1613
    @alwaysradical1613 3 роки тому

    Dangers of C++ starts at 5:10; Unsafe Rust intro starts at 14:47; Title slide at 19:50

  • @johnwilliams7999
    @johnwilliams7999 3 роки тому

    I love this video makes it so clear

  • @kanglei7807
    @kanglei7807 3 роки тому

    I also like rust, especially the rust compiler. I want to contribute. I don’t know where to start?

  • @OpenGL4ever
    @OpenGL4ever 3 роки тому

    That was interesting. Thanks.

  • @stevenfletcher3389
    @stevenfletcher3389 3 роки тому

    I think I'm missing the point here. What I took away from this talk is that I can replace a primitive or a Vec with a Trait for no reason. I feel like I understood traits better before I watched this, but everyone else is saying this talk was great. I realize she chose simple examples on purpose, but these are cases where traits shouldn't be used.

  • @MMABeijing
    @MMABeijing 3 роки тому

    good job on not laughing each time she said "castrate"

  • @origamibulldoser1618
    @origamibulldoser1618 3 роки тому

    "You forgot to initialize the variable". Lol. Close. Noob.

  • @mehedirifat9072
    @mehedirifat9072 3 роки тому

    I also found rust when i ways thinking about learning C++

  • @jonathanmoore5619
    @jonathanmoore5619 3 роки тому

    Great presentation.

  • @comradepeter87
    @comradepeter87 3 роки тому

    As a Rust learner, I think it is being sold wrongly. The word "undefined behaviour" is thrown around too casually. The CPP conference people tend to abstract away hardware and concrete implementations, hence they just label anything not specified by the C++ specs as "undefined behaviour" because they cannot be sure how the implementations will handle such situations. But, almost all popular compilers do the most reasonable thing when it comes to these situations. Printing uninitialised memory will print whatever bits were stored in its place, overflowing an integer will result in it wrapping down to the smallest storable number, etc. This is not something CPP programmers would worry about while coding. This is fear-mongering. I fear I'm getting myself into a community full of these people, but damn the promise is too great not to give it a shot, and so far, I like it.

    • @AbelShields
      @AbelShields 2 роки тому

      I'd like to respond to that: in all these situations, is wrapping behaviour and printing undefined bits what you want? You can achieve all of that in Rust too, but it forces you to explicitly say that that behaviour is what you want. If I'm summing positive integers in an array and get a negative result, is that what I wanted, or will this cause a problem with some assumption I make further on? Rust doesn't forbid this behaviour, there's a wrapping add, which let's you say that you're sure you want this behaviour. If you don't want to worry about that every time, there's specific wrapping integer classes that will do that every time if that's what you want. You can read uninitialized memory, or even memory from an arbitrarily specified pointer inside an unsafe block. I feel like the purpose of Rust is to help you not get bitten by these things when you're not expecting it, making it easier to do the right thing.

    • @Neme112
      @Neme112 10 місяців тому

      All those things *are* undefined behavior, by the standard.

  • @joelmontesdeoca6572
    @joelmontesdeoca6572 3 роки тому

    I wish more Rust talks were like this! The visuals really sold it for me.

  • @pauloviniciuscoral1128
    @pauloviniciuscoral1128 3 роки тому

    Very informative and inspirational

  • @megumin4625
    @megumin4625 3 роки тому

    So basically, don't use C/C++ lol

  • @OdinRu1es
    @OdinRu1es 3 роки тому

    Next: how to fight and vanquish the borrow checker with half orc barbarian and elf wizard

  • @lolilollolilol7773
    @lolilollolilol7773 3 роки тому

    I've had the same error with copy_from_slice, and it's bad, because it's basically memory corruption, something Rust is supposed to guarantee against.

  • @honne23
    @honne23 3 роки тому

    im lookin for the same energy as the guy who shouted ‘woo!’

  • @PrettyGrossMKay
    @PrettyGrossMKay 4 роки тому

    AHHHH that's why a Rust enum is a SUM-type; A FruitSnack so to speak; A variable can have enum-value 1 OR enum-value 2 OR ...; e.g. The Option enum can be either Some(x) or None.