2020年8月

微软庆祝 Windows 95 发布 25 周年

这款系统对桌面体验的影响是非常深远的,开始菜单和任务栏概念沿用至今,并且全球有数十亿用户使用。在过去 25 年里,Windows 系统不断更迭进化,已经成为很多人日常工作生活中不可或缺的重要组成。

来源:cnBeta.COM

拍一拍:Windows 95 是民用计算机的一个里程碑。

Chrome 团队正探索 Rust 与 C++ 的互操作性

现阶段,Chrome 工程师很清楚 C++ 是第一位的,并且“在可以预见的将来仍然是代码库的统治者”。他们认为,若使用 Rust,需要令其与 C++ 相适应,而不是让 C++ 反过来配合 Rust。当前 Chrome 团队所探索的,正是 Rust 能否,以及如何调用 C++ 代码。

来源:开源中国

拍一拍:眼看这 Rust 大热,你要不要学呢?

WordPress 创始人称苹果阻止其更新 iOS 版本要求拿三成提成

WordPress 的 iOS 版本不包含任何应用内购买选项,而是免费应用,只是让用户通过 iPhone 或 iPad 构建和管理网站。苹果声称,它的 App Store 审核指南要求“跨平台运行的 app 可以允许用户访问他们在其他平台上的相应 app 中或您的网站上获取的内容、订阅或功能,包括多平台游戏中的消耗品,前提是这些项目也在 app 中以 App 内购买项目的形式提供”。事件发酵之后,苹果向 WordPress 道歉,表示不强迫免费应用加入付费选项。

来源:solidot

拍一拍:吃相难看。

在 Windows 上安装 GNU 编译器集合(gcc)和其他 GNU 组件来启用 GNU Autotools。

如果你是一名使用 Windows 的黑客,你不需要专有应用来编译代码。借助 Minimalist GNU for Windows(MinGW)项目,你可以下载并安装 GNU 编译器集合(GCC)以及其它几个基本的 GNU 组件,以在 Windows 计算机上启用 GNU Autotools

安装 MinGW

安装 MinGW 的最简单方法是通过 mingw-get,它是一个图形用户界面 (GUI) 应用,可帮助你选择要安装哪些组件,并让它们保持最新。要运行它,请从项目主页下载 mingw-get-setup.exe。像你安装其他 EXE 一样,在向导中单击完成安装。

 title=

在 Windows 上安装 GCC

目前为止,你只安装了一个程序,或者更准确地说,一个称为 mingw-get 的专用的包管理器。启动 mingw-get 选择要在计算机上安装的 MinGW 项目应用。

首先,从应用菜单中选择 mingw-get 启动它。

 title=

要安装 GCC,请单击 GCC 和 G++ 包来标记要安装 GNU C、C++ 编译器。要完成此过程,请从 mingw-get 窗口左上角的安装菜单中选择应用更改

安装 GCC 后,你可以使用完整路径在 PowerShell 中运行它:

PS> C:\MinGW\bin\gcc.exe --version
gcc.exe (MinGW.org GCC Build-x) x.y.z
Copyright (C) 2019 Free Software Foundation, Inc.

在 Windows 上运行 Bash

虽然它自称 “minimalist”(最小化),但 MinGW 还提供一个可选的 Bourne shell 命令行解释器,称为 MSYS(它代表 最小系统 Minimal System )。它是微软的 cmd.exe 和 PowerShell 的替代方案,它默认是 Bash。除了是(自然而然的)最流行的 shell 之一外,Bash 在将开源应用移植到 Windows 平台时很有用,因为许多开源项目都假定了 POSIX 环境。

你可以在 mingw-get GUI 或 PowerShell 内安装 MSYS:

PS> mingw-get install msys

要尝试 Bash,请使用完整路径启动它:

PS> C:\MinGW\msys/1.0/bin/bash.exe
bash.exe-$ echo $0
"C:\MinGW\msys/1.0/bin/bash.exe"

在 Windows 上设置路径

你可能不希望为要使用的每个命令输入完整路径。将包含新 GNU 可执行文件的目录添加到 Windows 中的路径中。需要添加两个可执行文件的根目录:一个用于 MinGW(包括 GCC 及其相关工具链),另一个用于 MSYS(包括 Bash、GNU 和 BSD 项目中的许多常用工具)。

若要在 Windows 中修改环境,请单击应用菜单并输入 env

 title=

这将打开“首选项”窗口。点击窗口底部附近的“环境变量”按钮。

在“环境变量”窗口中,双击底部面板中的“路径”选区。

在“编辑环境变量”窗口中,单击右侧的“新增”按钮。创建一个新条目 C:\MinCW\msys\1.0\bin,然后单击 “确定”。以相同的方式创建第二条 C:\MinGW\bin,然后单击 “确定”。

 title=

