2021年5月

有几种方法可以测试和提高你的打字速度。你可以使用在线工具,在桌面上安装专门的应用,或者在 Linux 终端测试。

Linux 终端?是的。从 浏览互联网玩游戏,你可以在强大的 Linux 终端中做 许多有趣的事情。测试你的打字速度就是其中之一。

Ttyper:基于终端的打字测试工具

Ttyper 是一个用 Rust 编写的工具,允许你练习打字。

它给出了一些最常见的英语单词的随机选择。打出的正确单词用绿色突出显示,错误的用红色突出显示,而且这是实时发生的。你可以按退格键纠正单词,但这将导致分数下降。

当你打完所有显示的单词后,你会得到你的打字速度(每分钟字数)、准确率和正确按键数的结果。如果你没有心情打完全部,你可以使用 Ctrl+C 退出 Ttyper。

你可以在这个由开发者录制的 GIF 中看到 Ttyper 的操作。

默认情况下,你有 50 个单词可以练习,但你可以用命令选项来扩大。你还可以使用一个自定义的文本文件,用它的内容来练习打字。

命令内容
ttyper200 个最常见的英语单词中的 50 个
ttyper -w 100200 个最常见的英语单词中的 100 个
ttyper -w 100 -l english10001000 个最常见的英语单词中的 100 个
ttyper text.txt内容来自用空格分隔的 test.txt

Ttyper 也专注于开发者。它支持几种编程语言,如果你是一个程序员,你可以用它来测试和改进你在编码时的打字速度。

截至目前,支持 C、Csharp、Go、HTML、Java、JavaScript、Python、Ruby 和 Rust 语言。

你可以通过以下方式改变语言:

ttyper -l html

顺便说一下,“Ttyper” 中的双 “T” 不是一个打字错误。它是故意的,因为TTY(TeleTYpewriter)代表 终端模拟器,表明它是一个终端工具。

在 Linux 上安装 Ttyper

Ttyper 是用 Rust 构建的,你可以把它安装在任何支持 Rust 编程语言及其 Cargo 软件包管理器的 Linux 发行版上。

Cargo 相当于 Python 中的 PIP。它有一个中央仓库,你可以用 Cargo 轻松地下载和安装 Rust 包和它的依赖项。

我将添加在基于 Ubuntu 的 Linux 发行版上安装 Cargo 的说明。你应该可以用你的发行版的包管理器来安装它。

请确保你在 Ubuntu 上启用了 universe 仓库。你可以用这个命令来安装 Cargo:

sudo apt install cargo

它将安装 Cargo 包管理器和 Rust 语言的 rustc 包。

当你的系统安装了 Cargo,就可以用这个命令来安装 Ttyper:

cargo install ttyper

这将在你的主目录下的 .cargo/bin 目录中添加一个可执行 Rust 文件。它将在软件包安装输出的最后显示。

你可以切换到这个目录:

cd ~/.cargo/bin

并运行 ttyper 可执行文件:

./ttyper

当然,这不是很方便。这就是为什么你应该 把这个目录添加到 PATH 变量中。如果你熟悉 Linux 的命令行,你可以很容易做到这一点。

不幸的是,我不能在这里给你确切的命令,因为你需要提供这个目录的绝对路径,而这个路径名称会根据你的用户名而不同。例如,对我来说,它是 /home/abhishek/.cargo/bin。这个绝对路径对你来说会有所不同。

我建议阅读 绝对路径和相对路径 以了解更多关于这个问题的信息。

你可以通过删除二进制文件来卸载 Ttyper,或者用 Cargo 命令来卸载:

cargo uninstall ttyper

如果你喜欢这个灵巧的终端工具,在 GitHub 上给它加星 以感谢开发者的努力。

正如我在本文开头提到的,你可以在终端做很多很酷的事情。如果你想给你的同事一个惊喜,也许你可以试试 完全在 Linux 终端中制作幻灯片。


via: https://itsfoss.com/ttyper/

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

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

鸿蒙 OS 2.0 将陆续开源

据开放原子开源基金会消息,全新的鸿蒙 OpenHarmony 2.0 将从今天起到 6 月 2 日陆续开源!据了解,OpenHarmony 2.0 大约有 460 万行关键代码,相当于 Android 10 1525 万行的 30%,同时有大约 1.8 万个关键 API,相当于 Android 10 3.6 万多个的 50%。

OpenHarmony 2.0 有多个分支版本,本次开放的 L2 是一个纯粹的鸿蒙版本,没有任何安卓代码,可以跑所有的鸿蒙应用,能打电话、上网,但是应用不太多。另外还有 L3-L5 版本,是兼容安卓的双框架,能够运行安卓应用,也将很快开源。

据报道,华为鸿蒙操作系统最快将于 6 月份正式开始规模推送,预计到今年年底将有至少 3 亿设备搭载鸿蒙系统。

关于鸿蒙的代码一直有很多争议,我觉得开源后,大家可以对着代码来喷。

Linux 内核 5.13 将原生支持苹果 M1 芯片

现在 Linux 用户也可以在 Apple Silicon 上运行他们喜爱的操作系统了,因为最新的 Linux 内核 5.13 RC 引入了对 M1 芯片的支持。苹果 Silicon 上的 Linux 现在可以像其他原生解决方案一样受益于同样的性能提升,尽管目前某些驱动还需要进一步打磨,包括图形方面。硬件加速视频还不支持,不过这只是 Linux 内核的 RC 版本,所以进一步的改进应该是早晚的事。

苹果说,“M1 的 CPU 性能提高了 3.5 倍,GPU 性能提高了 6 倍,机器学习速度提高了 15 倍,同时使电池寿命比上一代 Mac 长 2 倍。”

感觉 M1 芯片真香,难怪 Linux 会积极支持。

Windows 10 的下代操作系统叫什么?网友高票投给 Windows

在 WinCentral 的投票中,有近 2000 人参与投票,备选项有“就叫 Windows 就好”、“Windows 11”、“Windows X”、“Windows 10X”、“Windows 21”、“Windows 10.1”等。结果,最高票被“就叫 Windows 就好”拿下,得票率 65.5%。当然,这只是一次民间投票,微软对 Windows 10 系统今后如何规划,现在看来还是个谜。

