2022年7月

我喜欢 在 Ubuntu 中使用深色模式。在我看来深色模式能够缓解视觉疲劳,让系统看起来更加的赏心悦目。

我发现了一个 gedit 文本编辑器的小麻烦,如果你在深色模式下使用它,你也许也会遇到。

默认情况下 gedit 高亮当前光标所在的行。这是一个非常有用的功能,但是如果你在 Linux 系统中开启了深色模式,那么你将会感到痛苦。为什么?因为被高亮的文本将不再变得可读。你自己看吧:

Text on the highlighted line is hardly visible

如果你选择文本,它将变得可读,但这并不是一个让人感到有多么愉快的阅读或者编辑体验。(LCTT 校注:在新的 Ubuntu 22.04 中,这一情况已经有所改善,“高亮当前行”已被取消勾选)

Selecting the text makes it better but that’s not a convenient thing to do for all lines

好消息是你不需要再忍受它。我将演示几个步骤让你能够同时享受 gedit 以及系统的深色模式。

让 gedit 在深色模式下阅读体验友好

你基本上有两个选择:

  1. 禁用高亮当前行,但也同时意味着你必须清楚地知道你在哪一行。
  2. 改变默认的颜色设置,但编辑器的颜色会变得稍微有些不同,而且如果你更改系统主题,它不会自动切换到浅色模式。

在 gedit 或者 GNOME 的开发者解决这个问题之前,这是你必须要做的应变和妥协。

选项1: 禁止高亮当前行

当你打开 gedit 后,点击汉堡菜单然后选择“ 首选项 Preferences ”。

Go to Preferences

在查看选项卡,你应该看到在 “ 高亮 Highlighting ” 区域的下方的 “ 高亮当前行 Highlight current line ” 选项。取消勾选这个选项,马上就可以看到效果。

Disable highlighting current line

“高亮当前行”是一个有用的功能,如果你想继续使用它,请选择第二个选项。

选项2: 更改编辑器的颜色主题

在“ 首选项 Preferences ”窗口,找到 “字体与颜色Font & Colors” 标签页,然后将颜色主题更改为 “Oblivion”、“Solarized Dark”,或者 “Cobalt”。

Change the color scheme

正如我前面所提到的,缺点就是当你把系统主题切换为浅色模式时,编辑器将不会自动切换到浅色模式。

开发者应该修复的一个 bug

这里 有几个 Linux 可用的文本编辑器 ,但是为了快速阅读或编辑文本文件,我更推荐使用 gedit。尽管如此,小烦恼仍旧是小烦恼。开发者应该在将来的版本中为这个很好的文本编辑器修复这个问题,让我们不再求助于这些应对办法。

你呢?你在你的系统上使用深色模式还是浅色模式?你注意到 gedit 的这个问题了吗?你有使用什么方法去解决它吗?欢迎分享你的经验。


via: https://itsfoss.com/gedit-dark-mode-problem/

作者:Abhishek Prakash 选题:lujun9972 译者:void-mori 校对:wxy

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

谷歌正式推出可装在普通电脑的 ChromeOS Flex 操作系统

ChromeOS Flex 是一个基于 ChromeOS、兼容大部分硬件的操作系统,谷歌官方表示经过验证的设备已经“超过 400 款”。ChromeOS Flex 可以下载到 USB 设备中,然后在 Mac 或者 Windows 设备上进行安装。它于今年 2 月推出,主要基于谷歌在 2020 年收购的 CloudReady 的技术。它最大的优势就是能够让老旧设备“焕发生机”,尤其是那些原生系统已经无法再获得软件更新的设备。在未经谷歌认证的设备上同样可以安装 ChromeOS Flex,只要这些设备符合官方的最低要求。

消息来源:谷歌
老王点评:不知道是不是和 ChromeOS 一样,需要那种不一样的网络?

尼康停止单反相机的开发

配备高清摄像头的智能手机正在侵蚀相机市场,尼康表示今后将专注于开发逐渐在市场上成为主流的、引进人工智能和图像处理技术的无反相机。尼康在 1959 年推出首款单反相机 Nikon F,自 2020 年 6 月推出面向专业人士的旗舰机型 D6 后,再未推出过单反相机的新产品。单反相机的优势是可以根据被拍摄物体和摄影环境更换镜头。尼康在单反相机的销量份额上仅次于佳能,排在世界第 2 位。佳能也计划在数年内结束单反相机的旗舰机型的开发。

