• 0 Posts
  • 20 Comments
Joined 2 years ago
cake
Cake day: June 29th, 2023

help-circle
  • You don’t. In C everything gets referenced by a symbol during the link stage of compilation. Libraries ultimately get treated like your source code during compilation and all items land in a symbol table. Two items with the same name result in a link failure and compilation aborts. So a library and a program with main is no bueno.

    When Linux loads an executable they basically look at the program’s symbol table and search for “main” then start executing at that point

    Windows behaves mostly the same way, as does MacOS. Most RTOS’s have their own special way of doing things, bare metal you’re at the mercy of your CPU vendor. The C standard specifies that “main” is the special symbol we all just happen to use


  • I’d argue the two aren’t as different as you make them out to be. Both types of projects want a functional codebase, both have limited developer resources (communities need volunteers, business have a budget limit), and both can benefit greatly from the development process being sped up. Many development practices that are industry standard today started in the open source world (style guides and version control strategy to name two heavy hitters) and there’s been some bleed through from the other direction as well (tool juggernauts like Atlassian having new open source alternatives made directly in response)

    No project is immune to bad code, there’s even a lot of bad code out there that was believed to be good at the time, it mostly worked, in retrospect we learn how bad it is, but no one wanted to fix it.

    The end goals and proposes are for sure different between community passion projects and corporate financial driven projects. But the way you get there is more or less the same, and that’s the crux of the articles argument: Historically open source and closed source have done the same thing, so why is this one tool usage so wildly different?


  • Aerospace industry engineer here:

    We try to identify failure modes and use tools like Failure Mode Effect Analysis (FMEA) and fishbone analysis to track down failures and how they cascade to understand system behaviors. However, the more you increase the complexity of the system, the more difficult it is to fully think through all the possible ways things can go wrong and it’s not unheard of for things to slip through review.

    Starliner has consistently been plagued by program management issues where they think they’ve caught the failure modes and implemented appropriate mitigations. They do an analysis, run some tests to prove those assumptions are correct, and fly it. In this case there was a design flaw in the thrusters that they saw on a different test flight, thought they fixed it, and flew again not knowing that they didn’t actually fix the problem.

    False sense of security is a dangerous place to be when it comes to fault scenarios, but the alternative is extreme paranoia where you trust nothing. In fairness to Boeing, taking some level of risk is necessary in the space industry but I think it’s pretty obvious that they were not paranoid enough and were too trusting that they did their job right


  • Did you uninstall it purely because it hasn’t received any updates or was there some feature you wanted or bug fixed that led you to that?

    I’ve been using sync for nearly a decade (maybe longer, I forget when exactly) and it’s not uncommon for LJ to not update sync for long periods of time, so I don’t really see no updates in nearly a year as an issue. (Plus as a dev myself, I hate the idea of constant releases, though I do spacecraft software so maybe I’m just really oddly biased)


  • Partially agree. The series as a whole fully agree, game by game is iffy

    XC1 can absolutely stand alone and really needs you to go in blind

    XCFC doesn’t make sense without having played XC1

    XC2 again can stand alone but you’ll catch some story stuff sooner if you’d played XC1

    XCTTGC makes no sense without XC2

    XC3 is this bizzaro mess I’m still not sure what the fuck happened but I think it does need XC1 and 2 background knowledge

    XCFR retains XC3 heavy reliance on the previous games, but cranked up to levels that makes the Star Wars sequels seem almost reasonable


  • In a round about way, it probably is geographically related. So few people live there due to the land being pretty useless, but not so useless that the people there are spread out and when county lines were drawn they followed county sizes similar to Midwestern states. More western states drew larger counties but had similar population density averages so the number of people per county are high enough that there are enough suicides that someone may actually be tracking that on an annual basis

    Arbitrarily cherry picking that squished pentagon county in northern Nebraska, there are only 769 people living in the entire county . If just one of them committed suicide that county would be off the charts lethal at 137. So when you take the US average suicide rate per year it could take up to ten years for someone in the county to commit suicide. So there probably isn’t anyone keeping real statistics in that county

    Realistically I think this is a bad map since counties with lower populations get disproportionately amplified suicide rates




  • Heh, I guess this shows my corporate software dev experience. Whenever I’ve taught git workflows it was always paired with a work ticketing system where any changes you were making were ideally all one single set of changes. If you need a feature or bug fix someone else was doing that was being done on another branch which you could pull into your code early and for tracking purposes we always made sure the other person merged into main first. The only time I’ve seen per line manipulation with git was when someone made a ton of changes in a file and wanted to revert a handful of lines.

    Everything else you mentioned I’ve had a web git host like gitlab or bitbucket for, but I kinda put that more into peer review workflow than git itself


  • That is the one use case I’ve seen where a gui is absolutely faster.

    In my line of work, I primarily work on embedded systems or process automation so any new files in the repo directory either need to be added for tracking or to the ignore file. I’m not saying it will never happen, but at least in my experience it happens so rarely that I always try to teach command line when possible



  • Every time I mentor a dev on using git they insist so much on using some GUI. Even ones who are “proficient” take way longer to do any action than I can with cli. I had one dev who came from SVN land try and convince me that TortoiseGit was the only way to go

    I died a little that day, and I never won her over to command line despite her coming to me kinda regularly to un-fuck her repository (still one of the best engineers I ever worked with and I honestly miss her… Just not her source control antics)



  • To me 16 is long haha.

    I usually end up running with 16 characters since a lot of services reject longer than 20 and as a programmer I just like it when things are a power of two. Back in the Dark Times of remembering passwords my longest was 13 characters so when I started using a password manager setting them that long felt wild to me.

    I do have my bank accounts under a 64 character password purely because monkey brain like seeing big security rating in keepass. Entropy go brrrrrrrrrrrr


  • I’ve used cloud based services for password managers for work and “self host” my personal stuff. I barely consider it self hosting since I use Keepass and on every machine it’s configured to keep a local cached copy of the database but primarily to pull from the database file on my in-home NAS.

    Two issues I’ve had:

    Logging into an account on a device currently not on my home network is brutal. I often resort to simply viewing the needed password and painstakingly type it in (and I run with loooooong passwords)

    If I add or change a password on a desktop and don’t sync my phone before I leave, I get locked out of accounts. Two years rocking this setup it’s happened three times, twice I just said meh I don’t really need to do this now, a third time I went through account recovery and set a new password from my phone.

    Minor complaint:

    Sometimes Keepass2Android gets stuck trying to open the remote database and I have to let it sit and timeout (5 minutes!!!) which gets really annoying but happens very infrequently which is why I say just minor complaint

    All in all, I find the inconvenience of doing the personal setup so low that to me even a $10 annual subscription is not worth it


  • MajorasMaskForever@lemmy.worldtoProgramming@programming.dev...
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    2
    ·
    1 year ago

    Ada

    It has a lot of really nice features for creating data types and has amazing static analysis during compile time.

    But all the tooling around it is absolute crap making using the language unbearable and truly awful. If it had better tooling I could see that it would have taken a decent chunk of development away from C and C++


  • MajorasMaskForever@lemmy.worldtoProgramming@programming.dev*Permanently Deleted*
    link
    fedilink
    English
    arrow-up
    22
    arrow-down
    1
    ·
    edit-2
    1 year ago

    As someone who is in the aerospace industry and has dealt with safety critical code with NASA oversight, it’s a little disingenuous to pin NASA’s coding standards entirely on attempting to make things memory safe. It’s part of it, yeah, but it’s a very small part. There are a ton of other things that NASA is trying to protect for.

    Plus, Rust doesn’t solve the underlying problem that NASA is looking to prevent in banning the C++ standard library. Part of it is DO-178 compliance (or lack thereof) the other part is that dynamic memory has the potential to cause all sorts of problems on resource constrained embedded systems. Statically analyzing dynamic memory usage is virtually impossible, testing for it gets cost prohibitive real quick, it’s just easier to blanket statement ban the STL.

    Also, writing memory safe code honestly isn’t that hard. It just requires a different approach to problem solving, that just like any other design pattern, once you learn and get used to it, is easy.



  • The issue is that with ongoing service across time, the longer the service is being used the more it costs Kia. The larger the time boxes Kia uses the bigger the number is and the more you’re going to scare off customers.

    Using Kias online build and price, looks like the most expensive Telluride you can get right now is $60k MSRP, cheapest at 30k

    Let’s assume Kia estimates average lifetime of a Telluride to be 20 years so they create an option to purchase this service one time for the “lifetime” of the vehicle. Taking in good faith the pricing Kia has listed, using that $150 annual package, and assuming that price goes up every year at a rate of 10% (what Netflix, YouTube, etc have been doing) across those twenty years you’re looking at around $8.5k option. At the top trim thats still 14% extra that is going to make some buyers hesitant, at the base model that’s 28% more expensive.

    Enough buyers will scoff at that so Kia can either ditch the idea entirely as they’ll lose money on having to pay for the initial development and never make their money back, or they find some way to repackage that cost and make it look like something that buyers are willing to deal with.

    To me the bigger issue is the cost of the service vs what you’re getting. Server time + dev team + mobile data link cannot be costing Kia more than a few million annually, mid to upper hundred K is more likely so they must not be expecting that many people to actually be paying for any of this


  • I’m also curious how many people in this thread have ever been involved in product development and are actual trained/professional software devs. Because not only are some of these comments absolutely ridiculous from a business perspective, they make zero sense in a technical perspective too.

    Proprietary file formats show up because often times the needs of the system don’t line up with CSV, JSON, raw text or they hit some performance problem where you literally can’t write that much data to the disk so you have come to come up with something different.

    There’s also that a computer program in the last 50 years is, except for extreme circumstances, never truly on its own. That microscope control software is completely dependent on how Win95 works, is almost certainly reliant on some old DOS kernel behavior that was left over in early Windows, which Microsoft later completely ripped out starting with Win Vista (tossed back in for Win7 cause so many people complained, then ripped it back out in 8 which no one seemed to care about)

    And it’s not just Microsoft that pulls this, even Lemmy’s darling Linux has deprecated things over the years because even in open source projects it’s unmaintainable to keep everything working for forever.