我觉得微软在版本号上还算克制,不过确实网友的建议不错,微软该考虑一下。

作为谷歌地图的潜在替代品,OpenStreetMap 是一个由社区驱动的地图项目,在本文中我们将了解更多关于这个开源项目的信息。

OpenStreetMap(OSM)是一个可自由编辑的世界地图,任何人都可以对 OpenStreetMap 贡献、编辑和修改,以对其进行改进。

查看地图并不需要帐号,但如果你想要编辑或增加地图信息,就得先注册一个帐号了。

尽管 OpenStreetMap 以 开放数据库许可证 授权,可以自由使用,但也有所限制 —— 你不能使用地图 API 在 OpenStreetMap 之上建立另一个服务来达到商业目的。

因此,你可以下载地图数据来使用,以及在标示版权信息的前提下自己托管这些数据。可以在 OpenStreetMap 的官方网站上了解更多关于其 API 使用政策版权 的信息。

在这篇文章中,我们将简单看看 OpenStreetMap 是如何工作的,以及什么样的项目使用 OpenStreetMaps 作为其地图数据的来源。

OpenStreetMap:概述

OpenStreetMap 是很好的谷歌地图替代品,虽然你无法得到和谷歌地图一样的信息水平,但对于基本的导航和旅行来说,OpenStreetMap 已经足够了。

就像其他地图一样,你能够在地图的多个图层间切换,了解自己的位置,并轻松地查找地点。

你可能找不到关于附近企业、商店和餐馆的所有最新信息。但对于基本的导航来说,OpenStreetMap 已经足够了。

通常可以通过网页浏览器在桌面和手机上访问 OpenStreetMap 的网站 来使用 OpenStreetMap,它还没有一个官方的安卓/iOS 应用程序。

然而,也有各种各样的应用程序在其核心中使用了 OpenStreetMap。因此,如果你想在智能手机上使用 OpenStreetMap,你可以看看一些流行的谷歌地图开源替代:

MAPS.MEOsmAnd 是两个适用于安卓和 iOS 的开源应用程序,它们利用 OpenStreetMap 的数据提供丰富的用户体验,并在应用中添加了一堆有用的信息和功能。

如果你愿意,也可以选择其他专有选项,比如 Magic Earth

无论是哪种情况,你都可以在 OpenStreetMap 的官方维基页面上看一下适用于 安卓iOS 的大量应用程序列表。

在 Linux 上使用 OpenStreetMap

在 Linux 上使用 OpenStreetMap 最简单的方法就是在网页浏览器中使用它。如果你使用 GNOME 桌面环境,可以安装 GNOME 地图,它是建立在 OpenStreetMap 之上的。

还有几个软件(大多已经过时了)在 Linux 上使用 OpenStreetMap 来达到特定目的,你可以在 OpenStreetMap 的 官方维基列表 中查看可用软件包的列表。

总结

对于最终用户来说,OpenStreetMap 可能不是最好的导航源,但是它的开源模式允许它被自由使用,这意味着可以用 OpenStreetMap 来构建许多服务。例如,ÖPNVKarte 使用 OpenStreetMap 在一张统一的地图上显示全世界的公共交通设施,这样你就不必再浏览各个运营商的网站了。

你对 OpenStreetMap 有什么看法?你能用它作为谷歌地图的替代品吗?欢迎在下面的评论中分享你的想法。


via: https://itsfoss.com/openstreetmap/

作者:Ankush Das 选题:lujun9972 译者:rakino 校对:wxy

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(3):个人计算机 —— Altair 8800 和革命的曙光音频脚本。

导语:因为 Altair 8800,我们今天才能在大多数家庭中拥有计算机。它最初是为业余爱好者设计的,但是一些有远见的人看到了这个奇怪的小机器的巨大潜力,并努力使其他人也看到。他们创造的东西所带来的影响远远超出了任何人的想象。

Forrest Mims 告诉了我们他的联合创始人 Ed Roberts 是如何计划拯救他们陷入困境的电子公司的。他的想法是什么?一台为业余爱好者制造的微型计算机。那台计算机让 比尔•盖茨 Bill Gates 保罗•艾伦 Paul Allen 打了一个决定性的电话。Dan Sokol 和 Lee Felsenstein 回顾了 Altair 8800 在自制计算机俱乐部的揭幕,以及它如何激发了 史蒂夫•沃兹尼亚克 Steve Wozniak 的 Apple I 的灵感。然后,我们在 John Markoff 那里听到了一个臭名昭著的软件抢劫案,该案为代码是否应该是专有的辩论创造了条件。最后,Limor Fried 回顾了这个故事如何继续影响今天的开源硬件运动。

00:00:04 - Saron Yitbarek

1974 年 12 月一个严寒结霜的下午,两个年轻人走在哈佛广场上,他们可能正在谈论着他们最感兴趣的计算机话题。

00:00:19

当他们经过报摊,看到了《 大众电子 Popular Electronics 》杂志从其他杂志中露出的蓝色字体,他们停下来看了一下,杂志封面上是一个金属盒的照片,在它的正面有十几个开关和指示灯。标题上写着:“世界上第一台小型计算机套件,Altair 8800。” 这个盒子看上去不太像样,裸露着金属,就像是给业余爱好者和修理工们准备的。但对这两个人来说却不是这样,更像是他们一直在等待的机器,因为他们正好有适合这种新硬件的完美软件。同时,他们也有一些忐忑,如果别人也有这种想法并已经开始实施的话,那该怎么办呢?必须尽快行动起来了。这两位代码英雄是谁呢? 比尔•盖茨 Bill Gates 保罗•艾伦 Paul Allen 。此时他们并不知道,Altair 8800 将会是打开个人计算机革命大门的机器,它将永远的改变我们的生活。这台设备还做到了另一件事,在一个神秘小偷的帮助下,它将引发自由软件和专有软件之间的争论,我们稍后会讲到。

00:01:50

