2021年4月

Jupyter 笔记本将 IPython shell 提升到一个新的高度。

 title=

Jupyter 项目最初是以 IPython 和 IPython 笔记本的形式出现的。它最初是一个专门针对 Python 的交互式 shell 和笔记本环境,后来扩展为不分语言的环境,支持 Julia、Python 和 R 以及其他任何语言。

 title=

IPython 是一个 Python shell,类似于你在命令行输入 python 或者 python3 时看到的,但它更聪明、更有用。如果你曾经在 Python shell 中输入过多行命令,并且想重复它,你就会理解每次都要一行一行地滚动浏览历史记录的挫败感。有了 IPython,你可以一次滚动浏览整个块,同时还可以逐行浏览和编辑这些块的部分内容。

 title=

它具有自动补全,并提供上下文感知的建议:

 title=

它默认会整理输出:

 title=

它甚至允许你运行 shell 命令:

 title=

它还提供了一些有用的功能,比如将 ? 添加到对象中,作为运行 help() 的快捷方式,而不会破坏你的流程:

 title=

如果你使用的是虚拟环境(参见我关于 virtualenvwrapper 的帖子),可以在环境中用 pip 安装:

pip install ipython

要在全系统范围内安装,你可以在 Debian、Ubuntu 或树莓派上使用 apt

sudo apt install ipython3

或使用 pip

sudo pip3 install ipython

Jupyter 笔记本

Jupyter 笔记本将 IPython shell 提升到了一个新的高度。首先,它们是基于浏览器的,而不是基于终端的。要开始使用,请安装 jupyter

如果你使用的是虚拟环境,请在环境中使用 pip 进行安装:

pip install jupyter

要在全系统范围内安装,你可以在 Debian、Ubuntu 或树莓派上使用 apt

sudo apt install jupyter-notebook

或使用 pip

sudo pip3 install jupyter

启动笔记本:

jupyter notebook

这将在你的浏览器中打开:

 title=

你可以使用 “New” 下拉菜单创建一个新的 Python 3 笔记本:

 title=

现在你可以在 In[ ] 字段中编写和执行命令。使用 Enter 在代码块中换行,使用 Shift+Enter 来执行:

 title=

你可以编辑和重新运行代码块,你可以重新排序、删除,复制/粘贴,等等。你可以以任何顺序运行代码块,但是要注意的是,任何创建的变量的作用域都将根据执行的时间而不是它们在笔记本中出现的顺序。你可以在 “Kernel” 菜单中重启并清除输出或重启并运行所有的代码块。

使用 print 函数每次都会输出。但是如果你有一条没有分配的语句,或者最后一条语句没有分配,那么它总是会输出:

 title=

你甚至可以把 InOut 作为可索引对象:

 title=

所有的 IPython 功能都可以使用,而且通常也会表现得更漂亮一些:

 title=

你甚至可以使用 Matplotlib 进行内联绘图:

 title=

最后,你可以保存你的笔记本,并将其包含在 Git 仓库中,如果你将其推送到 GitHub,它们将作为已完成的笔记本被渲染:输出、图形和所有一切(如 本例):

 title=


本文原载于 Ben Nuttall 的 Tooling Tuesday 博客,经许可后重用。


via: https://opensource.com/article/21/3/ipython-shell-jupyter-notebooks

作者:Ben Nuttall 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你 双启动 Windows 和 Ubuntu 或任何其他 Linux 发行版,你可能会注意到两个操作系统之间的时间差异。

当你 使用 Linux 时,它会显示正确的时间。但当你进入 Windows 时,它显示的时间是错误的。有时,情况正好相反,Linux 显示的是错误的时间,而 Windows 的时间是正确的。

特别奇怪的是,因为你已连接到互联网,并且已将日期和时间设置为自动使用。

别担心!你并不是唯一一个遇到这种问题的人。你可以在 Linux 终端上使用以下命令来解决这个问题:

timedatectl set-local-rtc 1

同样,不要担心。我会解释为什么你在双启动设置中会遇到时间差。我会向你展示上面的命令是如何修复 Windows 双启动后的时间错误问题的。

为什么 Windows 和 Linux 在双启动时显示不同的时间?

一台电脑有两个主要时钟:系统时钟和硬件时钟。

硬件时钟也叫 RTC(实时时钟)或 CMOS/BIOS 时钟。这个时钟在操作系统之外,在电脑的主板上。即使在你的系统关机后,它也会继续运行。

系统时钟是你在操作系统内看到的。

当计算机开机时,硬件时钟被读取并用于设置系统时钟。之后,系统时钟被用于跟踪时间。如果你的操作系统对系统时钟做了任何改变,比如改变时区等,它就会尝试将这些信息同步到硬件时钟上。

默认情况下,Linux 认为硬件时钟中存储的时间是 UTC,而不是本地时间。另一方面,Windows 认为硬件时钟上存储的时间是本地时间。这就是问题的开始。

让我用例子来解释一下。

你看我在加尔各答 UTC+5:30 时区。安装后,当我把 Ubuntu 中的时区 设置为加尔各答时区时,Ubuntu 会把这个时间信息同步到硬件时钟上,但会有 5:30 的偏移,因为对于 Linux 来说它必须是 UTC。

假设加尔各答时区的当前时间是 15:00,这意味着 UTC 时间是 09:30。

