Theory of Everything recently posted an addendum to last year’s Enchanting by Numbers. Both episodes are very worthwhile, and both include the same segment talking about how misunderstood Facebook algorithms are to most of its users.
Be sure to listen to the interview with Suw Charman-Anderson, founder of Ada Lovelace Day, which is today! That part starts at 14:30 in part 1.
Margaret Hamilton oversaw the guidance software on the Apollo program. Thanks to sophisticated error-handling in that code, her engineering efforts prevented an abort of the Apollo 11 landing.
Three minutes before the Lunar lander reached the Moon’s surface, several computer alarms were triggered. The computer was overloaded with incoming data, because the rendezvous radar system (not necessary for landing) updated an involuntary counter in the computer, which stole cycles from the computer. Due to its robust architecture, the computer was able to keep running; the Apollo onboard flight software was developed using an asynchronous executive so that higher priority jobs (important for landing) could interrupt lower priority jobs.
This was on a 2 MHz machine with 1 MB of RAM. Even the term software engineering was coined by Hamilton, who also helped develop “concepts of asynchronous software, priority scheduling, end-to-end testing, and human-in-the-loop decision capability.”
A safe mantra to keep in mind with software is “all software has bugs,” which so often means “don’t expect too much.” Margaret Hamilton was instrumental in creating processes to ensure that software can systematically accommodate surprises and continue functioning as expected.