整理 | 王启隆
透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。
今天是 2023 年 3 月 14 日,在 143 年前的今天,1879 年 3 月 14 日,爱因斯坦诞辰。阿尔伯特·爱因斯坦(Albert Einstein)是出生于德国、拥有瑞士和美国国籍的犹太裔理论物理学家,他创立了现代物理学的两大支柱之一的相对论,也是质能等价公式(E = mc2)的发现者。因为“对理论物理的贡献,特别是发现了光电效应的原理”,他荣获 1921 年度的诺贝尔物理学奖;这一发现为量子理论的建立踏出了关键性的一步。回顾科技史上的 3 月 14 日,这一天还发生过哪些影响深远的事件呢?

查尔斯·莫尔纳(Charles Edwin Molnar)出生于 1935 年 3 月 14 日,他是世界上第一台小型计算机 LINC 的共同开发者,合作者是 Wesley A.Clark。LINC 起源于个人计算机出现之前的几十年。它的开发是美国国立卫生研究院(NIH)计划的结果,该计划在全国选定的生物医学研究实验室放置了 20 个早期 LINC 原型的副本;后来,数字设备公司(DEC)和其他计算机制造商大量生产了 LINC。
学生时代,莫尔纳在罗格斯大学获得了电气工程学士学位和硕士学位,随后于 1962 年在麻省理工学院攻读研究生;在完成 LINC 的开发后,他选择在圣路易斯华盛顿大学任教。莫尔纳也是知名的听觉系统建模先驱,专门研究耳蜗(内耳)功能的数值模型。1996 年去世时,莫尔纳在 Sun Microsystems 与 Ivan Sutherland 一起研究异步电路。
资料来源:维基百科
迈克·拉扎里迪斯(Michael Lazaridis)出生于 1961 年 3 月 14 日,他是一名希腊裔加拿大商人,是黑莓公司的创立者,该公司设计并生产了黑莓系列手机。截至 2011 年 6 月,拉扎里迪斯的净资产估计为 8 亿美元,他被福布斯评为加拿大第 17 位最富有的加拿大人,世界排名第 651 位。
拉扎里迪斯曾担任多个职位,他曾是黑莓公司的联合主席兼联合首席执行官,他与儿时好友、黑莓联合创始人 Douglas Fregin 共同创立了 Quantum Valley Investments,为量子信息科学突破的进一步发展和商业化提供金融和智力资本。1999 年,他创立了 Perimeter 理论物理研究所;2002 年,他创立了量子计算研究所。除此之外,他也是滑铁卢大学的前任校长。

拉扎里迪斯出生于土耳其伊斯坦布尔,父母是希腊人,祖籍是希俄斯岛。1966 年,他全家移居加拿大,定居在安大略省的温莎,当时他只有 5 岁。12 岁时,他在温莎公共图书馆因阅读了图书馆中的每一本科学书籍而获奖。1979 年,他就读于滑铁卢大学电气工程专业。1984 年,拉扎里迪斯响应通用汽车公司的提案请求,协助开发网络计算机控制显示系统,就在他预定毕业的两个月前,他从大学辍学了。
通用汽车公司的合同、一笔小额政府拨款以及来自父母的贷款使拉扎里迪斯有了能够启动黑莓公司的资本。黑莓成立后,公司的第一个成就之一是条形码的开发电影技术;拉扎里迪斯将其中的利润投入到无线数据传输研究中,最终在 1999 年推出了黑莓无线移动设备,并在 2002 年推出了更广为人知的版本——黑莓掌上电脑。1999 年 10 月 21 日,拉扎里迪斯获得滑铁卢大学名誉工学博士学位,2003 年 6 月,成为其第八任校长。拉扎里迪斯还因技术成就获得奥斯卡奖和艾美奖,一生享誉无数。
资料来源:维基百科、百度百科
Windows Internet Explorer 9(IE9)是微软开发的浏览器 Internet Explorer 的稳定版本,于 2011 年 3 月 14 日向公众发布。IE9 支持部分 CSS3 属性,透过 Windows Color System 支持内嵌 ICC v2 或 v4 色彩配置,并且提升了 JavaScript 的性能。IE9 还利用 Direct2D、DirectWrite 和 Media Foundation 实现了硬件加速的图像、包含 Windows Imaging Component 提供的映像功能以及由 XPS 打印管道提供的低有损打印功能。除此之外,IE9 新增新选项卡显示用户常用网站的图标、钉选网站到任务栏、附加组件性能警告、内置下载管理员等功能。
微软只单独发布 Internet Explorer 9,从未打算于任何官方版本的 Windows 系统内预载。与此同时,IE9 只支持 Windows Vista SP2 及 Windows 7,对于当时在亚太地区尚极为普及的 Windows XP 却抱放弃态度,不对任何版本的 Windows XP 进行支持,Windows XP 用户只能更新至 IE 8。此外,IE9 也是最后一个支持 Windows Vista 的版本,IE10 只能运行于 Windows 7 或更新版本。