在硬件这一季的第一集,我们了解了 Eagle 这样的分时小型机。在第二集,我们了解了 GE-225 大型机。但它们仍然受制于自身的尺寸、价格以及处理能力。而这一集讲的是,缩小到 微型计算机 micro computer 的所有东西。这一切,都始于邮寄给业余爱好者的 DIY 套件,就像是《大众电子》的那张划时代的封面里面的一样。

00:02:23

这些简单的套件,激发出了一种革命性的想法:计算机可以放在你的家里。这台计算机是属于你的,你可以用来做实验。一个全新的、面向大众的硬件产品 —— 个人计算机 personal computer (PC) —— 诞生了。我是 Saron Yitbarek,这里是《代码英雄》,一款红帽公司的原创播客。

00:02:51

让我们回到上世纪 60 年代末,在新墨西哥州的沙漠里,Altair 8800 诞生了。一个名叫 Ed Roberts 的人与人合伙创立了一家小型电子零件公司 MITS(意即“ 微型仪器和遥测系统 Micro Instrumentation and Telemetry Systems ”)。通过爱好者杂志,他们可以将这些小玩意卖给痴迷于无线电遥控飞机和火箭模型的新市场。

00:03:21

到 1971 年,Ed 独立经营着公司。他决定将重心转向电子计算器,这在当时是一个全新的市场。MITS 准备提供第一台爱好者计算器,但是 Ed 失算了。这位是他最初的联合创始人,Forrest Mims。

00:03:42 - Forrest Mims

像索尼、夏普和德州仪器这样的公司,他们正在制造专业的袖珍计算器,并以低于 Ed 的价格出售。这是一场灾难,Ed 濒临破产,并且不知道该怎么办。

00:03:57

有一天,他了解到英特尔公司开发了一种新型的微处理器,并在《 电子杂志 Electronics Magazine 》上刊登了广告。我仍然记得那则广告,那款微处理器叫做 Intel 8080。

00:04:09 - Saron Yitbarek

Ed 大量购买了英特尔微处理器,因为当时没有人购买它。他围绕这个微处理器设计了一台完整的计算机。

00:04:23 - Forrest Mims

有一天晚上,他给我打电话说:“我有一个新玩意儿想让你看看。”于是我骑自行车去了 MITS。桌上有一个蓝色的盒子。他说,“看这个。”我说,“这是什么?”他说,“这是一台微型计算机。”我说,“你在开玩笑吧。”他说,“不,这是一台微型计算机,《大众电子》杂志已经认可了,并且想要刊登一篇关于它的文章。”

00:04:43 - Saron Yitbarek

Ed 的目标是创造一个非常基本的计算机套件,同样提供给那些模型飞机和火箭的爱好者市场。他通过《大众电子》杂志来邮购销售这个套件。当你收到这个套件时,会获得一个装满金属零件的袋子,里面有一个装有最重要的 Intel 8080 微处理器芯片的特殊管子。Ed 把整个套件的价格定在 400 美元左右。

00:05:14 - Forrest Mims

他在考虑一个问题,“你觉得能卖出多少台?”他问道。基于之前我们通过《大众电子》杂志销售东西的经验,我说,“好吧,Ed,顶天了也就几百台吧。”我这么说的时候,他看起来好难过。直到今天我都为此感到内疚。在《大众电子》杂志刊登了这个套件之后,他的小楼前的停车场里挤满了汽车。最后竟然卖了 5000 台这样的计算机。它被命名为 Altair 8800。当时 Ed 不知道该怎么称呼它,这个名字还是《大众电子》杂志的工作人员想出来的。

00:05:50 - Saron Yitbarek

Altair 8800 是 Ed Roberts 为了拯救他的公司而做的拼死一搏,这是他做过的最好的决定。他做了一件真正有意义的事情,但他当时并没有意识到。通过将 Altair 以一个合适的价格投放到市场,他让自己的机器展现给了比铁杆电子爱好者更大的受众群体面前。他的 Altair 开拓了一个全新的市场 —— 那些从未想过能拥有自己计算机的消费者群体。

00:06:28

更重要的是,他们可以修理自己的计算机。这是一个大时代的开端,但它还缺少一个部分,软件。这个硬件需要正确的软件才能活起来。

00:06:51

回到 马萨诸塞州 Massachusetts 的剑桥,比尔•盖茨和保罗•艾伦刚刚在最新一期《大众电子》杂志的封面上看到了 Altair 8800。在他们走过哈佛广场的那段决定性路程之前,保罗一直在向比尔抱怨那些 Intel 8080 的新芯片,他在寻找使用这些芯片创建软件的方法。

00:07:16

比尔和保罗使用 BASIC 编程。正如我们在上一集中知道的,如果没有 GE-225 主机,BASIC 永远不会诞生并流行起来。对于比尔和保罗来说,BASIC 的易用性使得它成为了理想的语言,可以提供给那些受限于内存和处理能力的硬件,比如 8080。

00:07:38

当他们看到杂志封面上封装着 8080 芯片的 Altair 时,他们意识到可以用 BASIC 编写软件来支撑这个机器。他们很快联系了 MITS 的 Ed Roberts。Forrest Mims 还记得那个电话。

00:07:56 - Forrest Mims

保罗说,“我们得给这个公司打个电话,告诉他们我们已经有 BASIC 了。”盖茨同意了,但他不想亲自打这个电话,因为他的声音实在太年轻了,而且他看起来也像个青少年。所以保罗•艾伦打电话给 Ed:“我们已经为你的 Altair 准备好了 BASIC。”Ed 说,“每个人都告诉我他们已经搞好了 BASIC。如果你弄好了它,就把它送过来,合适的话,我会考虑的。”

00:08:17

他们并没有 BASIC。他们花了一个月的时间在麻省理工学院或哈佛大学都不知情的情况下借用了计算机时间,为从没有见过的 Altair 开发了 BASIC 软件。

00:08:27 - Saron Yitbarek

比尔和保罗知道他们有能力为 Altair 编写代码。但实际上,他们还没有开始编写。所以他们日以继夜地为这个机器改写 BASIC。使用公布的规范,他们在 DEC PDP-10 主机上创建了一个仿真器,以此来仿真 Altair,然后开发了一个 BASIC 解释器。