现在当我关闭系统并启动到 Windows 时,硬件时钟有 UTC 时间(本例中为 09:30)。但是 Windows 认为硬件时钟已经存储了本地时间。因此,它改变了系统时钟(应该显示为 15:00),而使用 UTC 时间(09:30)作为本地时间。因此,Windows 显示时间为 09:30,这比实际时间(我们的例子中为 15:00)早了 5:30。

同样,如果我在 Windows 中通过自动时区和时间按钮来设置正确的时间,你知道会发生什么吗?现在它将在系统上显示正确的时间(15:00),并将此信息(注意图片中的“同步你的时钟”选项)同步到硬件时钟。

如果你启动到 Linux,它会从硬件时钟读取时间,而硬件时钟是当地时间(15:00),但由于 Linux 认为它是 UTC 时间,所以它在系统时钟上增加了 5:30 的偏移。现在 Linux 显示的时间是 20:30,比实际时间超出晚了 5:30。

现在你了解了双启动中时差问题的根本原因,是时候看看如何解决这个问题了。

修复 Windows 在 Linux 双启动设置中显示错误时间的问题

有两种方法可以处理这个问题:

  • 让 Windows 将硬件时钟作为 UTC 时间
  • 让 Linux 将硬件时钟作为本地时间

在 Linux 中进行修改是比较容易的,因此我推荐使用第二种方法。

现在 Ubuntu 和大多数其他 Linux 发行版都使用 systemd,因此你可以使用 timedatectl 命令来更改设置。

你要做的是告诉你的 Linux 系统将硬件时钟(RTC)作为本地时间。你可以通过 set-local-rtc (为 RTC 设置本地时间)选项来实现:

timedatectl set-local-rtc 1

如下图所示,RTC 现在使用本地时间。

现在如果你启动 Windows,它把硬件时钟当作本地时间,而这个时间实际上是正确的。当你在 Linux 中启动时,你的 Linux 系统知道硬件时钟使用的是本地时间,而不是 UTC。因此,它不会尝试添加这个时间的偏移。

这就解决了 Linux 和 Windows 双启动时的时差问题。

你会看到一个关于 RTC 不使用本地时间的警告。对于桌面设置,它不应该引起任何问题。至少,我想不出有什么问题。

希望我把事情给你讲清楚了。如果你还有问题,请在下面留言。


via: https://itsfoss.com/wrong-time-dual-boot/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

50 岁大叔用 FaceApp 冒充“超人气美少女骑手”,揭穿后却得到了更多支持

一位日本车手“宗谷の苍氷”经常在 Twitter 上晒自己的“超人气美少女骑手”照片,“她”在几个月内收获了 1.7 万粉丝。然而,最近“她”参加了一期综艺节目,揭穿了自己其实是一位 50 岁的大叔,所贴出来的照片都是使用著名的换脸应用 FaceApp 处理过的。原因是他一直在 Twitter 分享自己玩机车的照片,但是关注寥寥。在发现 FaceApp 后,他想,人们应该更爱看一个“年轻美丽的女人”,而不是一个“中年大叔”。于是就在几个月内变身成了一位“超人气美少女骑手”,获得了大量关注和互动,有的推文能获得上千点赞。

或许你会觉得被揭穿后,这位“超人气美少女骑手”会被网友们唾弃取关。不料,该节目播出后不仅没有引起观众反感,粉丝数还增加了,一周就新增了 8000 粉丝。网友们表示,这属于 Deepfake 技术的“善意”使用。

看到这篇新闻,想到我主持的“硬核观察”寥寥无几的数据,我不禁陷入了深深的思考。

谷歌支持使用 Rust 编写安卓代码

安卓操作系统大量使用了 Java,有效地保护了安卓平台的大部分内存错误。但是,对于操作系统的下层来说,Java 和 Kotlin 并不适用。虽然谷歌投入了大量精力,防止了大量的 bug 进入安卓操作系统,而适用于此场景的 C 和 C++ 中的内存安全漏洞仍然是最难解决的不正确性来源。

因此,谷歌刚刚宣布,Android 开源项目(AOSP)现在支持 Rust 编程语言来开发操作系统本身。Rust 在实现这种安全性的同时,还能提供与 C 和 C++ 相当的性能。当然,这并不意味着谷歌会用 Rust 重写数百万行安卓代码,而是会逐渐使用 Rust 编写新的代码,因为随着时间的推移,旧代码中的 bug 也在逐渐减少。

看来 Rust 进一步蚕食 C/C++ 领域的机会已经出现了,C/C++ 程序员们,是时候考虑学习 Rust 了。

苹果向 FreeBSD 基金会捐赠了不到 250 美元

根据 FreeBSD 基金会的记录,苹果公司在 2021 年向该基金会捐赠了 100 到 249 美元。而微软捐赠了 500 到 999 美元,思科、Google、英特尔和 NetFlix 捐赠了 1000 到 4999 美元。

为什么世界市值最高的企业只捐赠如此少的钱?苹果的做法其实是基于一项政策:匹配雇员的捐赠。有很多公司采用类似的政策,苹果是其中之一。

感觉 FreeBSD 基金会没有得到应有的关注。

很多时候我与 Markdown 打交道的方式是,先写完一个文件,然后把它转换成 HTML 或其他格式。也有些时候,需要创建一些新的文件。当我要写多个 Markdown 文件时,通常要把他们全部写完之后才转换它们。

