此为历史版本和 IPFS 入口查阅区,回到作品页
魚香
IPFS 指纹 这是什么

作品指纹

【读影志】Hack the Moon

魚香
·
​2019年是人类登月五十年,当时看到Margaret的故事很感兴趣;后来读了她发在IEEE Software上的What the Errors Tell Us,看了纪录片Apollo11、一些登月的纪念报道,于是写下这篇(拖了一年的)文章。
如果你也向往宇宙,不妨看看这部纪录片,也希望你和我一样,从这些优秀的女性身上获得力量。
(Aug 2020)


APOLLO 11


2019年,为了纪念登月50周年,NASA贡献出原始素材,包括从未公开过的70mm镜头,携手艾美奖导演米勒团队,打造了纪录片Apollo11。剪辑精巧,画质十分感人,包揽了众多奖项。

冷战期间美苏太空竞赛打得火热,纪录片一开始就提到了这个背景。事实上,最初的阿波罗计划只打算绕月球转转就回,但肯尼迪在1961年5月举行的国会联席会议上提出了要实现载人着陆月球,那就只好,Y-Y-Yes Mr. Kennedy?

✧ 插播一首《醉乡民谣》里调侃肯尼迪的Please Mr. Kennedy

纪录片的主体内容是从发射到降落——登月九天的全过程,宇航员视角与控制室视角交叉,配合登月轨迹动画演示,原始录音贯穿。

大概我宇宙情结作祟,总觉地空对话如此浪漫。对话里还带了点美式幽默:

“Hello there earthlings.”(地球人们~你们好啊~)
“I promise to let you know if I stop breathing.”(如果我停止呼吸了一定会让你知道哒~)


但这场载入史册的月球之旅却不是绝对顺利的,充满了跌宕起伏的小状况。比如在发射的前两个多小时里,发射台就出现了故障;到达月球背后时,飞船短暂失去信号;即将着陆时,出现了紧张的一幕——1202、1201程序报警,而这个纪录片中不足两分钟的镜头,弥漫着需要迅速决定是否按下着陆按钮的焦灼、飞船能否按照预期降落在月球表面的未知。

为什么此时会报警?背后发生了什么?


扎根在“错误”中的女性


人们大抵都知道1969年北半球的夏天有三个人类登陆月球,从另一个星球传回“That's one small step for a man, one giant leap for mankind.”的声音,但知道2018年是软件工程(Software Engineering)诞生五十年的恐怕就少了许多。看似是关系并不紧密的周年庆,实则不然,登月这项繁重浩大的系统性工程,为计算机科学的发展助攻了一大把,而让它们交汇的关键人物之一,是Margaret H. Hamilton(玛格丽特•汉密尔顿)。


玛格丽特出生在美国印第安纳州,是个“不知道为什么我就是对数学特别着迷”的女孩儿,她在大学修读了数学与哲学。

玛格丽特的早年生活看似是“贤妻良母”的范本——支持当时的丈夫继续哈佛法学院的学业,自己暂缓读硕士的计划,照顾家庭,先到MIT工作。

最初她为现代混沌理论之父爱德华•洛伦兹(Edward Norton Lorenz)工作,接触计算机,研究气象软件;随后又参与SAGE项目,开发了美国第一个防空系统用以侦察敌机的软件;之后进入NASA,参与Apollo计划,在Apollo11的项目中,她领导软件团队开发命令舱(CM,即Command Module)和登月舱(LM,即Lunar Module)的飞行软件。

而发出警报的,正是玛格丽特设计的程序——宇航员Buzz Aldrin误触了回程时才需使用的会合点雷达开关,导致系统过载,触发警报显示,中断了正在执行的正常任务显示,该类提示能够让宇航员先处理高优先级的事务,排错、决定是否降落——这就是所谓的「异步(Asynchrony)」。


为什么要这么设计?


因为玛格丽特从过往职业经验总结出的理念是「软件不仅要高可靠,还需要具有实时监控、恢复(灾备)能力」。


在这个“Software is eating the world”的时代,我们恐怕很难想象50多年前,还不存在“软件”这个概念。她说,当时并没有学校教你怎么写代码做软件,只是在培养熟练输入一些指令让电脑执行的“操作员”。

SAGE项目时,程序一报错,巨大的机器就会发出山呼海啸般的号叫,响彻楼宇,随后就会出现那位写错了代码的同事进入“用尽一生一世来debug”的模式。于是巨响后大家都能知道这个bug是谁的“锅”,并且,玛格丽特还会用宝丽为bug及其创造者合影留念,作为严肃工作中的花絮乐趣。

✧ 这张非常经典的图为玛格丽特与阿波罗AGC源代码的合影,Source: Draper (看看当时纸上的代码量,“用尽一生一世来debug”的自黑很真实)


进行阿波罗8号项目的研发时,她晚上和周末常带着女儿去工作,女儿在模拟舱中玩儿起了扮演宇航员的游戏,随机敲键,“登月”后却触发了发射前的任务,导致系统过载崩溃并擦除了导航数据。玛格丽特向上级反馈,主管很有自信:怎么可能?!我们的宇航员可是受过专业训练的,才不会犯这么低级的错误。然后呢,阿波罗8号执行任务时,训练有素的宇航员无意中按下了小朋友按过的键。

✧ 玛格丽特在模拟舱中,Source: Draper


那个年代,程序还处于只能按一条线程执行任务的阶段,而载人登月,哪怕是一个不经意的轻微触发,都关乎宇航员们的生命,如果出错而不自知,后果将是灾难性的。