00:08:53

没有 BASIC 解释器的 Altair 8800 本质上就是一个带有开关和指示灯的金属盒子,并没有什么用。然而随着 BASIC 解释器的加入,这台机器突然有了全新的未来。

00:09:10

仅仅几个星期后,也就是 1975 年 3 月,代码就准备好了。保罗飞往 阿尔伯克基 Albuquerque ,准备亲手将演示程序交给 Ed Roberts。前一天晚上比尔一夜没睡,以确保代码没有任何的错误。他把最终的代码打在纸带上,并在航班起飞前交给保罗。在三万英尺的高空,保罗突然意识到,他们忘了一件事。

00:09:39 - Forrest Mims

他意识到,他们没有开发出 编码器 Coder ,或者说 引导记录器 bootstrap logger ,来帮助计算机读取程序。他在飞机上写了那个代码。保罗•艾伦就是这么才华横溢。

00:09:53 - Saron Yitbarek

现在他已经准备好了。在第二天进行演示的时候,保罗将首次在一台真正的 Altair 上测试他们的代码。1994 年比尔•盖茨在一段旧影片中,谈到保罗•艾伦在 MITS 装上纸带时所发生的事。

00:10:13 - 比尔•盖茨

第一次,由于某些原因,代码并没有工作。当第二次加载它时,它就顺利的工作了。然而这只是仿真器,速度非常的慢,需要大量的指令才能完成一条指令。因此,实际上,即使是一个非常小的微处理器,真实的机器也比我们的 PDP-10 仿真器要快,大约快五倍。

00:10:32

所以,对保罗来说,当它最终出现并显示出 “READY” 提示符时,保罗输入了一个程序,“打印二加二”,它成功了。然后他让它打印出类似于平方和求和之类的结果。他和这家公司的负责人 Ed Roberts 一起坐在那里都惊呆了。我的意思是,保罗惊讶于我们的那部分能够工作,而 Ed 则惊讶于他的硬件能够工作。

00:10:55 - Saron Yitbarek

保罗•艾伦和比尔•盖茨的 BASIC 解释器在 Altair 上工作得非常棒,这是一个惊人的成就。

00:11:02

Ed Roberts 对此印象非常的深刻,以至于……

00:11:08 - Forrest Mims

他当场聘请了保罗•艾伦担任他的软件开发副总裁。

00:11:13 - Saron Yitbarek

保罗•艾伦在那之后很快就搬到了新墨西哥州,开始了他的新工作。至于比尔,他回到了哈佛,毕竟他还是个学生。

00:11:23 - Forrest Mims

但是保罗•艾伦说服了盖茨在 1975 年的夏天回来,并开始用 BASIC 工作。他们一起开了一家公司,叫做 Micro-soft,带一个连字符。后来他们去掉了连字符。

00:11:36 - Saron Yitbarek

MITS 成为了比尔和保罗的第一个客户,他们授权了他们的 BASIC 解释器给 MITS,并同意随机器分发他们的代码。他们称这套软件为 Altair BASIC,它成为了与个人计算机捆绑的第一款软件。现在他们只需要卖掉它就好了。

00:11:57 - Forrest Mims

Ed 做了什么呢?嗯,他们买了一辆大型房车,把它做成一个移动销售设备,一个销售计算机的移动办公室。他们把它开到全国各地,在不同的城市停下来,举行演示,这吸引了大量的人。

00:12:12 - Saron Yitbarek

它被称为“移动 MITS”,把巡回路演带到了西部。在加利福尼亚海岸沿岸,会议室里挤满了好奇的工程师和修理工。MITS 团队展示了 Altair 和 Altair BASIC。然而,在 Palo Alto 一个特别拥挤的酒店会议室里,发生了一件意想不到的事情。这件事改变了整个软件历史的进程。

00:12:46

让我们先等一下。在开始说这件意想不到的事情之前,我们先来了解一下 湾区 Bay area 的电子爱好者和业余爱好者的情况。他们自称为 自制计算机俱乐部 Homebrew Computer Club 。他们互相交换零件、电路和想法,并在探索个人计算机的新世界里相互扶持。

00:13:11 - Dan Sokol

这些人都对此感到好奇。他们中大多数都是某个领域的工程师。其中只有两三个人对计算机编程完全没有了解。当时做了一项调查,在座多少人拥有一台计算机,而又有多少人计划购买一台。这个调查十分有趣,所有人都想拥有一台计算机,但是实际上只有一两个人拥有它们,他们会把计算机带到俱乐部聚会上展示它们。我记得那时最令人尴尬的问题是,“你打算用它做什么?”而没有人知道。

00:13:46 - Saron Yitbarek

这位是 Dan Sokol,自制计算机俱乐部最初的成员之一。因为每个人都想看一看 Altair 8800,在 门罗公园 Menlo Park 的一个车库里他们举行了第一次集会。

00:14:08 - Lee Felsenstein

在 1975 年 3 月 5 日的一个雨夜,有 30 个人来到了这个车库。这里有一台为他们展示的 Altair。它是启动着的,但没有连接任何东西,也没有做任何事情。

00:14:22 - Saron Yitbarek

这位是 Lee Felsenstein,俱乐部的另一个初始成员。

00:14:27 - Lee Felsenstein

我们在房间里走来走去,尝试学到一些什么。我们从 Steve Dompier 听到了更多的报告,他订购了一台 Altair 计算机,它是在一月份的《大众电子》杂志上发布的。他实际上开车去了 Albuquerque 核实了他的订单,然后向我们报告了他的发现。

00:14:48 - Dan Sokol

Dompier 带来了一台 Altair,他坐在那儿,通过前面板的开关进行编程,使它播放音乐。在大约尝试了一个小时后,有人不小心把电源线踢掉了,这使得他不得不重新开始。但在当时看来,这是“看一台计算机,而且是你能买得起的那种。”

00:15:08 - Saron Yitbarek