消息来源:日经中文网
老王点评:单反相机估计没想到它的敌人是智能手机吧。

谷歌高管认为 Instagram 和 TikTok 在侵蚀该公司核心产品

TikTok 对谷歌业务的威胁不限于视频服务 YouTube,谷歌公司高管承认 Instagram 和 TikTok 危及到了公司核心产品:搜索和地图。新一代的用户的搜索习惯和以前的用户不同,他们不是输入查询词,而是倾向于通过更沉浸的方式发现内容。比如在搜寻餐馆时,四成的年轻人不是打开谷歌地图或搜索,而是打开 TikTok 或 Instagram。

消息来源:Tech Crunch
老王点评:和单反的情况类似,打败搜索的不是更好的搜索,反而是其它的产品。

R 语言有非常多的绘图和数据可视化的包,比如 graphicslatticeggplot2 等。这是 R 语言系列的第 9 篇文章,我们会介绍 R 中用来绘图的各种函数。

本文使用的 R 是 4.1.2 版本,运行环境为 Parabola GNU/Linux-libre (x86-64)。

$ R --version

R version 4.1.2 (2021-11-01) -- "Bird Hippie"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R 是自由软件,没有任何担保责任。只要遵守 GNU 通用公共许可证的版本 2 或者版本 3,你就可以对它进行(修改和)再分发。详情见 https://www.gnu.org/licenses/

折线图

我们以印度全境消费者物价指数(CPI -- 乡村/城市)数据集为研究对象,它可以从 https://data.gov.in/catalog/all-india-consumer-price-index-ruralurban-0 下载。选择“截止到 2021 年 11 月” 的版本,用 read.csv 函数读取下载好的文件,如下所示:

> cpi <- read.csv(file="CPI.csv", sep=",")

> head(cpi)
Sector Year Name Andhra.Pradesh Arunachal.Pradesh Assam Bihar
1 Rural 2011 January 104 NA 104 NA
2 Urban 2011 January 103 NA 103 NA
3 Rural+Urban 2011 January 103 NA 104 NA
4 Rural 2011 February 107 NA 105 NA
5 Urban 2011 February 106 NA 106 NA
6 Rural+Urban 2011 February 105 NA 105 NA
Chattisgarh Delhi Goa Gujarat Haryana Himachal.Pradesh Jharkhand Karnataka
1 105 NA 103 104 104 104 105 104
2 104 NA 103 104 104 103 104 104
3 104 NA 103 104 104 103 105 104
4 107 NA 105 106 106 105 107 106
5 106 NA 105 107 107 105 107 108
6 105 NA 104 105 106 104 106 106
...

以 Punjab 州为例,对每年各月份的 CPI 值求和,然后用 plot 函数画一张折线图:

> punjab <- aggregate(x=cpi$Punjab, by=list(cpi$Year), FUN=sum)

> head(punjab)
Group.1 x
1 2011 3881.76
2 2012 4183.30
3 2013 4368.40
4 2014 4455.50
5 2015 4584.30
6 2016 4715.80

> plot(punjab$Group.1, punjab$x, type="l", main="Punjab Consumer Price Index upto November 2021", xlab="Year", ylab="Consumer Price Index")

plot 函数可以传入如下参数:

参数描述
x向量类型,用于绘制 x 轴的数据
y向量或列表类型,用于绘制 y 轴的数据
type设置绘图类型:p 画点;l 画线;o 同时画点和线,且相互重叠;s 画阶梯线;h 画铅垂线
xlimx 轴范围
ylimy 轴范围
main标题
sub副标题
xlabx 轴标题
ylaby 轴标题
axes逻辑型,是否绘制坐标轴

结果如图 1。

Figure 1: Line chart

自相关图

自相关图能在时序分析中展示一个变量是否具有自相关性,可以用 R 中的 acf 函数绘制。acf 函数可以设置三种自相关类型:correlationcovariancepartial。图 2 是 Punjab 州 CPI 值的自相关图,x 表示 CPI。

acf(punjab$x,main='x')

Figure 2: ACF chart

