Mama told me not to come.

She said, that ain’t the way to have fun.

  • 1 Post
  • 16 Comments
Joined 2 years ago
cake
Cake day: June 11th, 2023

help-circle
  • Sure, if you’re looking for exactly what Apple offers, then they offer a decent value. But if you want any changes, you’re SOL.

    I personally don’t care about half the things they ship standard (screen, camera, chassis, trackpad), I really care about things they charge extra for (RAM, storage), and I like some things offered by other manufacturers (TrackPoint + mouse buttons from Thinkpad, repairability, keyboard feel, etc). I also don’t really like macOS, even after using it for years at work.

    For me, they offer poor value. For someone else, they offer good value. It all comes down to what you value.


  • What’s everyone’s goto app for sharing notes with others? I’m looking for something to share grocery lists and whatnot with my SO, and I want as little friction as possible.

    I have some self-hosted services, but I didn’t like NextCloud notes and one or two others I’ve tried. It doesn’t need to be fancy, but I would very much like checkboxes that I can… check. I don’t need users, and honestly, no user accounts could be super nice, just attach a URL and go for it.

    So yeah, slight preference for self-hostable services, but I’m fine with anything, provided it’s reasonably privacy friendly (nobody else needs to know the quantity or size of our sex toys lol).


  • A Windows PC of similar quality to what Apple offers (built quality and specs) is not that much cheaper

    I don’t think that’s true, at least if we’re talking about hardware. The only thing that I think really makes this argument is the screen, because you need to go really high end to get the same quality screen (if it exists).

    If we mostly stick to CPU, RAM, storage, etc, then you can get a really competitive PC for about half the cost. I bought a decent ThinkPad new about 7 years ago for $500 (E series), which was pretty competitive w/ the Macbook Pro in terms of specs, and I still use it to this day. I didn’t go top-of-the-line, so the CPU was a little worse and it had integrated graphics, but I could absolutely find a similar build to the MBP for $1k or so, probably less. The MacBook Air and Mac Mini, however, is a lot harder to find a competitor for and I think their value is quite strong with that form factor.

    If we include software, then yeah, macOS offers a ton of value, since you get a decent office suite and a bunch of other utilities included with it, whereas w/ Windows, you just get trial versions of subscription software. So valuing the included SW in macOS vs Windows really depends on the individual.

    Windows is just bad

    Agreed. I only buy “Windows” laptops to install Linux on, and on my last laptop, I got a $40 discount because I told the sales rep I wasn’t interested in Windows and they gave that to me.

    That said, the value that Windows provides that other OSes don’t is compatibility. macOS can’t play Windows games, and Linux can’t play some games that work on Windows. If you need that compatibility, the value assessment is a lot different than if you could switch platforms without giving anything up.







  • It’s not like Linux compiles down to one binary or anything, most of it is linked together over a pre-determined API. Anything that can satisfy that API (and ABI) can drop in. There are some “magic” bindings, but they still conform to that API.

    Read the rest of Greg KH’s thread, here’s the last half of that paragraph:

    Adding another language really shouldn’t be a problem, we’ve handled much worse things in the past and we shouldn’t give up now on wanting to ensure that our project succeeds for the next 20+ years. We’ve got to keep pushing forward when confronted with new good ideas, and embrace the people offering to join us in actually doing the work to help make sure that we all succeed together.

    And earlier:

    Rust also gives us the ability to define our in-kernel apis in ways that make them almost impossible to get wrong when using them. We have way too many difficult/tricky apis that require way too much maintainer review just to “ensure that you got this right” that is a combination of both how our apis have evolved over the years (how many different ways can you use a ‘struct cdev’ in a safe way?) and how C doesn’t allow us to express apis in a way that makes them easier/safer to use. Forcing us maintainers of these apis to rethink them is a GOOD thing, as it is causing us to clean them up for EVERYONE, C users included already, making Linux better overall.

    Those are solid arguments. As long as the APIs are well designed and documented, a mixed codebase is fine, and you get most of the benefits of Rust where it’s used.


  • True. We should have both better tooling and better languages. Someone posted this thread with Greg KH, which has this gem:

    The majority of bugs (quantity, not quality/severity) we have are due to the stupid little corner cases in C that are totally gone in Rust. Things like simple overwrites of memory (not that rust can catch all of these by far), error path cleanups, forgetting to check error values, and use-after-free mistakes. That’s why I’m wanting to see Rust get into the kernel, these types of issues just go away, allowing developers and maintainers more time to focus on the REAL bugs that happen (i.e. logic issues, race conditions, etc.)

    I’m all for moving our C codebase toward making these types of problems impossible to hit, the work that Kees and Gustavo and others are doing here is wonderful and totally needed, we have 30 million lines of C code that isn’t going anywhere any year soon. That’s a worthy effort and is not going to stop and should not stop no matter what.

    But for new code / drivers, writing them in rust where these types of bugs just can’t happen (or happen much much less) is a win for all of us, why wouldn’t we do this?

    In short, let’s do both.




  • As do I. I could jump into a modern C codebase and feel comfortable. I’ve worked on microcontrollers, built servers (UDP, TCP, and HTTP), and worked with cross thread communication. If I know what I want to build, I can achieve it with C. Maybe not as quickly as someone who works with it every day (it has been a while), but within a month I’d be back in shape.

    I feel the same about Python, Go, JavaScript (both on server and FE, either React or straight DOM manipulation), and Rust (I use it for personal projects extensively). When I write C++, it usually turns out like C with vectors and smart pointers, so I’ll add that in as well. Except for Rust, I’ve used all of these in a professional capacity (and I did technically do a couple POCs in Rust). I could list a bunch of other languages I’m less confident in, but could also use professionally if needed without needing to study first.

    I’m not suggesting they go out and do the same, I’m merely suggesting that when an option comes along that solves some serious problems they run into every day, maybe they should try it. Most of the languages I mentioned are useless for kernel development, so it makes no sense for them to bother with them. However, Rust is really interesting because it comes with some very compelling guarantees, and you don’t get many guarantees when it comes to low level development.

    If I told a kernel dev that I had a tool that can identify most if not all memory safety/soundness issues in their C code, they wouldn’t hesitate to try it out. But if I ask them to try out Rust (same guarantees), they’ll refuse. Why? Hubris and stubbornness.


  • Okay? I know a half dozen languages well, and am pretty productive with a half dozen more. If you’re an experienced software engineer, picking up a new language should be easy. If a language is useful for a given task, I use it. If another language offers benefits I want, I learn it.

    It’s like any other profession, why limit yourself to one tool? If a new tool comes out and does the job better, use it.

    I love C and it’s my first choice for low level work like microcontrollers. However, it’s not great for larger projects, especially ones with significant security concerns, since subtle vulnerabilities in different areas could be combined to create an attack. Rust provides a lot of protection against common attacks without a performance cost, so it’s a good choice.



  • I don’t know about you, but I prefer provably correct code over “just trust me bro.”

    There’s an analogy I like here. A manager at a trucking company was hiring a new driver, and he asked each of them how close they could get to the edge on a mountain pass. The first said, “I can get within a wheel’s width.” The second said, “I can drive on the edge, with part of the tire hanging off.” And the third said, “I stay away from the edge.” The third applicant got the job, because why take the risk?

    That’s how I feel about C/C++. Why use them if Rust can do the job? You get a lot more safety features without sacrificing performance, what’s not to like?