在举行的聚会上还有一个人。当他看到 Altair 的时候,让他大吃一惊,但不是因为他不相信有这样一台机器存在。恰恰相反,因为有类似功能并比它好的多的机器已经存在了,他已经制造了它。那个人就是年轻的 史蒂夫•沃兹尼亚克 Steve Wozniak 。他的一个朋友劝说他去参加那个聚会,以便让史蒂夫展示他制造的视频终端。但是每个人都被 Altair 所吸引。在此之前,史蒂夫从未听说过 Altair,也没听说过使它工作起来的英特尔 8080 微处理器。他带了一份数据表回家,这件事带来了一个不可思议的惊喜。

00:16:01

这是史蒂夫•沃兹尼亚克(“沃兹”)早在 2013 年自制计算机俱乐部聚会上的发言。

00:16:10 - 史蒂夫•沃兹尼亚克

我把它带回家研究了一下,然后发现,“天哪,这些微处理器是一个芯片。”竟然能卖到 400 美元,这太疯狂了。这就是在我高中时在纸上设计的计算机。实际上,五年前我自己也制造了一个,当时我必须自己制造一个处理器。因为那时还没有微处理器。

00:16:31 - Saron Yitbarek

在上一集中,我们了解了沃兹高中时是如何在 GE-225 计算机上开始用 BASIC 编写他自己的软件的。嗯,从高中开始,沃兹就想拥有一台属于自己的计算机。但要做到这一点,他必须包括一种编程语言,这意味着至少需要 4K 内存以及用于人工输入输出的功能来输入程序。他的机器有 256 字节的固态 RAM,而此类芯片非常的昂贵,所以他设计了一个处理器,还在高中的时候就不断地改进它。就像 Altair 一样,它有输入 1 和 0 的开关。但现在他意识到 Altair 的微处理器是他梦寐以求的。

00:17:24 - 史蒂夫•沃兹尼亚克

你按下按钮 1、0、1、0、1、0,然后按下一个按钮,它就进入一个地址寄存器,在按下几个 1 和 0,然后写入内存。你写满了内存,在俱乐部听到了 Altair 播放音乐,是如此的兴奋。但对我来说,这都不算什么,我想要的是一台可以使用的机器,现在我要做的是输入数据直接写入内存。这太容易了,我说,“我的梦想就是拥有一台自己的计算机。”那天晚上,我看到了这种方法。

00:17:56 - Saron Yitbarek

那天晚上,Apple I 的形象突然出现在了史蒂夫•沃兹尼亚克的脑海中。他可以通过在终端机上添加一个微处理器,几乎不用做什么就可以得到一台适合使用的计算机。他的想法是:当计算机启动时,会运行一个程序去接收输入的数据,就像打字机一样。而不再需要拨弄 1 和 0 了。再加上他制造的视频终端机,让程序员可以看到自己输入的内容,一台感觉更人性化的计算机就诞生了,这是一台对普通人有用的个人电脑。下面是 Lee Felsenstein 的发言。

00:18:42 - Lee Felsenstein

他已经开发出一种小型的视频终端适配器,通用术语是 电视打字机 TV typewriter 。可以把它连接在电视上。他当时接触了一种只需要 25 美元的处理器芯片,并意识到,“如果我把它放在带有内存的主板上,我也能在主板上放上电视终端,这样我就会拥有一台具有视频显示的计算机。”他就这样做了,在聚会时就在为此做准备,当我们搬到 斯坦福直线加速器礼堂 Stanford Linear Accelerator Auditorium 时,他占住了唯一有电源插座的座位。他总是比别人先到那儿,他正在为 Apple I 编写 BASIC 程序。在那里他开创了苹果计算机系列。

00:19:34 - Saron Yitbarek

每次沃兹完成了他的计算机制作,他就会很兴奋地向俱乐部的每个人展示。他解释了如何使用几块芯片制造出一台价格低廉的个人计算机。沃兹是信息自由、分享知识以帮助建立更好的系统和社会的理念的主要倡导者。这与当时俱乐部的开放价值观和社会解放运动相呼应。

00:19:59

因此,在会议结束的时候,他拿出了他的设计、硬件和软件的蓝图,免费传给大家。他认为他们每个人都可以利用他的方案来制造自己的 300 美元的计算机。但沃兹的朋友兼商业伙伴,一个名叫 史蒂夫•乔布斯 Steve Jobs 的人,很快就终止了他的这个想法。乔布斯一直在外奔波,并没有意识到沃兹会把 Apple I 的设计送给别人。乔布斯并不认同沃兹的黑客思维方式,他更注重专利。很快,乔布斯说服了沃兹,他们决定改为出售计算机。

00:20:42

这种自由和专有技术之间的道德斗争,曾经不止一次发生在自制计算机俱乐部。事实上,在那次让大家对 Altair 瞠目结舌的首届俱乐部大会之后的几个月,还有一次聚会点燃了这场辩论的导火索。它发生在斯坦福直线加速器中心礼堂里。聚会结束时,数十名与会者冲上台去想要获取一份纸带程序,这是微软公司的 Altair Basic 的最新副本,是一款让所有人都很感兴趣的软件。

00:21:21

为什么会有这些副本呢?这个软件还没有正式发布,那么它是如何在那个自制俱乐部聚会上出现的呢?原来,原始的纸带已经被偷了。这是那个时代最大的软件抢劫案。

00:21:44

好吧,让我们具体了解一下这一切是如何发生的。还记得前面提起过关于移动 MITS 到西部去展示 Altair 和 Altair BASIC 的事吗?

00:21:54 - John Markoff

1975 年 6 月 10 日,该公司在 Palo Alto 演示他们计算机和搭载的软件。

00:22:03 - Saron Yitbarek

这位是 John Markoff,纽约时报的记者。

00:22:06 - John Markoff

这家旅馆叫 Rickeys。请记住,在当时个人计算机行业实际上并不存在,对个人计算机感兴趣的大多数人也并不是真正的商人,因为那时并没有商业软件,所以他们向一个广泛的团体展示计算机。当时在新硅谷,有很多人是电气工程师,他们都是程序员。有各种各样的人对技术、对计算机感兴趣。

