'Extreme Programming' Controls Phoenix Mars Lander
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."
Not sure about others, but designing software and systems (software & hardware) that understand the data they are using, and when conditions are not right AND know how to go to safe mode rather than just fall apart is awesomeness in physical form.
:)
:)
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.
Support NYCountryLawyer RIAA vs People
Sure, there's complicated software systems, but when something has to deal with hardware too, there's just a lot more to think about in every action. That's why engineers make abstractions -- enough to keep their part of a particular project in their head.
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?
Aside from having a strong general dislike for anything 'extreme', this is wrong because this is obviously (at least from what I saw) NOT extreme programming, it's programming for harsh environments (no not Windows :).
Crappy title.
If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
I agree, there's something odd about using C to "program" daily instrument movements. They just need coordinate tables, not C programming. If there are conditionals, they cannot be complex enough to justify C, can they? The rovers didn't have very many conditionals for their sequences based on what I read. If something is not as expected, they usually have the rover stop and wait for Earth confirmation, NOT make the robot select contingency options (unless automated driving is on, but it still has low tolerances before going into wait-mode). I suspect the article is confusing the work of two different teams: the "operating" software developers and the instrument sequencers. Some journalists don't know C from a horse shoe......oh wait.
Table-ized A.I.
I don't think the actual article has to do with the XP methodology, though, the headline writer was just too dumb to avoid referencing XP 'cause he didn't know about it.
Exactly, I get a kick out of guys that second guess programmers that are so more advanced than they are that they can only HOPE to aspire to be as good as the guys at NASA.
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.
Do not look at laser with remaining good eye.
That close to the metal, with the limited memory space and CPU power? C is probably the highest level language which works.
I can throw myself at the ground, and miss.