整理 | 王启隆
透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。
今天是 2023 年 3 月 28 日,1897 年 3 月 28 日,意大利数学家布拉里·福蒂在巴洛摩数学会上提出了的悖论,这个悖论表达了布拉里对于序数理论的质疑和矛盾,人们随后也用他的名字对悖论进行了命名;布拉里·福蒂是近代第一个公开发表的数学悖论,它引起了数学界的兴趣,并导致了以后许多年的热烈讨论。 有几十篇文章讨论悖论问题,极大地推动了对集合论基础的重新审查。回顾计算机历史上的 3 月 28 日,这一天还发生过哪些关键事件呢?

多夫·弗罗曼(Dov Frohman)出生于 1939 年 3 月 28 日,他是以色列电气工程师和商业主管,是英特尔公司前副总裁,可擦写可编程只读存储器(EPROM)的发明者;弗罗曼的贡献发展了英特尔在以色列地区的业务,他成为了英特尔以色列公司的创始人和第一任总经理。他还是《Leadership the Hard Way》一书的作者(与罗伯特·霍华德合著)。
弗罗曼出生于阿姆斯特丹,当时距二战爆发还有五个月。他的父母是波兰犹太人,他们在 1930 年代初移民到荷兰,以逃避波兰日益高涨的反犹太主义;1942 年,在德国入侵低地国家之后,随着纳粹对荷兰犹太社区的控制收紧,他的父母决定将他们的孩子交给荷兰抵抗运动的熟人,父母将年幼的弗罗曼安置在一个村庄,而自己却在大屠杀中被谋杀。
战后,弗罗曼由以色列的亲戚安置,在孤儿院作为“父母在战争中丧生的犹太儿童”度过了几年;在犹太国家成立后,弗罗曼于 1949 年移居以色列。他被亲戚收养,在特拉维夫长大,曾在以色列军队服役。1959 年,他就读于以色列理工学院,攻读电气工程。1963 年从以色列理工学院毕业后,弗罗曼前往美国攻读硕士和博士学位。1965 年,在加州大学伯克利分校获得硕士学位后,弗罗曼开始在仙童半导体公司的研发实验室工作。

弗罗曼恰逢仙童半导体公司分崩离析的时刻,在完成博士学位后,他跟随前飞兆半导体经理戈登·摩尔(Gordon Moore)、罗伯特·诺伊斯(Robert Noyce)和安德鲁·格鲁夫(Andrew Grove)来到他们在前一年成立的英特尔公司。正是在对早期英特尔产品的故障进行故障排除时,弗罗曼于 1970 年提出了 EPROM 的概念,这是第一个既可擦除又易于重新编程的非易失性半导体存储器。
当时,有两种类型的半导体存储器。随机存取存储器(RAM)芯片易于编程,但当电源关闭时,芯片会失去电荷(以及芯片上编码的信息)。用行业术语来说,RAM 芯片是不稳定的。相比之下,只读存储器(ROM)芯片是非易失性的——也就是说,芯片中编码的信息是固定不变的。但对 ROM 存储器进行编程的过程既费时又麻烦。通常,数据必须在工厂“烧录”,而一烧录就要花费数周的时间;且芯片一旦被编程,ROM 芯片中的数据就不能被改变。
而 EPROM 不一样,它是非易失性和可重新编程的。它是导致闪存技术创新和发展的催化剂。EPROM 也是个人计算机行业的一项重要创新。英特尔创始人戈登·摩尔称其“在微型计算机行业的发展中与微处理器本身一样重要”。直到 1980 年代,EPROM 仍然是英特尔最赚钱的产品。发明 EPROM 后, 弗罗曼离开英特尔,在加纳库马西的科技大学开始教授电气工程;他于 1973 年回到英特尔,但此时的他已经有了一个长期的愿景:回到以色列,在那里建立一个高科技研究中心。

1974 年,弗罗曼帮助英特尔在海法建立了一个小型芯片设计中心——这也是英特尔在美国以外的第一个设计中心。回到以色列后,弗罗曼在耶路撒冷希伯来大学应用科学学院任教,同时担任英特尔的顾问。1985 年,在与以色列政府就在耶路撒冷建立半导体工厂进行谈判后,英特尔第一次在美国以外的地方建立了分部——英特尔以色列;弗罗曼当即决定离开希伯来大学,成为英特尔以色列的总经理。
在 2022 年的今天,英特尔以色列成为了该公司全球无线技术研发的总部。它开发了公司的迅驰移动计算技术,为笔记本电脑和先进的微处理器产品提供动力。它也是芯片制造的主要中心。2008 年,该公司在 Kiryat Gat 开设了第二家半导体工厂——投资 35 亿美元,拥有 7000 名员工。2007 年,英特尔以色列的出口总额为 14 亿美元,约占以色列电子和信息产业出口总额的 8.5%。弗罗曼于 2001 年从英特尔退休,2018 年,他被任命为计算机历史博物馆研究员,他还是以色列科学与人文学院的成员。
资料来源:维基百科