00:22:39 - Saron Yitbarek

在那次演示过程中,MITS 的工作人员在将软件加载到机器上时遇到了一些麻烦。在当时,软件是打孔在纸带上的,纸带必须通过一个机械阅读器才能安装程序。当那名员工因此而慌乱时,房间里所有的目光都盯在闪闪发亮的新 Altair 上,然而人群中的某个人发现了一些别的东西,在旁边的一个纸板箱,在那个箱子里是一卷卷 Altair 的纸带,这是一个千载难逢的机会。他把手伸进箱子里并用手指缠住了一卷长长的纸带。把它装进口袋带走了。没人看见这些。

00:23:36 - John Markoff

不知怎么回事,那卷纸带最终被一位半导体工程师得到了,他在一家名为 Signetics 的公司工作,他的名字叫 Dan Sokol,他的技术能力很强,也是参加过最初的自制计算机俱乐部聚会的人。所以 Dan 有机会接触到一台相对高速的纸带复印机,他用它做了一堆副本。直到今天 Dan 仍然坚称,他不是拿走原始纸带的人,他只是拿到了一份原纸带的副本,然后把它带到自制计算机俱乐部的下一次聚会上,并与那里的会员们分享。

00:24:17 - Dan Sokol

由于我不道德的行为,我被称为世界上第一位软件盗版者,这是有其道理的。我是那个复制了 MITS BASIC(即微软 BASIC)纸带的人。当时有人在自制计算机俱乐部里站出来说,“谁有能力复制纸带吗?”我说我可以,就这样,我最终得到了那盘纸带并复制了它。

00:24:45 - Saron Yitbarek

当 Dan 分发他的盗版副本时,Lee 也正在那个自制计算机俱乐部会议上。

00:24:51 - Lee Felsenstein

所以发生的事情就是 Dan Sokol 做了 10 份副本,在那次会议上,我们拿到了副本并对他说,“这是 Altair BASIC 的副本。现在带回来的拷贝会比你拿过来的多。”

00:25:02 - John Markoff

当时的约定是,如果你得到一个副本,你必须自己做一个副本,并与朋友分享。这是一个未知的领域。当时还没有个人计算机软件公司,所以这真的是一种狂野的西部,当时人们只是卖计算机,而共享软件。

00:25:19 - Saron Yitbarek

在 1975 年,软件只是你用来让计算机工作的东西。个人计算机是一个全新的概念。当时的黑客们并没有与这个词联系在一起的所有的想法。他们只是想分享他们的工作,通过思想和软件的自由交流来建立一个开放的社区。这次抢劫和赠品事件为一场至今仍能引起反响的争论创造了条件。软件应该自由共享还是应该被买卖?对此,比尔•盖茨一定有自己的看法,当他发现自己的软件发生了什么时,他非常愤怒。

00:26:03 - John Markoff

当他意识到他的 BASIC 编程语言正被业余爱好者们广泛分享时,他给他们写了一封愤怒的信,指责他们窃取了他的软件,削弱了他的谋生能力。

00:26:18 - Lee Felsenstein

我们收到了那封信。在聚会上阅读了这封信,里面有一句话:“我们花费了大量的金钱去开发它。我们用了近 4 万美元的计算机时间。”房间里的每个人都知道,那样的计算机美元是假的,这只是一个会计把戏。你没有为它们支付真正的钱,而我们也知道这一点,所以我们想,“继续抱怨吧。我们会继续做我们正在做的事情。”

00:26:45 - Dan Sokol

他叫我们海盗和小偷。我们试图理智和理性地向他解释,你不能以 400 美元的价格出售一台价格为 400 美元的电脑的软件。在今天这个时代,很难回过头并试图解释他们当时的心态,那就是小型计算机的思想,小型计算机被用于工业,而我们只是一群用套件来制造自己计算机的爱好者。唯一的功能性软件就是这个 BASIC 解释器,它几乎充当了一个操作系统。早在 1974 年,个人计算机里还没有操作系统,我们无法与他沟通,也无法向他解释,“把手册以 100 美元卖给我们,让我们随便用软件。”他没有听这些,多年来微软的软件价格过高,被盗版,而且盗版严重。

00:27:51 - Saron Yitbarek

俱乐部成员选择无视这封信。因为早在 1975 年,当时的版权法并没有涵盖软件。将软件从一个纸带复制到另一个纸带上不会有任何的惩罚。这种情况在 1977 年会发生变化,但在那几年里,这种做法并没有违反法律。

00:28:12 - John Markoff

具有讽刺意味的是,比尔•盖茨并没有创造 BASIC 语言。他只是简单地创建了它的副本,是从原始设计者 达特茅斯大学 Dartmouth University 的一位教授那得到的,他基本上是做了一个副本,然后把它卖掉,所以这一切的根源在于分享。

00:28:31 - Saron Yitbarek

抢劫、纸带、分享、愤怒的信件。所有这些都导致了新兴的软件业和那些被他们视为盗版者的人们之间长达数十年的战争,但在这场战争中,开源软件运动也随之兴起。它的核心价值观与那些点燃个人计算机革命的早期爱好者是一脉相承的,因为这些业余爱好者意识到,个人计算机未来的关键点在于释放软件的潜能。

00:29:07 - Lee Felsenstein

传递纸带、互相鼓励和互相借鉴彼此成果的过程确实是使个人计算机行业成功的原因。

00:29:17 - Saron Yitbarek

现在,我们再也没有说过最初的小偷是谁。谁偷了那条珍贵的纸带,至今仍是个谜。那些知道答案的人们也更愿意保留这个谜。

00:29:32 - Dan Sokol

至于它是如何被“解放”的,如果你想用这个词的话,我知道是谁干的,但是我不会说,因为那个人很久以前就要求保持匿名,因为这样更安全,我尊重这种选择,并且我也会继续尊重下去。所以,我当时不在 Rickey 旅馆,但纸带却找到了传递给我的方法。

00:30:01 - Saron Yitbarek

随着时间的推移,个人计算机革命让位于硅谷和众多风投支持的科技创业公司,但那些修理工、那些电子爱好者和业余爱好者们却从未消失。事实上,他们比以往任何时候都更强大。

00:30:20 - Limor Fried

嗨,我叫 Limor Fried,是 Adafruit 工业公司的首席工程师兼创始人。

00:30:26 - Saron Yitbarek

Adafruit 是一家开源硬件公司,是过去几年开始的那场新革命的一部分,即 开源硬件运动 open source hardware movement ,这场运动与那些早期的爱好者有着同样的价值观。但它变的更好一些。

00:30:43 - Limor Fried

自制计算机俱乐部,我认为,人们带着他们的计算机加入进来是有这样一种信念的,这就像,“来看看我做的这个很酷的 魔改 hack 吧”,然后每个人都会说,“天哪,这太酷了。好吧,下个月我会带来一个更棒的。”这是一个积极的反馈循环,带来了真正好的技术创新。我认为黑客哲学仍然存在,人们只是有了更多的背景知识,所以他们认为作为一个很酷的黑客,我想说的确有所进步,但它实际上已经泛化了,我认为这很好。我认为分享的价值仍然存在,相互帮助,共同努力工作与合作。这个理念贯穿始终。它存在于整个开源社区。

00:31:32 - Saron Yitbarek

我们将用一整集来讲述开源硬件运动的兴起,这样就可以看到我们是如何进步的,并为 Limor Fried 这样的现代制造商创造空间。请继续关注几周后的第六集。下一集,是改变了世界的磁碟 —— 软盘。

00:31:56 - Saron Yitbarek

代码英雄是红帽的原创播客。请到 redhat.com/commandlineheroes 了解一些关于个人计算机革命的伟大研究。这里有一个美丽的轶事,你可以读到关于比尔•盖茨在 Ed Roberts 临终前拜访他的故事,如果你想知道在那次 PC 革命期间发生了什么,请查看我们最初的几期命令行英雄节目,操作系统战争。我是 Saron Yitbarek,下期之前,编码不止。

附加剧集

Forrest Mims 对 Ed Roberts 有很多话要说。听听有关 Ed 与保罗•艾伦和比尔•盖茨会面,以及他们开始合作的故事。

音频

什么是 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/personal-computers

作者:Red Hat 选题:bestony 译者:linitok 校对:Northurland, wxy

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

安全专家告知数据被泄露后,却接到了对方的律师函

报道,安全专家 Rob Dyke 在 2 月底发现了一个公开的 GitHub 仓库,其中包含一个网站的源代码,以及包含用户名、散列密码、电子邮件地址和 API 密钥的数据库。然而在他 3 月 1 日书面告知数据泄露的 Apperta 基金会后却收到了律师函。

Apperta 的第一反应对他表示了感谢。然而 Dyke 告诉 Apperta,他将加密保留他发现的文件的副本三个月,然后销毁它们。Dyke 说他保留这些信息是为了防止再次需要这些信息,“以防出现我所不知道的更广泛的网络事件”。Apperta 将此解释为非法复制其数据。一周后,该公司的律师写信给他,要求他销毁文件的副本。在律师交锋几周后,Apperta 明确表示要向高等法院申请针对这位安全专家的禁令。

Dyke 最终在上法庭前删除了这些数据,并提交了证明。Apperta 表示他们没有提出诉讼,Dyke 已经承诺删除数据,但同时认为 Dyke “超越了善意研究的界限,而且他这样做是不道德的”。

此事引起了网络安全界的同情,人们为 Dyke 捐赠了 15000 英镑以解决法庭诉讼。然而,我们需要思考的是,白帽子的法律边界在哪里?什么是可以做的,什么是不可以做的?

研究人员制造出仅在显微镜下可见的无线、可注射的芯片

哥伦比亚大学研究人员报告说,他们已经建立了据说是世界上最小的单芯片系统,总体积小于 0.1 立方毫米,像一只尘螨一样小,只有在显微镜下才能看到。这是一个“芯片即系统”的新想法:一个单独的芯片就是一个完整的功能电子系统。该芯片是一个整体可植入/可注射的微粒,没有额外的封装。它是在台积电制造的,并进行了纳米级的工艺修改。该团队的目标是开发可以用于皮下注射的芯片,然后用超声波将其传回体外,提供它们在本地测量的信息。目前该芯片的功能是测量体温,但该团队正在研究的可能性还有很多。

这就是几十年前科幻小说里面的场景啊,这种芯片可以在医疗方面发挥很大的作用。

Rust 编程语言庆祝六岁生日

周六,Rust 编程语言的开发者庆祝了自 1.0 版本推出以来的六周年。作为 C 语言的替代品获得了很多关注,这要归功于默认开启的代码安全功能,它带来的是更少的可被利用的内存相关错误。这种内存安全特性让不少程序员注意到了它,由此它的采用率开始了编程语言当中不可思议的火箭式上升,Stack Overflow 甚至发现它是 2020 年调查中最受欢迎的编程语言

目前采用 Rust 的最引人注目的项目之一是 Firefox 浏览器,到 2020 年 7 月,macOS 上的Firefox Nightly 有 12.31% 的代码是用 Rust 代码编写的。

虽然 Rust 语言学习起来有些难,但是在某些原本是 C/C++ 独占领域里,Rust 已经显示出了明显的优势。

在复杂的 IT 基础设施中,有许多重复性任务。成功运行这些任务并不容易。运行失败大多数是人为错误引发。在 Ansible 帮助下,你可以通过远程主机来执行所有任务,这些远程主机按照 行动手册 playbook 执行,行动手册可以根据需要重复使用多次。在本文中,你将学习如何在 Fedora Linux 上安装、配置 Ansible,以及如何使用它来管理、配置 Podman 容器。

Ansible

Ansible 是一个由红帽赞助的开源基础设施自动化工具。它可以处理大型基础设施带来的所有问题,例如安装和更新软件包、备份、确保特定服务持续运行等等。你用 YAML 写的行动手册来做这些事。Ansible 行动手册可以反复使用,使系统管理员的工作不那么复杂。行动手册减少了重复任务,并且可以轻松修改。但是我们有很多像 Ansible 一样的自动化工具,为什么要用它呢?与其他一些配置管理工具不同,Ansible 是无代理的:你不必在受管节点上安装任何东西。