于是这位在“错误”中汲取理论经验的女性,创造了异步模式,为之后分布式环境的发展奠下基础,Apollo11的代码也成为第一支在月球上跑起来的代码(代码已在GitHub开源,链接:https://github.com/chrislgarry/Apollo-11)

如她所述,余下的,皆为历史。


✧ 推荐TED-Ed的视频NASA’s first software engineer: Margaret Hamilton ✧ 视频中非常清晰又简洁地演示了「异步」的原理(曾经听前同事讲解了十几分钟同异步仍然迷迷糊糊的我都能秒懂)


Fleabag(《伦敦生活》)的编剧也是女主角Phoebe Waller-Bridge写过一个类比:People makemistakes. That's why they put rubbers on the end of pencils.

如果这是个精妙的比喻,那么玛格丽特就是想出要在铅笔后放置橡皮的人。

她的一生,是和Errors“杠”上了的一生。

基于这些“错误理论”,玛格丽特成立了自己的公司,研究“USL”(通用系统语言),用算法提升系统高可靠、灾备能力,也就是在最开始设计时就尽可能预防、减少错误,而不是永无止境地debug改代码。

✧ 来感受下数学的魔力


2016年,为了表彰她的贡献,奥巴马为其颁发了总统自由勋章。

2019年,在这段历史再次被翻阅时,Google团队深入美国最大的太阳能发电厂Ivanpah所在的Mojave沙漠,用30多万面镜子,制造了“月光下的玛格丽特”,向这位软件先驱致敬。


✧ Google团队用视频记录下了全过程,值得一看。

链接:https://blog.google/products/maps/margaret-hamilton-apollo-11-tribute/


Came for All Mankind


玛格丽特在ICSE(International Conference on Software Engineering国际软件工程会议)上做完“What the Errors Tell Us”的演讲后,一位裹着头巾的穆斯林女性向她致敬,感谢她成为该领域如此杰出的女性榜样,“更多的女性选择站出来发表自己的言论、提出问题,您所做的,让这些微小的不同发生着。”同时也向她提问:对于这些年软件工程领域女性地位的变化,有何经验分享?

玛格丽特说:同工同酬,不要只说不做,为女性支付同等的薪水,至少是一种方式。


透过Apollo11纪录片我们也可以看到,工作画面几乎是清一色的白人男性,女性的面孔如此罕见,更多是作为观众布景出现。

✧ 女性工作人员的画面屈指可数
✧ 在宇航员家属、观众中才能看见大量女性


而事实上,在阿波罗计划中,还有一些像玛格丽特这样的杰出女性,比如Apollo11发射室内在场的唯一女性、也是后来成为肯尼迪航天中心第一位女性高级主管的JoAnn Morgan;NASA任务控制部门的第一位女工程师Frances'Poppy'Northcutt;计算航天器飞行轨迹、确定着陆点的非裔女性Katherine Johnson;今年Google doodle为纪念登月周年所选择的土耳其天体物理学家Dilhan Eryurt,她研究太阳温度对月球的影响……

还有许多“看不见”的女性,比如通过手工编织电线为阿波罗制导计算机(AGC)建立了内存,被称为“LOL memory”(LOL表示little old lady)的女性们。

✧ 当时许多硬件是由女性手工制作完成
✧ 右图便是LOL在编织Rope Memory

但相较于公众视野中的杰出男性、“在鼎盛时期,NASA在全国雇用了超过40万名员工和承包商”的总人数,这样的女性依旧是屈指可数。

庞大的“男性俱乐部”散发的恶意也不少,比如玛格丽特就曾受到男性同事的挑衅:你怎么可以把小孩丢在家里不管?而她回击:“You do what's right for you, and I'll do what's right for me.”(以后如果有人对你说女孩不适合数学/编程/航空航天,不妨告诉Ta:“You do what's right for you, and I'll do what's right for me.” )


十九世纪六七十年代,正值女性主义运动的第二次浪潮,大量女性走上街头为自己争取工作、生育权,正是她们的存在与选择,让女性人生更丰富的可能性被看见,让微小的不同发生着。

2020,在这个「科幻年份」到来之际,天空和深海还没建起“未来之城”,人类还没实现乘着机器全世界自由飞行的想象,反而见证了有形、无形的墙大肆兴建。但我们还能在旧影像里看到:存储空间和处理速度还不如一台手机的古早计算机,就能将人类送入太空,在月球上迈出“全人类的一大步”;在对种族、性别不平等的文化反思中呈现背后的故事:软件工程领域的女性先驱如何带领团队“Hack the Moon”。

希望每个人都成为“让微小的不同发生着”的存在,希望未来这种“全人类”的语境不会只能在胶片中被怀念。




Reference:

✧ "Apollo program". Wikipedia. https://en.wikipedia.org/wiki/Apollo_program#Lunar_mission_profile

✧ HACK THE MOON. https://wehackthemoon.com/

✧ M. H. Hamilton, "What the Errors Tell Us," in IEEE Software, vol. 35, no. 5, pp. 32-37, September/October 2018, doi: 10.1109/MS.2018.290110447.

✧ NASA. https://www.nasa.gov/mission_pages/apollo/apollo11.html

✧ Futurism. Margaret Hamilton: The Untold Story of the Woman Who Took Us to the Moon. https://futurism.com/margaret-hamilton-the-untold-story-of-the-woman-who-took-us-to-the-moon

✧ WIRED. Her Code Got Humans on the Moon—And Invented Software Itself. https://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/

✧ The Guardian. Without these women, man would not have walked on the moon. https://www.theguardian.com/global/2019/jul/19/apollo-women-man-walk-on-the-moon

✧ TODAY NBC NEWS. Apollo 11 50th Anniversary: Meet The Woman Who Put Men On The Moon. https://www.youtube.com/watch?v=UOUNjytHhNI




✧ 2019, HK Space Museum

©未经许可请勿私自转载

CC BY-NC-ND 2.0 授权