1986 年 3 月 28 日,在治疗艾滋病流行的早期进展中,新泽西州罗氏实验室的一个团队在《科学》杂志上发表了一篇文章,讨论了 HIV 蛋白酶分子的理论基础,随即成为头条新闻。计算机投入医疗研究已经有了许多年的历史,而设计针对病毒的分子是药物研究人员使用计算机的众多方法之一。
艾滋病毒在受感染者中继续变异,在此期间,可以根据其不断变化的遗传状况确定感染的来源和时间线。与此同时,目前的计算机模拟已经能够从数据中成功地推断和预测艾滋病毒的传播。艾滋病毒的快速变异能力是疫苗难以战胜它的主要原因之一,但它对流行病学研究也很有价值。根据流行病学资料,艾滋病毒感染与血液、母婴传播和性接触有关。这些科学家使用系统发育分析来研究细胞之间复杂的进化关系,从而进一步估计艾滋病毒是如何传播的。
计算机的力量在如今的这场疫情也发挥了不可忽视的力量,而疫情本身也对计算机行业产生了前所未有的影响;疫情期间,当大部分人的注意力转移到线上,互联网科技得以广泛应用;科技产品“数据化”、线上教育的留学、商家转战线上、医疗的自动化……你认为未来计算机行业的发展趋势会是怎么样的呢?欢迎在评论区分享你认为有可能的发展方向。
以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物。在《新程序员:我们的技术时代,我们的程序人生》中,来自四十余位技术人跨越半个世纪,用代码敲出一个个真实的程序人生故事!
扫描或点击《新程序员:我们的技术时代,我们的程序人生》订阅!

我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
假设我在调试时停在了点上:defget_databyebug=>@cache||=calculate_dataend而@cache有值,所以step函数calculate_data不会被执行。但是我需要在这个确切的运行时点检查calculate_data内部发生了什么。我可以只执行calculate_data并在控制台输出中查看其结果,但是我可以从调试控制台执行函数并同时进入它?(使用byebug或其他一些调试工具)。目标-是在任意时间检查calculate_data逻辑,特别是当get_data调用时@cache已填充。 最佳答案
整理|王启隆透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。今天是2023年4月26日,在2017年的今天,中国首艘国产001A型航空母舰在大连完成了下水,从开工到下水,历时3年多时间。回首过去,眺望未来,在科技历史上的每个4月26日里,还发生过哪些影响深远的关键事件呢?1938年4月26日:编程校验领域图灵奖得主ManuelBlum出生曼纽尔·布卢姆(ManuelBlum)出生于1938年4月26日,他是委内瑞拉的计算机科学家、卡内基梅隆大学的教授,因对计算复杂度理论做出的贡献,以及在密码学和编程校验上的应用而获1995年图灵奖。布卢姆出生于委内瑞拉的一个犹太家庭,他曾在麻省理工学
文章目录🔥Linux系统目录结构🔥Linux用户和用户组🔥Linux用户管理🔥Linux系统目录结构文件系统组织结构⭐ /lib系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。⭐ /lost+found一般情况下是空的,当系统非法关机后,这里就存放了一些文件。⭐ /etc所有系统管理所需要的配置文件和子目录my.conf⭐ /usr用户的很多应用程序和文件都放在这个目录下。⭐ /bin是Binary的缩写,这个目录存放着经常使用的命令⭐ /sbin(usr/sbin、/usr/local/sbin)sbin就是peruse
“架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概
我有一个通过IMAP处理传入电子邮件的Rails应用程序。当前使用一种方法来搜索TMail对象的各个部分以查找给定的content_type:defself.search_parts_for_content_type(parts,content_type='text/html')parts.eachdo|part|ifpart.content_type==content_typereturnpart.bodyelseifpart.multipart?ifbody=self.search_parts_for_content_type(part.parts,content_type)ret
我需要计算我的Rails3应用中两个字段的乘积之和(即相当于Excel的sumproduct函数)。Rails中是否有一种方法可以帮助解决这个问题?如果没有,那么使用自定义sql的Rails代码是什么?例如,酒店有很多房间。房间具有sqft(平方英尺)、数量(该尺寸)和hotel_id的属性。我想计算给定酒店中所有房间的总平方英尺。在SQL中,对于Hotel.id=8,我相信以下语句会起作用:selectsum(rooms.sqft*rooms.quantity)asSumSqftfromroomsinnerjoinhotelsonrooms.hotel_id=hotels.idwhe
我正在使用rubyxmpp4r库通过openfire服务器实现多用户群聊应用程序。我已经成功地在openfire服务器上创建了聊天室。如果用户使用openfire凭据加入聊天室,它不会返回以前的群聊历史,它只返回几条消息,因为我正在使用add_message_callback()方法。下面是openfire群聊历史设置:**ShowEntireChatHistory(向加入房间的用户显示整个聊天记录。)--True我在这里错过了什么?任何人都有示例代码来获取以前的组历史记录? 最佳答案 我运行了一个Wildfire服务器(ope
我想知道是否可以从我执行ruby脚本的位置更改当前终端目录。例如,如果我在终端中从$HOME执行脚本,我想在脚本末尾进入$HOME/mydir.我已经尝试了几件事,但我总是在启动脚本的同一目录中找到。我尝试过的事情:Dir.chdir(mydir)%[cdmydir]它们实际上会改变目录,但只是在脚本执行的线程中。当脚本结束时,我在终端中的当前位置与启动脚本之前的位置相同。我在SO中发现了类似的东西,但它是Python-relatedreact似乎是否定的。你可能会问为什么?我目前正在参与一个命令行应用程序(使用gli),作为起点,它需要一个项目文件夹。所以我的第一个命令是这样的:
这只是一个假设性的问题,如果您没有Array和Hash类,是否有任何方法可以在纯Ruby中实现Array类?怎么办? 最佳答案 是的,我们可以!classMyArrayincludeEnumerabledefinitialize@size=0enddef[1,2]这通过在对象上创建实例变量@a0、@a1等来表示数组索引0、1等来工作。它具有恒定的时间长度和索引操作。其余的操作(删除等)需要付出更多的努力才能实现,但这是绝对可行的。请注意,索引操作的常量时间属性取决于底层Ruby运行时为实例变量使用适当的数据结构。