12 ms·
Margaret Hamilton, lead software engineer, Project Apollo
- danso 12y agoBesides the great photo and backstory, I liked this snippet: > She was all of 31 when the Apollo 11 lunar module landed on the moon, running her code. (Apollo 11 was able to land at all only because she designed the software robustly enough to handle buffer overflows and cycle-stealing.) You could read that paragraph in several ways. Back then, accomplishing something like that at 31 seems precocious. Today, in the hype about 18-year-olds becoming millionare-startup founders, she sounds like a late bloomer of a programmer.
- Jun8 12y agoHere's another great photo (http://i.imgur.com/2jJZwBZ.jpg http://i.imgur.com/2jJZwBZ.jpg) which was posted on the TIL thread a few days ago (http://www.reddit.com/r/todayilearned/comments/2oskna/til_that_preventing_an_abort_of_the_apollo_11/ http://www.reddit.com/r/todayilearned/comments/2oskna/til_th...).
- erbo 12y agoSee, I see this and the other photo of her as conveying the message, "You don't have to look like the stereotypical 'NASA nerd,' the white guy with the white button-down shirt and the pocket protector full of pens, in order to make a contribution. Some of the biggest contributions were made by people who didn't fall into that stereotype."
- nether 12y agoAt least she didn't make a fucking app.
- mithaler 12y agoMore detail on the cycle-stealing bit, which caused an alarm during the Apollo 11 lunar descent, which the AGC's priority scheduling allowed it to recover from: http://en.wikipedia.org/wiki/Apollo_Guidance_Computer#PGNCS_trouble http://en.wikipedia.org/wiki/Apollo_Guidance_Computer#PGNCS_...
- jimktrains2 12y agoWasn't that the same alarm that was randomly thrown at the astronaughts in training and they made the wrong choice then and learned to make the right choice on the moon? I will look up the story in Kranz's autobiography when I get home tonight.
- erbo 12y agoI do believe it was. The Simsups threw a 1201 alarm at them, and the controllers got confused, and Kranz called an abort. Afterwards, they told him, "It wasn't an abort, you should have continued the landing...I thought you guys had it, but then you went off the rails and called for an abort...You violated the fundamental rule of Mission Control: You must have two cues before aborting. You called for an abort with only one! " As a result, one of the controllers went more into depth on program alarm codes, and they put a rule in dealing with which alarm codes would be grounds for an abort. Neither 1201 nor 1202 were on that list. They saw both those alarm codes during Eagle's descent, and were able to say, "We're Go on this alarm...we're still Go, same type, it's a Go." And the rest was history.
- AnimalMuppet 12y agoSome years ago, there was a video about the moon landing in Washington DC airport (it was at a Smithsonian exhibit or store or some such). It included video of the control room when the alarm went off during descent. There was silence and blank faces - nobody knew what to do. But by the time the alarm went off the second time on descent, it was completely different. Someone - whoever was in overall charge - called a role (something like "descent control officer") and that person responded "go", all within one second. But, yes, it wasn't a problem because the priority scheduling recovered from this problem, and that recovery was a really big deal.
- joezydeco 12y agoConsidering she didn't learn how to program a computer until her 20s, and there were no shoulders of giants (sorry, frameworks and operating systems) to stand upon, I'd say it's a more impressive feat.
- davedx 12y agoAnd no Internet, no Stackoverflow, no "common knowledge". Incredible.
- deleted 12y ago[deleted]
- Animats 12y agoYes, she was one of the early formal-methods people. I met her and Saydeen Zeldin back when I was doing proof of correctness work. They had a company called Higher Order Software, which promoted an extreme form of waterfall design using formal methods. This is appropriate for avionics but didn't catch on. Proof of correctness was just too slow back then. Incidentally, when you post articles like this, please don't use a title that makes it sound like an obituary.
- mafribe 12y agoIt's still too slow today for all but the most security critical applications. Fortunately there is a lot of work in progress to improve the situation.
- tempire 12y agoIt's not too slow, it just takes discipline that most developers/companies don't have, primarily because the tools aren't widely available.
- nardi 12y agoWhat do you mean by "not widely available"? Just as examples, Coq and Idris are both free: https://coq.inria.fr https://coq.inria.fr http://www.idris-lang.org/ http://www.idris-lang.org/ Did you mean they're not in wide use?
- dangerlibrary 12y agoIt looks like she is currently CEO of a company that sells a formal-methods language (and accompanying IDE) called 001. It looks interesting - has anyone here worked with it before? http://www.htius.com/ http://www.htius.com/
- annasaru 12y agoAwesome. She's a role model for girls, which our field badly needs. The client list on her company's website is pretty long and substantial.
- xenophonf 12y agoShe's a role model for everybody!
- AtmaScout 12y agoDefinitely.
- slapresta 12y agoSure, but we men already have plenty of computing role models. This is a welcome change.
- xenophonf 12y agoBoth female and male computer scientists need good female role models, and for the same reasons. In my own life I've been very fortunate to have been influenced by my mother (who taught me to program at an early age), by a grade school computing teacher (who also encouraged me to learn programming), and by my wife (a professional software engineer, among other things). I like to think that my wife's professional career has given my kids some similar perspective - even if only to change their unconscious assumptions about what women can do (which is everything, since my wife has been a writer, a software engineer, a business analyst, and a small business owner - and that's just what she's done professionally). Women needs to believe that they're capable of everything, and men need to believe that women are capable of everything, too. The same goes for men about men, and women about men. Feminism isn't about replacing patriarchy with matriarchy. It's about egalitarianism for all genders. That's all I meant.
- davedx 12y agoI just copy and pasted the article and attached the photo to an email to my 1 year old daughter. I have an email account for her for just this kind of thing. I can only hope she's as inspired by it when she grows up and reads the emails as I hope she will be :)
- norvig 12y agoI worked with Margaret and Saydeen at Higher Order Software for my first job out of college, but I didn't get to work on anything as glamorous as Apollo. We did mostly government contracts; I was there for two years before I decided it was time for grad school.
- neilxdsouza 12y agoOT: I just said to myself, that cannot be "the Peter Norvig" here on Hackernews and I checked the profile. And Lo and behold ...
- carapace 12y agoIs HOS what it seems? I read about it years ago in "System Design from Provably Correct Constructs". It seems like it should revolutionize software development (and incidentally put most programmers out of business) but that it somehow just never gets "traction" beyond certain markets/customers?
- CurtMonash 12y agoThe first time -- and still one of the few times -- I ever walked out of a meeting because the BS level seemed too high was when I visited Higher Order Software in the 1980s.
- yourapostasy 12y agoCan you please share details of what caused you to walk out? There is a lot of curiosity around USL and the toolchain she and her team have built, but my Google-fu has failed to come up with descriptions of practical experience with them. I'm struggling to decipher how different it is from UML, or what it is solving that functional approaches are not already working to address.
- CurtMonash 12y agoIt was 30ish years ago, so I don't recall details. But it seemed overhyped. The usual problem with tools that do a great job of generate code is that they do a great job of generating CERTAIN KINDS of code, but are unhelpful or even counterproductive with other parts of your development task. Certainly this was true in the 1980s, and back then the problem was exacerbated in that there weren't graceful ways to combine what was generated with what you had to write or modify by hand.
- lotharbot 12y agoThe wikipedia article on her notes she's credited (by NASA) with coining the term "software engineering". http://en.wikipedia.org/wiki/Margaret_Hamilton_%28scientist%29 http://en.wikipedia.org/wiki/Margaret_Hamilton_%28scientist%...
- _delirium 12y agoInteresting, and something I didn't know. The cited source unfortunately doesn't elaborate on the context. The chronology does seem about right. The first in-print use of the term I can find is from 1969, when it was used as the title for the proceedings of an October 1968 NATO scientific conference: http://dl.acm.org/citation.cfm?id=1102020 http://dl.acm.org/citation.cfm?id=1102020. Given the NASA/NATO personnel overlap at the time, it's certainly plausible that they got it via NASA.
- shmerl 12y agoGood to know, thanks!
- theorique 12y agoImpressive. AND attractive. Truly a Renaissance woman.
- kohanz 12y agoThis kind of comment has no place and is irrelevant, IMHO. Even though the statement may be well-meaning, it's completely gender biased. How many times in an article about a male entrepreneur, or computer scientist, or other interesting person, is his subjective physical attractiveness even a topic of conversation? Almost never - and that's the way it should be for everyone.
- masklinn 12y ago> How many times in an article about a male entrepreneur, or computer scientist, or other interesting person, is his subjective physical attractiveness even a topic of conversation? Almost never - and that's the way it should be for everyone. I don't know, I would have liked advance warnings for some blokes who turned out disturbingly attractive, making their talks harder than necessary to follow.
- lotharbot 12y agoYeah, it was a completely unnecessary comment. I can see commenting about a stranger's physical appearance if they're dressed in a surprising way (if somebody shows up at a tech conference in a tux or evening gown, or dresses in a costume, it's reasonable to expect some degree of attention.) I can see commenting if they have known health problems they're recovering from (like late in Steve Jobs' life.) And I can see commenting if someone appears to be considerably younger or older than they actually are [0] (when I was a teen and my parents were in their late 40s or 50s, people occasionally asked if my dad was my brother or my mom was my sister or girlfriend.) Those kinds of comments can be gender-neutral and non-harassing, and furthermore genuinely interesting points of conversation. But we should definitely stay away from creating the impression that physical attractiveness is one of the most important qualities for women in tech, or almost any other professional context. [0] For example, bringing it back to Margaret Hamilton, I wouldn't have identified her as being anywhere close to age 71 in the picture at http://www.earlham.edu/alumni/homecoming-and-reunions/alumni-awards/alumni-award-recipients/2009-outstanding-alumni-and-distinguished-service-awards/ http://www.earlham.edu/alumni/homecoming-and-reunions/alumni... .
- makmanalp 12y agoDefinitely a role model. Her site has a pretty neat article called "Inside development before the fact": > Today's traditional system engineering and software development environments support their users in "fixing wrong things up" rather than in "doing them right in the first place". Things happen too late, if at all. Systems are of diminished quality and an unthinkable amount of dollars is wasted. This becomes apparent when analyzing the major problems of system engineering and software development. Also a cool paper she wrote: > The key to software reliability is to design, develop, and manage software with a formalized methodology which can be used by computer scientists and applications engineers to describe and communicate interfaces between systems. These interfaces include: software to software; software to other systems; software to management; as well as discipline to discipline within the complete software development process. The formal methodology of Higher Order Software (HOS), specifically aimed toward large-scale multiprogrammed/multiprocessor systems, is dedicated to systems reliability. With six axioms as the basis, a given system and all of its interfaces is defined as if it were one complete and consistent computable system. Some of the derived theorems provide for: reconfiguration of real-time multiprogrammed processes, communication between functions, and prevention of data and timing conflicts. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1702333&tag=1&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D1702333%26tag%3D1 http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=170233... And some NASA work related to HIOS: http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19750010848.pdf http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/1975001...
- jordigh 12y agoI find it a bit... sad? disturbing? that the only reason women were so involved in computing and programming in the early years was because programming and software were seen as less important jobs than the "software planner" jobs, where the "coder" was just a flunkie, something of a software custodian. They were considered clerical jobs, like data entry or a secretary. This old article (2009) has a lot more details on this old sociological phenemonon: http://homes.soic.indiana.edu/nensmeng/files/ensmenger-gender.pdf http://homes.soic.indiana.edu/nensmeng/files/ensmenger-gende... The author has a whole blog about this topic: http://thecomputerboys.com/?p=239 http://thecomputerboys.com/?p=239
- masklinn 12y agoDefinitely sad, but I'd say the disturbing part is how fast they got disappeared once software development became "a real job".
- MCRed 12y agoI started programming before I was a teenager, in part because my mother was a programmer. At that time, 30+ years ago, women were not programmers because it was "less important". You didn't see men taking programming jobs as a "Consolidation" for some better career. My first two programming teachers- in college and in high school- were both women who were also professional programmers at previous jobs. It was a prestigeous job, as the computer was seen to clearly be the herald of a new age. The personal computer revolution was really significant. It was a job for smart, mathematically inclined people. I think programming is seen as a lower status job now than it was then. Now programmers are subservient to ignorant business people (When the reality is, its much easier for use to learn business than them to program.) I think in the past women were more likely to be programmers because the profession didn't have a gender stigma. Because men were more likely to have picked out a profession, and women who entered college without a specific degree plan were more likely to pick this one up. And frankly, I've never seen a problem with women programmers. I've worked with women programmers at every job where there were more than 10 programmers, and they haven't been seen as deserving, or treated with less respect... this goes back to the 1980s. I would like you to back up your assertion that the "only reason" they were involved was low status. That paper you linked to is fallacious beyond belief. You may disagree with my anecdotes below, but he's merely giving us his spin on an article. (So he's not only anecdotal, but derivative.)
- happyscrappy 12y agoHer with a hardcopy of her code. http://i.imgur.com/bxyWmuA.jpg http://i.imgur.com/bxyWmuA.jpg
- lfender6445 12y agoshes brilliant and gorgeous. I don't see anything wrong with that
- scj 12y agoShe was briefly mentioned in Steven Levy's "Hackers", as an MIT computer user who's program crashed after the "Midnight Wiring Society" changed how the computer worked. Also, she was interviewed in "Moon Machines" episode three, about the nav computer. http://en.wikipedia.org/wiki/Moon_Machines http://en.wikipedia.org/wiki/Moon_Machines
- Arjuna 12y agoWhat a truly inspiring human being. I can only dream of aspiring to her levels of contribution. Check out some of the Apollo 11 code for the Lunar Module's (LM) Apollo Guidance Computer (AGC). It's just awesome browsing through it, reading the comments, and thinking about the zeitgeist of being on a team that was working on something of that world-altering magnitude. Code Library: https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099 https://code.google.com/p/virtualagc/source/browse/trunk/Lum... KALMAN_FILTER.agc https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/KALMAN_FILTER.agc https://code.google.com/p/virtualagc/source/browse/trunk/Lum... LAMBERT_AIMPOINT_GUIDANCE.agc https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LAMBERT_AIMPOINT_GUIDANCE.agc https://code.google.com/p/virtualagc/source/browse/trunk/Lum... LANDING_ANALOG_DISPLAYS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LANDING_ANALOG_DISPLAYS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Lum... LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc https://code.google.com/p/virtualagc/source/browse/trunk/Lum... LUNAR_LANDING_GUIDANCE_EQUATIONS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Lum... - - - Incredible quote: "There was no second chance. We all knew that. We took our work very seriously, but we were young, many of us in our 20s. Coming up with new ideas was an adventure. Dedication and commitment were a given. Mutual respect was across the board. Because software was a mystery, a black box, upper management gave us total freedom and trust. We had to find a way and we did. Looking back, we were the luckiest people in the world; there was no choice but to be pioneers; no time to be beginners." - Margaret Hamilton - - - Edit: OK, this is interesting. Note the filename. The filename and comments suggest that it was for driving keyboard and information display... PINBALL_GAME_BUTTONS_AND_LIGHTS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Lum...
- fjarlq 12y agoA few of the code modules that mention Hamilton: Artemis072/ASSEMBLY_AND_OPERATION_INFORMATION.agc https://code.google.com/p/virtualagc/source/browse/trunk/Artemis072/ASSEMBLY_AND_OPERATION_INFORMATION.agc https://code.google.com/p/virtualagc/source/browse/trunk/Art... Artemis072/SERVICER207.agc https://code.google.com/p/virtualagc/source/browse/trunk/Artemis072/SERVICER207.agc https://code.google.com/p/virtualagc/source/browse/trunk/Art... Comanche055/CONTRACT_AND_APPROVALS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Comanche055/CONTRACT_AND_APPROVALS.agc https://code.google.com/p/virtualagc/source/browse/trunk/Com... --- An overview of the code: http://www.ibiblio.org/apollo/Colossus.html http://www.ibiblio.org/apollo/Colossus.html
- acqq 12y agoMore details about her work on Apollo Guidance Computer: Apollo Guidance Computer History Project, Margaret Hamilton's introduction: http://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/apollo/public/conference1/hamilton-intro.htm http://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/a... "Many of the things I was intrigued by had to do with how to make the mission software safe and reliable. And one of the things I remember trying very hard to do was to get permission to be able to put more error detection and recovery into the software. So that if the astronaut made a mistake, the software would come back and say "You can't do that." But we were forbidden to put that software in because it was more software to debug, to work with. So one of the things that we were really worried about is what if the astronaut made a mistake -- We were also told that the astronauts would never make any mistakes, because they were trained never to make mistakes. (Laughter) So we were very worried that what if the astronaut, during mid-course, would select pre-launch, for example? Never would happen, they said. Never would happen. (Laughter) It happened." She also mentions her companies: "So since that time, the theory has evolved and now I actually lost the first company to venture capital people, and started a second company called Hamilton Technologies." The link to the second: http://www.htius.com/ http://www.htius.com/
- brudgers 12y agoWhen this story was posted yesterday [1], the comment about UDL sparked my interest. That led me to Hamilton'sDevelopment Before the Fact methodology [2]. I find DBTF an appealing approach to reliable systems, particularly buildings. Because AEC design software is largely focused on automating manual steps rather than the generation of systems. [1] https://news.ycombinator.com/item?id=8731711 https://news.ycombinator.com/item?id=8731711 [2] http://www.htius.com/Articles/Inside_DBTF.htm http://www.htius.com/Articles/Inside_DBTF.htm
- einrealist 12y agoMy take on this: If more women would be into (information) technology, we would have cheap holidays on Mars! Margaret's role is a role model.
- rattray 12y ago> I suppose today’s kids are ho-hum about these recoveries of memory, but I think they’re pretty neat. No, we think they're pretty neat too :-)
- lfender6445 12y agowhat a great read. she looks so happy! she is very pretty as well!
- tempodox 12y agoI hope this serves as tangible evidence that women do have their place in tech. I feel it's a shame that we believe (rightfully or not) that we need extra coding schools for females.
- peter303 12y agoIn early computer days a fair fraction of the programmers were women. They migrated from earlier computer jobs such as keypunch operators, switchboard wirers (some early computers had programable switchboards) and mechanical calculator clerks. Until mid 1940s "computer" meant the third category- a person who operated mechanical calculators.