Slashdot Mirror


SpaceX: Lessons Learned Developing Software For Space Vehicles

jrepin writes "On day two of the 2013 Embedded Linux Conference, Robert Rose of SpaceX spoke about the 'Lessons Learned Developing Software for Space Vehicles.' In his talk, he discussed how SpaceX develops its Linux-based software for a wide variety of tasks needed to put spacecraft into orbit—and eventually beyond. Linux runs everywhere at SpaceX, he said, on everything from desktops to spacecraft."

94 of 160 comments (clear)

  1. VxWorks? by sanman2 · · Score: 4, Insightful

    I thought that for the Falcon rocket and Dragon capsule, SpaceX use the VxWorks realtime OS made by Wind River.

    Is the market for spacecraft programming expected to grow significantly in the coming decade(s)?

    1. Re:VxWorks? by DerekLyons · · Score: 2

      Is the market for spacecraft programming expected to grow significantly in the coming decade(s)?

      Even if it went up an order of magnitude... you're still only talking a few thousand jobs. Not something I'd want to build a career plan on.

    2. Re:VxWorks? by RightwingNutjob · · Score: 2

      The JPL-built Mars rovers run VxWorks, as do some other NASA probes. Maybe that's what you're thinking of.

    3. Re:VxWorks? by bill_mcgonigle · · Score: 1

      vxworks does sell a hard realtime linux - maybe they're using that. Technically linux runs on the vx microkernel/hypervisor thingy.

      You get to deal with linux but then have a few more knobs to tell it how to behave.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    4. Re:VxWorks? by Guspaz · · Score: 2

      VxWorks is an operating system, not a company. Wind River, who make VxWorks, sell Wind River Linux.

    5. Re:VxWorks? by Dahamma · · Score: 2

      Or don't RTFA, and instead actually do some research first.

      http://www.spacex.com/downloads/dragonlab-datasheet.pdf

      Search for "Flight Software" (the most mission critical RT bit, of course).

    6. Re:VxWorks? by khallow · · Score: 2
      Here's the part you missed:

      Due to miniaturization of sensors, solar panels, CPUs and communication devices (lasers and/or RF), you will be able to do massively useful stuff at something like 50k dollar of cost. For example, you can shoot up microsats just for a single sailing sports event and do some nifty communications with that. Iridium-style messaging will soon be possible for the "little" guy and his 100 million dollars, if you just want texting to be done with it.

    7. Re:VxWorks? by Guspaz · · Score: 1

      So, which is more accurate, do you think? A 3+ year old datasheet for a spacecraft that isn't even scheduled to fly for the first time until 2014 (first DragonLab mission), or recent statements by the person IN CHARGE of the flight software?

      Your research is flawed.

    8. Re:VxWorks? by Guspaz · · Score: 1

      Nope, try again.

    9. Re:VxWorks? by WindBourne · · Score: 1

      Is the market for spacecraft programming expected to grow significantly in the coming decade(s)?

      Even if it went up an order of magnitude... you're still only talking a few thousand jobs. Not something I'd want to build a career plan on.

      Derek, you, myself and others have been closely following space for sometime. You know that if Bigelow gets going, and SpaceX really gets launch cheap, then we are going to the moon and mars SOON. And yes, there will be LOADS of coding needed. Nobody will want something like Windows creating the blue screams of death. They will want an OS that works. Period.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    10. Re:VxWorks? by Dahamma · · Score: 1

      No, it's not. Ok, here's more evidence.

      http://www.spacex.com/careers.php?jvi=oe2HWfwD,Job

      "Our Flight Software Group currently has opportunities developing software for embedded flight hardware using Linux and VxWorks as well as ground simulation software using Linux. "

      They are HIRING people with VxWorks experience and say they use it in their current job descriptions.

      They use Linux, obviously. But they also use VxWorks for some mission critical RT applications. You said "they don't use it at all". You are wrong.

    11. Re:VxWorks? by DerekLyons · · Score: 1

      Derek, you, myself and others have been closely following space for sometime. You know that if Bigelow gets going, and SpaceX really gets launch cheap, then we are going to the moon and mars SOON.

      Maybe, probably not. When launch gets cheap, [non professional] people will finally realize what professionals knew all along - vehicles and equipment designed to survive and operate in extreme and unusual environments are inherently expensive. (There's a reason why MIL-SPEC gear is more expensive than consumer grade equipment.) The Moon and Mars (and LEO for that matter) aren't anything like opening up the new world - they're Antarctica. Difficult and dangerous to get to, requiring extensive and expensive support from 'home', and utterly lacking in a supporting economic case beyond wealthy tourists.
       

      And yes, there will be LOADS of coding needed.

      I never claimed otherwise - only that the size of the field is going to far smaller than people think. Specialized niche programming fields always are. (It's a particular flaw of many application programmers that they believe they can code anything without deep knowledge of the problem domain. They're like MBA's that way.)
       

      Nobody will want something like Windows creating the blue screams of death. They will want an OS that works. Period.

      Again, I never claimed otherwise. But it's very likely the OS won't resemble anything the uneducated masses think of as an OS. In most real world situations like that, the user never even *sees* the OS.

    12. Re:VxWorks? by WindBourne · · Score: 1

      The only reason why Launch is expensive is because we use a launch vehicle exactly once. the Shuttle never had a chance of lowering the costs since it recycled all of the wrong parts. OTOH, If grasshopper is successful AND SpaceX can get at least 10 launches per F9 LV, then we will likely see launch costs of below $.5-1M / Tonne to LEO. At that point, Space is simply a new frontier. And yes, we will see loads of needs for coders.
      BTW, I am not certain how old you are, but, I was using the internet back in the 80s. At that time, if you told business ppl that MS and the internet would become fundaemental to their future, they would laugh you out. They all thought that it would remain small specialties. Likewise, when working on networked and parallel DB's (TerraData comes to mind), I was told that it would never replace the mainframe and that this was all specialties. The point is, that doing hard RT, and 'specialized' apps that really work all the time, will become much more important down the road than even the Window coders today.

      Yeah, I agree about the app coders. Too many idiots out there. However, many of them have earned some good money by being in the right place at the right time.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    13. Re:VxWorks? by DerekLyons · · Score: 1

      The only reason why Launch is expensive is because we use a launch vehicle exactly once. the Shuttle never had a chance of lowering the costs since it recycled all of the wrong parts.

      The Shuttle recycled the most expensive part - and that was the *wrong* part? The mind boggles at the amount of doublethink required to reach that conclusion.
       

      OTOH, If grasshopper is successful AND SpaceX can get at least 10 launches per F9 LV, then we will likely see launch costs of below $.5-1M / Tonne to LEO. At that point, Space is simply a new frontier. And yes, we will see loads of needs for coders.

      Translated that reads: "When confronted with facts that run counter to my beliefs, I'll just repeat my beliefs again."
       
      The commercial aviation business is much, much bigger than space is likely to be for decades - and it's a tiny specialty. This is reality, deal with it.
       

      BTW, I am not certain how old you are, but, I was using the internet back in the 80s.

      I know teenagers that were using the 'net back in the 80's. So your attempt at impressing fails massively. Not that having access to the net back then marks you as anything special. Implying that it does so does mark you so - but not in a good way.
       
      And for reference, later this year I'll pass the half-century mark.
       

      At that time, if you told business ppl that MS and the internet would become fundaemental to their future, they would laugh you out. They all thought that it would remain small specialties.

      Trying to compare the future of space coders to consumer and business coders when the latter market is literally millions of times as large? That's laughable, and clueless.

  2. Seems straightforward by gadzook33 · · Score: 2, Insightful

    I think this is all interesting and good stuff but hopefully most of it is stuff that software companies are already doing these days. At this point if you're not doing continuous integration or looking at ways to automate anything that possibly can be automated, you should get moving.

  3. Re:Holy Shit! by v1 · · Score: 1

    when your cpu isn't able to help out, the fastest way to catch landing in garbage is to place a few nops (to get realigned) and then jmp to the Big Bomb before each block of code. then if something branches wildly or otherwise escapes its block or into a buffer somewhere, it'll eventually plow into the next of those traps and stop itself.

    --
    I work for the Department of Redundancy Department.
  4. All of you eggs, meet your basket. by Anonymous Coward · · Score: 5, Insightful

    I started my career in nuclear engineering before moving into software development.

    There were three really important principles: Redundancy (having several of everything); Diversity (having different implementations i.e. different designs from different manufacturers) and Segregation (keeping things physically separate and firewalled off from each other).

    I'm a bigger Linux fan than many here. I've been using it since 1995 and I'm a die-hard Slackware user, but having everything running on the same OS seems like an accident waiting to happen. Yes, I know that it's great that you can have one piece of code that you can compile and run anywhere, and that's easier if you're only using one OS.

    However, one of the great things about Open Standards and Open Source was (is) that for many years software was portable so that it could be compiled and run on big- or little-endian 32- and 64-bit POSIX-like systems on a wide variety of CPU architectures.

    That may have been "expensive" in terms of software maintenance, but as I learned when working for a now-defunct very large UNIX company, writing your software to be portable across those systems exposes (and forces you to fix) many subtle bugs that otherwise would not have been found until deployment.

    Also, relying on just one OS puts you at the mercy of any latent bug in that specific system. Having a diversity of OSes in use mitigates that problem.

    The state of Software Engineering in general is still pretty primitive. I'm still amazed at the poor quality of a lot of "professional" code and the cavalier attitude towards testing...In the land of the blind, the one-eyed man is king.

    1. Re:All of you eggs, meet your basket. by Anonymous Coward · · Score: 1

      All of what you say is done at Airbus. They generally have zero issues with software, except in rare cases where the specification is already less than perfect. The same is with NASA's shuttle software. I assume you can say the same with Boeing 777s and 787s.

      Software != Software

      In beancounting, software quality matters remotely. In avionics, a lack of quality will surely kill.

    2. Re:All of you eggs, meet your basket. by Anonymous Coward · · Score: 1

      Bean counters will be angry if your software doesn't calculate and round up money correctly.

    3. Re:All of you eggs, meet your basket. by PPH · · Score: 1

      So, let them fly out here and confront me. Preferably on an airplane for which they wrote the avionics code.

      --
      Have gnu, will travel.
    4. Re:All of you eggs, meet your basket. by Anonymous Coward · · Score: 1

      JPL agrees with you:

      lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf

      LOC-1: Language Compliance
              Rule 1 (language)
              All C code shall conform to the ISO/IEC 9899-1999(E) standard for the C
              programming language, with no reliance on undefined or unspecified
              behavior. [MISRA-C:2004 Rule 1.1, 1.2]
      The purpose of this rule is to make sure that all mission critical code can be compiled
      with any language compliant compiler, can be analyzed by a broad range of tools, and
      can be understood, debugged, tested, and maintained by any competent C programmer. It
      ensures that there is no hidden reliance on compiler or platform specific behavior that
      may jeopardize portability or code reuse. The rule prohibits straying outside the language
      definition, and forbids reliance of undefined or unspecified behavior.

      The other rules in the JPL coding guidelines are also interesting.

    5. Re:All of you eggs, meet your basket. by maxwell+demon · · Score: 1

      Well, I guess they'll just run your salary through your miscalculating application, or your tax, depending on to which side the errors go (salary: too low, tax: too high).

      --
      The Tao of math: The numbers you can count are not the real numbers.
    6. Re:All of you eggs, meet your basket. by DerekLyons · · Score: 2

      Also, relying on just one OS puts you at the mercy of any latent bug in that specific system. Having a diversity of OSes in use mitigates that problem.

      Having a diversity of OSes puts you at the mercy of random and subtle bugs in one OS that require customizing either the OS or the code. (Which customization carriers further hazards of it's own.) Relying on one OS mitigates that problem.

      TANSTAAFL.

    7. Re:All of you eggs, meet your basket. by mattr · · Score: 1

      China AIrlines Flight 140. Software fighting humans. Software wins.

    8. Re:All of you eggs, meet your basket. by Ichijo · · Score: 1

      Having a diversity of OSes puts you at the mercy of random and subtle bugs in one OS that require customizing either the OS or the code.

      Or crossing that OS off the list. Or having the bug fixed.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    9. Re:All of you eggs, meet your basket. by Anonymous Coward · · Score: 1

      LOL. Airbus is the group that tried to get MS to certify Windows for DO-178B. After Gates read over the specs, he told them that they had a good laugh, but to fuck off, Even to this day, Airbus continues to try and get other companies to port to Windows to add to their systems.

      Airbus is well known for their blue screams of death. Just look at AF-400. There was NO feedback on the stick so the senior pilot did not know that the international pilot with minimal experience was pulling back on the stick.
      And, it was errors on Windows that caused the first crash of the AF296 at an airshow.

      Airbus is NOT solid code. Just the opposite. Scary. Real scary.

    10. Re:All of you eggs, meet your basket. by Shinobi · · Score: 1

      Yeah, this is something I try to hammer into the students I occassionally mentor:

      Do not write your code to be written for a specific compiler(Linux and its GCC'isms being a specific example) or even a hard reliance on a library, if it can be avoided. Oh, sure, you can't build a program like a kid builds with Duplo Lego in quite the same way any more, but when done properly it's more likely to be solid.

    11. Re:All of you eggs, meet your basket. by Shinobi · · Score: 1

      Which was a pilot error.

      The captain had only slept a couple of hours, the two co-pilots had been out partying, doing drugs and alcohol the evening before.

    12. Re:All of you eggs, meet your basket. by Richard_at_work · · Score: 1

      That wasn't a case of software fighting humans, that was an issue of humans doing something incorrectly and not correcting properly - all they had to do was disconnect the autopilot and they would have had full command authority, but they didn't.

      Funny that - they gave the autopilot full command authority and then tried to fight it. And failed.

    13. Re:All of you eggs, meet your basket. by rmstar · · Score: 1

      Rule 1 (language)
                      All C code shall conform to the ISO/IEC 9899-1999(E) standard for the C
                      programming language, with no reliance on undefined or unspecified
                      behavior.

      That quote you show is a bit like a sign reading "when smoking at a gas station, make sure no hot ashes touch the ground".

      The other rules in the JPL coding guidelines are also interesting.

      What I find most "interesting" is that these are guidelines for C, a language known for having many features that make it unsafe. Heck, it is less safe than many dynamically typed languages out there.

      IMO, good coding guidelines for mission-critical code in C shold be a lot shorter. Basically consisting in the text "C is unsafe. Please go program in something else, like Ada, OCaml, even Pascal. Avoid C++ like the plague though, its worse".

    14. Re:All of you eggs, meet your basket. by Shinobi · · Score: 1

      Which was not a software error, as was aluded to by the post I replied to.

      The software itself warned that the readings were incorrect.

    15. Re:All of you eggs, meet your basket. by default+luser · · Score: 1

      The reason they insist on C is for two reasons:

      (1) It's more portable than most of those safer languages. When every design you build is custom hardware, you want to have easy code reuse for standard functionality and signal processing.

      (2) VxWorks (not sure about 6xx, but previous versions this really stands) is built to be a front-end for C - it adds a multi-tasking thin OS (limited memory protection), debugging and logging tools, and that's about it. You get a marginal Tornado IDE supporting C and C++, and that's what you're supposed to run with.

      Using other languages with VxWorks means you're not supported by the folks at Wind River. Trust me - I deal daily with the difficulties of getting Ada to run on top of VxWorks via a 3rd-party IDE (including making their conflicting task models work together). It's a complete pain!

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

    16. Re:All of you eggs, meet your basket. by rmstar · · Score: 1

      When your stack is limited to 1KB**, and any unintentional malloc could crash the entire application (or spacecraft), then C is absolutely your friend.

      If you are writing stuff for a spacecraft, why not spend some cash in a decent computer? You are spending a megabuck on hardware, but have to live with 1k of stack? Sounds like bad engineering to me.

  5. Also: Automotive Radar/Breaking by Anonymous Coward · · Score: 1

    I work for a major European, high-end automotive company and we use Linux for radar applications. Now that this works nicely, we can do stuff like braking automagically (you still need to slightly tip the pedal) with the lowest possible deceleration which will assure you don't hit the vehicle in front of you.
    That means, even if you are trailed by a somewhat sleepy person that car has the maximum reaction time to also hit the brakes.
    The excellent quality of Linux now shows in all sorts of applications from affordable spaceflight to leading-edge trading at Eurex. Indeed, the better stuff eventually wins out.

    Having said that, the corporate standard desktop still is Windows 7. People love the shiny stuff and the shiny stuff they can make with MS Office. We have lots of badly informed people who think MS products are better by default. One guy recently mentioned "imagine you would have to use Qt instead of MFC, how bad would that be !!".

    1. Re:Also: Automotive Radar/Breaking by tibit · · Score: 1

      imagine you would have to use Qt instead of MFC, how bad would that be

      LOL!

      --
      A successful API design takes a mixture of software design and pedagogy.
  6. Re:Holy Shit! by Anonymous Coward · · Score: 1

    we don't actually want it to "stop itse;f" as much as we want it to either "gracefully recover" or "gracefully die". For our UAV, when it jumps to somewhere it shouldn't be, it goes to a piece of code that determines whether or not it was in a flight safety critical loop. If it wasn't, it gives up control for the rest of that cycle and resyncs with the other flight computers on the next 5Hz cycle. If it was in a flight safety critical loop, it sends the "I'm brainfucked and dying" message to the other processors and dies. We use that design because some of the guidance and nav software is stateful and we keep the processors in lockstep. However, for auxillary actions, the states are very simple, so if one gets out of line, it will get fixed with the next 5hz message on the cross-channel datalinks.

    Oh, and we don't use a virtual memory machine. Why add the complexity. Things like machine vision which really do need malloc()s shouldn't be in flight critical code. There are no memory leaks if you don't allocate memory. If you need to allocate memory, you're doing it wrong. These should be very deterministic creatures.

  7. Re:Max Length by Frosty+Piss · · Score: 5, Informative

    Okay, somebody ban this guy...

    "You must be new here".

    Do you actually believe that trolls are "banned" at Slashdot?

    That's what the moderation system is for.

    Slashdot is not like other "forums" in that it is *not* "moderated" by "super users", but rather regular users like you and I who are occasionally gifted with "mod points".

    The "offending" post is never removed, it is just pushed below most users viewing threshold.

    Seriously, "ban this guy"? You *MUST* be new here...

    --
    If you want news from today, you have to come back tomorrow.
  8. Re:Cruel and unusual punishment by Anonymous Coward · · Score: 5, Interesting

    In his team, they have a full-size Justin Bieber cutout that gets placed facing the team member who broke the build. They found that "100% of software engineers don't like Justin Bieber", and will work quickly to fix the build problem.

    You see, that's why you have overflowing prisons. This would easily reduce the crime rate by a factor of ten!

    Doubtful. At my $lastjob we had a rule that if you broke the nightly build you bought doughnuts for everyone. And the project lead would rip you a new one.

    Despite my admonitions to not check stuff in at the end of the day we had two guys that just couldn't figure it out. One of them worked in St. Petersburg (Russia, not Florida) and he'd check stuff in at the end of his day and go home, meaning we'd be stuck with the dirty job of backing his stuff out so that we could proceed.

    And the local guy would whine and cry about how it wasn't his fault, it worked in his tree, yada yada yada. Well, his tree was usually a few days out of date by the time he was ready to check his stuff in, and he just couldn't get the knack of rebasing his tree and building before committing to the master. Sheesh. This stuff isn't rocket science. And as I said, he insisted on doing this at the end of the day – every time. Eventually it cost him his job.

    So no, I don't believe the threat of being stared at by a full size cutout of the Biebs would solve crime either.

  9. Re:Emacs by maxwell+demon · · Score: 1

    Or both?

    --
    The Tao of math: The numbers you can count are not the real numbers.
  10. Re:Holy Shit! by maxwell+demon · · Score: 5, Funny

    malloc() and new() are non-deterministic in many ways and therefore to be banned in anything truely real-time.

    Don't worry. We now have garbage collected languages where we don't need malloc/free any longer. :-)

    --
    The Tao of math: The numbers you can count are not the real numbers.
  11. Where is NASA ? by Taco+Cowboy · · Score: 4, Insightful

    NASA sent out spaceships to moons and brought them back to earth, back in the 1960's

    They did that without using Linux, or Unix, or any type of "nixes"

    If there is a real need to learn a "lesson", methinks the best lessons we can learn are from those who develop original programs for NASA

    Nobody else even comes close

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Where is NASA ? by ColdWetDog · · Score: 5, Interesting

      And they spent years, millions of dollars and thousands of man-hours doing so. I'm sure that the folks at NASA are pretty happy with modern toolsets. My father worked on the Saturn V instrumentation - Op Amps the size of cigarette boxes, telemetry transmitters the size of breadboxes with 300 baud max speeds. Graph paper. Slide rules. Simple changes requiring weeks of rework.

      Linux and associated bits and pieces are a big step in the right direction.

      --
      Faster! Faster! Faster would be better!
    2. Re:Where is NASA ? by WindBourne · · Score: 1

      If you like, we can backtrack to the goddard rocket and simply scale that up to make one to go to the moon.
      Or we can accept that things have improved and go from there.
      If you accept the later, than it makes good sense to use an OS that can have DO-178C ratings amongst other issues.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    3. Re:Where is NASA ? by Gyske · · Score: 1

      If you want to learn from them: this is a similar article on software development by NASA: http://www.fastcompany.com/28121/they-write-right-stuff It is from 1996 but still very interesting and usefull.

  12. Why mention Linux? by jellyfoo · · Score: 1, Insightful

    Linux is mentioned twice in the summary. Is there a reason why? We all know Linux has major use in the embedded and scientific world, this isn't a secret. Are people still desperate to mention Linux anywhere as some form of validation that they chose the right decision to stick with it or something?

    I thought Linux had "won", or something. If that was the case then it shouldn't be necessary to circlejerk the name anymore.

    1. Re:Why mention Linux? by nospam007 · · Score: 5, Funny

      "Linux is mentioned twice in the summary. Is there a reason why?"

      2013 will be the year of Linux on spaceships.

    2. Re:Why mention Linux? by PPH · · Score: 1

      Keeping score much?

      --
      Have gnu, will travel.
    3. Re:Why mention Linux? by MBCook · · Score: 1

      The article is from Linux Weekly News (great resource, long time subscriber). It shouldn't be surprising that they would take a Linux bent on the story.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    4. Re:Why mention Linux? by Anonymous Coward · · Score: 1

      SpaceX is "Linux, Linux, Linux", he said.

      It's a nice word, can't say it too many times.

  13. Re:Emacs by K.+S.+Kyosuke · · Score: 4, Funny

    Emacs Makes A Crappy Spaceship. That's why!

    --
    Ezekiel 23:20
  14. Re:NOT by Cyberax · · Score: 1

    Pascal, Ada and Algol are CRAP. They are in no way 'simple', they are 'verbose' and 'clumsy'. They are difficult to write code in and they don't really support anything that helps to find any non-trivial bugs. Functional programming, on the other hand, makes it much easier to use formal verification methods.

  15. Re:Cruel and unusual punishment by S.O.B. · · Score: 4, Funny

    So no, I don't believe the threat of being stared at by a full size cutout of the Biebs would solve crime either.

    Then maybe you just need to up the ante. How about have the real Bieber sitting naked on the edge of his desk seductively blowing him kisses?

    --
    Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
  16. Learning from NASA's experience ... by Taco+Cowboy · · Score: 3, Insightful

    Back in those days, the problem with "random flip bit", brought on by space radiation was already present

    Apparently NASA has successfully dealt with that phenomenon - or a lot of NASA's spacecrafts would have spun out of control

    Since NASA has decades of experiences dealing with fascinating problems like that it's UTTER FOOLISHNESS if we do not learn from NASA

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Learning from NASA's experience ... by tibit · · Score: 5, Informative

      And obviously you think -- I find it a common misconception -- that SpaceX is reengineering everything from scratch, including the engineering process itself. Well, here's a wakeup call for you: they employ plenty of people with lots of legacy space mission experience. The choice of the kernel is a minor thing in the grander scheme of things.

      --
      A successful API design takes a mixture of software design and pedagogy.
    2. Re:Learning from NASA's experience ... by davester666 · · Score: 2

      Just hook everything up to a Android phone and you are set, because it runs Linux. And Java.

      What could go wrong?

      --
      Sleep your way to a whiter smile...date a dentist!
    3. Re:Learning from NASA's experience ... by K.+S.+Kyosuke · · Score: 3, Informative

      Back in those days, the problem with "random flip bit", brought on by space radiation was already present

      Apparently NASA has successfully dealt with that phenomenon - or a lot of NASA's spacecrafts would have spun out of control

      Except that the problem with "random bit flips" was relatively minor, because:

      1) The AGC CPU's were much larger and less vulnerable to high energy particles, using basically the first generation of Intel NOR gate circuits (I believe there were two NOR gates in a single IC package back then) with large feature size.

      2) The RWM was realized in form of a matrix of magnetic cores, which are completely unaffected by high energy particles,

      3) The ROM was realized in form of "ropes" of huge magnetic cores (which, again, are completely unaffected by high energy particles) threaded with wires in an elaborate way.

      The actual threading of the wires was done by elderly women with skilled hands, according to a translation of the machine code to instructions for the women as to how to thread the wires. I guess you can imagine the turnaround rate. Punch cards are a lightning-fast way of programming computers, compared to this.

      Given the extent to which active feedback control has replaced a lot of hardware in modern high technology, and how everything is so much more self-diagnostic, self-tuning, and remotely monitored these days (look at car ECUs, for example), I *seriously* hope you're not trying to say that we should build and program a modern spacecraft control computer this way.

      We have different electronic technology nowadays, and we have different manufacturing technology to build the electronic components, and we have to use completely different approaches to deal with different problems (or rather, different solutions for the old problems) that this brings.

      You sound like the people who keep asking "Why don't we just build the Saturn V again?" The answer is still the same: "We can't, even if we had all the plans, Saturn V was designed to be built by hand with power tools and toolings that nobody uses anymore, we have to design a CNC-buildable rocket and it's simply going to be different." In the case of electronics, the answer is analogical, we have to re-solve the old problems in terms of new electronic components.

      --
      Ezekiel 23:20
  17. Re:Holy Shit! by tibit · · Score: 2

    They are only non-deterministic if you don't know what you're doing.

    --
    A successful API design takes a mixture of software design and pedagogy.
  18. Re:NOT by tibit · · Score: 2

    Sorry to burst your bubble, but some of Pascal's syntactic features were conceived by people who demonstrably had no idea how people -- the software developers -- actually process information. You see, programming languages are first and foremost tools for people. The code must be readable long after it has been written. Pascal's arbitrary separation of variable declarations from the first point-of-use is positively unergnomic and runs against the need for locality-of-reference as an aid to understanding. This stupidity has been propagated into IEC 61131 PLC programming languages. I'll take modern C/C++ definition-at-point-of-use any day, thank you so much.

    --
    A successful API design takes a mixture of software design and pedagogy.
  19. Re:Cruel and unusual punishment by tibit · · Score: 1

    Why the fuck wasn't the build done automatically before a commit would go through? I mean, what the heck?

    --
    A successful API design takes a mixture of software design and pedagogy.
  20. Mod System: Down == Disagree, Up == Agree by fyngyrz · · Score: 2, Interesting

    That's what the moderation system is for.

    No, no. You must be new here. The moderation system is there so you can impose your opinion on otherwise reasonable posts. That's what it's used for, that's what it's best at, Slashdot refuses to change it (I'd say fix it, but it appears to be working as intended) and so... one must conclude that is what it was designed for.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Mod System: Down == Disagree, Up == Agree by serviscope_minor · · Score: 1, Offtopic

      The moderation system is there so you can impose your opinion on otherwise reasonable posts. That's what it's used for, that's what it's best at, Slashdot refuses to change it (I'd say fix it, but it appears to be working as intended)

      Oh, woe is you.

      The slashdot system is so bad it must be the worst [*] site on the internet. Oh so sad. :( :( :( :( :(

      And the editors refuse to fix it because they're so biased. I'll bet they ignored all of your brilliant suggestions.

      Oh the humanity. :( :( :( :( :(

      So what is your brilliant moderation system that prevents (a) a dedicated pool of corrubtible moderators (b) scales up to a site the size of slashdot and (c) is not easily gamed by spammers and lamers and (d) is completely impervious to the whims of popular opinion?

      I await with interest, but little hope.

      Oh, and can I gt a side order of fries wth all that smug?

      [*] Except the rest. Have you even seen the internet?

      --
      SJW n. One who posts facts.
    2. Re:Mod System: Down == Disagree, Up == Agree by serviscope_minor · · Score: 1

      haha.

      Well, there is a certain delicious irony in my defense of the moderation system getting modded down. :)

      --
      SJW n. One who posts facts.
    3. Re:Mod System: Down == Disagree, Up == Agree by fyngyrz · · Score: 1

      I would suggest a mod system where everyone can moderate, all the time. Mod up and mod down are supported, and tracked separately (thumbs up, thumbs down.) Each moderation is signed; if I had modded a post, you could both see my id, and which way I modded it. You can, at that time, check a box that says, essentially, "don't listen to this guy." After you did that, my mods would no longer count in scoring posts for your review.

      In this way, you could tune your experience for moderation by people who earn your trust by not modding for what you consider the wrong reasons, and at the same time, tune for moderation you consider sensible.

      This is imperfect, and would certainly require some client processing (that's where I'd place and utilize your list, for instance, to reduce /. server load) but I think it's a better mechanism than what we have, which as I indicated above, is used in ways not particularly useful. I read at -1 so I can see the posts people disagree with; and that's exactly what I get. Of course, I also get the spam and the trolls and the legitimately useless comments, but right now, it's either -1 or miss important and/or useful posts.

      From my POV, a moderation system that forces me to ignore it is pretty badly broken.

      --
      I've fallen off your lawn, and I can't get up.
    4. Re:Mod System: Down == Disagree, Up == Agree by fyngyrz · · Score: 1

      A moderator totally disagreed with you, or perhaps your tone. Welcome to the machine. :)

      Now aren't you glad I read at -1? I saw your post despite the moderation: not because of it.

      --
      I've fallen off your lawn, and I can't get up.
    5. Re:Mod System: Down == Disagree, Up == Agree by serviscope_minor · · Score: 1

      Well OK.

      Almost everyonw whining about slashdot has absoloutely nothing of value to add.

      It seems you are an exception.

      --
      SJW n. One who posts facts.
  21. Re:Max Length by fyngyrz · · Score: 1

    I fourth that.

    Stack-based appreciation is frowned upon. You will express your feelings in algebraic terms or be severely modded down.

    --
    I've fallen off your lawn, and I can't get up.
  22. Garbage by fyngyrz · · Score: 1, Interesting

    Now THAT is hilarious. Complaining that malloc is non-deterministic and then alluding to dependence upon garbage collection. I get the distinct impression you've never written anything requiring high performance memory allocation/deallocation.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Garbage by Alex+Belits · · Score: 1

      Now THAT is hilarious. Complaining that malloc is non-deterministic and then alluding to dependence upon garbage collection. I get the distinct impression you've never written anything requiring high performance memory allocation/deallocation.

      I am pretty sure, what you have encountered is a real (as in not like in Trollface comic) instance of trolling. Therefore:

      YHBT.
      YHL.
      HAND.

      --
      Contrary to the popular belief, there indeed is no God.
    2. Re:Garbage by maxwell+demon · · Score: 3, Informative

      You might have noticed the three characters at the very end of my post. A colon, followed by a hyphen, followed by a closing parenthesis. You might want to inform yourself about the meaning of this letter combination. Here's a hint: It is known as smiley. Google for it. You might get enlightened.

      See also: Whoosh.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    3. Re:Garbage by maxwell+demon · · Score: 2

      Since when do troll posts end in smilies?

      --
      The Tao of math: The numbers you can count are not the real numbers.
    4. Re:Garbage by Alex+Belits · · Score: 1

      Since the very beginning of the tradition of trolling?

      --
      Contrary to the popular belief, there indeed is no God.
    5. Re:Garbage by serviscope_minor · · Score: 1

      Since when do troll posts end in smilies?

      Er...? It could be interpreted that the emiley meant you were happy about having GC languages...

      Anyway, trolling has a bad rap now (especially after abuse of the term by the media). There's nothing wrong with a good troll and it looks like you caught a big one.

      --
      SJW n. One who posts facts.
    6. Re:Garbage by fyngyrz · · Score: 1

      As I said, I found it hilarious. The smiley was insufficient to its task, though. You could just as easily been happy about garbage collection. A lot of people are -- why do you think it's infested so many languages?

      --
      I've fallen off your lawn, and I can't get up.
  23. Re:Max Length by Visserau · · Score: 1

    You're right of course, but I'm getting REALLY over the same guy spamming with the same post in so many threads. At SOME point, getting everything you post instantly modded to -1 (especially when the content is near identical) should incur some greater punishment.

  24. Re:Just wait... by Visserau · · Score: 1

    Sledgehammer random components until it works?

  25. Re:Actually they employ a lot of people by sjames · · Score: 3, Insightful

    They have to, the pool of experienced aerospace people is small and shrinking due to old age. There is only one way to produce more people with experience in aerospace and it does not involve H1-B or wishing really hard.

  26. Re:RTEMS by Alex+Belits · · Score: 1

    Actually hard realtime Linux exists for a while -- just in different forms.
    RTAI
    Xenomai
    PREEMPT_RT

    There are some hardware architectures (actually one very popular hardware architecture) that usually have unpredictable crap running in background through OS-inaccessible interrupts, but that's the problem with irresponsible BIOS vendors, and it breaks realtime on all operating systems. Once that crap is disabled, even that architecture allows hard realtime -- I participated in a project that used just that.

    --
    Contrary to the popular belief, there indeed is no God.
  27. Re:Futuristic! by Alex+Belits · · Score: 1

    That was actually very easy to believe in 1993. What was hard to believe is that THERE WILL BE SO FEW SPACECHIPS IN 2013, dammit!!!

    --
    Contrary to the popular belief, there indeed is no God.
  28. Re:Just wait... by Alex+Belits · · Score: 1

    T.A.R.D.I.S: the only hardware where bogosort is the most optimal sorting algorithm.

    --
    Contrary to the popular belief, there indeed is no God.
  29. Re:NOT by dunkelfalke · · Score: 1

    Dude, 70ies are over, you are not writing software on a teletype. There is nothing wrong with verbosity.

    And no, the languages you have listed are not particularily difficult to write code in, the only difficult thing to do is writing ugly hacks.

    --
    "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
  30. Re:NOT by Cyberax · · Score: 1

    They ARE difficult to write in. Try creating a multimap in Pascal, with type safety or course.

    Oh, no generic types in Pascal so it's impossible. Ok, try at least a polymorphic version - again not easy because of braindeadness of pointers in Pascal. BTW, there's no garbage collector in Standard Pascal.

    Advocating braindead languages from 60-s is not even funny now.

  31. Re:NOT by dunkelfalke · · Score: 1

    Well, standard Pascal is obsolete, no argument about it. But that is true for any language from the sixties.

    By the way, if I remember correctly, there are generic types in modern Pascal dialects like Delphi or Free Pascal.

    --
    "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
  32. Re:NOT by Cyberax · · Score: 2

    Modern Pascal dialects are hardly 'simple', they have all the OOP stuff and lots of somewhat clumsily implemented extensions (like closures). So Algol or Standard Pascal are in no way 'simpler' or 'reliable' - they are just so primitive that most of programs written in Pascal are little more advanced than a textbook exercises.

  33. Re:Obligatory... by taiwanjohn · · Score: 1

    So now we've got rockets that run Linux... I'm shocked, shocked! that no one has stooped low enough to say this yet, so let me be the first to stoop...

    Can you imagine having a Beowulf Cluster of THESE?!

    --
    XML is like violence. If it doesn't solve your problem, you're not using enough of it. --AC
  34. Re:Futuristic! by drinkypoo · · Score: 1

    What was hard to believe is that THERE WILL BE SO FEW SPACECHIPS IN 2013, dammit!!!

    The salt and crumbs tend to get into the controls. Also, you don't even want to talk about space salsa.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  35. Re:There is no such thing as a "hard" RT OS by bill_mcgonigle · · Score: 1
    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  36. Mod this up by WindBourne · · Score: 1

    You have it 100% correct. taco cowboy is so far off with his rant, that I am shocked that he was modded up. Sadly, all he is trying to do is defend NASA, but he is actually making a fool of them, not helping them.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  37. Re:There is no such thing as a "hard" RT OS by WindBourne · · Score: 1

    wrong. Hard RT means pre-allocated time slices. IOW, you KNOW exactly how long something will take and you allocate exactly that amount of time. ALWAYS. And rad-hard has to do with a CHIP, not the OS.

    --
    I prefer the "u" in honour as it seems to be missing these days.
  38. Re:NOT by AJWM · · Score: 1

    Dude, if the language is Turing-complete you can write anything in anything. If you can't think of a way, that's your failure of imagination, not a failure of the language.

    Hell, the Apollo spacecraft were programmed in the languages of the 60s ... if not the 50s.

    --
    -- Alastair
  39. Re:NOT by AJWM · · Score: 1

    Pascal was designed to be (a) easy to teach and (b) easy to compile (not necessarily in that order).

    Declaration at point of first use can break programs in block-scoped languages like Pascal or Algol. It's easier to teach a newbie to just declare everything in the outermost block (of a given procedure/function) than worry about whether something will still be in scope a few 'end' delimiters later.

    If your procedures are of reasonable length (no more than a few dozen LOC), that's locality of reference enough.

    (And a recursive-descent compiler for (original) Pascal is dead easy, maybe 3 to 4 KLOC in Pascal.)

    --
    -- Alastair
  40. SpringX by IwantToKeepAnon · · Score: 1

    But there are differences in the software requirements for the launch vehicles and spacecraft, largely having to do with the different reaction times available. As long as a spacecraft is not within 250 meters of the International Space Station (ISS), it can take some time to react to any problem. For a rocket, that luxury is not available; it must react in short order.

    [snarktag]The solution is clear, keep parameters in an XML file. Use base class reference objects and inject the proper objects at runtime. If vehicle=spacecraft inject Dragon engine controller. If vehicle=rocket inject Falcon engine controller. If vehicle=Roadster inject Tesla electric engine controller.[/snarktag]

    There, now you can have 1 code base for your cars too!

    --
    "Happy families are all alike; every unhappy family is unhappy in its own way." -- Anna Karenina by Leo Tolstoy
  41. Re:NOT by Cyberax · · Score: 1

    "Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy." ( http://en.wikipedia.org/wiki/Turing_tarpit )

  42. Re:Holy Shit! by Cyberax · · Score: 1

    Why a fundamental data structure doesn't belong in safety-critical apps? It also can be completely deterministic, if required.

  43. Re:Max Length by MrKaos · · Score: 1

    Okay, somebody ban this guy, or if you can't do that, then impose a maximum length restriction for postings.

    As much as the guy annoys me this is the prime example of where free speech is important and basically he has the freedom of speech to communicate that he is a jerk. Now his message might be very important however, whatever message this fellow has is lost on annoying the audience because their mental filters kick in and block his message. I'm actually amazed at the energy he puts into the post, oooppps, he OR she.

    I cannot stand what this guy is going on about, but I will defend his right to say it even if I want to give him a solid punch in the balls. That feeling of annoyance is very re-assuring indeed, I wonder how long free speech for jerks or, anyone else, will last.

    --
    My ism, it's full of beliefs.