IE9 在 IE8 发布不久之后开始开发,微软在 IE8 发布之后便开始通过 Microsoft Connect 征集建议。微软在 PDC 2009 首次公布了 IE9,主要谈及 IE9 将如何利用 DirectX 中的硬件加速改善网络应用程序的性能和提升网页排版的质量。随后,微软宣布加入 W3C 的 SVG 工作组,并在 MIX 10 上发布了第一个 IE9 预览版,包含对 CSS 3 和 SVG 支持和一个名为“Chakra”的新 JavaScript 引擎。
经过了多次对 Trident 排版引擎的测试,微软最终得以在 2010 年 9 月 4 日发布 IE9 Beta,这次包含了完整的使用接口。2011 年的今天,微软在德克萨斯州奥斯汀市 SXSW 音乐和电影节发布 IE9 RTM 正式版;这是自 Internet Explorer 2 以来第一个不与 Windows 操作系统捆绑的版本,大多数 Windows 版本对 IE9 的支持于 2016 年 1 月 12 日结束,当时微软开始要求客户使用适用于每个 Windows 版本的最新版本的 Internet Explorer。2020 年 1 月 14 日,微软发布了针对 Windows Server 2008 的 IE9 最终更新,标志着对所有平台的 IE9 支持结束。
资料来源:维基百科、百度百科
2019 年 3 月 14 日,谷歌宣布来自日本的女性程序员岩尾遥在公司云计算的帮助下打破了 π 的位数世界纪录,将 π 精确到小数点后 31.4 万亿位。据说,计算程序在 25 台虚拟机上运行了 121 天,涉及 170 TB 的数据。计算 π 值是衡量计算机算力的一种方法,这种方法始于冯诺伊曼,首次用在了 ENIAC 上。1949 年,ENIAC 将圆周率 π 值精确到了小数点后 2037 位,总共花了 70 个小时。
3 月 14 日也是“国际数学日”。这个节日的昵称是“π 日(Pi Day)”——国际数学日之所以定在 3 月 14 日,也是因为“3.14”是圆周率数值最接近的数字。此前数学界也庆祝过“圆周率日”,但将每年 3 月 14 日定为国际数学日,是 2019 年 11 月 26 日联合国教科文组织第四十届大会上正式宣布的。

几个文明古国均在历史早期就计算出了较精确的 π 的近似值,以便于处理生产的需要。公元 5 世纪时,中国刘宋数学家祖冲之用几何方法将圆周率计算到小数点后 7 位数字。大约同一时间,印度的数学家也将圆周率计算到小数点后 5 位。历史上首个 π 的精确无穷级数公式(莱布尼茨公式)直到约 1000 年后才由印度数学家发现。随后,微积分的出现,很快地将 π 的计算位数推至数百位,足以满足任何科学工程的计算需求。
在 20 和 21 世纪,由于计算机技术的快速发展,借助计算机的计算使得 π 的精度急速提高。美国数学家约翰·伦奇及李维·史密斯在 1949 年利用桌上型计算机计算到 1120 位。同年,乔治·韦斯纳(George Reitwiesner)及约翰·冯·诺伊曼带领的团队利用反三角函数的无穷级数,通过 ENIAC 计算到了小数第 2037 位,这花了 70 小时的电脑工作时间。直到 1973 年,人们终于计算出了小数点后的第一百万位。
1980 年代的两项发明加速了 π 的计算。第一项是人们发现了新的的迭代法去计算 π 的值,其计算速度比无穷级数要快很多;另一项是人们发现了可以快速计算大数字乘积的乘法算法。这类算法在现代 π 的计算上格外的重要,因为电脑大部分的工作时间都是在计算乘法。这类算法包括 Karatsuba 算法、Toom–Cook 乘法及以傅里叶变换为基础的乘法算法(傅里叶乘法)。
在前文提到的 2019 年 3 月 14 日将 π 精确到小数点后 31.4 万亿位之后,人类又在 2021 年 8 月将 π 的十进制精度推算到了 62.8 万亿位之后。当前人类计算 π 值的主要目的是为打破纪录、测试超级计算机的计算能力和高精度乘法算法,因为几乎所有的科学研究对 π 的精度要求都不会超过几百位。按照约尔格·阿恩特及克里斯托夫·黑内尔(Christoph Haenel)的计算,39 个数位已足够运算绝大多数的宇宙学的计算需求,因为这个精确度已能够将可观测宇宙圆周的精确度准确至一个原子大小。
以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物。在《新程序员:我们的技术时代,我们的程序人生》中,来自四十余位技术人跨越半个世纪,用代码敲出一个个真实的程序人生故事!
扫描或点击《新程序员:我们的技术时代,我们的程序人生》订阅!

这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack
我使用RVM安装Ruby-2.1.5并再次运行bundle。现在pggem不会安装,我得到这个错误:geminstallpg-v'0.17.1'----with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configBuildingnativeextensionswith:'--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config'Thiscouldtakeawhile...ERROR:Error
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包
目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks