Now that Artemis 2 is up I'm in a reflective mood and I asked myself: did I contribute to this mission at all?

Orion and Artemis are pretty big pots of money that I've been funded by more than once over the years. Initially I thought probably none of that was relevant to A2, but then I remembered: FLASHE Ramses!

ohhhhhhh friends.

Ramses is the Orion flight software, implemented by controls people in a spaghetti language called Simulink that Mathworks sold the automotive industry and then the aerospace industry. Simulink was a bad idea imo, though maybe it could've been a good one in someone else's hands... I don't think I've *ever* seen a 2D-diagram programming language I liked though.

FLASHE was a simulation environment. Is? I'm not fully aware of all the history; I think Antares (which I work on now) superceded it.

Anyway, at some point we're putting together FLASHE with Ramses. I'm very very early in my career, only a couple years out of university. SOMEHOW I end up in some of these meetings about how we should be putting together this Sim+FSW testing combo.

At one point we start talking configuration control. I'd personally been on projects at that point at NASA that had used Mercurial (SORT, and most of the stuff at that lab, did I think) and ClearCase (AGDL projects?).

I, tragically, say "Git?"

and so I think for two+ years after that, I'm somehow one of the people in charge of configuration and control for that project. I am maintaining the Git repository. Me and a more-senior engineer, for months, are laboriously merging in changes by hand, which is ESPECIALLY DIFFICULT TO DO WITH SIMULINK OMG

SIMULINK WAS CLEARLY NOT DESIGNED WITH COLLABORATION IN MIND

I HAVE NO IDEA WHY ANYONE EVER LIKED IT

and eventually me and another engineer introduce crude homegrown Continuous Integration

I should remind people who don't know me that then I'm basically a fresh-out Aerospace Engineering BS. I went into flight, and then engineering, because I had become convinced I was bad at programming. Like I could DO it but there's a lot to doing it well, right? And I certainly didn't have a degree in Computer Science or Software Engineering.

I just opened my big fat mouth and ended up on the backend tools for the sim.

Almost all of that was replaced over the intervening more-than-a-decade.

My crude bash script that occasionally queried Redmine for FLASHE is now a less-crude Python script that occasionally queries Gitlab for the Antares sim.

FLASHE was all MATLAB, I think, for convenience reasons while working with the Simulink portions of Ramses. Antares (which I think has completely superceded FLASHE but I'm not 100% sure) is C++, and so I think they probably don't have the logic I did to check if MATLAB ran itself out of memory and crashed, to then restart the compile.

I think we limited MATLAB restarts during compile (MEXing? MATLAB EXecutable format?) to three times and assumed that if it needed more then there was a real problem. I think I recall that assumption failing at least once, to the frustration of the FSW developers submitting changes.

Eventually, through many years of labor by an enormous team, we actually did get usable spacecraft out of all that. But I still reel sometimes thinking about it. The way the sausage is made is wild.

oh wow I see those hearts from Scott. Mars and Me is still one of the best blogs/memoirs ever. ♥ right back at you

I don't think I got into that blog on "the ground floor" as it were, but I think I did start reading before you were done posting, so it's likely I was reading it during the time I was working on FLASHE Ramses. Quite possibly literally at work.

https://marsandme.blogspot.com/
for anybody unfamiliar.

Mars and Me

The unofficial diary of a Mars rover driver, five years delayed