[00:00.000 --> 00:08.000] Thank you very much for having me here at FOSSTEM. [00:08.000 --> 00:14.120] This is my first FOSSTEM and as part of the feedback from the organizers for my talk was [00:14.120 --> 00:20.120] it sounds like something that could be enough the great way to end the meeting with lots [00:20.120 --> 00:24.320] of pretty pictures and I've done my best to fill this with lots of pretty pictures and [00:24.320 --> 00:27.920] so hopefully I'll meet the expectations. [00:27.920 --> 00:29.240] I'm Steve Crawford. [00:29.240 --> 00:34.200] I'm the Science Data Officer as part of the Chief Science Data Office of the Science Mission [00:34.200 --> 00:40.000] Directorate of NASA and I'm really excited here today to talk to you about NASA and open [00:40.000 --> 00:42.960] source software. [00:42.960 --> 00:48.000] And so just to give a little preview of what I'll be talking about I'll start off with [00:48.000 --> 00:54.760] software and the importance of it to NASA, recent open source software success stories, [00:54.760 --> 01:02.000] challenges with open software, open source science and then opportunities. [01:02.000 --> 01:10.400] And I think probably most everyone is familiar with NASA but I want to share with you that [01:10.400 --> 01:16.440] NASA's vision is to reach new heights and reveal the unknown for the benefit of all [01:16.440 --> 01:17.440] humankind. [01:17.440 --> 01:21.480] And this image is I think a great encapsulation of this. [01:21.480 --> 01:24.560] Going to the moon was obviously reaching new heights. [01:24.560 --> 01:30.000] And this image of Buzz Aldrin on Apollo 11 mission landing on the moon but it captures [01:30.000 --> 01:33.760] him actually in the act of a science experiment. [01:33.760 --> 01:39.200] They're actually capturing information about the solar winds on the surface of the moon [01:39.200 --> 01:43.320] and actually trying to better understand how our sun works and interacts with the different [01:43.320 --> 01:47.520] bodies and trying to actually explore heat of physics which is one of the main areas [01:47.520 --> 01:49.640] we do research on. [01:49.640 --> 01:52.160] And so that is actually a key bit of NASA. [01:52.160 --> 01:57.680] Not only to explore the universe and to explore our solar system and our atmosphere but also [01:57.680 --> 01:59.440] to actually understand it. [01:59.440 --> 02:05.200] And so trying to actually understand for the benefit of everyone is a key part of NASA. [02:05.200 --> 02:13.080] And at the heart of that and integral part of that and what makes NASA possible is software. [02:13.080 --> 02:18.720] Every mission, every bit of research that NASA does there's software involved in it. [02:18.720 --> 02:24.720] And a great example is the Apollo software and here's two of the people who are leaders [02:24.720 --> 02:29.840] and involved in it, Mary Jackson who started work at the computers, the very early computers [02:29.840 --> 02:36.160] as part of NASA to actually work and then became one of the lead engineers. [02:36.160 --> 02:41.360] And Margaret Hamilton who helped lead the team that was designing the control and command [02:41.360 --> 02:45.040] software for the Apollo 11 mission at MIT. [02:45.040 --> 02:49.120] And this software is actually released and made openly available. [02:49.120 --> 02:54.680] You can see an example of the scan of one of the early software. [02:54.680 --> 02:57.000] It's available online. [02:57.000 --> 03:00.280] It's also been converted to GitHub if you actually want to actually take a look at the [03:00.280 --> 03:02.800] software and the code from the Apollo mission. [03:02.800 --> 03:05.360] It's there and available. [03:05.360 --> 03:10.560] Software has been a key part for all of our different missions but NASA also has a long [03:10.560 --> 03:15.560] history of making the software openly available. [03:15.560 --> 03:22.120] And that sharing is part of NASA's DNA as part of the law that created NASA, the space [03:22.120 --> 03:23.960] act. [03:23.960 --> 03:29.360] In section 203, one of the aspects was to provide for the widest, practical and appropriate [03:29.360 --> 03:34.600] dissemination of information concerning its activities and results thereof. [03:34.600 --> 03:43.120] Part of our congressionally mandated law is to actually share what we do and disseminate [03:43.120 --> 03:44.520] appropriately. [03:44.520 --> 03:48.720] We do always have to be concerned about security and keeping things safe. [03:48.720 --> 03:53.200] But we also want to actually share as much possible as we do. [03:53.200 --> 03:56.560] And today we're doing that through our different directorates. [03:56.560 --> 04:02.720] We have our exploration systems directorate with Artemis, launching and aiming to go back [04:02.720 --> 04:05.560] to the moon and then Mars beyond it. [04:05.560 --> 04:09.320] We have our space operations mission directorate which is actually focused on the international [04:09.320 --> 04:13.320] space station and about operations and living in space. [04:13.320 --> 04:16.920] We have our science mission directorate which I'm part of which actually explores our universe [04:16.920 --> 04:18.800] and our earth. [04:18.800 --> 04:22.520] And we also have our space technology and aeronautics research mission directorates which actually [04:22.520 --> 04:27.880] are designing the technology that enable the exploration and discoveries made by the other [04:27.880 --> 04:28.880] directorates. [04:28.880 --> 04:33.040] I'm not focused most of the rest of my talk on the science mission directorate but a lot [04:33.040 --> 04:38.560] of what I say for SMD also applies to these other activities. [04:38.560 --> 04:41.080] And so what does the science mission directorate do? [04:41.080 --> 04:44.520] Well, it has three key science themes. [04:44.520 --> 04:50.720] These are to protect and improve life on earth and space, search for life elsewhere and that [04:50.720 --> 04:57.920] can be either within the solar system or planets circling around other stars and discover the [04:57.920 --> 05:00.240] secrets of the universe. [05:00.240 --> 05:04.800] And so these are three, I think it's fair to say, pretty big questions that affect all [05:04.800 --> 05:06.800] of humanity. [05:06.800 --> 05:10.280] And that's what we're actually working at in the science mission directorate to try and [05:10.280 --> 05:13.560] answer these questions. [05:13.560 --> 05:14.560] And how do we do that? [05:14.560 --> 05:17.240] Well, we do it through our fleet of missions. [05:17.240 --> 05:21.560] And so these are the different missions that the science mission directorate have in orbit [05:21.560 --> 05:27.640] around the earth, have in orbit around other planets or the sun or have exploring the universe. [05:27.640 --> 05:30.640] And we have a wide range of earth-observing satellites. [05:30.640 --> 05:36.440] We have a number of experiments going on on the International Space Station. [05:36.440 --> 05:41.920] We have a wide range of different explorers that have visited Mars. [05:41.920 --> 05:44.840] We also have observations of the sun. [05:44.840 --> 05:49.480] And we have our space telescopes and our space observatories observing the deepest reaches [05:49.480 --> 05:50.480] of the universe. [05:50.480 --> 05:55.320] And I just want to take a pause though as I take a look at and a very important aspect [05:55.320 --> 06:00.440] of this chart is that a lot of these missions, actually all of these missions, are done with [06:00.440 --> 06:01.440] our partners. [06:01.440 --> 06:07.000] NASA, even though NASA, everyone knows the NASA name and the NASA brand, so much of what [06:07.000 --> 06:09.320] NASA does is with others. [06:09.320 --> 06:10.840] It's with the community. [06:10.840 --> 06:15.240] We do it with our partners at the European Space Agency, at the Canadian Space Agency, [06:15.240 --> 06:16.440] at JAXA. [06:16.440 --> 06:21.440] We do it with the contractors and other agencies which are around the world that we partner [06:21.440 --> 06:22.440] with and work with. [06:22.440 --> 06:25.440] And we also do it with the wider community. [06:25.440 --> 06:30.360] Some of these missions are NASA-led, some are led by our partners. [06:30.360 --> 06:35.760] But really, I think there's actually one aspect which is actually very similar to open source [06:35.760 --> 06:42.720] where the missions and projects with NASA do take a very wide community in order to actually [06:42.720 --> 06:46.440] achieve these projects. [06:46.440 --> 06:51.520] And so I want to actually look at some of the success stories with these projects. [06:51.520 --> 06:53.880] And the first one I want to take a look at is Ingenuity. [06:53.880 --> 06:59.960] I'm going to play Ingenuity as part of the Mars Preserverance mission. [06:59.960 --> 07:06.360] Mars Preserverance is on the surface of Mars, it landed there in 2021, to explore Jezero [07:06.360 --> 07:10.160] Crater, an ancient delta on Mars. [07:10.160 --> 07:17.160] This was an area that was once rich with water and was sent there to actually explore whether [07:17.160 --> 07:19.800] or not the potential for life in that area. [07:19.800 --> 07:24.800] As part of that mission, there's a demonstrator on it which is the Ingenuity drone copter. [07:24.800 --> 07:27.240] And you can see the first flight of it here. [07:27.240 --> 07:34.840] And this is the first flight of a human-made object anywhere else in the solar system. [07:34.840 --> 07:39.360] And so we're actually flying a copter on another planet. [07:39.360 --> 07:48.200] Since the first flight, it's been repeated and has flown over 40 separate flights during [07:48.200 --> 07:51.160] the last two years, it's still flying, it's still exploring. [07:51.160 --> 07:54.520] This was something that I was expected to make about five flights and I'll just play [07:54.520 --> 07:56.440] that again. [07:56.440 --> 07:58.720] But it's driven by open-source software. [07:58.720 --> 08:05.000] F prime is the open-source flight control software for this and this framework was used for this [08:05.000 --> 08:06.000] project. [08:06.000 --> 08:14.600] It was released by JPL in 2017 and so this drone copter is flown by open-source software. [08:14.600 --> 08:23.880] One of the great things that happened to celebrate this accomplishment is that NASA and JPL partnered [08:23.880 --> 08:29.080] with GitHub to actually recognize all those who have contributed to this mission. [08:29.080 --> 08:33.480] And they didn't actually just to those who actually contributed to the F prime repository, [08:33.480 --> 08:40.920] they also contributed and recognized all the others through a badge of the Mars 2020 helicopter [08:40.920 --> 08:49.720] badge, which recognized all the dependencies and all the other packages and software that [08:49.720 --> 08:54.280] was involved and part of this project. [08:54.280 --> 08:59.000] And so this actually was over 12,000 people who contributed to these dependencies and [08:59.000 --> 09:02.720] these different packages which made this project possible. [09:02.720 --> 09:08.040] These contributors are from all around the world and have been contributing to open-source [09:08.040 --> 09:15.720] and a wide range of different open-source projects which made flight on Mars possible. [09:15.720 --> 09:25.040] Another project and this one is personally important to me because it's one that I've [09:25.040 --> 09:28.880] contributed directly to is the JPS Web Space Telescope. [09:28.880 --> 09:34.680] This was launched just over a year ago and it is a partnership between NASA, European [09:34.680 --> 09:38.120] Space Agency, ESA and the Canadian Space Agency. [09:38.120 --> 09:43.160] And I really want to actually once again actually like emphasize the fact that these projects, [09:43.160 --> 09:49.320] these massive projects which took almost 30 years to build was an international collaboration [09:49.320 --> 09:56.120] with a wide range of different agencies across different NASA centers, 14 different countries [09:56.120 --> 10:03.800] including Belgium right here, part of the Meary spectrograph was built here in Belgium, along [10:03.800 --> 10:08.240] with actually one of the leads for the Meary spectrograph of the Law Resolution spectrograph, [10:08.240 --> 10:13.000] Sarah Kendra was actually born and raised in Belgium. [10:13.000 --> 10:20.720] And so these projects take a wide range and a large community to actually support and [10:20.720 --> 10:24.720] actually produce these projects. [10:24.720 --> 10:30.480] And so the wonderful and beautiful thing is that after its launch and after its commissioning, [10:30.480 --> 10:34.920] James Web Space Telescope did start to produce beautiful, beautiful images. [10:34.920 --> 10:39.200] And so Jade was tea as here is one of the first images of the Karina Nebula. [10:39.200 --> 10:46.200] This is a small part of the overall image or small part of the overall Nebula showing [10:46.200 --> 10:53.640] the dust clouds which are actually home to new stars which are forming there. [10:53.640 --> 10:57.560] And not only is it producing imaging but it's also producing spectra and this is an example [10:57.560 --> 11:03.800] and one of the first spectra of carbon dioxide in the atmosphere of a planet orbiting another [11:03.800 --> 11:04.800] star. [11:04.800 --> 11:09.200] So it's in the atmosphere of a plant which is orbiting another star and it's detected [11:09.200 --> 11:14.520] by the spectrograph and by looking at as that planet passes in front of the star, you [11:14.520 --> 11:19.520] can actually do observations of it, you subtract off the effects of the star and you can actually [11:19.520 --> 11:24.080] see what the spectrum of that atmosphere of that planet is. [11:24.080 --> 11:25.960] This is the first detection of CO2. [11:25.960 --> 11:30.240] And this came out roughly about a month after we started producing public data from the [11:30.240 --> 11:32.360] telescope as we started releasing data. [11:32.360 --> 11:37.320] And here's a great quote from Natasha Patalia who is one of the leads on it, that NASA's [11:37.320 --> 11:41.320] open science guidance principles are centered in our early release science work supporting [11:41.320 --> 11:45.320] an inclusive, transparent and collaborative scientific process. [11:45.320 --> 11:49.760] They could actually produce their science so quickly in one month, this discovery one [11:49.760 --> 11:55.320] month after they started releasing data because of open science and open source software. [11:55.320 --> 12:00.920] They're able to test their software and their processes before the launch of the telescope [12:00.920 --> 12:04.400] because all of the calibration software was made publicly available. [12:04.400 --> 12:09.600] The data for this project, for our early release projects were made publicly available as soon [12:09.600 --> 12:12.360] as they were observed. [12:12.360 --> 12:15.800] And they also are a great example of open science as well. [12:15.800 --> 12:21.080] They've made all of their data, all of their software and all of their results openly accessible [12:21.080 --> 12:22.080] as well. [12:22.080 --> 12:25.680] So if you want to actually go and reproduce this spectra for yourselves, you can actually [12:25.680 --> 12:32.000] go and download their software which is uploaded to Zenodo and take a look at it. [12:32.000 --> 12:37.320] And so as I said, this is all made possible by having the software made openly available [12:37.320 --> 12:41.000] and this is part of all of the JVC calibration software. [12:41.000 --> 12:47.440] The software which is actually used to actually produce and science calibration and science [12:47.440 --> 12:52.440] ready images is all openly developed, all openly developed on GitHub. [12:52.440 --> 12:56.160] It enables scientists to test their projects before it became available but also allows [12:56.160 --> 13:00.720] them to feed back to the project to actually when they find bugs or when they find a better [13:00.720 --> 13:05.560] algorithm for calibrating the data, they can contribute it back to the program so that [13:05.560 --> 13:09.960] it actually can then be shared with a wider audience. [13:09.960 --> 13:14.000] And one thing that actually makes this available is it builds on the wider scientific Python [13:14.000 --> 13:18.680] environment and then contributes back to that community as well. [13:18.680 --> 13:23.840] And the way that this did it was it contributes in JVC and that team contributes back to the [13:23.840 --> 13:28.520] AstroPy project and this is a common Python library for astronomy. [13:28.520 --> 13:34.520] It builds on NumPy and it started in 2011 basically from an astronomy and Python mailing [13:34.520 --> 13:36.400] list. [13:36.400 --> 13:41.240] People have been actually emailing on the list saying I've just released a new generalized [13:41.240 --> 13:45.600] package for astronomy and after about the third email someone said why don't we all [13:45.600 --> 13:47.760] work together? [13:47.760 --> 13:52.600] And basically everyone did actually agree to that and we ended up getting together and [13:52.600 --> 13:58.400] working together to produce a generalized astronomy package and not only was it graduate [13:58.400 --> 14:03.080] students and software engineers and astronomers from around the world but it also included [14:03.080 --> 14:06.960] those software engineers and astronomers working on some of our biggest projects like the Hubble [14:06.960 --> 14:10.760] Telescope and the Chandra X-ray Observatory. [14:10.760 --> 14:15.520] Since it's actually released it's been used in over 10,000 publications making it really [14:15.520 --> 14:19.080] widely available and widely used. [14:19.080 --> 14:24.000] But we do have, you know, and on the images from their recent paper of showing actually [14:24.000 --> 14:28.920] where it's being used and where it's available and you can see it's all over the world but [14:28.920 --> 14:36.680] along with that the dots on the graphic represent where the maintainers from the project are, [14:36.680 --> 14:40.840] where the people who have been contributing to the project and they're spread out through [14:40.840 --> 14:47.640] both North America and Europe with some South American and Global South representation [14:47.640 --> 14:50.640] as well. [14:50.640 --> 14:55.080] And so I'm just going to pause again here and I'm going to put up another JVC early [14:55.080 --> 15:03.000] release image which is the Galaxy Cluster SMAC 0723 and this image also has a lot of [15:03.000 --> 15:07.680] importance to me because when I was doing my PhD in astronomy I studied objects which [15:07.680 --> 15:09.280] were very similar to this. [15:09.280 --> 15:13.920] Galaxy clusters are some of the largest, they are the largest gravitationally bound objects [15:13.920 --> 15:14.920] in the universe. [15:14.920 --> 15:20.880] They're the most massive objects having billions and billions of solar masses of billion [15:20.880 --> 15:25.760] billions times more massive than our own sun and are the largest collections of objects. [15:25.760 --> 15:31.000] And what you're seeing in this image is not only the galaxies which are part of this cluster [15:31.000 --> 15:33.760] but you're also seeing the effects of general relativity. [15:33.760 --> 15:38.120] They're bending the light from the galaxies which are behind them. [15:38.120 --> 15:43.160] Only a few hundred million or billion years older than the big bang and they're bending [15:43.160 --> 15:50.120] that light due to the mass, the mass of that galaxy is warping the space and time around [15:50.120 --> 15:54.480] it to focus those light on those background galaxies on us and we're seeing that through [15:54.480 --> 15:58.360] those galaxies which are streaked and bent around it. [15:58.360 --> 16:00.680] These are the background galaxies around it. [16:00.680 --> 16:04.800] And as I said, during my PhD I studied objects like this, galaxy clusters. [16:04.800 --> 16:11.320] When I was writing my PhD I wrote code in C and in pearl and I would put it into a tarball [16:11.320 --> 16:14.880] and put it up on my own personal website. [16:14.880 --> 16:21.000] And after I had gotten my PhD and I actually moved down to South Africa to work on a telescope [16:21.000 --> 16:24.960] there called the Southern African Large Telescope and I had to build a data management system [16:24.960 --> 16:27.520] for it except we had no resources. [16:27.520 --> 16:29.840] I was the only resource. [16:29.840 --> 16:34.640] And so I turned to the open source software, I turned to free software to actually use [16:34.640 --> 16:41.480] a wide variety of resources to build a very, very cost effective data management system [16:41.480 --> 16:42.880] for it. [16:42.880 --> 16:48.160] And it actually helped make it one of the most productive 10 meter class telescopes. [16:48.160 --> 16:52.360] But during that time was when I was working down there when I received that email about [16:52.360 --> 16:57.160] Astropi and it was, you know, this is my actual, even though I'd been releasing software, [16:57.160 --> 17:02.400] this was really my start into open source software where it actually is getting involved [17:02.400 --> 17:07.400] of a community of like-minded people who I've actually solved a similar problem. [17:07.400 --> 17:11.360] And it was really actually when I saw the potential of actually working together and [17:11.360 --> 17:15.640] sharing our software and how we did things that I actually really saw the power of open [17:15.640 --> 17:17.800] source software. [17:17.800 --> 17:24.520] And you know, that's actually then, and if you told me about 10 years ago or so that [17:24.520 --> 17:29.640] I'd be here talking to you now having actually worked in South Africa for a while and then [17:29.640 --> 17:34.440] moved on to work and manage the team that was developing the JST calibration software. [17:34.440 --> 17:40.640] And now working at NASA sharing open science across all of our different divisions and [17:40.640 --> 17:45.320] helping to further open the science, I wouldn't have actually believed you if you told me [17:45.320 --> 17:49.320] that 10 years ago that this is where getting involved in open source would have actually [17:49.320 --> 17:54.720] eventually led me to, but I'm here now and it's been actually really, really fascinating [17:54.720 --> 18:00.440] to hear all of the immense and fantastic open source work which has been going on at this [18:00.440 --> 18:01.440] conference. [18:01.440 --> 18:07.080] But I just want to actually show, you know, going back to what NASA does, this is less [18:07.080 --> 18:10.320] than 1% of the open source used by NASA. [18:10.320 --> 18:15.200] This is just a, basically NASA and the wide range of NASA projects is touching on just [18:15.200 --> 18:18.840] about every bit of open source that you can imagine. [18:18.840 --> 18:24.440] Likewise, NASA and the people working at NASA release a huge amount of open source. [18:24.440 --> 18:29.640] This is less than 1% of the open source that's being released by NASA and it's a wide range [18:29.640 --> 18:37.000] of different projects touching on both planetary science, astronomy, heliophysics, earth science [18:37.000 --> 18:41.680] along with technology development and other aspects. [18:41.680 --> 18:44.480] NASA loves to actually spin off the things that we're doing. [18:44.480 --> 18:50.440] NASTRAN was a program for engineering and fine element analysis developed in the 60s [18:50.440 --> 18:53.000] and released as public domain in the 70s. [18:53.000 --> 19:00.240] It now underlines, it still underlines a number of engineering codes which are out there and [19:00.240 --> 19:07.240] Ode Engineering Software which is out there, but NASA loves to actually spin out our projects. [19:07.240 --> 19:13.960] Another two examples of our spin offs is OpenStack which is underlying on-premise cloud [19:13.960 --> 19:15.360] computing. [19:15.360 --> 19:21.040] We still use this in our Adapt Supercomputer Center and for our on-premise cloud computing [19:21.040 --> 19:28.200] it's still often used, but with Rackspace we've handed this over to the community and [19:28.200 --> 19:30.640] to the wider community to further develop. [19:30.640 --> 19:35.720] OODT is another program that was developed for data management and for handling files [19:35.720 --> 19:40.840] likewise handed over to the Apache Foundation for that to be further developed to the community. [19:40.840 --> 19:46.680] NASA is still a participant in it, NASA still uses some of this software, but we are now [19:46.680 --> 19:52.120] just a member of a much larger community which are using these different projects. [19:52.120 --> 19:55.640] But sometimes it's still important for us to actually take the lead and develop our [19:55.640 --> 20:00.560] software ourselves and the JPL Spice Toolkit is an example of this. [20:00.560 --> 20:05.880] This is for spacecraft ephemeris, planet satellite comet or asteroid ephemeris, instrument [20:05.880 --> 20:10.240] information, orientation information and events information. [20:10.240 --> 20:13.960] This is a software that you use if you want to know where a comet or an asteroid that [20:13.960 --> 20:16.640] you want to land on will be in 10 years. [20:16.640 --> 20:21.200] This is how we actually determine the positions and velocities of spacecraft, of planets, [20:21.200 --> 20:26.040] of other objects which are all moving throughout our solar system. [20:26.040 --> 20:28.400] This software needs to be incredibly precise. [20:28.400 --> 20:33.040] If you get something wrong now in a very small amount and you try and land on your comet [20:33.040 --> 20:39.360] in 10 years you will be nowhere close to it and you will have no hope of recovering. [20:39.360 --> 20:44.400] And so there actually is a very, very rigorous process to actually contribute and to actually [20:44.400 --> 20:45.880] make changes to this code. [20:45.880 --> 20:51.200] It's made very slowly, very carefully because once again if you even get the floating points [20:51.200 --> 20:55.480] a little bit off or depending on even how the hardware works or specific hardware you [20:55.480 --> 20:57.760] may get different results. [20:57.760 --> 21:01.640] And there is actually, and it was primarily originally developed in C and they did release [21:01.640 --> 21:07.320] some other interfaces for it and it is released as open source but it's not openly developed [21:07.320 --> 21:08.320] currently. [21:08.320 --> 21:15.040] It's something funded by the planetary data system and so there is actually regular support [21:15.040 --> 21:21.120] for it and it's a great team that is currently further developing it. [21:21.120 --> 21:23.600] But there's also wrappers that have been developed for it. [21:23.600 --> 21:31.080] And Andrew Annex developed SpicePy which is a Python wrapper for this toolkit and it's [21:31.080 --> 21:33.120] been used in a wide range of different missions. [21:33.120 --> 21:36.800] It's actually now used by 80% of all Spice users. [21:36.800 --> 21:42.960] It's been used in Consini of the Mars Orbiter. [21:42.960 --> 21:47.480] It's very widely used in our range of different missions. [21:47.480 --> 21:49.960] But Andrew developed this when he was an undergraduate. [21:49.960 --> 21:53.480] He was working on the Consini mission and probably like a lot of people he just wanted [21:53.480 --> 21:57.880] to use Spice and Python and at the time there wasn't a way to do it and so he solved the [21:57.880 --> 21:59.240] problem. [21:59.240 --> 22:03.640] He developed and released it as open source software and everyone else started using it [22:03.640 --> 22:04.880] as well. [22:04.880 --> 22:08.760] And Andrew continued development for two years in his spare time while he was actually post [22:08.760 --> 22:13.720] his undergraduate and not even employed working on any of the missions. [22:13.720 --> 22:18.920] Fortunately enough he did go back for his PhD and he's now currently a post-socket Caltech [22:18.920 --> 22:20.920] so he's doing fine. [22:20.920 --> 22:25.920] But even though it's actually so widely used it wasn't actually clearly about how it was [22:25.920 --> 22:33.320] being funded or the limited recognition for example not very cited in the community even [22:33.320 --> 22:38.760] though it's actually becoming so critical to many projects that we're actually actively [22:38.760 --> 22:39.920] using it. [22:39.920 --> 22:44.680] And so that gets us to some of the challenges of NASA and open source. [22:44.680 --> 22:49.680] And so as I mentioned one thing there was a good challenge of how do we actually go [22:49.680 --> 22:55.120] from something which is just being developed as someone trying to solve their own problem [22:55.120 --> 22:57.720] but then ends up being widely used in the community. [22:57.720 --> 23:00.280] How do we actually develop that model? [23:00.280 --> 23:02.480] NASA also contributes. [23:02.480 --> 23:04.840] People working at NASA also contribute to open source. [23:04.840 --> 23:08.960] Here's Leo Singer just last week contributing to an open source project because he needed [23:08.960 --> 23:15.000] to fix it and fix a bug in it to make it work for his use case. [23:15.000 --> 23:18.960] But oftentimes it's not actually very clear about how that actually works for the NASA [23:18.960 --> 23:22.920] employee or the person working at NASA. [23:22.920 --> 23:27.200] And this is also not always very clear about also when we need to do things like sign contributor [23:27.200 --> 23:30.680] license agreements or other aspects how that works. [23:30.680 --> 23:35.880] And so sometimes often people working on NASA will do it so they get it done but it's not [23:35.880 --> 23:40.360] really clear about how they should be doing it. [23:40.360 --> 23:48.720] There's also licensing at NASA and about 20 years ago NASA created the NASA open source [23:48.720 --> 23:52.840] agreement and they're trying to solve a very specific problem. [23:52.840 --> 24:00.280] Civil servants, by US law civil servants can't produce work that is copyrightable. [24:00.280 --> 24:04.360] So open source licenses actually work based on copyright. [24:04.360 --> 24:10.520] And so if you're not allowed to produce something that's copyrightable that you can copyright, [24:10.520 --> 24:15.880] you can't use an existing open source license to actually protect it. [24:15.880 --> 24:20.200] They came up with the, and there really wasn't much guidance in the US government at that [24:20.200 --> 24:23.360] time about releasing as open source software. [24:23.360 --> 24:28.280] And so they came up with actually a relatively innovative solution at the time which is this [24:28.280 --> 24:34.520] NOSA license to actually enable civil servants to release their software as open source following [24:34.520 --> 24:35.520] this framework. [24:35.520 --> 24:40.600] Unfortunately, it wasn't widely recognized in the community, it is not recognized by [24:40.600 --> 24:47.160] the Free Software Foundation and it does complicate the reuse of NASA software. [24:47.160 --> 24:49.080] We also have bureaucracy at NASA. [24:49.080 --> 24:54.000] NASA is a very large government agency. [24:54.000 --> 24:58.720] And sometimes even though NASA does have a process of releasing software and it's released [24:58.720 --> 25:04.920] over 500, officially released over 500 open source packages, the processes can be long. [25:04.920 --> 25:09.400] We also not always best in engaging with the open source community and here's a tweet from [25:09.400 --> 25:15.720] Daniel Steinberg about getting emails from NASA asking us, or asking him about the status [25:15.720 --> 25:22.600] of Curl and whether or not it can be actually used in different ways. [25:22.600 --> 25:26.160] And that's an additional burden for people who may be actually working on this in their [25:26.160 --> 25:29.040] volunteer time or not being paid. [25:29.040 --> 25:33.560] If we actually have to figure out if the software is secure or what the risks associated with [25:33.560 --> 25:38.920] that software are, that should be our responsibility, but actually how that works with the open [25:38.920 --> 25:45.560] source framework and open source communities can be actually different aspects. [25:45.560 --> 25:50.160] But Curl is actually something which is critical, especially to our data management systems. [25:50.160 --> 25:53.600] It's being used very widely across NASA. [25:53.600 --> 25:58.160] And how that actually comes into play and in different places ends up being something [25:58.160 --> 26:02.320] that we have to actually figure out how to actually resolve and actually make sure that [26:02.320 --> 26:07.600] the software that we're using is being used appropriately. [26:07.600 --> 26:12.240] And I think there was a great talk earlier today on the security of software by Brian [26:12.240 --> 26:18.160] Bellandoff and that's going to be an ongoing question about how to answer that. [26:18.160 --> 26:24.760] And I always put up this XKCD comic on sustainability of open source software because it's better [26:24.760 --> 26:29.920] than if I could write 10 white papers and it won't have the same effect as this to actually [26:29.920 --> 26:35.240] indicate sometimes the problems and issues around sustainability. [26:35.240 --> 26:42.160] And that all of our open source systems, or not maybe not all of them, but a lot of them [26:42.160 --> 26:47.360] do actually develop or depend on a small number of developers who are actually maintaining [26:47.360 --> 26:50.560] it and keeping the code active and working. [26:50.560 --> 26:58.600] And there is actually, there was a great talk yesterday on the sustainability of open source [26:58.600 --> 27:06.720] and NASA does need reliable, secure software, especially for our space operations. [27:06.720 --> 27:09.360] And so what are we doing for the next steps? [27:09.360 --> 27:13.880] And within the science mission director, we've actually started up a couple of new things [27:13.880 --> 27:17.720] to actually help with this and help address some of these challenges. [27:17.720 --> 27:20.800] We've recently set up the chief science data office, which I'm part of. [27:20.800 --> 27:23.760] And as part of that, we've set up the open source science initiative. [27:23.760 --> 27:28.920] This is one part of it is to help actually support open source software at NASA. [27:28.920 --> 27:35.520] The other part of it is also helping to extend open science across the entire mission directorate. [27:35.520 --> 27:37.640] And so what is open science? [27:37.640 --> 27:41.800] Open science is a principle and practice of making research products and processes available [27:41.800 --> 27:47.080] to all while respecting diverse cultures, maintaining security and privacy, and fostering [27:47.080 --> 27:51.680] collaborations, reproducibility, and equity. [27:51.680 --> 27:55.960] And we really are focused on increasing accessibility, reproducibility, and inclusion when we're [27:55.960 --> 28:02.400] actually working on open science across NASA. [28:02.400 --> 28:05.600] But within SMD, we want to take that a step further. [28:05.600 --> 28:08.480] And this is why we started the open source science in practice. [28:08.480 --> 28:12.040] We definitely want to take, not only just make our products openly available, but we [28:12.040 --> 28:16.680] want to take the processes of science and open those up in much of the way of open source [28:16.680 --> 28:18.400] software development. [28:18.400 --> 28:22.360] We want to open the entirety of the scientific process from start to finish. [28:22.360 --> 28:26.400] We want to broaden community involvement in the scientific process, increase accessibility [28:26.400 --> 28:30.680] of our data, software, and publications, and facilitate inclusion, transparency, and [28:30.680 --> 28:34.760] reproducibility of science. [28:34.760 --> 28:41.760] And so with the NASA's open source science initiative, it is supporting scientists to [28:41.760 --> 28:47.280] integrate open science principles into the entirety of their research workflow. [28:47.280 --> 28:52.720] The NASA's OSSI is $20 million per year, and we're hoping to actually increase that [28:52.720 --> 28:57.360] further effort to increase open science across NASA. [28:57.360 --> 29:02.640] We have four areas that we're mainly focusing on, which is infrastructure, policy, funding, [29:02.640 --> 29:04.800] and community. [29:04.800 --> 29:08.800] I'm going to touch on some of the work that we're doing in these three, at least the three [29:08.800 --> 29:11.640] different areas. [29:11.640 --> 29:15.320] And so one thing is new policy. [29:15.320 --> 29:19.280] And so last month, we've released the SMD's new policy on scientific information. [29:19.280 --> 29:24.760] We want to make things as open as possible, as restricted as necessary, and always secure. [29:24.760 --> 29:30.240] And this new policy says that our publications, the research which is done and funded by NASA, [29:30.240 --> 29:34.560] are made openly available with no period of embargo. [29:34.560 --> 29:38.880] That our research data and software are shared at the time of publication, that they are [29:38.880 --> 29:44.240] made openly so that you can reproduce the science which is actually being done from [29:44.240 --> 29:50.400] our work, and that you're able to actually also then reuse that science to actually build [29:50.400 --> 29:51.400] on it. [29:51.400 --> 29:55.680] That our mission data are released as soon as possible and freely available. [29:55.680 --> 30:02.000] And that free is actually both in free as in beer, there's no charge to actually using [30:02.000 --> 30:08.800] our data, we make it free to download, free to access that data, and free as in speech [30:08.800 --> 30:12.560] as there's no restriction in what you can do with that data. [30:12.560 --> 30:17.880] And so that you can actually go and do whatever you want with the data we release, and that [30:17.880 --> 30:22.920] that data will be released under a Creative Commons zero license, so it's clearly in the [30:22.920 --> 30:25.720] public domain for everyone. [30:25.720 --> 30:29.320] That our unrestricted mission software is developed openly, we've learned these lessons [30:29.320 --> 30:34.480] from JVST that having that software available for everyone to actually be able to both have [30:34.480 --> 30:39.040] access to it and also reuse it improves how science is done. [30:39.040 --> 30:43.240] That we recognize software as a scientific product, our software is just as critical [30:43.240 --> 30:45.040] to our research. [30:45.040 --> 30:49.640] And that we'll be using these common open source licenses like Creative Commons zero [30:49.640 --> 30:55.360] for our data and permissive commonly used software licenses for our software like Apache, [30:55.360 --> 30:58.640] BSD, or MIT licenses. [30:58.640 --> 31:03.640] And we encourage using and contributing to open source software as part of our missions [31:03.640 --> 31:04.640] and our research. [31:04.640 --> 31:10.600] We're actually going to be also releasing further policies and updating further processes [31:10.600 --> 31:19.400] to make it easier for NASA employees and NASA people working with NASA to contribute [31:19.400 --> 31:25.280] release and use open source software, so there's more coming to make it easier. [31:25.280 --> 31:28.960] The other thing is we're directly funding open source software, especially in the scientific [31:28.960 --> 31:29.960] environment. [31:29.960 --> 31:36.560] In over the last two years we've selected over 16 proposals supporting 22 different projects [31:36.560 --> 31:38.800] which we're providing direct support to. [31:38.800 --> 31:41.880] This call was specifically for sustainability. [31:41.880 --> 31:47.720] We weren't asking for anything new, we weren't asking for new features or new products, what [31:47.720 --> 31:55.200] we were asking was please make sure this software works as best as you can and that's sustainable, [31:55.200 --> 31:59.520] that we can actually continue to use this and we've supported this with over three million [31:59.520 --> 32:03.520] dollars so far. [32:03.520 --> 32:07.680] We're also, and this is the next thing that we're kicking off this year, is NASA's Transform [32:07.680 --> 32:08.960] to Open Science. [32:08.960 --> 32:14.360] There's some stickers that already I think have disappeared very quickly, but the NASA [32:14.360 --> 32:19.400] TOPS effort is a 40 million five-year mission to accelerate adoption of open science. [32:19.400 --> 32:26.360] We're aiming to train 20,000 researchers to earn a NASA open science badge and certification [32:26.360 --> 32:29.560] which includes how to open source your software. [32:29.560 --> 32:34.360] We want to double the participation of historically excluded groups across NASA science and we [32:34.360 --> 32:38.240] want to enable five major scientific discoveries through open science principles. [32:38.240 --> 32:43.440] And we're going to do this through engagement, capacity sharing, incentives and coordination [32:43.440 --> 32:45.120] across the community. [32:45.120 --> 32:49.360] We're also following our own advice here, everything that we're doing with this project [32:49.360 --> 32:54.840] is going to be open sourced on GitHub so that community members can contribute it and we're [32:54.840 --> 33:00.000] kicking this all off with a year of open science of 2023. [33:00.000 --> 33:03.680] And this is the start of the project. [33:03.680 --> 33:09.000] As I said, it's all going to be up on GitHub, definitely please check it out and please [33:09.000 --> 33:10.640] engage with the community. [33:10.640 --> 33:17.000] But we're also not the only U.S. government agency contributing to the year of open science. [33:17.000 --> 33:21.920] Last month the White House did actually announce that 2023 would be a year of open science [33:21.920 --> 33:26.240] and there's going to be more stuff being announced by other U.S. agencies as well and we hope [33:26.240 --> 33:32.120] actually as many of you who are interested in science also take step forward to actually [33:32.120 --> 33:37.360] make your science and your results more open as well. [33:37.360 --> 33:45.640] And so we wanted to also talk about the opportunities for NASA and for using open science. [33:45.640 --> 33:49.560] And one of the most important things that we do and one of the most important aspects [33:49.560 --> 33:54.880] of or most immediate aspects of the science mission directorate is our contributions to [33:54.880 --> 34:00.880] the earth, of studying the huge impacts of climate change, about how that will affect [34:00.880 --> 34:06.040] our future, issues around environmental justice and other issues. [34:06.040 --> 34:10.880] And the way we are supporting it is that we do make all of our NASA data open. [34:10.880 --> 34:15.400] We have over 70 petabytes of data which is available in the cloud and even more that's [34:15.400 --> 34:20.320] available in different systems that are open for you to use in any way that you like to [34:20.320 --> 34:23.120] help address these questions. [34:23.120 --> 34:30.280] We have open APIs to these data sets which is all developed on NASA GitHub and provide [34:30.280 --> 34:37.560] as open access to the wider community and making these available to users around the [34:37.560 --> 34:43.440] world to those who actually need the data and most impacted by it. [34:43.440 --> 34:48.680] And there's actually, I know there's a big session here on the environmental impacts [34:48.680 --> 34:52.480] and there's a great talk this morning on, and I wanted to share one of the examples [34:52.480 --> 34:57.120] from NASA which is the power project that provides solar and meteorological data sets [34:57.120 --> 35:01.520] for NASA research for supporting renewable energy and building energy efficient and [35:01.520 --> 35:03.320] agriculture needs. [35:03.320 --> 35:05.400] We have made all the data freely available. [35:05.400 --> 35:09.600] We've also partnered with AWS to make the data freely available on there so that you [35:09.600 --> 35:16.240] can have access to this almost one, and this data set to actually develop the apps to build [35:16.240 --> 35:20.920] the open source tools on top of this, to actually use it in different ways that you can. [35:20.920 --> 35:25.920] To actually answer some of the toughest questions that we have around climate change and our [35:25.920 --> 35:31.400] environment, but we're also putting actually another five petabytes of data openly available [35:31.400 --> 35:36.520] on AWS and we're also looking to provide it on other cloud providers as well so that [35:36.520 --> 35:40.880] the data is there where you need it and where you can use it, and so we're actually looking [35:40.880 --> 35:45.240] to actually put our data in places where it's most useful and to partner with as many different [35:45.240 --> 35:50.040] groups that we can to actually put that data in useful places. [35:50.040 --> 35:52.280] And this is only actually the start. [35:52.280 --> 35:55.920] What's coming up next is our Earth System Observatories, which we're doing in partnerships [35:55.920 --> 36:01.840] with the European Space Agency and JAXA that are actually going to give even a closer view [36:01.840 --> 36:06.480] of the climate effects on Earth, and actually a better study of how these different effects [36:06.480 --> 36:13.160] both on changing our surface, changing our world, changing our climate, and our different [36:13.160 --> 36:14.240] particles. [36:14.240 --> 36:19.480] These are going to produce over 600 petabytes of data, and we're going to make this all [36:19.480 --> 36:23.840] freely available and accessible to the world to be able to actually access it and look [36:23.840 --> 36:29.360] at it and build things on it to answer these questions. [36:29.360 --> 36:34.280] And so we also have a lot, as I mentioned, NASA has released already a lot of open source [36:34.280 --> 36:35.800] software. [36:35.800 --> 36:39.200] We have a number of different ways to discover what might actually be out there. [36:39.200 --> 36:43.800] Code.nasa.gov is our site for our open source software at NASA. [36:43.800 --> 36:47.560] It has over 500 projects which have been officially released. [36:47.560 --> 36:50.960] We also have just released the science discovery engine. [36:50.960 --> 36:57.880] This is actually a system to actually explore both all of our different data sets, software, [36:57.880 --> 37:02.480] and technical documents across all of the science mission directorate. [37:02.480 --> 37:07.240] It has a listing, I think, currently of about 44,000 different pieces of software that have [37:07.240 --> 37:12.640] been released by different NASA researchers and missions. [37:12.640 --> 37:14.200] We have the NASA software catalog. [37:14.200 --> 37:18.680] We also have the NASA Github, which has over 500 repositories on it, but we also have all [37:18.680 --> 37:20.360] the different partners which are on Github. [37:20.360 --> 37:28.280] JPL has their software on Github, Space Telescope, has the JBC and the Hubble software on Github. [37:28.280 --> 37:31.760] There's also a lot of other people who have posted their own NASA research software around [37:31.760 --> 37:32.760] there. [37:32.760 --> 37:35.840] We also have the Astrophysics Data Service, and you can also search the Software Heritage [37:35.840 --> 37:43.560] Archive, which is archiving a lot of software across a wide range of different domains. [37:43.560 --> 37:49.760] And so we're really actually looking ahead at the really big challenges and trying to [37:49.760 --> 37:51.640] answer the big questions. [37:51.640 --> 38:00.840] Here's the dark mission, which earlier this year impacted on an asteroid, on a Diffmorphous, [38:00.840 --> 38:04.920] which is circling around another asteroid to actually detect to see if we could actually [38:04.920 --> 38:06.760] change its trajectory. [38:06.760 --> 38:11.160] If we can actually change the directory early enough of an asteroid, we can hopefully make [38:11.160 --> 38:15.480] sure that it deflects and avoids the Earth by using, for example, the Spice Toolkit to [38:15.480 --> 38:19.280] actually study where it's actually going to be moving and predicting it. [38:19.280 --> 38:25.600] And hopefully, ideally, protect the planet and avoid the same fate as the dinosaurs. [38:25.600 --> 38:29.040] But obviously, this is all building, and this wide range is building off a wide range of [38:29.040 --> 38:31.520] open source software. [38:31.520 --> 38:32.800] And so we do need more people. [38:32.800 --> 38:37.600] We need more hands and more eyes and more brains with the diverse experiences to participate [38:37.600 --> 38:43.080] in, so we can ask the best questions and find the best solutions. [38:43.080 --> 38:47.760] And so someone had asked me on Macedon what would be the best way or how you can contribute [38:47.760 --> 38:54.440] to NASA open source, and I wanted to actually share some of the different aspects. [38:54.440 --> 38:57.720] And so you can contribute directly to NASA open source code. [38:57.720 --> 39:00.040] It's available on GitHub. [39:00.040 --> 39:05.480] You can contribute to the open source software that's maintained by our partners at JPL or [39:05.480 --> 39:12.760] at Space Telescope or at the NASA Impact Project or the NASA Development Project or a wide [39:12.760 --> 39:18.000] range of different sources or at ESA and or at other groups that are actually contributing [39:18.000 --> 39:20.960] and answering scientific questions like CERN. [39:20.960 --> 39:25.920] So you can contribute directly to the open source code. [39:25.920 --> 39:30.560] But you can also keep contributing, building, and sustaining your code. [39:30.560 --> 39:33.240] There's so much open source that NASA is using. [39:33.240 --> 39:37.360] So even just by participating in your own open source projects, you're contributing [39:37.360 --> 39:41.560] to the NASA mission. [39:41.560 --> 39:43.960] And you can also come work with us. [39:43.960 --> 39:48.920] This can either be, you know, we're always hiring, and also our partners and our contractors [39:48.920 --> 39:53.280] are always hiring, and a lot of these are great places to work on open source. [39:53.280 --> 40:00.240] And so we also have great internship programs, especially at NASA and at JPL, and also always [40:00.240 --> 40:04.120] excited to have people come work with us or come work with our partners in Europe, like [40:04.120 --> 40:06.400] the European Space Agency. [40:06.400 --> 40:10.920] We're always looking for great technical talent to help make contributions and help [40:10.920 --> 40:14.520] build our missions. [40:14.520 --> 40:21.200] And to help address these major questions that impact humanity and to have us help reach [40:21.200 --> 40:26.000] new heights and reveal the unknown for the benefit of humanity. [40:26.000 --> 40:29.960] And whether or not we're asking questions of protect and improve life on Earth and space [40:29.960 --> 40:34.800] and trying to address questions around climate change, address questions around planetary [40:34.800 --> 40:42.000] protection, questions around environmental justice, these are important questions that [40:42.000 --> 40:43.440] affect all of us. [40:43.440 --> 40:46.680] Whether or not we're searching for life elsewhere, either searching for life in our own solar [40:46.680 --> 40:52.200] system on Mars or Europa or Venus, or searching for life around planets orbiting around other [40:52.200 --> 40:53.200] stars. [40:53.200 --> 40:57.400] And we're trying to discover the secrets of the universe, trying to understand general [40:57.400 --> 41:03.240] relativity, trying to understand how our universe, our earliest galaxies have formed, [41:03.240 --> 41:06.160] trying to understand how black holes work. [41:06.160 --> 41:11.040] These are all the types of questions that we're trying to answer here at NASA. [41:11.040 --> 41:19.240] And so I just want to stop there, and I'm almost at my end of my talk, but just actually [41:19.240 --> 41:23.760] want to end it with a little bit of audience participation. [41:23.760 --> 41:30.120] And so I do, if you did actually see during my talk, software that you contributed to, [41:30.120 --> 41:33.880] can you raise your hand? [41:33.880 --> 41:38.800] So I mean, during my talk, I could only show about 1% of the software out there. [41:38.800 --> 41:43.200] So if you actually know you actually contributed to some NASA software out there that's used [41:43.200 --> 41:46.480] by ESA or someone else, can you raise your hand? [41:46.480 --> 41:49.840] And you can see how many people are contributing to it. [41:49.840 --> 41:56.080] But as I said, there is even that wider range of software which is out there. [41:56.080 --> 42:01.800] And doing open source also means actually like being part of the community, which is [42:01.800 --> 42:08.320] actually developing guidance, developing licenses, growing the community, mentoring [42:08.320 --> 42:09.320] the community. [42:09.320 --> 42:13.160] And so if you're taking part in actually growing the open source community and governing the [42:13.160 --> 42:16.240] open source community, can you raise your hand? [42:16.240 --> 42:25.160] So if you've been working on licenses and mentoring and inclusion, and for everyone else, for those [42:25.160 --> 42:29.840] who actually want to contribute, who want to actually help us explore the universe and [42:29.840 --> 42:33.920] help reveal the unknown. [42:33.920 --> 42:40.640] And so for all of you who are building, oh, I had one last one which was for those who [42:40.640 --> 42:45.480] helped volunteer and organize this conference so I could take my moment to share NASA's [42:45.480 --> 42:47.800] message with everyone. [42:47.800 --> 42:50.600] Can you raise your hands for all those who volunteered? [42:50.600 --> 43:06.280] Because you're also helping with NASA's mission. [43:06.280 --> 43:10.880] And so for everyone who raised your hand, I just really do want to say thank you for [43:10.880 --> 43:13.160] all of your contributions. [43:13.160 --> 43:18.000] Thank you for helping us out and for those who will contribute in the future to open [43:18.000 --> 43:21.800] source and other projects, thank you for your future contributions. [43:21.800 --> 43:43.760] Thank you very much, everyone.