Podman

Podman 是一个开源的容器引擎,用于开发、管理和运行容器镜像。但什么是容器呢?每当你创建任何新应用程序并将其部署在物理服务器、云服务器或虚拟机上时,你面临的最常见问题是可移植性和兼容性。这就是容器出现的原因。容器在操作系统级别上进行虚拟化,因此它们只包含所需的库和应用程序服务。容器的好处包括:

  • 便携性
  • 隔离性
  • 扩展性
  • 轻量级
  • 快速启动
  • 更小的磁盘和内存需求

简而言之:当你为任何应用程序构建容器镜像时,所有必需的依赖项都被打包到容器中。你现在可以在任何主机操作系统上运行该容器,没有任何可移植性和兼容性问题。

Podman 的关键亮点在于它没有守护程序,因此不需要 root 权限来运行容器。你可以借助 Dockerfile 构建容器镜像,或者从 Docker Hub、fedoraproject.orgQuay 上拉取镜像。

为什么用 Ansible 配置 Podman?

Ansible 提供了一种轻松多次运行重复任务的方法。它还为云提供商(如 AWS、GCP 和 Azure)、容器管理工具(如 Docker 和 Podman)与数据库管理提供了大量模块。Ansible 还有一个社区(Ansible Galaxy),在这里你可以找到大量 Ansible 角色 Roles ,它们由来自世界各地的贡献者创建。因为这些,Ansible 成为了 DevOps 工程师和系统管理员手中的好工具。

借助 DevOps,应用程序的开发步伐很快。开发的应用不局限于任意操作系统,这点至关重要。这就是 Podman 出现的地方。

安装 Ansible

首先,安装 Ansible:

$ sudo dnf install ansible -y

配置 Ansible

Ansible 需要在受管节点上运行 ssh,所以首先生成一个 密钥对 Key Pair

$ ssh-keygen

生成密钥后,将密钥复制到受管节点。

输入 yes,然后输入受管节点的密码。现在可以远程访问受管主机。

为了能够访问受管节点,你需要将所有主机名或 IP 地址存储在清单文件中。默认情况下,这是在 ~/etc/ansible/hosts

这是 库存 inventory 文件的样子。方括号用于将组分配给某些特定的节点。

[group1]
green.example.com
blue.example.com
[group2]
192.168.100.11
192.168.100.10

检查所有受管节点是否可以到达。

$ ansible all -m ping

你可以看到如下输出:

[mahesh@fedora new] $ ansible all -m ping
fedora.example.com I SUCCESS {
    "ansibe_facts": {
       "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
[mahesh@fedora new] $

现在创建你的第一个 行动手册 playbook ,它将在受管节点上安装 Podman。首先用 .yml 拓展名创建一个任意名称的文件。

$ vim name_of_playbook.yml

行动手册应该如下所示。第一个字段是行动手册的名称。主机字段(hosts)用于提及清单中提到的主机名或组名。become: yes 表示升级权限,以及任务(tasks)包含所要执行的任务,这里的名称(name)指定任务(tasks)名称,yum 是安装软件包的模块,下面在名称字段(name)指定软件包名称,在状态字段(state)指定安装或删除软件包。

---
 - name: First playbook
   hosts: fedora.example.com
   become: yes
   tasks:
     - name: Installing podman.
       yum:
         name: podman
         state: present

检查文件中是否有语法错误:

$ ansible-playbook filename --syntax-check

现在运行行动手册:

$ ansible-playbook filename

你可以看到如下输出:

[mahesh@fedora new] $ ansible-playbook podman_installation.yml
PLAY [First playbook] *************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
0k: [fedora.example.com]

TASK [Installing podman] ************************************************************************************************
changed: [fedora.example.com]

PLAY RECAP *************************************************************************************************
fedora.example.com    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
[mahesh@fedora new] $

现在创建一个新的行动手册,从 Docker Hub 中拉取一个镜像。你将使用 podman_image 模块从 Docker Hub 中提取版本号为 2-alpine 的 httpd 镜像。

---
 - name: Playbook for podman.
    hosts: fedora.example.com
    tasks:
     - name: Pull httpd:2-alpine image from dockerhub.
       podman_image:
         name: docker.io/httpd
         tag: 2-alpine

现在检查已拉取的镜像:

[mahesh@fedora new] $ podman images
REPOSITORY                           TAG                  IMAGE ID           CREATED             SIZE
docker.io/library/httpd       2-alpine         fa848876521a    11 days ago        57 MB

[mahesh@fedora new] $

创建一个新的行动手册来运行 httpd 镜像。更多信息请查看 podman\_container 模块文档。

---
 - name: Playbook for podman.
   hosts: fedora.example.com
   tasks:
     - name: Running httpd image.
       containers.podman.podman_container:
         name: my-first-container
         image:  docker.io/httpd:2-alpine
         state: started

检查容器运行状态。

[mahesh@fedora new] $ podman ps
CONTAINER ID        IMAGE    COMMAND   CREATED      STATUS         PORTS         NAMES
45d966eOe207     docker.io/library/httpd:2-alpine    httpd-foreground    13 seconds ago    Up 13 seconds ago       my-first-container

[mahesh@fedora new] $

现在停止已运行的容器,改变状态,由 started 变为 absent

- name: Stopping httpd container.
  containers.podman.podman_container:
    name: my-first-container
    image: docker.io/httpd:2-alpine
    state: absent

当你执行 podman ps 命令时,你看不到任何运行的容器。

[mahesh@fedora new] $ podman ps
CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES

[mahesh@fedora new] $

podman_container 可以做很多事情,例如重新创建容器、重新启动容器、检查容器是否正在运行等等。有关执行这些操作的信息,请参考 文档


via: https://fedoramagazine.org/using-ansible-to-configure-podman-containers/

作者:mahesh1b 选题:lujun9972 译者:DCOLIVERSUN 校对:wxy

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