在每个首选项窗口中接受这些更改。你可以重启计算机以确保所有应用都检测到新变量,或者只需重启 PowerShell 窗口。

从现在开始,你可以调用任何 MinGW 命令而不指定完整路径,因为完整路径位于 PowerShell 继承的 Windows 系统的 %PATH% 环境变量中。

Hello world

你已经完成设置,因此可以对新的 MinGW 系统进行小测试。如果你是 Vim 用户,请启动它,然后输入下面的 “hello world” 代码:

#include <stdio.h>
#include <iostream>

using namespace std;

int main() {
  cout << "Hello open source." << endl;
  return 0;
}

将文件保存为 hello.cpp,然后使用 GCC 的 C++ 组件编译文件:

PS> gcc hello.cpp --output hello

最后,运行它:

PS> .\a.exe
Hello open source.
PS>

MinGW 的内容远不止我在这里所能介绍的。毕竟,MinGW 打开了一个完整的开源世界和定制代码的潜力,因此请充分利用它。对于更广阔的开源世界,你还可以试试 Linux。当所有的限制都被消除后,你会惊讶于可能的事情。但与此同时,请试试 MinGW,并享受 GNU 的自由。


via: https://opensource.com/article/20/8/gnu-windows-mingw

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

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

开源如此火热,但研究表明该领域已不再增长

Blekinge 理工学院的 Michael Dorner 等人近期发布的一项报告指出:开源领域已不再增长。该团队研究了过去 25 年中出现的超 224,000 个开源项目发现,自 2016 年以来,活跃的开源项目数量一直在萎缩,而贡献者和提交者的数量也自 2013 年的峰值以来有所减少。自 2011 年以来,代码行数的增长就开始持续放缓;2015 年之后,代码行数则完全停止增长。同时,提交量也在随时间的增长而下降。2015 年之后,提交量进入自由落体状态,跌回了 2007 年时的水平。

来源:开源中国

拍一拍:如果这是真的,背后是原因是什么?是开源社区不敌开源企业么?

英特尔回应 Linus Torvalds 对 AVX512 的批评

上个月 Linus Torvalds “让 Intel AVX-512 去死”的言论引起热议。Linus 称 Intel 的 AVX-512 指令集是“功率病毒”,其创建目的单纯只是为了使 Intel 公司的 CPU 硬件在基准测试中跑分更高。Intel 首席架构师 Raja Koduri 对 Linus 的说法进行了回应,社区之所以喜欢 AVX-512,是因为它可以带来巨大的性能提升。他承认 Linus 的部分批评可能是有道理的,但他表示对 AVX512 等指令集的批评并不会改变 Intel 的方向,表示理解 Torvalds 的担心,理解第一代 AVX512 对处理器频率的影响,称每一代都在取得进步。

来源:solidot

拍一拍:“你说的有道理,那又如何。”

Ubuntu 正在考虑使用 Intel 的 IWD 提供更好的 WiFi 支持

Intel 的开源团队一直在开发 IWD,以替代 WPA\_Supplicant,而最近 Ubuntu 开发人员发现它已经实现 WPA\_Supplicant 的大部分功能,并且水平相当。IWD 具有更快的网络发现能力、更可靠的漫游、更少的系统资源占用,同时它利用现代 Linux 内核功能,提供了对企业安全功能的支持,并可以支持多个客户端,还能简化网络管理。

来源:开源中国

拍一拍:Ubuntu 社区需要评估 IWD 的稳定性和可用性,不管怎么说,多一个可选的竞品才能有更好的软件出现。

新的 CPU 针对企业混合云和 AI 推断进行了优化,它采用了为 PB 级内存集群开发的新技术。

IBM 上周一公布了最新的 POWER RISC CPU 系列,该系列针对企业混合云计算和人工智能 (AI)推理进行了优化,同时还进行了其他一些改进。

Power 是上世纪 90 年代最后一款 Unix 处理器,当时 Sun Microsystems、HP、SGI 和 IBM 都有竞争性的 Unix 系统,以及与之配合的 RISC 处理器。后来,Unix 让位给了 Linux,RISC 让位给了 x86,但 IBM 坚持了下来。

这是 IBM 的第一款 7 纳米处理器,IBM 宣称它将在与前代 POWER9 相同的功率范围内,将容量和处理器能效提升多达三倍。该处理器采用 15 核设计(实际上是 16 核,但其中一个没有使用),并允许采用单芯片或双芯片型号,因此 IBM 可以在同一外形尺寸中放入两个处理器。每个核心最多可以有 8 个线程,每块 CPU 最多支持 4TB 的内存。

