Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Moon NASA Software Space Technology

Apollo 11 Had a Hidden Hero: Software (wsj.com) 171

"Monday's Wall Street Journal includes a special Apollo 11 feature," writes Slashdot reader Outatime in honor of the 50th anniversary since Apollo 11's Saturn V launched from the Kennedy Space Center. "[O]f particular interest to many Slashdot nerds is the piece on the pioneering computer hardware and software that took three astronauts, and landed two, on the moon." Here's an excerpt from the report: The [MIT Instrumentation Laboratory or I-Lab] was housed in a former underwear factory overlooking the Charles River, now long since demolished. The Apollo engineers and programmers labored at scuffed metal desks in cubicles with code scribbled on the chalkboard, slide rules on the table, cigarette butts on the linoleum floor. Fanfold computer printouts were stacked up to 6 feet high, like termite mounds. The lab had pioneered inertial guidance systems for the nuclear-warhead-tipped missiles of the Cold War, such as the submarine-launched Polaris intercontinental ballistic missiles. Funded by the U.S. Air Force, it also developed a plan in the late 1950s to fly a computerized probe to Mars and back. MIT received the first major Apollo contract, the only one awarded to a university, and the only one given without competitive bidding.

In an era when a computer used fragile tubes, ran on punch cards and filled an entire room, the I-Lab engineers had invented a briefcase-size digital brain packed with cutting-edge integrated circuits and memory so robust it could withstand a lightning bolt -- a direct ancestor of almost all computers today. Unlike other machines of its era, it could juggle many tasks at once and make choices of which to prioritize as events unfolded. Apollo missions carried two of these computers, one aboard the command module and one in the lunar lander, running almost identical software. Only the lunar lander, though, required the extra code to set down safely on the moon.

This discussion has been archived. No new comments can be posted.

Apollo 11 Had a Hidden Hero: Software

