“Falsehood flies, and truth comes limping after it, so that when men come to be undeceived, it is too late; the jest is over, and the tale hath had its effect: […] like a physician, who hath found out an infallible medicine, after the patient is dead.” —Jonathan Swift

  • 15 Posts
  • 199 Comments
Joined 1 year ago
cake
Cake day: July 25th, 2024

help-circle


  • I’d go even further: the learning curve for Rust is shallower than C/C++.

    • C is obvious: dealing with strings is a goddamn nightmare in pure C, and strings are used all the time in modern programming. Almost no guardrails for memory safety mean that an inexperienced programmer can easily run into undefined, nondeterministic behavior that makes bug hunting difficult.
    • In C++, there’s a trillion ways to do anything (which varies enormously based on C++ version), and when you make mistakes of even moderate complexity (not “missing semicolon on line 174”), compilers like gcc spit out a gargantuan wall of errors that you need to know how to parse through.
    • Rust, in my experience, gives you a much clearer “good” way to do something with some room for expression, and its compiler tells you exactly what you did wrong and even how to resolve it.

    The fact that the compiler actually guides you, to me, made learning it much easier than C/C++.


  • I don’t know how else they could react:

    And the compiler was slow, the code that came out was slow…

    The compiler is slower because it has more to check for, but “the code that came out was slow” seems like nonsense, exaggeration, or PEBCAK. Rust code is highly performant and very close to C code.

    The support mechanism that went with it — this notion of crates and barrels and things like that — was just incomprehensibly big and slow.

    Dude what? C’s build systems like cmake are notoriously unfriendly to users. Crates make building trivial compared to the ridiculous hoops needed for C.

    I have written only one Rust program, so you should take all of this with a giant grain of salt,” he said. “And I found it a — pain… I just couldn’t grok the mechanisms that were required to do memory safety, in a program where memory wasn’t even an issue!

    He doesn’t say what the program was, and the borrow checker operates by a set of just a few extremely simple rules. There’s no idea of what he was trying to accomplish or how the borrow checker impeded that.

    So my reaction as someone who cares deeply about how disastrously unsafe C is and the tangible havoc it creates in modern society:

    • I agree the compiler is slower. Honestly boo hoo. It’s slower for two very good reasons (better static analysis and better feedback).
    • The code being slower is such a minor issue as to effectively not be true. Benchmarks prove this.
    • I’m not going to take “big and slow” as a serious critique of Cargo from someone who idealizes C’s ridiculous, tedious, convoluted build system.
    • The borrow checker is trivial, and unlike C, the compiler actually gives you easy, intuitive feedback for why your code doesn’t build.

  • They struggled to deliver their ambitious mainline Linux phone on time during Covid yes, but they eventually delivered.

    And for the people who requested refunds who waited months if not never received them? Despite them moving back their timeline literal years with repeated delays? I don’t care what challenges they faced; they knowingly took people’s money and refused to give it back to them when they couldn’t deliver. It’s their responsibility to be prepared for challenges. And in some extreme edge case where they couldn’t have been prepared, it’s their responsibility to be transparent about that to the people who gave them over a million dollars (let alone purchased the product after the Kickstarter was finished). I suppose too that the pandemic affected Purism in January 2019 when they were supposed to deliver their product?

    The fact that they did is a huge win for the mobile Linux ecosystem becoming a real contender just when we need it.

    The Librem 5 is not a contender for shit. It’s so overpriced that it can only be successfully marketed to people who care so deeply about their privacy that they’re willing to use an inconvenient mobile OS, get completely boned on hardware specs, and deal with a company notorious for fucking over its customers. Purism’s behavior is a fucking embarrassment to the Linux ecosystem.

    NXP i.MX family debuted in 2013; Intel i7 family in 2008. Their phone uses a 2017 i.MX 8M Quad, the same year they crowdfunded their phone.

    That CPU is based on the ARM Cortex-A53 and Cortex-M4, launched in 2012 and 2009, respectively.

    2017 i7 computers are equally not from 2008…

    When I say “2013”, I’m not talking about the debut year of i.MX. I’m talking about the fact that you can compare this phone side-by-side with a Galaxy S4 or S5. 3 GB of RAM, 32 GB of eMMC storage, a 720 x 1440p IPS display, no NFC, USB 3.0, an 8/13 MP front/back camera (which they inexplicably call “Mpx”; good job, guys), 802.11n Wi-Fi, no waterproofing, and a shitty-ass i.MX 8M CPU. I still remember watching a trailer for the Librem 5’s continuing development, and as they were scrolling through a web browser, it was noticeably stuttering. This was years and years ago; I can’t even imagine it today.

    It still today remains one of the best ARM processors with open source drivers without an integrated baseband. It means basically any flavour of Linux can install on the device, with a significant layer of protection from carrier conduited attacks. Other modules have similar tradeoffs between performance and interoperability/security.

    I do not give even the slightest inkling of a shit try to confirm or deny this, so I’m just going to assume it’s 100% true, because it’s not relevant to the point that the spec is absolute trash and being sold for $800. If you are not absolutely married to privacy, this is not a sellable product in 2025.

    Want better specs? We either need SoC companies to release more of their drivers open source, or more people to patiently reverse engineer closed source ones.

    Actually, if I want better specs, I’m just going to go out and buy a phone that isn’t from Purism. It really sucks that it’s not open, private hardware, but Purism is such a scummy company that so wantonly fucks over their customers that I wouldn’t touch the Librem 5 even if I could justify spending $800 for that spec just for privacy’s sake.
















  • OP, you say “free, open source, and fully attributed”, but it’s really not fully attributed. I know Google will live, but you need to be more attentive to licensure and credit. Here are some major problems (in no particular order):

    • The weather icon pack is licensed under CC BY 4.0, yet you never mention this license. It’s not sharealike (“SA”), so you can relicense, but it would be nice for users to know that you are, in fact, allowed to do that.
    • You never link to the weather icons page so users can easily find the original icons.
    • You say “inspired by Google’s Weather Icons v4” but then never say what you changed or how. Did you modify them? Build these from scratch using Google’s as a reference? You don’t have to say for the license; this would just be nice. If it can’t be summed up in a sentence or two, then fair enough.
    • In “Credits & Acknowledgments”, you never mention the Google Weather icons – which are the entire reason this repo exists. Given the only requirement of CC BY is proper attribution, something needs to go here.
    • You don’t even link back to the third-party repo where you got them from.
    • Under “License & Legal Notice” and in your LICENSE file, you call the copyright status of the icons “uncertain”. This confuses the hell out of me, because on the icons pack page for Google, it clearly reads at the bottom: Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License.
      • This to me indicates you did minimal research and didn’t actually care about the license but called it “open-source” anyway and happened to get lucky. It seems like instead of finding the official source, you got them from this repo which is similarly sloppy.
      • One of the lines reads “No official Google documentation has been located that confirms these specific icons are released under an open source license”. OP, for the love of actual god, this would’ve taken less time to find than it took you to type that sentence; below is the second result on DuckDuckGo for “google weather icons pack” after your own repository:

    A screenshot of a DuckDuckGo search result for "google weather icons pack"

    Now you have all your research done for you, and Cunningham’s law is proven right again.