Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)AA
AernaLingus [any] @ AernaLingus @hexbear.net
Posts
0
Comments
80
Joined
3 yr. ago
  • Thank you for sharing--that was a really neat demonstration, and I enjoyed seeing all the troubleshooting as well. Will definitely be subscribing and checking out more of their videos!

  • I feel like there's not much to fight about. I can understand the latter perspective, but from a practical point of view it just makes sense to consistently assign it to AM/PM rather than creating an unnecessary edge case (lord knows there are enough of those with date/time systems). Also this is all made moot by the superior system: the 24-hour clock (now THERE'S something I bet you could have a good argument about!).

  • I can't remember the specifics (both because it was dumb and because it's so embarrassing I think my brain is trying to protect me), but from what I recall I got into a heated argument on the internet with someone because I felt that fans weren't cheering hard enough for a band I liked at a concert.

    ...yeah, I know. I'm grateful, though, because it was so colossally stupid and pointless that I had a come-to-Jesus moment and swore off internet arguments entirely. I can only imagine the countless hours of my life it's saved me in the intervening years.

  • I found this line very funny:

    State funding for Chinese companies enables them to offer salaries beyond what Western companies can pay.

    Source?

    ASML made €8 billion in net income in 2023. TSMC, $30 billion (not Western, but mentioned in the same breath). I'm sure they could scrounge a few coins from under the couch cushions to match salaries if they wanted to.

  • I'll preface this by saying I'm working my way through the Rust book, too--just a bit further along--so don't take my word as gospel.

    This exact scenario is what the ? operator was designed for: returning early with the Err if one is received[There's also some type coercion, but that's beyond the scope of your question], otherwise unpacking the `Ok`. As you've discovered, it's a common pattern, so using the `?` operator greatly cuts down on the boilerplate code. If you wanted to do the equivalent of you have here (panicking instead of returning the `Err` for it to potentially be handled in calling code, albeit without your custom panic messages[edit: you can use expect to get the custom messages as covered in another comment--not sure how I forgot that]) you could achieve this with unwrap() instead of ?:

      rust
        
    let html_content_text = reqwest::blocking::get(&permalink).unwrap().text().unwrap();
    
      

    Both of these will be covered in chapter 9.

    If you want to avoid those constructs until later, the only thing I'd say is that some of the intermediate variables seem unnecessary since you can match on the function call directly:

      rust
        
    fn get_document(permalink: String) -> Html {
            let html_content = match reqwest::blocking::get(&permalink) {
                Ok(response) => response,
                Err(error) => panic!("There was an error making the request: {:?}", error),
            };
    
            let html_content_text = match html_content.text() {
                Ok(text) => text,
                Err(error) =>
                    panic!(
                        "There was an error getting the html text from the content of response: :{:?}",
                        error
                    ),
            };
    
            let document = Html::parse_document(&html_content_text);
    
            document
        }
    
      

    You could also eliminate the final let statement and just stick the parse_document call at the end, but that's a matter of preference--I know having an intermediate variable before a return can sometimes make debugging easier.

    As for whether you should build something now or wait till you learn more--go with your gut! The most important thing is that you stay actively engaged with the material, and many people find diving into projects as soon as possible helps them learn and stay motivated. You could also use rustlings and/or Rust by Example as you go through the book, which is what I've been doing (specifically rustlings). It's not as stimulating as writing a project from scratch, but it does let you write some relevant code. And if you're not already, I highly recommend using the Brown version of the Rust Book which includes interactive quizzes sprinkled throughout. I've found them particularly helpful for understanding the quirks of the borrow checker, which is a topic it continues to revist throughout the book.