我用 pandoc 来转换文件,它可以一次性地转换所有 Markdown 文件。

Markdown 格式的文件可以转换成 .html 文件,有时候我需要把它转换成其他格式,如 epub,这个时候 pandoc 就派上了用场。我更喜欢用命令行,因此本文我会首先介绍它,然而你还可以使用 VSCodium 在非命令行下完成转换。后面我也会介绍它。

使用 pandoc 把多个 Markdown 文件转换成其他格式(命令行方式)

你可以在 Ubuntu 及其他 Debian 系发行版本终端输入下面的命令来快速开始:

sudo apt-get install pandoc

本例中,在名为 md_test 目录下我有四个 Markdown 文件需要转换。

[email protected]:~/Documents/md_test$ ls -l *.md
-rw-r--r-- 1 bdyer bdyer 3374 Apr  7  2020 file01.md
-rw-r--r-- 1 bdyer bdyer  782 Apr  2 05:23 file02.md
-rw-r--r-- 1 bdyer bdyer 9257 Apr  2 05:21 file03.md
-rw-r--r-- 1 bdyer bdyer 9442 Apr  2 05:21 file04.md
[email protected]:~/Documents/md_test$

现在还没有 HTML 文件。现在我要对这些文件使用 pandoc。我会运行一行命令来实现:

  • 调用 pandoc
  • 读取 .md 文件并导出为 .html

下面是我要运行的命令:

for i in *.md ; do echo "$i" && pandoc -s $i -o $i.html ; done

如果你不太理解上面的命令中的 ;,可以参考 在 Linux 中一次执行多个命令

我执行命令后,运行结果如下:

[email protected]:~/Documents/md_test$ for i in *.md ; do echo "$i" && pandoc -s $i -o $i.html ; done
file01.md
file02.md
file03.md
file04.md
[email protected]:~/Documents/md_test$

让我再使用一次 ls 命令来看看是否已经生成了 HTML 文件:

[email protected]:~/Documents/md_test$ ls -l *.html
-rw-r--r-- 1 bdyer bdyer  4291 Apr  2 06:08 file01.md.html
-rw-r--r-- 1 bdyer bdyer  1781 Apr  2 06:08 file02.md.html
-rw-r--r-- 1 bdyer bdyer 10272 Apr  2 06:08 file03.md.html
-rw-r--r-- 1 bdyer bdyer 10502 Apr  2 06:08 file04.md.html
[email protected]:~/Documents/md_test$

转换很成功,现在你已经有了四个 HTML 文件,它们可以用在 Web 服务器上。

pandoc 功能相当多,你可以通过指定输出文件的扩展名来把 Markdown 文件转换成其他支持的格式。不难理解它为什么会被认为是最好的写作开源工具

使用 VSCodium 把 Markdown 文件转换成 HTML(GUI 方式)

就像我们前面说的那样,我通常使用命令行,但是对于批量转换,我不会使用命令行,你也不必。VSCode 或 VSCodium 可以完成批量操作。你只需要安装一个 Markdown-All-in-One 扩展,就可以在一次运行中转换多个 Markdown 文件。

有两种方式安装这个扩展:

  • VSCodium 的终端
  • VSCodium 的插件管理器

通过 VSCodium 的终端安装该扩展:

  1. 点击菜单栏的 终端。会打开终端面板
  2. 输入,或复制下面的命令并粘贴到终端
codium --install-extension yzhang.markdown-all-in-one

注意:如果你使用的 VSCode 而不是 VSCodium,那么请把上面命令中的 codium 替换为 code

第二种安装方式是通过 VSCodium 的插件/扩展管理器:

  1. 点击 VSCodium 窗口左侧的块区域。会出现一个扩展列表,列表最上面有一个搜索框。
  2. 在搜索框中输入 “Markdown All in One”。在列表最上面会出现该扩展。点击 “安装” 按钮来安装它。如果你已经安装过,在安装按钮的位置会出现一个齿轮图标。

安装完成后,你可以打开含有需要转换的 Markdown 文件的文件夹。

点击 VSCodium 窗口左侧的纸张图标。你可以选择文件夹。打开文件夹后,你需要打开至少一个文件。你也可以打开多个文件,但是最少打开一个。

当打开文件后,按下 CTRL+SHIFT+P 唤起命令面板。然后,在出现的搜索框中输入 Markdown。当你输入时,会出现一列 Markdown 相关的命令。其中有一个是 Markdown All in One: Print documents to HTML 命令。点击它:

你需要选择一个文件夹来存放这些文件。它会自动创建一个 out 目录,转换后的 HTML 文件会存放在 out 目录下。从下面的图中可以看到,Markdown 文档被转换成了 HTML 文件。在这里,你可以打开、查看、编辑这些 HTML 文件。

在等待转换 Markdown 文件时,你可以更多地集中精力在写作上。当你准备好时,你就可以把它们转换成 HTML —— 你可以通过两种方式转换它们。


via: https://itsfoss.com/convert-markdown-files/

作者:Bill Dyer 选题:lujun9972 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客《代码英雄》第四季(2):大型机: GE-225 和 BASIC 的诞生音频脚本。

导语:二战后,计算机行业开始蓬勃发展。 通用电气 General Electric (GE)的 CEO 拒绝进入这个市场。但一小队反叛的员工不顾规则,秘密进取。他们创造了 GE 225。这是工程上的一次巨大飞跃,它将计算从一个小众市场推向了主流,为今天的科技行业播下了种子。