Comments Filter:
  • Engineers did it (Score:5, Insightful)

    by prefec2 ( 875483 ) on Wednesday July 17, 2019 @04:09AM (#58938284)

    Yes the software and development was key for the success, like all the other engineering features of the project. The big heros are, therefore, all the people who worked on the machines, which made the flight to the moon possible. This of course includes all the test pilots and astronauts who tested the machinery.

    Therefore, it would be great if we could have this cooperation and collaboration on a new really pressing issue. The climate crisis. It is a societal challenge, but it is also an engineering challenge.

    • Re:Engineers did it (Score:5, Informative)

      by Z00L00K ( 682162 ) on Wednesday July 17, 2019 @04:51AM (#58938390) Homepage Journal

      For anyone interested to get some more insights there's a video playlist on YouTube: Apollo Guidance Computer Restoration [youtube.com]

      • For anyone interested to get some more insights there's a video playlist on YouTube: Apollo Guidance Computer Restoration [youtube.com]

        It is an amazing story. It is also a good example of women working in STEM, from Margaret Hamilton, https://en.wikipedia.org/wiki/... [wikipedia.org] a software engineer and lead designer on MIT's portion of the Apollo project, to the ladies who hand wired the software onto grids with tiny toroids in the mix, or "core rope memory". A combination of attention to detail and dexterity was critical.

        • For anyone interested to get some more insights there's a video playlist on YouTube: Apollo Guidance Computer Restoration [youtube.com]

          It is an amazing story. It is also a good example of women working in STEM, from Margaret Hamilton, https://en.wikipedia.org/wiki/... [wikipedia.org] a software engineer and lead designer on MIT's portion of the Apollo project, to the ladies who hand wired the software onto grids with tiny toroids in the mix, or "core rope memory". A combination of attention to detail and dexterity was critical.

          Nowadays the mentality would be launch now, patch later.

          • by Pascoea ( 968200 )

            Flight Controler: "T-Minus 10....9....8....7....6...

            Guidance: "HOLD HOLD HOLD."

            FC: "Countdown held at T-minus 6. Guidance, what's the story?"

            G: "FC, Guidance systems have issued a hold for Windows Updates. Please stand by."

            FC: "[Audible sigh] Ok, Guidance. Flight Director, please reset the countdown clock to T-Minus 48 hours. "

            • One thing that will always be true about Slashdot is when I see a post I want to score, I will never, ever, ever have moderator points at that moment.

            • Flight Controler: "T-Minus 10....9....8....7....6...

              Guidance: "HOLD HOLD HOLD."

              FC: "Countdown held at T-minus 6. Guidance, what's the story?"

              G: "FC, Guidance systems have issued a hold for Windows Updates. Please stand by."

              FC: "[Audible sigh] Ok, Guidance. Flight Director, please reset the countdown clock to T-Minus 48 hours. "

              "Acch, the update pooched all the drivers and we're all bluescreened down here - scrub the launch!"

            • I once gave a talk with slides on a borrowed laptop. For a half hour before the talk, I noticed the laptop seemed excruciatingly slow. Shortly before I was about to walk up front, the laptop went into update re-boot mode. I ad libed for the first ten minutes of the talk, before I got back Windows and was able to bring up the slides. (And if you've ever tried to talk and open up a slide deck at the same time, you can imagine.)

              The audience was very understanding.

              IIRC, that was Windows XP.

          • by Megane ( 129182 )

            Nowadays the mentality would be launch now, patch later.

            It's hard to push a patch when it has to go into a hand-woven magnetic core rope [wikipedia.org] ROM.

          • For anyone interested to get some more insights there's a video playlist on YouTube: Apollo Guidance Computer Restoration [youtube.com]

            It is an amazing story. It is also a good example of women working in STEM, from Margaret Hamilton, https://en.wikipedia.org/wiki/... [wikipedia.org] a software engineer and lead designer on MIT's portion of the Apollo project, to the ladies who hand wired the software onto grids with tiny toroids in the mix, or "core rope memory". A combination of attention to detail and dexterity was critical.

            Nowadays the mentality would be launch now, patch later.

            There's always more memory, and disk space!

    • It'll be easier to send people to the moon. With a moon mission, people can turn on the TV and marvel at the amazing things being accomplished. Fighting climate change requires people, all the people, to change what they're doing.
    • Therefore, it would be great if we could have this cooperation and collaboration on a new really pressing issue. The climate crisis. It is a societal challenge, but it is also an engineering challenge.

      If the moon was like climate change, then people would be denying that the moon exists.

      • by prefec2 ( 875483 )

        Some people do. Oh shit we are all doomed. *hmm* Well actually, I will be dead by than anyway. So carry on.

    • A far more pressing issue is over-population. Solve that and the side effects of pollution and energy production go away.
      • by prefec2 ( 875483 )

        No it does not solve the problem. It just gives everyone more room to wiggle. Also population will top with 10 billion people and then decrease again. Unfortunately, we have to address the climate issue long before that.

      • A far more pressing issue is over-population. Solve that and the side effects of pollution and energy production go away.

        So the solution to fix the leak is to change the bucket?

    • The engineering part of climate change is trivial compared to the difficulty of breaking people out of the tribalism of ignorance. We have many partial solutions which could be implemented starting today (could have been started decades ago) without interfering with one another, creating jobs and making the world a nicer place to live in the process.

    • Re: (Score:2, Interesting)

      by lgw ( 121541 )

      It was amazing that the Apollo software worked at all, but it's worth pointing out that it was a terribly managed project that did not meet its goals.

      It's very strange, and the same problem is still frequent today: in other engineering disciplines, the Work Breakdown Structure [wikipedia.org] (WBS) was a fully mature concept by the 60s, along with the ideas of prioritizing the critical path for the project, and eliminating accidental redundant research efforts. (Sometimes you deliberately try multiple parallel paths, but

      • by prefec2 ( 875483 )

        Jira is so complex and configurable. Maybe you can make it do WBS with tickets. Joking of course. Jira and other tools are designed to support agile approaches which are usually tailored to small projects. Large projects get subdivided into smaller projects so you can apply agile development or random hacking what most do -- regardless how long you tell them that this is not agile development. These approaches work well when writing software for companies and administration, as you can easily subdivide soft

  • The onboard computers of the Apollo space program must have been kinda limited in RAM.

    The fact that the software can get all 3 of them to the moon and then letting 2 of them touched down on the moon surface and then ferry all three back to the Earth, that must be some hack of super-optimized program !

    If the same task was to be handled by current crop of code monkeys, a super-computer with Exa-Byte RAM would still proved to be too tiny.

    • Yup (Score:5, Interesting)

      by Viol8 ( 599362 ) on Wednesday July 17, 2019 @04:46AM (#58938378) Homepage

      I'm currently having the misfortune of fixing a C++ program that simply reads in ascii text files and writes the processed data to a DB. The aassclown that wrote it obviously ate design patterns books for breakfast and created an entire overblown framework around the visitor pattern (google it, it'll make you weep. Or laugh) which is about 700 lines of code give or take to do what could have been done with simple string splicing in about 100. And it runs approx 30 times slower that the other parts of the system that do do simple string splicing.

      If idiots like him ever worked for nasa the software would require a boewulf cluster just to run the fecking countdown, never mind get the space ship to another planet. I'm just sick of these fuckwits who think coding is an obfuscation showboating exercise. Their software does the job badly and is a PITA to maintain.

      • It's funny how I'm dealing with something very similar here. The program only needs to write a text field in the database, which would normally only require a class involved and some html to show a form to the user (it is a web application). But the project managers used a framework that involves six layers of code underneath to do the same thing, and in such a convoluted way that makes you think where the hell things are actually being done.
      • ... The aassclown that wrote it obviously ate design patterns books for breakfast and created an entire overblown framework around the visitor pattern (google it, it'll make you weep. Or laugh) ... I'm just sick of these fuckwits who think coding is an obfuscation showboating exercise. Their software does the job badly and is a PITA to maintain.

        LOL Thank you for summarizing the state of whatever code I've been forced to maintain the last few years! Especially if it's written in C#. All in the name of "testing" and "separation of concerns" which never occurs anyways as far as I can see. Just layers and layers and layers of object spaghetti which is horribly broken and a pain in the ass to fix. It's as though lately CS majors are taught if one design pattern and level of indirection is good, then 10 of them must be way better.

        • by Viol8 ( 599362 )

          I don't know what these people are thinking when they're progamming, but they seem to focus on the code, not the solution. Its as if they think if they're not writing complex code they're not earning their money.

      • by sglines ( 543315 )

        I remember working on software that pushed the limits of available hardware back in the late '70s. The first thing I did on new hardware was to compile and run a program that set an array 1x10000 to zero a hundred times. If it did that in under 10 seconds we were good to go. The most efficient compiler I've ever seen ran on an HP-1000 with 32K of memory, yes 32K. The binary was ~100 bytes. Compile the same program today and it will run in less than 1/100 of a second but the binaries are 1-30 megabytes, yes

    • by shortscruffydave ( 638529 ) on Wednesday July 17, 2019 @05:48AM (#58938508)

      The thing that amazes me most about that computer is how often it rebooted during the descent. The time required to cycle it could be measured in milliseconds.

      Imagine what would happen today if a modern jet was on its final approach to the runway and someone tried to reboot the computer that runs the cockpit. Hell, I wouldn't be surprised if after a miniute or so the screen showed an "Installing updates - 1 of 33" message

      • It's not that amazing once you realize that the RWM was very slow and non-volatile. This naturally makes for much faster reinitialization. Of course, it's a very welcome property in this use case.
      • by Anonymous Coward

        The AGC did not "reboot" (in the sense that word is currently used) as many have stated [unfortunately, online]. The object code (program) was (literally) hardwired. There was no "external" storage device from which to (re)load the program -- thus, there was nothing to "reboot." Instead, faced with an unanticipated number of interrupts, which queued work to process, and either insufficient space to queue them for processing and/or insufficient time to complete processing of at least one request before the [

    • by Pyramid ( 57001 )

      "The onboard computers of the Apollo space program must have been kinda limited in RAM"

      This is a vast understatement. How we think about RAM and ROM today don't directly correlate.

      "Block I AGC memory was organized into 1 kiloword banks. The lowest bank (bank 0) was erasable memory (RAM). All banks above bank 0 were fixed memory (ROM). Each AGC instruction had a 12-bit address field. The lower bits (1-10) addressed the memory inside each bank. Bits 11 and 12 selected the bank: 00 selected the erasable memory

  • by account_deleted ( 4530225 ) on Wednesday July 17, 2019 @04:27AM (#58938338)
    Comment removed based on user account deletion
    • There were women in progamming back in the day when it was an offshoot of engineering which involved mostly mature adults. Then the 8 bit era came along and programming became the preserve of geeky schoolboys (I include myself there) , many with limited social skills. Is it any wonder a lot of girls were put off?

      • Hmmm, why would girls stop programming just because geeky boys started programming? Did the boys buy all the computers up and there was none left? The boys were anti-social (like you said) so they wouldn't interact with the girls anyway. Very strange comment. The reason there were female programmers "back in the day" was due to the fact that programming was seen as a manual skill (like typing). It wasn't a highly regarded skill back then. And women were typists, so it was a "natural" for them to become prog

        • by Viol8 ( 599362 )

          "he boys were anti-social (like you said) so they wouldn't interact with the girls anyway. Very strange comment"

          Congratulations on demonstrating that you have no idea how the female mind works.

          • Yeah, the female mind must be very strange. Female minds must psychically detect boys programming alone with their 8 bit computers in their bedrooms in the 1970s and 1980s and thus decide to not become programmers. Amazing. You do know everyone reading this is laughing at you, right?

            • by Viol8 ( 599362 )

              Err no. Girls don't want to spend time in after school classes with a load of boys who they don't find interesting. Who said anything about at home? And once that "geek" moniker sticks thats it.

          • Are you claiming that boys are naturally more anti-social than girls ? Or did someone tell them to be more anti-social ?

      • by K. S. Kyosuke ( 729550 ) on Wednesday July 17, 2019 @07:38AM (#58938826)

        There were women in progamming back in the day when it was an offshoot of engineering which involved mostly mature adults.

        Actually, I think the more accurate version is more like "there were women in programming back in the day when it was viewed as a lowly clerical work and when the Real Important Work was designing and building the computer".

        Then the 8 bit era came along and programming became the preserve of geeky schoolboys (I include myself there) , many with limited social skills. Is it any wonder a lot of girls were put off?

        This is actually not very plausible (at least to me) on the basis of the timeline. The demographic data of working programmers started changing too early to be the result of children's exposure to home computers. Also, lots of lawyers and doctors and politicians are assholes but somehow that didn't prevent girls from trying to become lawyers and doctors and politicians, so I'm not sure how that would work.

      • Yes, and the mother of the AGC is none other than Margaret Heafield Hamilton. She had a huge hand in evaluating the 1201 and 1202 tasking overload errors and making the GO call.

      • by Pyramid ( 57001 )

        What is the evidence for your statement?

    • I don't think it means what you think it means.

      Software runs on hardware. Since ages we say "This [Insert something computer related and small] is more powerful than the computer who brought us to the moon."

      Next we hear the hidden secrets that females where involved in the programming and that Turing was gay.

      It's only a secret if you aren't paying attention, or thought that liberation never took place until 2016, and that men are the enemy. Margaret Hamilton https://en.wikipedia.org/wiki/... [wikipedia.org] is an obviously very competent software engineer, and the women who hand wove the core rope memory had a combination of attention to detail, and dexterity that made them the best people for the job.

      Why NASA even had women who were considered "computers" because of how meticulous and accurate they were. Now, get ready to

      • Why NASA even had women who were considered "computers" because of how meticulous and accurate they were.

        Um, no. The noun (and job title) "computer" derives from the verb compute [etymonline.com] which means 'to count' or 'to calculate'. It was the normal job title for people whose job it was to calculate things.

        This word did not convey accuracy or meticulousness. That's something we started to associate with the word later, after we replaced human computers with electronic computers.

        • Why NASA even had women who were considered "computers" because of how meticulous and accurate they were.

          Um, no. The noun (and job title) "computer" derives from the verb compute [etymonline.com] which means 'to count' or 'to calculate'. It was the normal job title for people whose job it was to calculate things.

          This word did not convey accuracy or meticulousness. That's something we started to associate with the word later, after we replaced human computers with electronic computers.

          Take it up with NASA - I'm certain that they will defer to some random guy on Slashdot and realize they were and still are 100 percent wrong.

          You can reference this https://crgis.ndc.nasa.gov/his... [nasa.gov] as the starting point to correct this egregious error.

          • But that document does not state they were considered "computers" because of how meticulous and accurate they were.
            NASA called these people computers, but not as a badge of honor. It was a job title like any other, with no connotations of accuracy and meticulousness.

            • But that document does not state they were considered "computers" because of how meticulous and accurate they were. NASA called these people computers, but not as a badge of honor. It was a job title like any other, with no connotations of accuracy and meticulousness.

              Before we go any further, are you an aspie?

              So - let's play your game. You tell me that these wome were "computers because they were sloppy and completely inaccurate?

              I'll just leave this here, I play no weird wordsmithing games, and if you are an aspie - I don't want to argue with you.

              • They were called computers because they compute things. That's it. That's all the meaning attached to the word 'computer'.

                • They were called computers because they compute things. That's it. That's all the meaning attached to the word 'computer'.

                  So tell me - What exactly am I allowed to call them? And you still didn't answer teh question if sloppiness andf innacuracy was a qualification.

                  You are the oddest troll I've seen in a while. Do you diagram sentences for a hobby?

                  • I don't know who's trolling who.

                    You said:

                    Why NASA even had women who were considered "computers" because of how meticulous and accurate they were.

                    All I said is this:
                    - yes, they were called computers
                    - they probably were meticulous and accurate. I'm not saying they weren't. But that's not relevant to this conversation.
                    - no, they were not called computers "because of how meticulous and accurate they were". The job title "computer" was given to anyone whose job it was to calculate things. No matter how good or bad they might have been at it.

                    You're trying to change the meaning of a word. That irritates me.

  • by Anonymous Coward

    For the ones interested in the in's-and-out's, check out CuriousMarc his series on the restauration of an AGC on YouTube: https://www.youtube.com/playlist?list=PL-_93BVApb59FWrLZfdlisi_x7-Ut_-w7

  • I thought the hidden hero was a nazi scientist

  • Comment removed based on user account deletion
  • Comment removed based on user account deletion
  • by Anonymous Coward

    I've been listening to the Apollo 11: what we saw podcast. They talked about when the LEM was landing, Armstrong reported an error code that the narrator said was a stack overflow caused by "too much data from the landing radar." And that the computer was able to reboot in seconds.

    Anyone know about this?

    • by caseih ( 160668 ) on Wednesday July 17, 2019 @09:05AM (#58939236)

      Not a stack overflow. But I suppose that's close enough. And yes the AGC did reboot in seconds, and it picked up where it left off with nothing lost. The AGC and its real-time operating system was quite resilient. Among the many summaries is this one: https://arstechnica.com/scienc... [arstechnica.com]

    • by Brett Buck ( 811747 ) on Wednesday July 17, 2019 @11:07AM (#58939964)

      You are unfamiliar with real-time computer design. It didn't "reboot" in seconds, it just dropped some tasks and sent a notification. But rebooting in "seconds" would be considered absolutely glacially slow in some cases. I have seen and designed systems where the power was cycled once/second. and the computer "booted up" in a few hundred microseconds, ran the entire contents of the instruction memory, and shut back down again, in a few hundred milliseconds. Every second, with no upsets, for 30+ years.

            In this case, the system had a rudimentary priority tasking, and was kicking out some tasks occasionally. The alarms were the notification. The really simple version is that there was a system misconfiguration (the rendezvous radar was on, when it probably should have been left off) which gave it more processing requests and mandatory interrupts to service the radar data caused excess processing that it couldn't handle. It was a little more complicated than that, but they redesigned a few things to prevent it from happening in the future.

              BTW, far more interesting from a programming standpoint was patching the code, fat-fingered, during the descent on Apollo 14. A lot of people have patched code, but not by hand, on systems you are currently counting on to keep you from dying, at 5000 feet/second and 50,000 feet over the moon.

      • It did much more [ibiblio.org] than "just dropping" some tasks in a restart situation.
      • he really simple version is that there was a system misconfiguration (the rendezvous radar was on, when it probably should have been left off)

        Oh, that's actually wrong. It *should* have been left on. But it *shouldn't* have caused the issues in an "on" state, which turned out to be a power supply design issue.

      • My goodness, if I had heard that story, I don't remember it. For those interested, there's a telling of it here: http://www.astronomy.com/news/... [astronomy.com]. And a rather more 60esque version here: https://www.rollingstone.com/p... [rollingstone.com]. (60esque, you say, written in 1971? Well, Rolling Stone hadn't come out of the 60s, I think.)

  • by Anonymous Coward on Wednesday July 17, 2019 @06:28AM (#58938624)

    https://github.com/chrislgarry/Apollo-11

    It's been there for a while now, an interesting piece of `archeology' (?). And people get upset because their favourite video game does not raytrace shadows...

    • by Pyramid ( 57001 )

      Thank you for that link. It's strangely emotional to look at the "original" Apollo AGC source code for some reason.

      Such amazing things people can create when they aren't divided.

  • The AGC/LMGC was structured where it was tasking programs on a priority basis. When the checklist error causing both the radars, the descent and rendezvous, were operating, and Neil rolled EAGLE to check height overloaded the AGC, the software started to shed lower priority tasks and resetted continually to prevent lockup and flagged the error as the 1201/1202 overload. EECOM and the backroom had experienced this fault during exercises earlier in the month and aborted the landing based on those errors. Tha

  • by Shane_Optima ( 4414539 ) on Wednesday July 17, 2019 @09:27AM (#58939372) Journal
    I always found it unexpected and amusing that (as part of the investigation into the Challenger disaster) Feynman, after totally trashing [nasa.gov] the management in charge of the Shuttle's hardware (he was basically in favor of firing NASA's management entirely and rebuilding the organization from the ground up with a different culture, something that may well have saved the lives of the astronauts on the Columbia) , seemed to have nothing but positive things to say about the avionics. The computer had a quarter million LoC (running on core memory, of all things, although that meant astronauts had to manually load different programs from tape), but they tested it incrementally and scrupulously and had a zero tolerance policy for bugs. They also took a highly redundant approach to the hardware, with not only four redundant computers but also a fifth one that was physically disconnected from the rest in case some sort of massive power surge took out all four at once.

    I mean, moral of the story, to oversimplify just a little bit here... software doesn't have to suck. We're all just used to it by now.

    (Other moral of the story: Feynman was [youtube.com] awesome [youtube.com].)
    • *was* being the key word. There appeared to be not much testing for the Mars Climate Orbiter.

There are two ways to write error-free programs; only the third one works.

Working...