信息技术、开源硬件、编程语言、创意技术和网站开发。
史上最伟大的计算机科学家玛格丽特·汉密尔顿
今天，8月17日，是史上最伟大的计算机科学家玛格丽特·希菲尔德·汉密尔顿（Margaret Heafield Hamilton）84岁生日。@LegoNASAWomen玛格丽特·汉密尔顿是美国计算机科学家，系统工程师和企业家，曾担任MIT仪器实验室软件工程部的主管（Director），帮助该实验室开发阿波罗计划中航天器搭载的飞行软件，其编写的程序都以最大程度防止崩溃为目的，从而防止了阿波罗11号登月计划中缀。汉密尔顿被认为发明了软件工程一词。在这一领域，她还是并行计算、优先级调配、端对端测试等技术的先驱者。1954年，她从汉考克高中（Hancock High School）毕业，随后入读厄勒姆学院（Earlham College），并于四年后获取文学士学位，专业是数学，辅修哲学。大学学成后，她曾短暂在做过高中数学和法语老师，其时她的丈夫仍未本科毕业。之后她搬到了麻省波士顿，原计划入读布兰迪斯大学，完成抽象代数方向的研究生学业，但1960年却得到了一份麻省理工学院的临时的软件开发职位，负责编写在PDP-1和LGP-30计算机上运行的天气预报软件，工作地点则是由马文·闵斯基领导的MIT计算机科学和人工智能实验室。她的直接上司是爱德华·诺顿·洛伦茨教授，后者正在气象学系研究对大气进行数学建模。在当时，计算机科学和软件工程还算不上是学科，程序员们都是通过工作积累经验。1961至1963年间，她转到林肯实验室给北美防空司令部的半自动地面防空系统（Semi-Automatic Ground Environment）项目工作，期间为第一台AN/FSQ-7作战指挥中央系统编写探测敌方飞行的软件。同期，她还在美国空军剑桥研究实验室编写软件。在结束前一段工作后，汉密尔顿加入了当时还名叫“MIT仪器实验室”的查尔斯·斯塔克·德雷珀实验室（Charles Stark Draper Laboratory），该实验室是阿波罗计划的一部分。而汉密尔顿则在1965年成为了其软件编程部门的主管。汉密尔顿负责编写全新的月球表面导航软件，以及后来该软件在其他项目中的各个版本（比如天空实验室计划）。玛格丽特扶着的，正是阿波罗的软件代码清单。@LegoNASAWomen汉密尔顿的程序曾防止了阿波罗11号登月任务失败：在阿波罗登月舱到达月球表面三分钟前，数个计算机警报响起，表示计算机输入数据过多，原因是雷达系统更新了系统中的一个强制计数器，致使主机发生周期挪用。但由于汉密尔顿的软件结构扎实，整个系统仍然可以工作。阿波罗的机载软件是以异步执行为思想开发的，高优先级的任务能打断低优先级任务。起初，报警信号被认为是雷达系统被操作人员错误开启，但后来的一项分析报告揭示，一个硬件设计错误导致雷达给主机提供了错误信息。3 分钟之后，4 点 17 分，阿波罗 11 号成功在月球表面静海基地着陆。最终，阿姆斯特朗迈出那“一小步”。汉密尔顿本人曾这样总结这一事件：登陆雷达开关放在了错误的位置，计算机收到了不少错误的信号。结果就是计算机既得执行着陆必须的计算，又要接受这些占用其15%时间的额外数据。但是它，或说是它里面的软件，聪明到可以判断它执行着不该执行的任务，所以就发出了警报……实际上，这台计算机不光能报警，它有着一整套恢复措施，这种情况下，计算机能自动剔除低级别任务以保证重要任务得以完成……如果当时计算机不能发现错误所在并从中恢复，我怀疑阿波罗号不能成功登月。人类登上月球 50 年后，Google 不仅以一个主页 Doodle 纪念这一重大历史时刻，更在莫哈韦沙漠设立了 10.7 万块反光镜反射月光，形成软件工程师 Margaret Hamilton 的形象，向这位领导了阿波罗计划飞行软件的工程师致敬。反光镜组合形成的 Hamilton 的形象有 1.4 平方英里面积，比纽约中央公园还要大。图像在 1 900 多米的高空仍然可见。Google 表示，通过巨型反光镜这种形式向汉密尔顿致敬，不只是感谢她在阿波罗计划中作出的突出贡献，而且还有更多方面是值得后人感激和学习的地方。她是软件工程的先驱，软件工程则彻底改变了整个世界。产品首先要想到用户的所需，将这个理念做到极致，从而使软件更可靠，更有用。激励后人大胆地尝试各种“登月工程”（Moonshots），努力奋斗就有可能将其变成现实。最重要的是，向汉密尔顿致敬也是提醒我们：不要扼杀孩子们的想象力和天性。成年人对世界总有一套看法，孩子们的看法则有可能与之不同，让孩子们尽情想象和尝试吧，这种自由在未来就可能诞生很多奇迹。2016年，汉密尔顿被巴拉克·奥巴马（Barack Obama）授予总统自由勋章。
在 Pixar 第六届艺术挑战赛（RenderMan "Shipshape" Art Challenge，）上，华特迪士尼动画工作室（Walt Disney Animation Studios）的高级软件工程师 Yining Karl Li 在95名挑战者中获得优胜者第一名。最终渲染作品皮克斯（Pixar）提供的飞船基地模型皮克斯（Pixar）提供的机器人基础模型Yining Karl Li 在博客上介绍了他如何创作第一名作品。Yining Karl Li 在2015年加入 Hyperion Renderer 团队，Disney's Hyperion Renderer 是华特迪士尼动画工作室最先进的基于物理的渲染器，自2014年以来在所有作品中使用，包括从第55部长片《Zootopia》（疯狂动物城）开始，到将于2021年3月推出的第59部长片《Raya and the Last Dragon》（寻龙奇缘），完全由Hyperion Renderer渲染。在2019 D23 迪士尼粉丝博览会上，迪士尼释出《Raya and the Last Dragon》预计在2020年11月25日于北美上映的消息。2020年4月，由于受2019冠状病毒病疫情影响，迪士尼宣布延期至2021年3月12日在美国上映。
酷玛实验室的 Labs 项目有一个 Python 模块，介绍了 Python 的基础知识、开发环境配置和学习资源。本文从快速应用角度介绍入门 Python 的基础工具——使用Anoconda快速安装Python、包和Jupyter Notebook，并包括IPython，并通过Trinket Code在线学习缩写代码。Anacondahttps://www.anaconda.com/Anoconda 包含了一个包管理工具和一个Python发行版本管理环境（还有R语言版本），同时附带了一大批常用数据科学包，也是计算科学（数据科学、机器学习、大数据处理和预测分析）的标配。Anoconda可以很好地进行各种包管理和 Python 版本控制，特别可有效解决在 Windows 平台不能正常安装包的问题。IPythonhttps://ipython.org/IPython 是一种基于Python的交互式解释器。相较于本地的Python Shell，IPython提供了更为强大的编辑和交互功能。IPython本身专注于交互式Python，其中一部分是为Jupyter提供Python内核。Anaconda3 会自动安装 IPython。IPython 支持变量自动补全，自动缩进，支持 bash shell 命令，内置了许多实用功能和函数，同时它也是科学计算和交互可视化的最佳平台。更新：IPython Notebook 就是现在的 Jupyter Notebook。Jupyter Notebookhttps://jupyter.org/Jupyter Notebook 就像一个草稿本，能将文本注释、数学方程、代码和可视化内容全部组合到一个易于共享的文档中，以 Web 页面的方式展示。它是数据分析、机器学习的必备工具。Anaconda3 会自动安装 Jupyter Notebook。在线Python编辑和运行环境线上集成开发环境使用户通过浏览器即可编程，大大节省部署开发环境的时间和成本，随时随地对项目进行编码、学习、构建和协作。尤其对学习编程、移动办公或者需要团队远程协作时具有显著优势。Trinket Codehttps://trinket.io/Trinket 可以让你在任何浏览器，任何设备上运行和编写代码。网站甚至包含一个从块到代码的Python教程、Turtles可视化Python教程，以及Charles R. Severance编写的Python for Everyone教科书。Python Tutorhttp://www.pythontutor.com/visualize.htmlPython Tutor 帮助了解计算机运行每一行代码时会发生什么，是用于计算教育的最广泛使用的程序可视化工具。可以使用它在Web浏览器中编写Python，Java，C，C ++，JavaScript和Ruby代码，并逐步查看其执行情况。Penjeehttps://penjee.com/动图可视化代码执行情况，类似Python Tutor但更简单。Skulpthttp://www.skulpt.org/Skulpt 是一个用 Javascript 实现的在线 Python 执行环境，它可以让你轻松在浏览器中运行 Python 代码。经验证，推荐Trinket，其他项目可能不能成功地运行。进阶：Cloud IDE更新：最初的线上集成开发环境就像一些玩具（如上面介绍的几个），但一些先进技术正使其中一些佼佼者具有生产力，它们也开辟出一个行业——云 IDE（Cloud IDE）或者在线 IDE（Web IDE）。如 Replit、Codeanywhere 提供包括 Python 在内的数十种编程语言在线编译服务。当然，Jupyter Notebook 的本质是一个 Web 应用程序，便于创建和共享文学化程序文档，支持实时代码，数学方程，可视化和 Markdown。因此，你可以自建 Jupyter 云服务。