acf 函数可以传入以下参数:

参数描述
x一个单变量或多变量的时序对象,或者一个数值向量或数值矩阵
lag.max最大滞后阶数
type字符型,设置所计算的自相关类型:correlationcovariancepartial
plot逻辑性,若 TRUE 则绘制图像,若 FALSE 则打印传入数据的描述信息
i一组要保留的时差滞后
j一组要保留的名称或数字

柱状图

R 中画柱状图的函数是 barplot。下面的代码用来画 Punjab 州 CPI 的柱状图,如图3:

> barplot(punjab$x, main="Punjab Consumer Price Index", sub="Upto November 2021", xlab="Year", ylab="Consumer Price Index", col="navy")

Figure 3: Line chart of Punjab's CPI

barplot 函数的使用方法非常灵活,可以传入以下参数:

参数描述
height数值向量或数值矩阵,包含用于绘图的数据
width数值向量,用于设置柱宽
space柱间距
beside逻辑型,若 FALSE 则绘制堆积柱状图,若 TRUE 则绘制并列柱状图
density数值型,设置阴影线的填充密度(条数/英寸),默认为 NULL,即不填充阴影线
angle数值型,填充线条的角度,默认为 45
border柱形边缘的颜色
main标题
sub副标题
xlabx 轴标题
ylaby 轴标题
xlimx 轴范围
ylimy 轴范围
axes逻辑型,是否绘制坐标轴

help 命令可以查看 barplot 函数的详细信息:

> help(barplot)

barplot                package:graphics                R Documentation

Bar Plots

Description:

     Creates a bar plot with vertical or horizontal bars.

Usage:

     barplot(height, ...)

     ## Default S3 method:
     barplot(height, width = 1, space = NULL,
             names.arg = NULL, legend.text = NULL, beside = FALSE,
             horiz = FALSE, density = NULL, angle = 45,
             col = NULL, border = par("fg"),
             main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
             xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
             axes = TRUE, axisnames = TRUE,
             cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
             inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
             add = FALSE, ann = !add && par("ann"), args.legend = NULL, ...)

     ## S3 method for class 'formula'
     barplot(formula, data, subset, na.action,
             horiz = FALSE, xlab = NULL, ylab = NULL, ...)

饼图

绘制饼图时要多加注意,因为饼图不一定能展示出各扇形间的区别。(LCTT 译注:根据统计学家和一些心理学家的调查结果,这种以比例展示数据的统计图形 实际上是很糟糕的可视化方式,因此,R 关于饼图的帮助文件中清楚地说明了并不推荐使用饼图,而是使用条形图或点图作为替代。) 用 subset 函数获得 Gujarat 州在 2021 年 1 月 Rural、Urban、Rurual+Urban 的 CPI 值:

> jan2021 <- subset(cpi, Name=="January" & Year=="2021")

> jan2021$Gujarat
[1] 153.9 151.2 149.1

> names <- c('Rural', 'Urban', 'Rural+Urban')

使用 pie 函数为 Gujarat 州的 CPI 值生成饼图,如下所示:

> pie(jan2021$Gujarat, names, main="Gujarat CPI Rural and Urban Pie Chart")

Figure 4: Pie chart

pie 函数可以传入以下参数:

参数描述
`x元素大于 0 的数值向量
label字符向量,用于设置每个扇形的标签
radius饼图的半径
clockwise逻辑型,若 TRUE 则顺时针绘图,若 FALSE 则逆时针绘图
density数值型,设置阴影线的填充密度(条数/英寸),默认为 NULL,即不填充阴影线
angle数值型,填充线条的角度,默认为 45
col数值向量,用于设置颜色
lty每个扇形的线条类型
main标题

箱线图

(LCTT 译注:箱线图主要是 从四分位数的角度出发 描述数据的分布,它通过最大值(Q4)、上四分位数(Q3)、中位数(Q2)、下四分位数(Q1) 和最小值(Q0)五处位置来获取一维数据的分布概况。我们知道,这五处位置之间依次包含了四段数据,每段中数据量均为总数据量的 1/4。通过每一段数据占据的长度,我们可以大致推断出数据的集中或离散趋势。长度越短,说明数据在该区间上越密集,反之则稀疏。)

箱线图能够用“ 须线 whisker ” 展示一个变量的 四分位距 Interquartile Range (简称 IQR=Q3-Q1)。用上下四分位数分别加/减内四分位距,再乘以一个人为设定的倍数 range(见下面的参数列表),得到 range * c(Q1-IQR, Q3+IQR),超过这个范围的数据点就被视作离群点,在图中直接以点的形式表示出来。

boxplot 函数可以传入以下参数:

参数描述
data数据框或列表,用于参数类型为公式的情况
x数值向量或者列表,若为列表则对列表中每一个子对象依次作出箱线图
width设置箱子的宽度
outline逻辑型,设置是否绘制离群点
names设置每个箱子的标签
border设置每个箱子的边缘的颜色
range延伸倍数,设置箱线图末端(须)延伸到什么位置
plot逻辑型,设置是否生成图像,若 TRUE 则生成图像,若 FALSE 则打印传入数据的描述信息
horizontal逻辑型,设置箱线图是否水平放置

boxplot 函数绘制部分州的箱线图:

> names <- c ('Andaman and Nicobar', 'Lakshadweep', 'Delhi', 'Goa', 'Gujarat', 'Bihar')
> boxplot(cpi$Andaman.and.Nicobar, cpi$Lakshadweep, cpi$Delhi, cpi$Goa, cpi$Gujarat, cpi$Bihar, names=names)

Figure 5: Box plot

QQ 图

QQ 图 Quantile-Quantile plot 可以用来对比两个数据集,也可以用来检查数据是否服从某种理论分布。qqnorm 函数能绘制正态分布 QQ 图,可以检验数据是否服从正态分布,用下面的代码绘制 Punjab 州 CPI 数据的 QQ 图:

> qqnorm(punjab$x)

Figure 6: Q-Q plot

qqline 函数可以向正态分布 QQ 图上添加理论分布曲线,它可以传入以下参数:

参数描述
x第一个数据样本
y第二个数据样本
datax逻辑型,设置是否以 x 轴表示理论曲线的值,默认为 FALSE
probs长度为 2 的数值向量,代表概率
xlabx 轴标题
ylaby 轴标题
qtype[1,9] 内的整数,设置分位计算类型,详情见 help(quantile) 的类型小节

等高图

等高图可以描述三维数据,在 R 中对应的函数是 contour,这个函数也可以用来向已有的图表添加等高线。等高图常与其他图表一起使用。我们用 contour 对 R 中的 volcano 数据集(奥克兰的火山地形信息)绘制等高图,代码如下:

> contour(volcano)

Figure 7: Volcano

contour 函数的常用参数如下:

参数描述
x,yz 中数值对应的点在平面上的位置
z数值向量
nlevels设置等高线的条数,调整等高线的疏密
labels等高线上的标记字符串,默认是高度的数值
xlim设置 x 轴的范围
ylim设置 y 轴的范围
zlim设置 z 轴的范围
axes设置是否绘制坐标轴
col设置等高线的颜色
lty设置线条的类型
lwd设置线条的粗细
vfont设置标签字体

等高线之间的区域可以用颜色填充,每种颜色表示一个高度范围,如下所示:

> filled.contour(volcano, asp = 1)
# asp 为图形纵横比,即 y 轴上的 1 单位长度和 x 轴上 1 单位长度的比率

填充结果见图 8。

Figure 8: Filled volcano

掌握上述内容后,你可以尝试 R 语言 graphics 包中的其他函数和图表(LCTT 译注:用 help(package=graphics) 可以查看 graphics 包提供的函数列表)。


via: https://www.opensourceforu.com/2022/05/plotting-data-in-r-graphs/

作者:Shakthi Kannan 选题:lkxed 译者:tanloong 校对:wxy

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

为何小小的单板机是智能工作以及小型办公室的未来。

 title=

随着疫情的大流行,我们的工作方式也正在发生着改变。工作的分散化正在成为所有公司需要面临的一项重要挑战。

智能办公室

即使工厂认为智能办公仅仅是通过虚拟私有网络来对员工的笔记本电脑进行远程控制,再稍微增加一点进化也可以让一些基本的办公服务离人们更近一点,这些都能够极大降低数据中心的负载,并且提高人们的工作体验。这个方案还有一个额外的影响就是从信息和通信技术(ICT)上来说消除了许多单点故障。

与其在公司外部有成百上千的工作场地,不如在世界范围内有着成百上千的小型办公室/分支,这就是所谓的“智能办公室”。

这种表述可能会让许多 ICT 专家感到恐慌,因为这种文化使得每个办公室都与一台大机器(即服务器)联系在一起,即使分散计算资源的优势非常明显。

一个不同的角度

如果你能用一块 50 美元的小开发板提供一个大服务器的服务会怎么样?如果这个小板子只需要一张 SD 卡和一个普通的 USB 电源支持,那又会怎么样呢?这就是 树莓派 是最灵活的解决方案的原因所在。

树莓派开发板是尺寸非常小的运行 Linux 的计算机。它有一个由树莓派基金会提供和维护的操作系统: 树莓派操作系统 Raspberry Pi OS 。它基于 Debian,并与这个最知名的 Linux 发行版共享许多软件包。此外,许多树莓派的开发板能够完美运行最知名的 Ubuntu 服务器,它涵盖了 ARM 处理器支持,提供了对低功耗处理器的支持。

但树莓派开发板对小公司来说也是一个很好的机会,以能够承担得起的代价获得大量的(开源)服务。但这种情况下,你必须考虑数据丢失的风险,因为你把所有的服务运行在一个小的、消费级的硬件上。不过设置正确的备份/恢复程序能够降低这些风险。

你能从树莓派开发板上提供什么服务?

大多数服务通常由更昂贵的服务器提供。这里的“大多数”取决于一些限制:

  • ARM 处理器: 一些软件包只支持 x86/x64 处理器。这是最难克服的挑战之一。但另一方面,ARM 处理器的市场份额不断增长,使得程序员为他们的软件开发了兼容 ARM 处理器的版本。
  • 内存容量: 这是一个仅限于在复杂应用以复杂的方式进行复杂的计算的情况下讨论的问题。很多时候,这只不过是关于重新审查代码、拆分步骤,并保持简单高效的问题。此外,如果一个服务虽然只服务少数几个用户,但需要大量的内存/CPU,这大概也意味着此服务没有正常工作。这可能是你消除浪费资源的旧问题的一个机会。最后,最新的树莓派开发板把内存容量升级到了 8GB,这是一个很大的提升。
  • 对服务器没有经验的用户: 这是另一个问题,你可以在基础镜像所在的树莓派的 micro-SD 卡中存储系统和运行数据。

也就是说,你能够用树莓派做很多有趣的事情。在 我的博客 里,我通过运行各种服务进行了测试 —— 从基本的 LAMP 服务器到复杂的 CRM。从简单到复杂系统,全部都是开源的,例如:

对树莓派来说,另一个有趣的用法是在你的远程办公室获得提供高级服务的 Wi-Fi 热点,并且可以从它的以太网端口进行控制。

最后,树莓派也能够运行容器,这是一个额外的工具,从这个不可思议的开发板中获得一个可用的服务世界。


via: https://opensource.com/article/22/1/raspberry-pi-business

作者:Giuseppe Cassibba 选题:lujun9972 译者:void-mori 校对:wxy

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

谷歌披露其内部使用的 Linux 滚动发行版

谷歌早期使用的内部 Linux 发行版是基于 Ubuntu LTS 的 Goobuntu。Ubuntu LTS 需要每隔两年更新一次,这对于需要升级几十万台计算机的谷歌来说并非易事。因此谷歌转向了滚动更新发行版,它没有使用著名的滚动更新发行版,如 Arch Linux,而是基于 Debian 测试分支构建了自己的滚动发行版。它将新发行版称为 gLinux Rodete(是 Rolling Debian Testing 的缩写)。Debian 测试分支是滚动更新的。谷歌引入了名为 Sieve 的工作流系统,使用虚拟化测试套装确保软件包新版本不会破坏核心组件和开发者的工作流程。谷歌于 2018 年底完成迁移,次年关闭了剩余的 Goobuntu。

消息来源:谷歌
老王点评:谷歌的这个经验其实可以供其它的大型 IT 企业参考。

谷歌云宣布采用 ARM 芯片

谷歌云周三宣布,他们将开始采用基于 ARM 技术的芯片。随着谷歌加入 ARM 阵营,几乎所有大型云服务提供商现在都已经开始提供基于 ARM 的云计算服务。谷歌云的新服务将基于 Ampere 公司的 Altra 芯片,该公司还向微软和甲骨文等企业出售芯片。另外一些云计算提供商,如甲骨文、阿里云则在设计自己的 ARM 架构芯片,并且已经委托工厂进行生产。

消息来源:Tech Crunch
老王点评:ARM 和 RISC-V 大行其道,我想英特尔和 AMD 感受到压力了吧。

去年几乎整个工业行业都受到过攻击

《2022 年工业安全状况报告》调查了 800 名负责这些工业系统的高级 IT 和安全负责人。报告发现,94% 的受访者在过去 12 个月里,其工业物联网(IIoT)或运营技术(OT)系统经历了某种形式的攻击。关键基础设施是网络犯罪分子的一个有吸引力的目标,但不幸的是,IIoT/OT 安全项目往往被其他安全举措所取代,或者由于成本或复杂性而失败,使组织处于风险之中。

消息来源:CSO Online
老王点评:其实工业互联网真没体验过互联网那么疯狂的攻击力度。至少互联网企业大多都有网络安全相关人员,工业互联网很少有专门配置的网络安全人员。

massCode 是一个开源的代码片段管理器,使你能够涉足代码,提高生产力,并节省时间。

如果一个工具能让事情变得更快、更有效率,那对许多开发者来说就是救命稻草。

虽然有各种服务和平台试图使编码体验更快,但你仍然有其他几个选择可以考虑。

例如,代码片段管理器。使用代码片段管理器,你的目的是保存你想快速访问的代码片段。它更像是指定快捷方式,在你的程序中添加所需的代码。

这不是一个新的概念,但可用于这项工作的工具可能不完全是开源的。

幸运的是,我偶然发现了一个不错的项目,它为你提供了一个自由开源的片段管理器,即 massCode。

massCode:跨平台的开源片段管理器

masscode

massCode 是一个有用的代码片段管理器,具有一些基本功能。

它支持广泛的编程语言,还包括对 Markdown 的支持。你可以使用文件夹组织你的代码片段,添加标签等。

massCode 可用于 Linux、Windows 或 macOS。让我们来看看一些主要功能。

massCode 的特点

masscode screenshot

massCode 包括许多有用的功能。其中一些是:

  • 多层次的文件夹结构
  • 每个片段都可以存储在片段(标签)中
  • 集成的编码编辑器 Ace
  • 代码格式化或高亮显示
  • 支持带预览的 Markdown
  • 能够搜索片段
  • 给你的代码段添加描述,以了解它的用途
  • 各种深色/浅色主题可用
  • 能够从 SnippetsLab 迁移
  • 自动保存以帮助你保留你的工作
  • 将其与云同步文件夹整合
  • 支持 VSCode、Raycast 和 Alfred 的扩展

除了上述所有功能外,你还可以轻松地复制保存代码片段,只需点击一下。

对于自定义,你可以调整字体大小和系列、切换自动换行、高亮显示行、使用单引号或添加尾随命令,这要归功于 Prettier

此外,一份片段可以有多个分片。因此,它使你有机会将其用于各种用例。

如前所述,你也可以通过改变同步文件夹的存储位置将其与你的任何云同步服务整合。

masscode migrate preferences

总的来说,它工作得很好,有一些局限性,比如缺乏将嵌套文件夹从 SnippetsLab 迁移到 masCode 的能力。

在 Linux 上安装 massCode

massCode 有 Snap 包,但不在 Snap 商店中。你可以直接下载该软件包,并使用以下命令来安装它:

sudo snap install --dangerous ~/Downloads/masscode_2.6.1_amd64.snap

我们的一份故障排除指南可以帮助你了解 snap 的 dangerous 选项

你可以通过其 官方网站GitHub 发布区 下载 Windows/MacOS 版。

massCode

你试过 massCode 吗?还有其他可用于 Linux 的代码片段管理器吗?请在下面的评论中告诉我你的想法。


via: https://itsfoss.com/masscode/

作者:Ankush Das 选题:lkxed 译者:geekpi 校对:wxy

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