在创建通用的 大型机 mainframe 之前,计算机通常是为了执行单一功能而制造的。William Ocasio 回忆了 GE 的第一台专用计算机 ERMA 是如何帮助银行每天处理成千上万的交易的。John Joseph 讲述了 GE 的几名关键员工是如何蒙骗他们的 CEO 建立一个计算机部门的。Tomas Kellner 解释了他们的工作如何产生了一台革命性的机器:GE 225。而 Joy Lisi Rankin 则介绍了 达特茅斯学院 Dartmouth College 的工程师们如何对 GE 225 用于 分时 time-sharing 计算,并利用它创建了 BASIC —— 使计算变得更加方便的重要里程碑。

00:00:05 - Saron Yitbarek

让我们回到几十年前,回到 40 年代末、50 年代初,当时计算机行业有“白雪公主和七个小矮人”的说法。众所周知,“白雪公主”指的是 IBM,而 通用电气公司 General Electric 便是“七个小矮人”之一。这是一家偶尔生产定制机器,但从没在公开市场售卖计算机的公司。

00:00:32

通用计算机是 IBM 的地盘,而 IBM 是 GE 的第二大客户(第一是美国政府)。IBM 经常采购 GE 生产的真空管、电机、变压器和开关等设备,GE 时任总裁 Ralph Cordiner 对此非常满意。所以,每当 GE 的部门主管将转向计算机业务的计划书提交到总裁办公室时,收到的答复都是封面上大写的橙色字母:RJC,Ralph Cordiner 一次又一次地拒绝他们。

00:01:19

事实上,在 Cordiner 担任 GE 总裁兼首席执行官的 13 年时间里,GE 的态度从未改变。即使研究指出计算机是电子工业中增长最快的领域,但 Cordiner 总是用愤怒回应挑战他底线的员工们。然而,一小群叛逆的员工看到了制造大型机的机会,他们不想错失良机。然而他们不知道的是,这台大型机将拯救银行业,打开分时系统的大门,并孕育出新的编程语言。在上一季,我们听了 John Kemeny 和 Thomas Kurtz 在 达特茅斯学院 Dartmouth College 创造 BASIC 的故事,了解到因为 BASIC 是解释型语言,早期的计算机没有足够的资源运行它。像 BASIC 这么好的点子,正等待着像 GE-225 这样合适的设备出现,让它大放异彩。这一章,让我们一起揭开那台差点被扼杀在摇篮中的大型机,那鲜为人知的故事。这台房间大小的机器打开了新世界的大门,它鼓舞了像 史蒂夫•沃兹尼亚克 Steve Wozniak 比尔•盖茨 Bill Gates 这样有远见的代码英雄,鼓舞他们推动个人电脑革命,它的创造在今天仍然意义非凡。我是 Saron Yitbarek,欢迎收听 代码英雄 Command Line Heros ,Red Hat 的原创播客第四季:硬件设备。

00:03:05 - 话音 1

Adams 先生觉得他的新支票账户很好用。与其他公司直接从 埃姆维尔国家银行 Elmvale National Bank 兑现不同,用这个账号可以从自家银行兑现。与其他银行一样,自家银行把支票送到 联邦储备银行 Federal Reserve Bank 去执行兑现。联邦储备银行正是为处理每天来自数百家银行的数千张支票而设立的。

00:03:29 - Saron Yitbarek

1947 年,支票开始流行,银行工作人员的时间耗费在无穷无尽的支票当中。战后经济的蓬勃发展,更是让银行被铺天盖地的支票所淹没。为了腾出时间手工填写账簿,他们被迫下午 2 点就早早关门,但即使这样,他们仍然赶不上进度。他们迫切的希望,能有一台快速、强大的机器,让银行跟上商业发展的步伐。当时 美国银行 Bank of America 每天要处理数百万张支票。下面有请 西北大学凯洛格管理学院 Kellogg School of Management at Northwestern University 的教授 William Ocasio。

00:04:12 - Will Ocasio

难以想象,银行如果没有电脑可用会是什么样子。银行本身就是繁重、文书密集型的行业,美国银行分支机构又那么多。有这么多的信息,他们想要能够快速的传递和处理这些信息。这对于这样一个大公司来说真的很重要。他们知道计算机才是未来的方向。

00:04:39 - Saron Yitbarek

所以,1950 美国银行与 斯坦福研究院 Stanford Research Institute (SRI)签约,希望找到自动处理这些支票的方法。SRI 花了五年时间制造了一台原型机,并将其命名为 电子记录会计机 electronic recording machine accounting 简称 ERMA。ERMA 有超过 100 万英尺的电线,8000 个真空管,重约 25 吨,每天可以处理 5 万笔交易。

00:05:11

美国银行希望 ERMA 马上投入生产。于是向电子制造商们发出 招标请求 request for proposal (RFP),让它们竞标。当然,所有人都认为赢家将是行业巨头,被称作“白雪公主”的 IBM。Baker 博士是通用电气电子部门的副总裁,他知道他的老板 Cordiner 不想涉足 IBM 的领域,也知道计算机是公司的禁区,但当听到美国银行 RFP 的风声时,Baker 看到了其中的机会。他找到了 GE 位于 帕洛阿尔托 Palo Alto 的微波实验室的经理 Barney Oldfield。在这个离 SRI 最近的地方向 Oldfield 提出了一个建议。下面有请 加州大学欧文分校 University of California, Irvine 的战略副教授 John Joseph。

