They did it once by mixing meters and feets, and crashed the Mars lander.
Edit: looked it up, wasn’t actually meters vs feet, but newton-seconds vs some American eagles per gun unit for force
it happened again with the Intuitive Machines lander that landed on the moon last week
The Intuitive Machines lander issue was that no one disarmed the safety switch on the laser guidance system. (No, really!) Luckily NASA had a backup system installed that ended up working better anyway.
Hopefully, the transition to metric is soon and I can stop reading this same joke every week.
Technically the US measurement system is metric since the Mendenhall Order of 1893 reestablished all customary units as conversion factors of metric units. In 1933 the ASA redefined the inch to be exactly 25.4mm, following the lead of the British Standards Institution in 1930 (precision was increasingly important for manufacturing, and the previous value of 25.40005mm had become impractical). The international yard and pound were officially adopted by the US National Bereau of Standards (now NIST) in 1959, the Metric Conversion Act was passed in 1975, and finally EO 12770 (1991) required all agencies of the executive branch to transition to metric units.
So, from one point of view we’ve been transitioning to metric since 1893 and it’s still not done. From another, the inch is just a metric unit as its length is officially defined in millimeters (all customary units are now based on SI units), therefore the conversion is complete.
If a TODO passes code review, more than one person fucked up.
At my first job after university, we did releases every Friday evening. From 3-5pm, all you would see in the Slack channel was a flurry of everyone committing straight to master (with a bunch of merge conflict commits between). Oh and then we’d release. Fun times.
A free for all, late Friday deployment is baffling… We’ve got a strict window of Tuesday-Thursday for releases (unless it’s a critical issue), and a 2-3 day merge freeze to help mitigate unexpected changes.
We’ve got a relatively small team with LOTS of moving parts, so minimizing deployment issues is always top of mind.
I literally know multi billion dollar B2C startups doing the same. It’s got so toxic that the management regularly fires people and to fill their spots, they offer obscene amounts of money just for starter positions.
Eh, then you just get those idiots who avoid using TODO: because it makes the code review “harder”.
// This is a broken example.
// Note: remove X before doing Y
Especially the devops team. That keyword should be caught in a precommit hook
We use a CI pipeline check which prevents merges to master if the code contains a TODO. A precommit hook only works if the developer has the hooks configured.
I feel like modern compilers would turn their nose up at that shit. “Dead code? Ewww! No way I’m letting that into my syntax tree!”
Golang won’t even compile with dead code. Unfortunately that’s too strict, you just end up commenting out the whole block instead. At least the commented out code is obvious in review, and some automated checks catch it if you have them.
most of my (rust) projects have zero (or maybe 1-2) warnings, unless I’m in the middle of working on a feature
Guess what? Flight Software usually uses ancient proprietary compilers for specialized hardware running an RTOS, rip 😢
Woah woah WOAH WOAH.
So you’re saying software for the Artemis landers aren’t being built with the latest TypeScript compiler and running on a canary version of v8?!
At my workplace, we have a lint rule that reports an error if is anywhere in the file, plus a commit hook that blocks all commits with
anywhere in them. It works well and has saved me a few times.
Works pretty well, except the lint rule and its associated tests have to do something like "@no"+"commit"
to avoid triggering it,
In a lot of modern work flows this is incompatible with the development pattern.
For example, at my job we have to roll a test release through CI that we then have to deploy to a test kubernetes cluster. You can’t even do that if the build is failing because of linting issues.
The test release shouldn’t have anything marked with though… The idea is that you use it to mark code that is only temporary local debugging code that should never be committed.
Are you committing to master
? I don’t see any reason why you shouldn’t commit your debugging code to your own branch. Obviously clean it up before merging
Dude looks like Hank and Dale had a baby.