Open source isn’t rocket science. Well, okay, now it is.
Starting this week, NASA is planning to release a great deal of its software to the open-source community.
Now, this isn’t the federal government’s first go-round with open source, by a long shot. It’s not even NASA’s first rodeo in the open source arena. In 2010, NASA developed Nebula, an open-source cloud computing platform for provisioning services for NASA’s research community, which became part of the OpenStack open-source cloud project. The agency has also released open source software before; in 2009, for example, it released the code for the Apollo 11 guidance computer. There was also code.nasa.gov, opened up in January 2012, which was intended to make NASA open source code more available. And last year, the International Space Station switched from Microsoft Windows to the Linux open source operating system.
What’s different now is that NASA is consolidating the release of much more of its own code into the open-source community. Organized into 15 categories, technologies include project management systems, design tools, data handling, and image processing, as well as solutions for life support functions, aeronautics, structural analysis, and robotic and autonomous systems, the agency writes in its announcement. While some of the open source code was around before, you had to know where it was and how to find it. Now it’ll all be together in one place.
According to Jim Adams, NASA’s deputy chief technologist, the agency is doing this because it is committed to open government. The fact that President Barack Obama—whose reelection campaign took advantage of open source software—ordered agencies to speed up tech transfer in 2011 was likely also a factor.
While all of the code will be available for free, some of it will be limited to use by other federal agencies. The rest of it, however, will be offered to industry, academia, other government agencies, and the general public, in hopes that private industry will develop new commercial uses with it, NASA writes.
The project is part of NASA’s Technology Transfer Portal, through which the organization will first offer a catalog, scheduled to be available today, and then the software itself. At first, the source code will be available through typical open-source sites such as SourceForge, GitHub and NASA's website, but the agency hopes to consolidate it in a single database by next year.
This is a much more extensive project than NASA’s previous efforts, both in releasing more software and in making it more accessible online by consolidating it. It is similar to DARPA Open Catalog, from the Defense Advanced Research Project Agency, which includes access to software using technologies such as natural language and biometrics, notes Robert McMillan in Wired, which broke the story.
If you think NASA software sounds keen but doesn’t have much relevance to your day-to-day job, you’d be wrong, McMillan continues. “In 2005, marine biologists adapted the Hubble Space Telescope’s star-mapping algorithm to track and identify endangered whale sharks,” he writes. “That software has now been adapted to track polar bears in the arctic and sunfish in the Galapagos Islands.”
“Our design software has been used to make everything from guitars to roller coasters to Cadillacs,” Daniel Lockney, Technology Transfer Program Executive with NASA’s Office of the Chief Technologist, told Wired. “Scheduling software that keeps the Hubble Space Telescope operations straight has been used for scheduling MRIs at busy hospitals and as control algorithms for online dating services.”
In addition to the value of the software itself, it’s going to be interesting to look at it as a time capsule in software development—particularly in an era of limited hardware resources. You may recall that, last year, NASA had to get a 77-year-old engineer out of retirement to update some software in a 1977 satellite, because kids these days just don’t know how to write compact code anymore.
Moreover, people downloading the code released in 2009 found all sorts of goodies in the comments, ranging from “TEMPORARY I HOPE HOPE HOPE” to “trashy little subroutines.” And the Wired article has already spawned a bloodthirsty generational argument about whether older programmers are better because they could write more compact code, or younger programmers are better because they write more understandable code.
If nothing else, you can always use the software to develop your own rocketship in the back yard.
Simplicity 2.0 is where we examine the intricate and transitory world of technology—through a Laserfiche lens. By keeping an eye on larger trends, we aim to make software that’s relevant to modern day workers, rather than build technology for technology’s sake.
Subscribe to Simplicity 2.0 and follow us on Twitter. If what we’re saying piques your interest, head over to Laserfiche.com where you’ll see how we apply the lessons learned on Simplicity 2.0 to our own processes, products and industry.