00:06:09 - John Joseph

我认为他是一位成功、进取的企业家,也是精明的经理和商人,他认为这是部门发展的巨大机会。

00:06:27 - Saron Yitbarek

Baker 和 Oldfield 成功说服了他们的老板 Cordiner,这是一台定制的生产控制系统,不是通用计算机,生产它不会让 IBM 不快。并且向他保证,GE 不会涉足计算机行业。

00:06:45 - John Joseph

我觉得 Cordiner 最终屈服的原因是,他给他们提出了一个附加条件:仅此一份合同,不要继续深入商用机市场,只能参与这一次竞标。如果能做到,那你们去竞标吧。

00:07:08 - Saron Yitbarek

尽管 Cordiner 不对竞标抱有任何希望,但还是让他们着手进行 RFP。就让他们发泄一下自己的创造力吧。随后 Oldfield 把他们的提案送到旧金山的银行办公室,等待着他们的答复。

00:07:26

出人意料的事情发生了,IBM 忽然放弃竞标,更出乎意料的是,GE 的提案从所有制造商中脱颖而出。这个不被看好的提案赢得了百万美元的合同。美国银行董事会在 1956 年 4 月 9 日正式接受了这个方案。Baker 在没有经过他的老板 Cordiner 审核的情况下签下了这份价值 3100 万美元的合同,把不可能变成了可能。Oldfield 可以找个地方生产 ERMA 了,当然,他得先成立一个实际的计算机部门。

00:08:19 - John Joseph

接下来轮到他们大显身手了。首先,他们确实成立了计算机部门,虽然听上去只是发一份声明就能搞定的事情。但是在这么大的公司内,把公司的资源和人力调动起来成立一个新部门,真的是一件很了不起的事情。

00:08:46 - Saron Yitbarek

Barney Oldfield 成为计算机部门的主管。这个新部门很像 GE 的另一个制造定制机器的部门: 军事系统部 Military Systems Division 。挑战 IBM 之前,两个部门要先分出胜负。

00:09:06 - Saron Yitbarek

新成立的部门想要低调行事,而 GE 的分权管理方式,刚好适合这样偷偷摸摸的搞事情。只要部门是盈利的,就不会有太多的监管。没人知道他们在做什么。

00:09:26 - John Joseph

当时的情况是,想要在 GE 发展你的小领地,就必须走出去寻找发展的机会。公司没有任何这方面的计划,他是个有冲劲的人,看到了这个机会。他干劲十足,想引领公司走出这重要的一步。

00:09:59 - Saron Yitbarek

更大的挑战还在后头,在哪建立工厂好呢?Palo Alto 的团队想要搬到 Stanford 的工业园区,无奈加州劳动法太严和税收太高,所以这不是个好点子。最终他们选择了 Phoenix。虽然 Phoenix 不是吸引资深工程师的最佳地点,但自有它的优势。

00:10:26 - John Joseph

GE 的总部远在纽约,选择 Phoenix 能让他们远离 GE。在这里,他们可以避开高层的监督,野蛮生长。事关大把钞票,远离 Cordiner 才能获得更大的自主权。

00:10:55 - Saron Yitbarek

Oldfield 在 Phoenix 组建了一支可靠的工程师团队。团队成员有:Bob Johnson、George Snively、Gene Evans 还有 George Jacobi 等人。还有 John Pivoden 负责硬件、Henry Harold 是逻辑设计师、Jay Levinthal 是系统架构师。在这个与世隔绝的桃园胜地,团队氛围非常融洽。他们不仅能担起秘密制造 ERMA 的大任,还能幽默的看待自己的工作。我们找到了他们表演过的一个小短剧,他们称之为“进步的前沿”,这个小短剧某种程度上展示了项目的进展。下面大家一起欣赏一段摘录:

00:11:39 - 话音 2

好了,我们到凤凰城了。

00:11:41 - 话音 3

你终于来了。欢迎来到计算机部门。

00:11:45 - 合音

啥部门?

00:11:46 - 话音 3

计算机部门。

00:11:47 - 话音 4:

计算机是啥?

00:11:49 - 话音 3

哦,有点像是带有圣诞树灯的涡轮机,可以播放音乐。

00:11:53 - 话音 5

是一种快速执行运算的机器。

00:11:56 - 话音 2

我们没必要用它记账,对吧?

00:11:58 - 话音 3

不,但我们得给 Van 一台让他玩,假装我们在用。

00:12:01 - 话音 4:

噢,计算机是啥?

00:12:08 - Saron Yitbarek

对美国银行而言,计算机是可以一天处理 55000 笔交易的机器,这台机器需要对各种大小和状况的支票进行分拣和分发,需要更新客户帐户和余额,需要能识别支票。他们要的不是 1 台,而是 36 台计算机。

00:12:34

