'Extreme Programming' Controls Phoenix Mars Lander 119
pbd points out a story discussing the challenges faced by NASA engineers in designing the code sent to operate the Phoenix Mars Lander. Quoting Computerworld:
"On Wednesday, engineers sent up the code to run an actual analysis, but a satellite orbiting Mars, which transfers the data down to the Lander, was offline. Robinson explained that the satellite had been hit with radiation, knocking it into safe mode. 'Space is a harsh environment, and sometimes they just go into safe mode,' he noted. 'It's a minor problem. [The satellite] aborts whatever it was doing and waits for future commanding.' Engineers successfully resent the code on Thursday."
That's coolness (Score:5, Insightful)
Then just considering it a minor problem is an even higher form of awesomeness
As a hobby I build small robotic creations. I can tell you that working with limited resources, and having to deal with the completely unexpected is just brain damage for the fun of it. Testing your new code on the same hardware you've had for months and thinking "I really did not know that you could bend this metal piece with so little force" or "why the hell is it doing that" and find out that you missed a decimal point on force calculations or a typo leaves you reacting with subroutine x instead of y.
Those engineers have to be fscking proud of their work. I know I would be. Some days I look at code I've had running 24/7 for several years and am amazed, not just at myself, but that I managed to find the bugs and fix the "I didn't know that would happen" issues. It's a lot of type and bounds checking to be certain, but something always creeps in.
I say they should be proud. The Mars missions have been nothing short of exemplary awesomeness. When they figure out the failure they did have, I'm certain that the absolute goodness they built into it will help reveal totally amazing discoveries about why there was a failure. Nothing simple like metric conversions, or wrong alloy for the screws.
Makes me want to work with them.
Re:That's coolness (Score:5, Insightful)
Yes, they used tax payers' money, and I'm pretty glad that I helped contribute in some way. Exploring our solar system and beyond with instrumentation is an absolutely needed step to find more space for all the humans on this planet. Not sure if you have noticed, but there are a few things we are running out of here despite China's one child rule.... room, food, fuel, and some other less dramatic things. Mother nature has a way of balancing things, so she'll kill a lot of us off. If we want to continue growing, expanding, space is the only viable option with current trends and technology. Improving the technology we command and the information that we have is the only way to viable improvements. The space exploration programs aim to do this in very calculated ways, very methodical steps to discover new information on a cost per answer type basis.
It is NOT irresponsible. There are a lot of irresponsible uses of tax payers' money, but trying to expand human knowledge and capabilities is not.
Re: (Score:2)
We are not running out of them. We are only mismanaging them. There's lots of fresh water falling onto the oceans and empty land we can bring together.
Re: (Score:1, Funny)
Re: (Score:3, Informative)
That is the issue, isn't it? You might be glad, but there are people who do not want to contribute and they were forced to do so.
Not sure if you have noticed, but there are a few things we are running out of here despite China's one child rule.... room, food, fuel, and some other less dramatic things. Mother nature has a way of balancing things, so she'll kill a lot of us off.
This [wikipedia.org] might interest you.
Re: (Score:1)
Linux may not be ready for the desktop, but it is ready for the surface of Mars.
-Me
Re:That's coolness (Score:5, Insightful)
-Me
You know, I am actually cool with that. A stable operating system running a mission critical device thousands of miles away is important, everyone who has contributed to the Linux kernel in some way should be proud that their work is enabling us to learn amazing new things about our red neighbor. I think it says a lot that Linux was chosen over some internallly developed OS.
Re:That's coolness (Score:4, Interesting)
Re: (Score:1)
It probably would be more than the amount of money and time for MS to create and send the probe all by themselves, without involving NASA at all.
Re: (Score:1)
Re: (Score:1)
Re:That's coolness (Score:5, Funny)
Just where the hell do you think Mars is??
Re: (Score:1)
Re: (Score:2, Funny)
Obligatory PA reference...x2 (Score:3, Funny)
Mars [google.com] is roughly 3715 [indo.com] miles from me, as the deepcrow [penny-arcade.com] flies.
Re:That's coolness (Score:5, Funny)
I think that would mean that RMS owns Mars.
Re: (Score:2, Insightful)
Re: (Score:2)
So how exactly does he have a right conferred to a government that does not have the power to do?
Interesting theory, but not sure it would stand up. Also, good job ruining a joke, eh.
Re: (Score:2)
Re: (Score:1)
I think that would mean that RMS pwns pmars.
Re: (Score:2)
I think it says a lot that Linux was chosen over some internallly developed OS.
No. Internally developed OS's still have their place in complex military and/or science systems. What I think is important to note is that Linux was chosen over other COTS options such as VxWorks and Green Hills.
The project I am working on uses Linux as a development platform to create a device with a fully internally developed OS. I am fairly certain Linux was not chosen because it wouldn't be able to meet timing requirements without being heavily modified/stripped-down, anyway.
Re: (Score:2)
Re: (Score:1)
Re:That's coolness (Score:5, Informative)
TFA appear to be wrong. It runs VxWorks 5.2 [windriver.com].
The confusion probably arose because Wind River also sells a Linux version, and the press sometimes confuses that with VxWorks.
Re: (Score:1)
Re: (Score:1)
Please stay out of the automated brain-surgery biz
Re: (Score:2, Informative)
Re: (Score:1)
I presume the OP meant the recent US mars missions, but even there, there have been failures.
One word (Score:1)
Re: (Score:1, Flamebait)
No mention of Extreme Programming (Score:5, Informative)
There's just one sentence which says something about "presents extreme programming challenges" which is the closest this article comes to mentioning Extreme Programming.
Re: (Score:2)
Re: (Score:3, Funny)
Re:No mention of Extreme Programming (Score:5, Funny)
Re: (Score:1)
No, I'd say Laser beams are most certainly not optional. :)
Re:No mention of Extreme Programming? (Score:2)
Re: (Score:2, Interesting)
Wow, yeah. You actually inspired me to read the article. I thought "LOL, yeah right, AC must've made a typo". But I'll be god damned, the article really says that.
I always thought I was a fairly decent coder, but I might have to re-evaluate if other people can do 1000+ lines of debugged, production quality code every day.
Re: (Score:2)
Re: (Score:1)
Come on, get with the Karl Rove generation; It's close enough to mean what you want it to mean.
Re: (Score:2)
Careful, stable, and well tested.
Have you ever done XP? XP values tested, working software over all other priorities. I fail to see any conflict here.
Um what (Score:1, Redundant)
X-* (Score:2)
Re: (Score:1)
It's just the SlashAI embellishing the story, like when the Boston Herald runs an online story about a shooting, and the CMS provides helpful team stats and other stuff:
The shooter was wearing a Red Sox [Standings | Schedule | Tonight's game] hat when caught by police near the Riverside T stop.
Re: (Score:2)
Re: (Score:2)
Extreme Programming is a subset of the "agile" software methodologies which features test-first programming, pair programming, customer conversations / "stories" rather than specifications, to "do the simplest thing possible that could work" (and fix it up later... assisted by comprehensive test suites), and a 40-hour work week.
And somehow I doubt NASA is doing all that.
Re:Um what (Score:5, Funny)
Re: (Score:1, Troll)
Unfortunately, quality is not a boolean.
Re: (Score:1, Informative)
Re:Um what (Score:4, Informative)
Re: (Score:1)
Re: (Score:2)
Embedded programming is hard! (Score:3, Insightful)
But shouldn't the "safe mode" limits be independent of the particular operation as much as possible? In software engineering, the people writing test cases are often not the same as the people developing the code, and for the reason that they want to match both to the spec, not to each other.
--
Hey code monkey... want to learn electronics? [nerdkits.com]
New news publishing paradigm? (Score:1)
Units? (Score:2, Funny)
Re: (Score:1)
Call me a pragmatist... (Score:4, Funny)
Re: (Score:2)
Don't miss it! It's EXTREME!
Re: (Score:1, Funny)
Re: (Score:3, Insightful)
Resent code? (Score:1)
Re: (Score:1, Funny)
Why do they have to do this much coding? (Score:2, Interesting)
Re:Why do they have to do this much coding? (Score:5, Insightful)
Re: (Score:2)
Also, be careful with comparis
Re: (Score:1)
I find this a little hard to believe. It is true that "space chips" are not as spacious as regular chips because they have to be radiation-hardened, but even then there should be plenty of room for compiled libraries. It is likely cheaper to have larger storage than to re-transmit the libraries.
And even if so, couldn't the library inclusion b
Re: (Score:3)
Re: (Score:2)
For a $600,000,000 mission, $40,000 is comparatively small. If you were building an expensive robot that had to operate far away, would you skimp on the brains? (Insert Abi-Normal jokes here
especially when all of this has to run on a battery!
Compared to everything else, memory is a relatively cheap use of power And it only has to be energized for change, not for storage for flash-like chips.
Re: (Score:2)
And the developers, who used the C programming language to build their own software for a Linux operating system, are expected to be dealing with that challenge for about three months
That, to me, says that they wrote the command software in C, not that they use C to program the lander.
However, if they did, it wouldn't be unprecedented - Forth [nasa.gov] is used to control a bunch of satellites and astronomical gear, and in my experience you do have to write Forth programs to get things done in that environ
Re:Why do they have to do this much coding? (Score:5, Insightful)
!extreme programming (Score:5, Insightful)
Crappy title.
Buzzword Soup: Reliable Computing (Score:2)
I agree. It is not "extreme" to expect a device in space to have stand-by systems in place to withstand radiation. I believe the currently accepted buzzword for this is simply "reliable computing".
The idea is to anticipate failure events, and designing the system to survive them. It is cool... but certainly not extreme.
English language more complex than first thought.. (Score:2)
Re: (Score:1)
I hope they mean... (Score:2, Funny)
Why didn't they automate Dumping The Scoop, etc? (Score:2, Interesting)
because they could have been programmed into a firmware library!
The geometry between the arm, scoop, & the 8 ovens doesn't change,
so that could have been automated.
Instead of coding the whole damn thing
& hoping the signal can get there that day,
they could have told it
Invoke "dump scoop into oven # 1 routine"
and saved the interplanetary bandwidth+delays
for something that required customization...
Also, this business of EVERYTHING waits
Extreme Temperature (Score:1)
At least no confusion about those metric and British units.
Say What!? (Score:3, Interesting)
Re:Say What!? (Score:4, Informative)
1. We had years of libraries that were QNX specific
2. There were real time requirements that Plain Linux was not up to(real time linux may be... but you are talking a major porting project)
3. We had literally man-decades of programming experience in our team.
4. We were using a database soultion that was not available on Linux(and is still not)
SO the upshot is... it is often a decision to either have something working now to do the job or wait another few man-years before a (probably buggier) version is done for Linux. Its not anti-Linux. Its just common sense.
Re: (Score:2)
"Real Time OS" is (kind of) "marketing speak" for a OS that does pretty much nothing. Not because it is bad or poor, but because it was designed that way.
And really, up in Mars you don't need hundreds of processes, user interaction, etc, etc
What you need is a basic framework for working with (and that VxWorks does), and you ABSOLUTELY NEED the OS to STEP OUT OF THE WAY when you need it!
Because sometimes the only way to fix a problem is binary pa
lucky for them (Score:2)
I would have some interplay too, but Mass effect isn't out here, yet. Lucky Nasa engineers
Some other interesting points about that article (Score:5, Informative)
about when to really go for a scoop of soil.
2. Only 3 months before it will get too cold and the lander will (probably) die.
3. Martian day, (roughly 24hrs 40mins).
The NASA programmers have been my heroes ever since the hacks they did to Voyager.
I guess after they've finished the programmers will take up something more relaxing (like working for EA).
Andy
Re: (Score:3, Insightful)
That and From my experience, less than 10% of all programmers have ever done anything embedded or robotics wise. The rules change when you are writing software for engine management, robots, or space probes, than when you are writing a new consumer toy app or spreadsheet program.
... sure scares this old timer. (Score:2)
Sorry... (Score:1)
Bummer Alert! Incoming Facts Detected! (Score:2, Interesting)
1. The "code" the folks at the Pheonix SOC are using is called "VML", which is a script language developed by a fellow named Chris Grasso and is similar in some reards to the earlier command language "CDL" from the 70's. They are not doing any programming in C or anything like it, and VML isn't all that sophisticated (it has no array type, for instance). It's designed to do one thing well, and that's control a spacecraft by issuing command messages at specific times.
2. The sof
"Extreme Programming" -- Misleading headline (Score:2)
"Extreme Programming" [wikipedia.org] or "XP" is actually a software development methodology. However, the headline writer seems to have used it in a context which means "This programming is challenging."
Now, this might not seem like a big deal, but please try to remember that this is Slashdot. The publication is targeted at the nerdy sorts who are likely to have knowledge of software development methods ... so please, try to keep these things in mind when writing headlines? I literally thought you meant that Phoenix was