更有趣的是一种名为 Memory Inception 的新内存集群技术。这种形式的集群允许系统将另一台物理服务器中的内存当作自己的内存来看待。因此,服务器不需要在每个机箱中放很多内存,而是可以在内存需求激增的时候,从邻居那里借到内存。或者,管理员可以在集群的中间设置一台拥有大量内存的服务器,并在其周围设置一些低内存服务器,这些服务器可以根据需要从大内存服务器上借用内存。

所有这些都是在 50 到 100 纳秒的延迟下完成的。IBM 的杰出工程师 William Starke 在宣布前的视频会议上说:“这已经成为行业的圣杯了。与其在每个机器里放很多内存,不如当我们对内存的需求激增时,我可以向邻居借。”

POWER10 使用的是一种叫做开放内存接口(OMI)的东西,因此服务器现在可以使用 DDR4,上市后可以升级到 DDR5,它还可以使用 GPU 中使用的 GDDR6 内存。理论上,POWER10 将具备 1TB/秒的内存带宽和 1TB/秒的 SMP 带宽。

与 POWER9 相比,POWER10 处理器每个核心的 AES 加密引擎数量增加了四倍。这实现了多项安全增强功能。首先,这意味着在不降低性能的情况下进行全内存加密,因此入侵者无法扫描内存内容。

其次,它可以为容器提供隔离的硬件和软件安全。这是为了解决更高密度的容器相关的行安全考虑。如果一个容器被入侵,POWER10 处理器的设计能够防止同一虚拟机中的其他容器受到同样的入侵影响。

最后,POWER10 提供了核心内的 AI 业务推断。它通过片上支持用于训练的 bfloat16 以及 AI 推断中常用的 INT8 和 INT4 实现。这将允许事务性负载在应用中添加 AI 推断。IBM 表示,POWER10 中的 AI 推断是 POWER9 的 20 倍。

公告中没有提到的是对操作系统的支持。POWER 运行 IBM 的 Unix 分支 AIX,以及 Linux。这并不太令人惊讶,因为这个消息是在 Hot Chips 上发布的,Hot Chips 是每年在斯坦福大学举行的年度半导体会议。Hot Chips 关注的是最新的芯片进展,所以软件通常被排除在外。

IBM 一般会在发布前一年左右公布新的 POWER 处理器,所以有足够的时间进行 AIX 的更新。


via: https://www.networkworld.com/article/3571415/ibm-details-next-gen-power10-processor.html

作者:Andy Patrizio 选题:lujun9972 译者:geekpi 校对:wxy

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

其实我对这个实验的结果并不是特别满意,但我还是想分享一下,因为摆弄字体是件非常简单和有趣的事情。而且有人问我怎么做,我告诉她我会写一篇博文来介绍一下 :smiley:

背景:原本的手写体

先交代一些背景信息:我有一个我自己的手写字体,我已经在我的电子杂志中使用了好几年了。我用一个叫 iFontMaker 的令人愉快的应用程序制作了它。他们在网站上自诩为“你可以在 5 分钟内只用手指就能制作出你的手工字体”。根据我的经验,“5 分钟”的部分比较准确 —— 我可能花了更多的时间,比如 15 分钟。我对“只用手指”的说法持怀疑态度 —— 我用的是 Apple Pencil,它的精确度要好得多。但是,使用该应用程序制作你的笔迹的 TTF 字体是非常容易的,如果你碰巧已经有了 Apple Pencil 和 iPad,我认为这是一个有趣的方式,我只花了 7.99 美元。

下面是我的字体的样子。左边的“CONNECT”文字是我的实际笔迹,右边的段落是字体。其实有 2 种字体 —— 有一种是普通字体,一种是手写的“等宽”字体。(其实实际并不是等宽,我还没有想好如何在 iFontMaker 中制作一个实际的等宽字体)

目标:在字体上做更多的字符变化

在上面的截图中,很明显可以看出这是一种字体,而不是实际的笔迹。当你有两个相同的字母相邻时,就最容易看出来,比如“HTTP”。

所以我想,使用一些 OpenType 的功能,以某种方式为这个字体引入更多的变化,比如也许两个 “T” 可以是不同的。不过我不知道该怎么做!

来自 Tristan Hume 的主意:使用 OpenType!

然后我在 5 月份的 !!Con 2020 上(所有的演讲录音都在这里!)看到了 Tristan Hume 的这个演讲:关于使用 OpenType 通过特殊的字体将逗号插入到大的数字中。他的演讲和博文都很棒,所以这里有一堆链接 —— 下面现场演示也许是最快看到他的成果的方式。

基本思路:OpenType 允许你根据上下文替换字符