项目初期,团队就决定 GE 版本的 ERMA 将使用晶体管来实现。在 50 年代,虽然晶体管比真空管更昂贵,但体积小,与逻辑板的连接器也更简单。原型机的每个真空管和触发器被两个晶体管所取代,使用额外的电阻和电容将它们连接在一起。将 ERMA 设计成软件编程设备,而不是硬件编程设备,是对原型机的另一个重大改变。这样可以简化机器设计,方便以后轻松修改。鉴于大多数 GE 的开发人员都从事硬件工作,他们得再聘请一名程序员。他们选择了一位几年前从纳粹德国逃出,以难民身份来到美国的男子。这名男子名叫 Joseph Weizenbaum。

00:13:34

Weizenbaum 曾在一家名为 Bendix 的公司为 G-15 电脑编程。他甚至为它开发了一种名为 Intercom 100 的伪机器编程语言。尽管除了兑现支票之外,Weizenbaum 没有任何银行相关经验,但他还是领导小小的编程团队,开始编写支持晶体管硬件的软件。该团队还为所有的外围设备编程,包括支票排序器,还有被他们称做 MICR 阅读器的东西。MICR 的意思是“ 磁性墨水字符识别 magnetic ink character recognition ”。你知道支票底部的那行数字吗?那就是 MICR。这行数字由三部分组成,分别表示银行账户、路由号码和支票号码。直到今天,支票上仍有 Weizenbaum 和他的团队在凤凰城的杰作。

00:14:28

值得一提的是。Weizenbaum 后来被认为是 AI(人工智能)的奠基人之一。1958 年 12 月 28 日,在 GE 赢得合同近三年后, 美国银行圣何塞分行 San Jose Branch of Bank of America 实装了第一台 ERMA 机器。虽然这台机器每天只能处理 100 笔交易,但这是朝着正确方向迈出的一步。接下来,他们要兑现每天处理 55000 笔交易的承诺。

00:15:04

到了次年 3 月,该团队不仅兑现了 5.5 万交易的的承诺,还增加了分拣机和打印机,使整个系统每天可以处理 200 万笔交易。美国银行兴奋不已。位于 Phoenix 的电脑部门交付了 32 台命名为 GE-100 的机器,还有更多的订单正在准备中,是时候庆祝了。

00:15:32 - Will Ocasio

美国银行邀请 Cordiner 参加计算机的揭幕仪式。他们甚至邀请了曾在通用电气工作过的 罗纳德•里根 Ronald Reagan 作为他们的电视发言人,这太了不起了。然而,Cordiner 来到揭幕式后,忽然想到:“等一下,这跟之前说的不一样”,然后他生气的开除了 Barney Oldfield。

00:16:00 - Saron Yitbarek

额,Oldfield 就这么被开除了?Phoenix 的团队的明明超额完成了任务,完成了不可思议的壮举,他们的领袖得到的奖励却是被开除?更可气的是,Cordiner 重新任命了部门的负责人,Baker 博士的继任者 Harold Strickland 对电脑并不感兴趣。因为担心会惹 IBM 生气,Cordiner 给 Strickland 下了明确的指示,要他务必管好计算机团队。一个叫 Claire Lasher 的公司职员接替了 Oldfield 的工作。可 Cordiner 不知道的是,Lasher 骨子里也是个反叛者。

00:16:47

通用电气总裁 Cordiner 想要远离商用计算机行业,他从一开始就不想进入这个行业。他想让通用电气尽快回到老样子。他允许生产已有的订单,但用他的话来说:“下不为例!”。后来,当 Cordiner 听到自己银行界的朋友向他称赞 GE-100 的创新时,他的态度发生了转变。所以好吧,他们可以继续在自己创造的沙盒中自由发挥,唯一的限制就是:“不要和 IBM 正面交锋”。

00:17:24

Claire Lasher 的专长是市场营销。他看到了通用计算机市场的蓝海,借鉴了 Oldfield 的经验,制定了自己的计划。那就是两用计算机 200 系列。这个系列既是定制机器,又是通用机器。Claire 将他的商业计划命名为 大观 The Big Look ,他为 Phoenix 团队招募了更多的工程师,其中包括一位曾在纽约从事 GE-312 和 412 过程控制计算机的人,他的名字叫 Arnold Spielberg,是新团队的领导。

00:18:05

看完技术规格后,Arnold 说:“嘿,如果我们调整一下硬件设计方案,我们就能造出通用机器界的大杀器“。于是,Arnold 增加了读卡器、打印机和磁带处理程序等外围设备。仅用 5 个月就完成了原型机,这款新机器被称为 GE-225。有趣的是,Arnold Spielberg 是 史蒂文•斯皮尔伯格 Steven Spielberg 的父亲。为了了解更多关于 Spielberg,以及他在创造 GE-225 这台高层从来不想要的机器中所扮演的角色,我采访了通用电气的 首席故事官 chief storyteller Tomas Kellner。

00:18:51 - Tomas Kelner

Arnold 和他的同事 Chuck Prosper 是这台电脑的设计者,他们一起制造了它。有趣的是,和 GE 以前的计算机不同,GE-225 是商用计算机,它实际上有一个存储系统,并且能够处理数据的输入和输出。

00:19:15 - Saron Yitbarek

GE-225 的哪些技术进步可以归功于 Arnold 呢?

00:19:21 - Tomas Kelner

最有趣的是,这台电脑有自己的内存,能够记录和输出信息。这种存储器可以存储 8000 到 16000 个 20 位字 20-bit word 。它还有一个辅助存储器,大约可以存储 32000 个 20 位字。他之前也用过一些 硬件编程 wire software 设备,它们真的很难使用。这些设备只能编程一次,然后就不能再修改了。GE-225 的进步之处在于,有了数据存储的能力。

