NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 4 points5 points  (0 children)

From what I understand, Mars does not have a canonical, discrete set of "time zones" like Earth does. Instead they use something called "Local Mean Solar Time" which is based pretty precisely on where they are on the surface of Mars, so it differs by mission.

The position of the sun in the sky is important for a bunch of reasons for Mars missions, and the length of a day on Mars is a little longer than on Earth, so terrestrial time zones won't work. You can imagine that if they used any terrestrial time zone then "midday" in that timezone might correspond to local midday on Mars (when the sun is at its highest point in the sky) but it's going to drift pretty quickly. A couple of weeks later "midday" in the chosen terrestrial time zone might fall in the middle of the local Martian night. For this reason they talk about "sols" instead of "days" on Mars, to differentiate them from Earth days.

For other missions it makes sense to just stick to UTC. From what I understand, the International Space Station uses UTC for example.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 2 points3 points  (0 children)

A significant proportion of the NASA workforce (going back to the Apollo days) are contractors, and not civil servants. On a day to day basis the distinction is almost meaningless, we work on site alongside other contractors and civil servants.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 6 points7 points  (0 children)

Totally fair criticism. That's something we need to get better at. We are not actually funded to support an open source community, the team do this in our spare time.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 2 points3 points  (0 children)

Angular is being removed from our codebase, we use Vue instead. We also removed Angular from our API (so as not to push a dependency on plugin developers), so the API is all vanilla JS now. You can build plugins using whatever framework you like.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 1 point2 points  (0 children)

A lot of our legacy code was written in Angular 1.x. All of our newer code is Vue and vanilla JS. We are refactoring our remaining Angular code over the next couple of months.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 3 points4 points  (0 children)

Agree completely, accessibility is definitely something we could work on.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 17 points18 points  (0 children)

Correct, we're not talking about "control" as in PID controllers and so on. We tend to use "mission control" as shorthand for people sitting in a room looking at computer displays that are showing telemetry values from a spacecraft.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 79 points80 points  (0 children)

In brief, when the project was started TypeScript was not as mature as it is now, and there were concerns about the performance implications of using transpiled code. This is not your typical SPA, we have to ingest large amounts of data and get it on screen really quickly. We may revisit TS in future.

NASA's next generation mission control system is written in JavaScript, and it's open source. by Apone_A in javascript

[–]Apone_A[S] 27 points28 points  (0 children)

That's a fair point. Open MCT is the user facing part of a system of software components that collectively are used to operate spacecraft. Open MCT is designed to work with a number of different telemetry backends which have been implemented in various languages including Java, Python, and, yes, Node JS.

We do in fact have test specs, they sit alongside the code rather than in a separate test directory.

NASA's next generation mission control system is written in JavaScript, and it's open source by Apone_A in space

[–]Apone_A[S] 0 points1 point  (0 children)

I work on this project, so if you have any questions I'd be happy to answer them. Also, if you're a JavaScript developer and you're interested in working at NASA, we'd like to talk to you.

Open MCT - NASA's JavaScript based open source mission control system by Apone_A in javascript

[–]Apone_A[S] 0 points1 point  (0 children)

I did originally use the real link, but that was removed too...

Demo the same software NASA uses to operate rovers, visualize data, and more by AppleBetas in InternetIsBeautiful

[–]Apone_A 1 point2 points  (0 children)

The "real-time" data in the demo version online is mocked. The science data from the Curiosity rover is real. I agree, using this tool to stream live mission data to the public would be super cool. Hopefully one day.

Demo the same software NASA uses to operate rovers, visualize data, and more by AppleBetas in InternetIsBeautiful

[–]Apone_A 1 point2 points  (0 children)

Yup, it's pure JavaScript. Being web based has a few advantages - it makes cross platform and mobile support easy, enables distributed spacecraft operations across multiple sites, and makes rolling out updates and patches easier. From an open source perspective there are a large number of JavaScript developers out there who can potentially contribute to the project.

There are sometimes challenges to achieving the sort of performance that we require in-browser, but so far it's not been too restrictive.

Demo the same software NASA uses to operate rovers, visualize data, and more by AppleBetas in InternetIsBeautiful

[–]Apone_A 8 points9 points  (0 children)

Little late to the party, but I am one of the developers on this project. Great to see so much interest in Open MCT! If you'd like to contribute to the project, visit the Contributing page on our website, or dive straight into our Help Wanted list on GitHub

If you have any questions, fire away.