• 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: June 2nd, 2023

help-circle


  • I’m a NASA software engineer writing spacecraft flight software. A few thoughts:

    1. I’m not at JPL and I don’t know how religiously they follow these rules, but we really don’t. They’re not part of our official or unofficial standard practice. Indeed, I can’t even find a reference to the rules on nasa.gov
    2. Most of these rules are considered obvious these days. Most of the rest we don’t follow either. (at least not absolutely)
    3. This video critically misstates the rule about heap allocation, which is perhaps the most significant difference between how we write software and how non-safety critical systems are written. Dynamic allocation is allowed during initialization. This is a massive, massive difference in terms of how easy it is to write code compared to stack-only.
    4. The video also misses the mark on preprocessor usage. Especially in C, you have very little choice but to rely on the preprocessor. We avoid it, but the kind of multi-path compilation he describes is necessary to enable thorough testing of the code.
    5. We’re still human. Even where the rule is good and we follow it in principle, you will still find all too many exceptions in the actual code.

    If you really want to see how the sausage is made, the software framework used by many NASA missions is open source and on GitHub.




    • Prehistoric C++: Core language for my main project at work. Unfortunately we’re stuck with C++98, but it’s still a massive improvement on C.
    • C: For some of the older parts of the aforementioned project
    • Python: For test automation for the aforementioned project, also rapidly becoming the main language within the community that covers my secondary work project. I used to really not care for Python, but to the extent it displaces MATLAB I’m 100% in favor of it. I’ve also grown to really like it in the test automation role. The only thing I could wish for is that it had a mode that required type hints across the board.
    • Modern C++: Used for my other work project. While I do think that C++11 is a huge step up from C++98, I think the later standards have added a lot of cruft and very little value. Given the choice I would definitely take modern C++ over C++98, but I’d really rather be writing something like Rust
    • Java: This was a mistake I made years ago when I started a project as a very junior developer. Unfortunately I work in a research context where even as the junior developer I was still the most experienced developer on the team when it came to some things. We needed a REST API for this project and doing it in C++ didn’t seem feasible at the time (no idea if it’s better now). Some other teams in my org where using Spring so I jumped on that bandwagon. In hindsight, I wish I had written the API in Python since we’re slowly moving a lot of our C++ code into Python on that project now.
    • Shell: For automation that’s just a little too easy to bother with Python
    • Rust: Only used on hobby projects for now, but it scratches the same itch as C++ a thousand times better. The language itself is wonderful once you get used to the borrow checker and cargo is an incredibly valuable part of the ecosystem as well.





  • I’m not an economist, just a guy who took all of two econ classes in college. That said, I think there’s an obvious answer to that question. The inflation target is a target. Central banks can’t actually set inflation unilaterally, or we wouldn’t ever see the inflation rates we’ve seen over the last couple of years. This is why we target a small rate of inflation. It’s easy to look at a 2% inflation target in a highly inflationary environment and think that we should be targeting 0%, but we really don’t want deflation.

    Not sure what a wealth tax has to do with anything. I’m not inherently against it, but I don’t think it has a significant impact on inflation.



  • Your “hard currency” is inherently deflationary. This may seem good to you since it means your dollar is worth more tomorrow than it is today, but the same is true for everyone else’s dollars too. The net result is to discourage spending across the entire economy and that leads to much worst outcomes. There is a good reason that central banks aim for a small amount of inflation rather than zero or negative inflation.


  • On reddit, I have always started with my normal front page, which here would be “Subscribed” and eventually migrated to /r/all (“All”) if I get through a few pages of my subscribed feed. I imagine it will be the same here.

    As for activity sorting, I think “hot” is really the secret sauce in a community even 1/10th the size of reddit today, but as small as Lemmy is right now I think new is probably going to be the way to go for a while.