00:19:58 - Saron Yitbarek

GE-225 长什么样子?

00:20:02 - Tomas Kelner

说实话,GE-225 看起来不怎么好看,它像一堆盒子。它有存储信息的磁带,有输入终端和输出终端。尽管它被称为小型计算机,但它能占满整个地下室。

00:20:26 - Saron Yitbarek

它能完成哪些其他计算机无法完成的任务呢?

00:20:30 - Tomas Kelner

GE-225 计算机的新特性是支持分时操作。支持多个远程终端访问计算机,多个用户能够同时在上边工作、写代码。据我所知,当时其他的计算机没这种能力。

00:20:58 - Saron Yitbarek

那么谁买了 GE-225?GE-225 的目标客户是哪些人呢?

00:21:02 - Tomas Kelner

通用电气公司内部肯定使用了这些计算机,但全国各地的一些银行也使用了它们,还有 克利夫兰布朗队 Cleveland Browns 也用它们来管理季票销售。有人甚至用其中一台电脑预测了一场全州范围的选举,当然,预测的很准。人们似乎对这台机器非常着迷。Cordiner 让团队在 18 个月内退出计算机行业,但是因为这台计算机的成功,他们搁置了这个计划。

00:21:43 - Saron Yitbarek

重点是,GE-225 不仅是一个银行解决方案。还记得 BASIC 的创始人 John Kemeny 和 Thomas Kurtz 吗?BASIC 就是他们在 GE-225 上创造的。还有另一位代码英雄,他发现了 GE-225 上的编程漏洞。

00:22:03

尽管那时他还在上高中。接下来让 Tomas 告诉你,GE-225 在 BASIC 的开发中起到了什么作用?

00:22:14 - Tomas Kelner

GE-225 上开发了很多有趣的项目,达特茅斯学院的科学家们开发的 BASIC 语言便是其中之一。当时,他们想发明一种使程序员在不同的终端上同时工作的工具。这个工具,就是后来的 BASIC。关于 BASIC 另一件趣事是,通用电气以最快的速度从达特茅斯学院获得了 BASIC 的授权,并开始在内部使用它和预装在 GE-225 上。 史蒂夫•沃兹尼亚克 Steve Wozniak 就是通过 GE-225 接触到 BASIC。当他接触到了一个连接到 GE-225 计算机上运行 BASIC 的终端时,他瞬间就爱上了这个工具,实际上他的处女作就是在上面完成的。

00:23:13 - Saron Yitbarek

那么当你和 Arnold 交谈时,他意识到他对计算机世界的影响了吗?

00:23:18 - Tomas Kelner

对 Arnold Spielberg 的采访真是令人难以置信。那时,他已经 99 岁了。

00:23:23 - Saron Yitbarek

哇哦。

00:23:24 - John Joseph

他记得所有的事情,我们谈到了互联网,我清楚的记得,他说,在 1960 年代,畅想过计算机的未来,但是他从没想到,有一天人们可以通过家用电脑和智能手机,连接到互联网这个庞大的网络中。没想到人们可以随时随地获取信息,航空公司通过计算机控制飞机,控制机器工作。一方面,他对该领域的发展非常感兴趣。另一方面,他也非常谦虚地承认,该领域的发展超过了他在 20 世纪 60 年代的想像。

00:24:12 - Saron Yitbarek

你认为这一切对 史蒂芬•斯皮尔伯格 Steven Spielberg 和他的事业有什么影响?

00:24:18 - Tomas Kelner

史蒂芬还记得曾拜访过 GE 在他们的家乡亚利桑那州 Phoenix 建的工厂,他的父亲带他来工作的地方参观。他当时一头雾水,他爸试图向他解释电脑是什么,能做什么。他的原话是:“这一切对我来说都像是希腊语。”可见他当时是真的听不懂。我问 Arnold 对自己儿子的印象。他说:“我想让他学习工程学,培养他的技术热情,但他却只对电影感兴趣”。

00:25:00 - 话音 6

随后银行业进入电子时代。今天,这种磁性油墨计算机系统让银行能够提供世界上最快、最有效的服务。保险公司、百货公司和公用事业公司也陆续开始使用类似的系统。事实上,所有文书工作都开始使用计算机。但谁知道呢,也许将来,会有更好的解决方案。

00:25:34 - Saron Yitbarek

到 1962 年,GE-225 全面投产,并在推出一年后,迅速成为公司的重磅产品。它不仅为公司盈利,还在商界赢得了很高的声誉。在之后的几个月里,Cordiner 收到了来自全国各地的祝贺信息,他最终改变了他的想法,打算投身计算机行业。他终于正式认可了通用电气计算机部门。

00:26:13

让我们回到与 Tomas 对话中提到的一些事情,我们在上一季的《C 语言之巨变》那一期中也有提到。当达特茅斯学院使用 GE-225 开发一个工具,让程序员可以在不同的终端上同时工作 —— 换句话说,分时系统 —— GE 并没意识到分时的潜力。

00:26:38 - Joy Lisi Rankin

达特茅斯学院使用 GE-225 和 GE DATANET 30 实现了分时系统,此前通用电气从未考虑使用这两种设备来实现这一功能。

00:26:53 - Saron Yitbarek

