NASA Prepares to Open Source Code
comforteagle writes "According to this story at O'Reilly, NASA is looking for approval for their own open source license. The NASA submitter (lawyer of course) states that none of the current licenses meet their needs, but more interesting is that NASA needs a license at all. It makes one wonder what we, and other space agencies, might see coming out off NASA. It's also nice to see code that taxpayers paid for anyway being released for their use too. There must be at least one slashdotter who could dream up a use for NASA software. X Prize participants maybe?"
It's sad that NASA won't simply release the code into the public domain.
I have been pwned because my
with me being in another country,would i be able to use the [OPEN] source code for my government space agency? Would the US govt permit that, nasa being a govt agency. ;-)
They would probably only release code which would not benefint most people don't you think?
Lord of the Binges.
Nasa seemed happy releasing code under the GPL for quite some time, and I find it odd that that is changing now.
Ever use a network card under Linux, much of the networking code came from NASA (mostly from Donald Becker).
Still dreaming about that Beowulf cluster? That also came out of NASA.
Perhaps the lawyers felt left out, so they're trying to do thier part and look useful. Why would NASA find that a license that has served them well for years needs replacing? Any lawyers opine on the new license yet?
Read, L
As an enginneer who once worked for NASA (through a contractor), I can tell you that there are many pieces of software created at NASA which are useful outside of the space program.
This might be one possible use for such a thing.
GJC
Gregory Casamento
## Chief Maintainer for GNUstep
Actually, the code on the older hardware may well be the most impressive. IIRC, the software that runs the Space Shuttle is the most bug free non-trivial program ever written. On hardware from the late 70's and early 80's.
I think there might be a few "Holy crap you can do that!?!?!!?" moments reading those sources. Tight optimizations, tricks for doing things that normally require massive support libraries linked together... might be some interesting techniques there.
For those wondering about the software produced, they employ folks from all branches of knowledge. Except finance, me thinks.
It would be cool to see other nations being able to make useful progress in non-weapons science, being able to actively thank and give tribute to NASA advancements along the way.
I just hope the sharing might keep going if it starts being seen as a good thing. For some reason, I get the impression we'll get some crazy results too, like French agencies stipulating that no documents may be translated to non-French and still be visible in France. Still, it's definetly problems I'd rather have to deal with then not.
Ryan Fenton
The thing about it is that it seems that any NASA source code would be a monument to overbuilt, overengineered, triply-redundant failsafeness. This isn't entirely on point to your (witty) comment, but, I dunno... it seems like looking at this code might be like looking on some absolute crystal perfection of 1960s-1970s code-writing. No fancy classes or object-orientedness. None of this fun stuff. Just raw, uninteresting, bulletproof code (well, except that one little bit that forgot how much flash memory the rovers have... and the unit conversion problem... ok, anyway).
/really/ churning out scientific algorithms that are far superior to those coming out of the private sector or universities? (Note that I'm not trashing NASA software folks... I'm just saying they write code for an almost entirely different set of priorities.)
My question is: how much would we learn from this? When people writing code for business are optimizing for speed and redundancy mainly in the parallel sense (i.e., a failsafe swap to a sister server), how RELEVANT is that to blocks of code written never, ever, ever, ever, ever to fail on tested but "outdated" hardware?
Furthermore, if we ever get around to privately-built spacecraft, how much NASA code will they want to use? I dunno, it's a neat idea in an historical sense, and it's an admirable sign of government openness when the government is more and more closed to us citizens... but is it more?
I'm not saying it's not. I'm just curious how it would be. Is NASA
Or maybe not?
What's in use on the Shuttle might be 8086's
;-)
Which is more advanced than what's in use for a lot of traffic signal control boxes. They have something like 8 bytes of memory. But they really don't have to do much... just get data about where the cars are, and turn the right lights green for the right amount of time (while not allowing the opposing lights to be green).
The reason they use such "archaic" hardware, even in brand-new boxes, is because they have to withstand ambient temperatures up to 150 degrees farenheit for long periods of the day. The boxes can't be ventilated very much without exposing them to the elements (and destructive teenagers), and it gets hot as an oven inside when the sun is hitting them all day.
I imagine all kinds of infrastructure that needs redundancy and reliability over flexibility and power would find NASA's code useful in one way or another. (Even if it's just as an example of what NOT to do.
Don't you wish your girlfriend was a geek like me?
If we keep working on this independently, we will have a much harder time of accomplishing our goals than we will if we all work together. But like i said, its not likely to happen. not only will the US want to keep the upper hand in everything, but there is the chance that the code could be used by the wrong countries for malicious purposes - or even possibly independent terrorists. 9/11 #2 anyone? It may be far-fetched, but i'm sure the authorities are taking stuff like that into consideration, because once released the code cannot be unreleased. If only the different countries could for once look for the common good of all the world and work on a collective space program...
the source for their 3d ranging application would be very beneficial to many people. I mean, the rovers are able to compute their surroundings in 3d using only 2 cameras. The degree of success and repeatability of these 3d measurements far exceeds any other available 3d ranging software.
Are you certain of this?
MER's stereo imaging and navigation software is indeed well made. Still, I suspect it's incorrect to claim that it is the best ever written. Stereo imaging and 3-D structure from motion are very well established fields, and improvement is ongoing. It would probably be straightforward for you to find some recent conference papers and code up something in MATLAB that works better than the rover's flight software.
The quality of the 3d ranging results from Mars are impressive, but for more reasons than you might suspect. I spent summer 2002 interning at JPL. One day, Mark Maimone, the MER mobility software engineer, mentioned to me that images of Martian terrain (with scattered rocks, etc.) are just about mathematically optimal for stereo ranging. (He wrote his thesis on this stuff.) On Mars, it's easy to find correlations between pixel patterns in images. Now imagine how well it would work if the robot were staring at a blank wall--no vision algorithm can handle that!
So--don't think that the success of the imaging is just the well-made software.
JPL has a lot of experience in robotics and the gain in knowledge when such code is released is sure to be great for anyone in the field of robotics.
True, to a point. Bear in mind that while JPL does work on novel robotics research, they're also extremely concerned about preserving expensive, hard-to-replace robot systems. As a result, a lot of the software is based on well-established systems that, in the research world, have been surpassed a while ago. The rover autonomous navigation software, for example, is related to navigation software written here at Carnegie Mellon some four or five years ago.
Furthermore, a lot of the research advances made by JPL are presented at conferences and published in journals. It's not like they work in isolation and keep everything quiet. In fact, some of my fellow grad students work on large projects alongside JPL researchers and researchers at other institutions. So, in an academic sense, there's already a lot of sharing going on.
--Tom
MAN SHOOTS ROVER!
When I first read about goto staements being harmful when dinsaurs ruled the earth, NASA code was often referred to by my betters as horribly written "spaghetti code". I am no programmer but I would like to see some of this code to see just how bad it supposedly is. Some of it did get us to the moon didn't it?
They are public domain unless there are security reasons to not release the code. I just went through this with a program I wrote for DOD. Under the Freedom of Information Act (FOIA), you can request the source code to any program. Not saying they'll approve it, but unless there are "national security" type reasons, they should. In order for me to get a copy of my program to continue to develop and distribute on my own, I had to do a FOIA request on myself. :)
---John Holmes...
But I'm sure there are some private contractors somewhere along the line, and so what about their software?
That is exactly the point here. I'm working as a contractor on one of the pieces of software that started this effort. Basically, we'd like to release the software as open source so that we can get universities and others involved in the project, but still retain some level of control over it (and get some free publicity at the same time).
The goal isn't to keep others out of the process -- it's to get others involved, while making sure the final software product is of high quality. After all, if the software you're building is being used to fly spacecraft, you want to be sure it gives accurate answers.
A signature always reveals a man's character - and sometimes even his name. -- Evan Esar
That's why many contractors develop their software under their own R&D efforts and sell the government the analysis work that they do with the code, or rights to use the code while maintaining the copyright themselves.
I've been involved with several contracts where we (largish aerospace firm) were concerned about that if we developed code under contract to the government ultimately we'd be giving that code away to our competitors. So unless the original government request-for-proposal said that they wanted us to develop software for them, software was almost always written using company funds in a parallel effort.
It gives the IP lawyers fits when source code is accidentally public domained.