我一开始对 OpenType 到底是什么非常困惑。目前我仍然不甚了然,但我知道到你可以编写极其简单的 OpenType 规则来改变字体的外观,而且你甚至不需要真正了解字体。

下面是一个规则示例:

sub a' b by other_a;

这里 sub a' b by other_a; 的意思是:如果一个 a 字形是在一个 b 之前,那么替换 a 为字形 other_a

所以这意味着我可以让 abac 在字体中出现不同的字形。这并不像手写体那样随机,但它确实引入了一点变化。

OpenType 参考文档:真棒

我找到的最好的 OpenType 文档是这个 OpenType™ 特性文件规范 资料。里面有很多你可以做的很酷的事情的例子,比如用一个连字替换 “ffi”。

如何应用这些规则:fonttools

为字体添加新的 OpenType 规则是超容易的。有一个 Python 库叫 fonttools,这 5 行代码会把放在 rules.fea 中的 OpenType 规则列表应用到字体文件 input.ttf 中。

from fontTools.ttLib import TTFont
from fontTools.feaLib.builder import addOpenTypeFeatures

ft_font = TTFont('input.ttf')
addOpenTypeFeatures(ft_font, 'rules.fea', tables=['GSUB'])
ft_font.save('output.ttf')

fontTools 还提供了几个名为 ttxfonttools 的命令行工具。ttx 可以将 TTF 字体转换为 XML 文件,这对我很有用,因为我想重新命名我的字体中的一些字形,但我对字体一无所知。所以我只是将我的字体转换为 XML 文件,使用 sed 重命名字形,然后再次使用 ttx 将 XML 文件转换回 ttf

fonttools merge 可以让我把我的 3 个手写字体合并成 1 个,这样我就在 1 个文件中得到了我需要的所有字形。

代码

我把我的极潦草的代码放在一个叫 font-mixer 的存储库里。它大概有 33 行代码,我认为它不言自明。(都在 run.shcombine.py 中)

结果

下面是旧字体和新字体的小样。我不认为新字体的“感觉”更像手写体 —— 有更多的变化,但还是比不上实际的手写体文字(在下面)。

我觉得稍微有点不可思议,它明明还是一种字体,但它却要假装成不是字体:

而这是实际手写的同样的文字的样本:

如果我在制作另外 2 种手写字体的时候,把原来的字体混合在一起,再仔细一点,可能效果会更好。

添加 OpenType 规则这么容易,真酷!

这里最让我欣喜的是,添加 OpenType 规则来改变字体的工作方式是如此的容易,比如你可以很容易地做出一个“the”单词总是被“teh”代替的字体(让错别字一直留着!)。

不过我还是不知道如何做出更逼真的手写字体:)。我现在还在用旧的那个字体(没有额外的变化),我对它很满意。


via: https://jvns.ca/blog/2020/08/08/handwritten-font/

作者:Julia Evans 选题:lujun9972 译者:wxy 校对:wxy

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

黑莓手机还活着

获得黑莓品牌使用权的 TCL 公司今年初宣布它将在今年晚些时候停止销售黑莓手机,因为双方的合作即将结束。但本周一家美国得州公司 OnwardMobility 宣布与黑莓公司达成协议,将发布一款带物理键盘的 5G 黑莓 Android 手机,预计 2021 年上半年在欧洲和北美市场发售。

来源:solidot

拍一拍:黑莓是当年的传奇手机,奈何时代将其抛弃。就像 Palm 一样,这样的电子产品你还记得几个?

Chromium 对根 DNS 服务器流量的影响

有些 ISP 会对于无效域名会进行拦截重定向到广告页挣些广告费。Chromium 在 DNS 查询的时候需要识别某个网络是否存在这种拦截。在每次启动、每次 IP 地址变化、每次设备 DNS 配置变更时对 3 个随机的 10 字符长的字符串进行 DNS 查询。这种行为会在根 DNS 服务器留下记录。根据亚太互联网络信息中心的统计,根服务器一半的查询流量来自于 Chromium 的检查,这相当于每天查询 600 亿次。

来源:solidot

拍一拍:形成垄断性格局的 Chromium 的一点点小功能,都可能对互联网基础设施形成重压。

zstd 有望进入 Linux 5.9,支持压缩系统固件

此前 Facebook 工程师向 Linux 内核提交了使用 zstd 压缩 Linux 内核镜像的补丁,这些补丁显示了使用 zstd 对内核、ramdisk 和 initramfs 进行压缩操作具备巨大潜力。现在有内核开发者提交补丁,希望采用 zstd 统一压缩内核所有内容,包括固件文件。

来源:开源中国

拍一拍:是时候在内核中采用更先进的算法了,现在采用 zlib 有点落后了。