Joy Lisi Rankin 是一名技术历史学家。

00:26:57 - Joy Lisi Rankin

分时系统的关键在于电脑需要某种方式来停止自己的时钟。分时不是指人们在计算机上共享时间,而是指计算机共享自己的时间来处理多个计算请求。达特茅斯学院的师生们决定,使用 DATANET 30(这是一台 GE 的通信计算机)和 GE-225 共同开发分时系统。

00:27:32 - Saron Yitbarek

因为大型机在 60 年代非常昂贵,批量运行是使用大型机最高效的方法。当时的人编写程序,然后做成打孔卡片以运行程序,他们将卡片交给操作员,然后他们就得等着它和其他程序一起被分批运行。有时要等几个小时,甚至几天。

00:27:58 - Joy Lisi Rankin

在社交电脑和社交网络出现之前,在 Facebook 出现之前,分时系统、BASIC 还有达特茅斯学院和 GE,对开启个人电脑时代发挥了重要作用。通用电气从达特茅斯学院建立的分时系统中吸取经验,将其应用到自己的业务中,迅速建立起了全球分时服务行业。1970 年的某个时候,仅欧洲就有 10 万分时用户。在 20 世纪 70 年代到 80 年代,分时是他们的重要业务。

00:28:44 - Saron Yitbarek

尽管 GE-225 和随后的 200 系列计算机取得了成功,通用电气公司还是在 1970 年将其大型机部门卖给了 Honeywell。但他们仍然决定保持分时共享业务,并在未来几年保持盈利。

00:29:08

Ralph Cordiner 的故事讲完了,就像我们在上一期,数据通用公司发明小型机的故事中看到的,下一代伟大机器,它往往需要一个由顽固的、有远见的叛逆者和一些前瞻的执行官组成的团队来建造。人算不如天算,集思广益往往会有意想不到的收获。

00:29:41 - Saron Yitbarek

下一期,我们将从 GE-225 结束的地方开始,来谈谈大型机如何启发新一代程序员展开个人计算机革命,谈一谈他们对我们的启发。《代码英雄》是红帽的原创播客。访问我们的网站 redhat.com/commandlineheroes 了解更多有关 GE-225 的资料。我是 Saron Yitbarek,下期之前,编码不止!

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-4/mainframes

作者:Red Hat 选题:bestony 译者:2581543189 校对:wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

谷歌赢得十年之久的甲骨文版权战

在甲骨文以 72 亿美元收购了 Sun 微系统公司之后,就对谷歌发起了高达 60 亿美元的诉讼,这一数字后来增加到 90 亿美元。甲骨文认为,谷歌将 37 个 Java API 的“结构、顺序和组织”复制到 Android 中,侵犯了甲骨文的版权。这大约涉及到 11500 行代码。

这场打了十年之久的版权诉讼,已经在巡回法庭和基层法庭之间来回拉锯多次。周一,美国最高法院最终裁定,谷歌在 Android 操作系统中使用甲骨文的编程代码时,并没有侵犯版权。法院表示,“谷歌复制 API 来重新实现用户界面,只取其所需,让用户将其积累的才能投入到一个新的、变革性的程序中,构成了对该材料的合理使用。”

很多人担心甲骨文胜诉或造成 API 版权问题,因而对软件行业造成极大破坏。但是,事实上这次裁决是在假定 API 具有版权的前提下,裁定谷歌属于合理使用而已。

因此,虽然这个决定并没有直接排除 API 可以受版权保护的可能性,但它明确了根据合理使用原则,你不能阻止其他开发者自由使用你的 API 来构建新程序。换句话说,程序员可以继续在他们的项目中使用 API,就像之前几十年一样。

有公司为勒索软件支付了数百万美元后没有及时补救,又被再次勒索

英国国家网络安全中心披露了一则警示性的故事:这家未提及名字的公司成为勒索软件攻击的受害者,以比特币支付了赎金(以当前汇率接近 650 万英镑),以恢复网络和文件。然而,该公司就这样不了了之,没有分析网络犯罪分子是如何渗透到网络中的。不到两周后,当同一个勒索软件团伙用同样的勒索软件感染网络时,该公司最终第二次支付了赎金。

对于大多数受害者来说,他们的首要任务是拿回他们的数据。然而,真正的问题是,勒索软件往往只是一个更严重的网络入侵的可见症状。为了安装勒索软件,网络犯罪分子可能已经能够获得网络的后门访问权。因此,如果没有亡羊补牢的话,他们可以随时回来部署另外一次勒索。

开车即可挖矿,智己汽车正式公布了用户数字资产“原石”挖矿方式

由上汽集团、浦东新区和阿里巴巴集团三方联合投资超过 100 亿元的智己汽车,发布了它的“原石”挖矿方式。购车用户将通过“里程式开采”和“养成式开采”两种方式获取“原石”。所谓的“里程式开采”是指,购车用户基于日常用车产生授权使用的“车辆与驾驶行为数据”获取“原石”。而“养成式开采”是指用户参与 APP 互动任务、品牌共创任务等任务获得抽取“盲盒”。“原石”可被用于兑换各种硬件升级或软件空中升级服务,乃至金融及保险产品;还可享有公司升值的巨大红利。

虽然理论上,通过授权数据使用权而换得一定权益是符合逻辑的,但是这种在危险边缘试探的举动,很难说会不会被喊停。