mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-19 00:30:12 +08:00
commit
9c9a8a32e5
@ -0,0 +1,51 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14162-1.html)
|
||||
[#]: subject: (IoT offers a way to track COVID-19 via connected thermometers)
|
||||
[#]: via: (https://www.networkworld.com/article/3539058/iot-offers-a-way-to-track-covid-19-via-connected-thermometers.html)
|
||||
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
|
||||
物联网提供了一种通过联网温度计跟踪 COVID-19 的方法
|
||||
======
|
||||
|
||||
> COVID-19 大流行使一家联网温度计制造商 Kinsa 成为全国知名企业,因为它提供了一个可能了解疾病传播的窗口。
|
||||
|
||||
![][1]
|
||||
|
||||
一家名为 Kinsa 的公司正在利用 [物联网][2] 技术来创建一个连接温度计的网络,收集大量的匿名健康数据,这些数据可以为了解当前和未来的流行病提供帮助。
|
||||
|
||||
该公司创始人兼首席执行官 Inder Singh 表示,能够近乎实时地跟踪美国各地的发烧水平,对于广大公众以及医疗保健部门和政府的决策者来说,都可能是一条至关重要的信息。
|
||||
|
||||
该系统的联网技术相对简单 —— 温度计通过蓝牙连接到用户手机上的一个应用程序,该应用程序通过互联网将匿名数据报告给 Kinsa 的云。Singh 强调说,该公司只整理到县一级的数据,并声称通过 Kinsa 的数据识别个人几乎是不可能的。
|
||||
|
||||
“我们不提供个人身份信息,我们不提供识别数据,”他说。“这款应用程序只会引导你找到你需要的护理和服务。”
|
||||
|
||||
有了体温读数和一些关于体温测量者的基本人口统计信息以及他们的其他症状,这款应用程序可以提供基本的指导,比如是否需要去看医生,以及用户所在的区域是否出现了异常的发烧程度。
|
||||
|
||||
然而,真正的价值在于 Kinsa 在其 [美国健康天气地图][1] 上分析和细分的聚合数据,这些数据是从该公司生态系统中的 100 多万个温度计收集而来的。根据 Singh 的说法,这个想法是为了给公众提供一种方式,让他们对自己的健康做出更明智的决定。
|
||||
|
||||
“这是一个参与性很强的活动,”他说。“每个人都能得到数据,每个人都能做出反应。”
|
||||
|
||||
Kinsa 仍然直接向消费者销售温度计,但该公司正计划与地方政府、卫生部门甚至学区进行更密切的合作——辛格说,Kinsa 已经与美国两个州(他拒绝透露其名称)以及包括佛罗里达州的圣奥古斯丁在内的多个市政府合作。
|
||||
|
||||
他说:“我们的希望是,我们能够找出如何建立一个可扩展的模型 —— 我们永远不会只靠卖 20 美元的温度计就可以在全球范围内扩展。”。我们的目标是使该产品能够广泛应用,从而成为医疗保健部门有意义的早期预警系统。
|
||||
|
||||
------
|
||||
via: https://www.networkworld.com/article/3539058/iot-offers-a-way-to-track-covid-19-via-connected-thermometers.html
|
||||
|
||||
作者:[Jon Gold][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Jon-Gold/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2020/04/kinsa_influenza_map_2020-04-21_by_kinsa_leaflet_openstreetmap_carto_2400x1600-100839260-large.jpg?auto=webp&quality=85,70
|
||||
[2]: https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html
|
||||
[3]: https://www.networkworld.com/newsletters/signup.html
|
||||
[4]: https://www.facebook.com/NetworkWorld/
|
||||
[5]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,64 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14171-1.html)
|
||||
[#]: subject: (NIST aims to make frequency sharing more efficient for wireless networks)
|
||||
[#]: via: (https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html)
|
||||
[#]: author: (Patrick Nelson https://www.networkworld.com/author/Patrick-Nelson/)
|
||||
|
||||
NIST 的目标是使无线网络的频率共享更加有效
|
||||
======
|
||||
|
||||
> 机器学习方案将帮助不同的无线电协议,如 Wi-Fi 和 LTE,在同一的无线频谱中更有效地协同工作。
|
||||
|
||||

|
||||
|
||||
美国国家标准与技术研究所([NIST][1])开发的机器学习方案有可能显著改善 [5G][2] 和其他无线网络选择和共享通信频率的方式。研究人员声称,与试错法相比,NIST 的方案可以使共享通信频率的过程的效率提高多达 5000 倍。
|
||||
|
||||
NIST 系统的理念是,无线电设备可以从经验中学习其网络环境,而不是像现在这样,简单地根据试错法选择频率信道。
|
||||
|
||||
NIST 在 [其网站上的一篇文章][3] 中说,在特定的环境条件下,“该算法可以学习哪个信道提供最好的结果”。
|
||||
|
||||
该团队说:“该方案可以被编程到现实世界中许多 [不同] 类型网络的发射机软件中。”
|
||||
|
||||
从本质上讲,这个计算机模拟的算法是一个映射环境射频条件的先前经验的公式。例如,这些条件可以包括在一个信道(一组相邻的频率)内运行的发射机的数量。
|
||||
|
||||
文章说:“……如果发射机选择了一个未被占用的信道,那么成功传输的概率就会上升,从而导致更高的数据速率。”同样地,当发射机选择一个没有太多干扰的信道时,信号会更强,你也会得到更好的数据速率。发射机会记住哪个信道提供了最佳结果,并学会在下次需要清晰信号时学会选择那个位置。
|
||||
|
||||
这与今天的工作方式不同。也就是说,无线电只是试图找到一个开放频率,然后与类似协议的无线电进行通信。在复杂的情况下,使用诸如 Wi-Fi、跳频和 [波束成形][4] 等技术来优化信道。
|
||||
|
||||
研究人员解释说,NIST 的机器学习技术的亮点在于共享频谱,比如通过授权频谱辅助接入(LAA)共享 Wi-Fi。LAA 是非授权频谱中的 LTE 频谱,称为 LTE-U,频率为 5GHz。在相同频率下的 Wi-Fi 与 LAA 的组合中,协议是不同的:无线电之间不能相互通信以协调工作,而且频带越繁忙就可能出现混乱 —— 传输会遇到其他传输。但是,如果所有的无线电接收机都能更好地选择它们的占位,通过学习哪些有效,哪些无效,那么这将会更好。
|
||||
|
||||
NIST 工程师 Jason Coder 在文章中说:“这可能会使非授权频段的通信更加高效。”
|
||||
|
||||
事实上,NIST 声称,它“可以帮助 5G 和其他无线网络选择和共享通信频率,其效率大约是试错法的 5000 倍。”
|
||||
|
||||
这里的关键词是“共享”,因为为了在有限的频谱内增加通信,必须进行更多的共享 —— 物联网或媒体流等用户都在争夺同样的隐喻资产。随着物联网和数字技术的不断发展,非授权和授权频段的结合,就像 LAA 中的情况一样,可能会变得更加普遍。(非授权的频段是指那些没有分配给特定用户的频段,比如移动网络运营商;授权频段是在拍卖中中标并分配的。)
|
||||
|
||||
在 NIST 场景中,相互竞争的发射机“各自学习在不相互通信的情况下最大化网络数据速率”。因此,多种协议和数据类型,如视频或传感器数据,或 Wi-Fi 和移动网络,可以相互协作。
|
||||
|
||||
NIST 的方案大大简化了为发射机分配最佳信道的过程,根据这篇文章研究发现,穷尽努力 [使用试错法] 来确定最佳解决方案需要大约 45600 次试验,而这个方案只需要尝试 10 个渠道就可以选择类似的解决方案,仅仅付出 0.02% 的努力。”
|
||||
|
||||
NIST 的研究人员在 IEEE 第 91 届车辆技术会议上展示了他们的研究成果。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html
|
||||
|
||||
作者:[Patrick Nelson][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Patrick-Nelson/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.nist.gov/
|
||||
[2]: https://www.networkworld.com/article/3330603/5g-versus-4g-how-speed-latency-and-application-support-differ.html
|
||||
[3]: https://www.nist.gov/news-events/news/2020/05/nist-formula-may-help-5g-wireless-networks-efficiently-share-communications
|
||||
[4]: https://www.networkworld.com/article/3445039/beamforming-explained-how-it-makes-wireless-communication-faster.html
|
||||
[5]: https://events.vtsociety.org/vtc2020-spring/conference-sessions/program/
|
||||
[6]: https://www.facebook.com/NetworkWorld/
|
||||
[7]: https://www.linkedin.com/company/network-world
|
138
published/20211201 Edit audio on Linux with Audacity.md
Normal file
138
published/20211201 Edit audio on Linux with Audacity.md
Normal file
@ -0,0 +1,138 @@
|
||||
[#]: subject: "Edit audio on Linux with Audacity"
|
||||
[#]: via: "https://opensource.com/article/21/12/audacity-linux-creative-app"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14163-1.html"
|
||||
|
||||
在 Linux 上用 Audacity 编辑音频
|
||||
======
|
||||
|
||||
> Audacity 是开源软件世界中的一个经典的强大工具,可以用于录音、编辑等对声音进行操作。
|
||||
|
||||

|
||||
|
||||
Audacity 声音编辑器是填补了一个似乎没有人意识到的空白的开源应用程序。它最初是在卡内基梅隆大学开发的,当时很多人还认为电脑只是用来办公和学习的,要进行严肃的多媒体工作需要特殊的 DSP 外围设备。Audacity 认识到,普通计算机用户偶尔也需要编辑音频。在此后的 20 年里,Audacity 团队一直为录音和清理声音打造这个开源的应用程序。
|
||||
|
||||
我经常使用 Audacity,作为一个受过培训的编辑,我已经习惯了在我的应用程序中使用重要的、通常是单键的键盘快捷键。通过围绕单个字母建立快捷键,你可以一只手放在鼠标上,一只手放在键盘上,所以选择一个工具或一个重要功能和点击鼠标之间的延迟仅仅是几毫秒而已。在本文中,我将专门给出我在 Audacity 中使用的键盘快捷方式,如果你想优化自己的设置可以参考。
|
||||
|
||||
### 在 Linux 上安装 Audacity
|
||||
|
||||
在大多数 Linux 发行版上,Audacity 都可以从你的软件包管理器中获得。在 Fedora、Mageia 和类似的发行版上:
|
||||
|
||||
```
|
||||
$ sudo dnf install audacity
|
||||
```
|
||||
|
||||
在 Elementary、Mint 和其他基于 Debian 的发行版上:
|
||||
|
||||
```
|
||||
$ sudo apt install audacity
|
||||
```
|
||||
|
||||
然而,我是以 [Flatpak][2] 方式来使用 Audacity 的。
|
||||
|
||||
在 Windows 或 macOS 上,可以从 [Audacity 网站][3] 下载一个 Audacity 安装程序。
|
||||
|
||||
它最近有一个叫做 [Tenacity][4] 的复刻版本,是另外的开发者团队准备延续 Audacity 的传统而开发的。在写这篇文章的时候,两者基本上是相同的应用程序,所以这篇文章同样适用于两者。以后是否在功能上有分歧,还有待观察。
|
||||
|
||||
安装后,从你的应用程序或活动菜单中启动该应用程序。
|
||||
|
||||
### 在 Audacity 中设置输入
|
||||
|
||||
首先,你必须设置你的音频 *输入*,以便 Audacity 接收你使用的麦克风或音频接口的信号。你选择什么输入取决于你的设置和你拥有的音频外围设备。USB 麦克风通常被标为 <ruby>麦克风<rt> Microphone</rt></ruby>,但带有 1/8" 输入插孔的麦克风可能被标为 <ruby>线路输入<rt>Line in</rt></ruby>。你可以选择不同输入:
|
||||
|
||||
#### Pulse Audio 音频服务器
|
||||
|
||||
Linux 使用<ruby>高级 Linux 声音架构<rt>Advanced Linux Sound Architecture</rt></ruby>(ALSA)作为其声音的后端,而 macOS 和 Windows 则使用自己的封闭框架。在 Linux 上,你可以将 Pulse Audio 音频服务器设置为你的输入源,将 Audacity 导向 _一个_ 虚拟接口(Pulse),因此你可以从系统设置中选择声音输入。这是我的首选方法,因为它将所有控制集中在一个方便的控制面板上。在一个应用程序中选择一个麦克风,却发现麦克风在其他地方被静音的日子已经一去不复返了。
|
||||
|
||||
![声音输入][5]
|
||||
|
||||
#### 设备访问
|
||||
|
||||
如果你的发行版或操作系统没有使用 Pulse Audio 音频服务器,或者由于某种原因你喜欢直接访问声音设备,你可以从下拉菜单中选择一个设备。这需要了解你的系统是如何列出声音设备的,这有时候并不很好找。台式机可能有几个输入源,有些在机箱的后面,有些在前面的面板上。笔记本电脑通常输入方式较少,但你可能在网络摄像头附近有一个麦克风,如果你使用的是外部麦克风,可能还有一个。
|
||||
|
||||
### 用 Audacity 录制音频
|
||||
|
||||
选中你的输入后,按“<ruby>录音<rt>Record</rt></ruby>”按钮(有红点的按钮)。
|
||||
|
||||
![录制音频][7]
|
||||
|
||||
如果你是对着麦克风录音,你所要做的就是开始说话。如果你从,比如说,[黑胶唱片机][8] 录制输入,那么你必须启动它。不管是什么,只要 Audacity 处于录音模式,任何发送到你选择的输入的信号都会被写入 Audacity 并在你的屏幕上呈现为波形。
|
||||
|
||||
**我的快捷方式:** 我使用 `R` 键来开始录音。默认情况下,按下空格键停止录音(也可以回放录音)。
|
||||
|
||||
### 编辑音频
|
||||
|
||||
录音很少完全按计划进行。也许你过早地开始录音,不得不忍受几秒钟的黑胶静音(它就像静音,但更嘈杂),或者你发现你的语气停顿都是 “呃”、“嗯”或其他声调,或者你一开始就录制错误了。Audacity 首先是一个波形编辑器,这意味着你可以在最终的录音中剪掉你不想要的声音,就像你在文字处理器中输入的文字一样容易编辑。
|
||||
|
||||
### 编辑过零点的声音
|
||||
|
||||
Audacity 的主要编辑工具是“<ruby>选择工具<rt>Selection Tool</rt></ruby>”。它是你在文字处理程序中看到的熟悉的“工字形”光标,它的功能在这里也是一样。你可以点击并拖动这个光标,穿过声音的一个区域,然后你可以复制、粘贴、剪切、删除或直接播放这个区域。
|
||||
|
||||
**我的快捷键:** 我用 `I` 键来激活“<ruby>选择工具<rt>Selection Tool</rt></ruby>”,因为光标看起来像字母 “I”。
|
||||
|
||||
在文字处理器中,你可以非常清楚地看到每个字母的结尾和开头。你不可能不小心选择和删除一个字母的一半。然而,在现代应用程序中,声音的 “分辨率”(称为 _采样率_)非常好,所以人眼很难在音频波中找到一个清晰的断点。Audacity 可以调整你的选择,使你选择的区域落在所谓的 <ruby>[过零点][9]<rt>zero crossing</rt></ruby>,这可以避免在你做切割的地方出现微妙但明显的突兀现象。
|
||||
|
||||
![过零点][10]
|
||||
|
||||
在你做出选择后,进入“<ruby>选择<rt> Select</rt></ruby>”菜单,选择 “<ruby>在过零点<rt>At Zero Crossings</rt></ruby>”。
|
||||
|
||||
**我的快捷键:** 我使用 `Z` 键来调整选区到过零点,使用 `X` 键来删除一个区域(它使我不必将手一直移到 `Del` 或 `Backspace` )。
|
||||
|
||||
### 腾出空间
|
||||
|
||||
编辑的好处是,你的最终产品不一定要与你录制的内容一致。我曾经录制过一些讲座,甚至录制过一些读物的剧本,但最终因为某种原因而偏离了方向,或者遗漏了一部分重要的信息,后来在发布前又重新编排或添加了全新的音频。
|
||||
|
||||
移动所选的音频与删除类似,但不是删除音频,而是复制和粘贴所选内容,就像你在文字处理器中做的那样 —— 使用标准的键盘快捷键复制或剪切,重新定位你的光标,然后粘贴。不过,为插入的内容腾出空间,需要在音频时间线上留出空位,这样你就可以录制额外的音频来填补你所创造的空白。为此,你可以使用“<ruby>选择工具<rt>Selection Tool</rt></ruby>”和“<ruby>时间偏移工具<rt>Time Shift Tool</rt></ruby>”。
|
||||
|
||||
要在音频中创建一个空隙,将你的“<ruby>选择工具<rt>Selection Tool</rt></ruby>”的光标放在你想添加空隙的地方。导航到“<ruby>编辑<rt>Edit</rt></ruby>”菜单,选择“<ruby>剪辑边界<rt>Clip Boundaries</rt></ruby>”子菜单,然后选择“<ruby>分割<rt>Split</rt></ruby>”。这将在你的选择点上分割你的音频。
|
||||
|
||||
激活顶部工具栏中的“<ruby>时间偏移工具<rt>Time Shift Tool</rt></ruby>”(图标是两个连接的箭头,分别指向左边和右边),点击并拖动分割后的音频的右半部分,创建一个间隙。
|
||||
|
||||
![空隙][11]
|
||||
|
||||
**我的快捷方式:** 我用 `K` 来分割,用 `T` 来激活“<ruby>时间偏移工具<rt>Time Shift Tool</rt></ruby>”。
|
||||
|
||||
### 导出音频
|
||||
|
||||
当你对你的音频感到满意时,你可以导出它,这样你就可以与他人分享。Audacity 可以选择它能够导出的格式,并且它能够将其输出到像 [ffmpeg][12] 这样的工具,以获得比你可能永远需要的更多格式。
|
||||
|
||||
我更喜欢用 FLAC 格式输出音频,这种音频格式有点像 WAV,只是它是无损压缩的。它只占用一小部分空间,而没有任何质量上的损失。要尝试它,去“<ruby>文件<rt>File</rt></ruby>”菜单,选择“<ruby>导出<rt>Export</rt></ruby>”子菜单,然后选择“<ruby>导出音频<rt>Export Audio</rt></ruby>”。有了 FLAC 文件作为你的 [黄金镜像][13],你可以用 SoundConverter 把你的文件转换成任何数量的传输目标的最佳格式 —— 用于浏览器的 Ogg Vorbis 或 Opus 或 Webm,用于苹果设备的 M4A 文件,也许还有用于传统系统的 MP3。
|
||||
|
||||
如果你只是想从 Audacity 快速简单地导出,简单的选择是 Ogg Vorbis。这是一种开源的文件格式,可以在大多数网页浏览器(Firefox、Chromium、Chrome、Android 和 Edge)和 [如 VLC、mpv 等媒体播放器][14] 播放。
|
||||
|
||||
### 探索 Audacity
|
||||
|
||||
Audacity 是开源软件世界中的一个经典动力工具。基本的录音和编辑仅仅是个开始。你可以添加效果、[过滤掉(一些)噪音][15]、调整速度、改变音高等等。无论你是在学校录制讲座、混合鼓循环、为视频游戏拼接声音,还是只是在探索音频世界,都可以去启动 Audacity,发挥创意!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/audacity-linux-creative-app
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/colorful_sound_wave.png?itok=jlUJG0bM (Colorful sound wave graph)
|
||||
[2]: https://opensource.com/article/21/11/how-install-flatpak-linux
|
||||
[3]: https://www.audacityteam.org/
|
||||
[4]: https://github.com/tenacityteam/tenacity
|
||||
[5]: https://opensource.com/sites/default/files/uploads/gnome-sound-setting.png (Sound input)
|
||||
[6]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[7]: https://opensource.com/sites/default/files/uploads/audacity-input.png (Recording audio)
|
||||
[8]: https://opensource.com/article/18/1/audacity-digitize-records
|
||||
[9]: https://en.wikipedia.org/wiki/Zero_crossing
|
||||
[10]: https://opensource.com/sites/default/files/uploads/audacity-zero-crossing.jpg (Zero crossing)
|
||||
[11]: https://opensource.com/sites/default/files/uploads/audacity-split.jpg (Spacer)
|
||||
[12]: https://opensource.com/article/21/11/linux-line-commands-reclaim-space-converting-files#audio
|
||||
[13]: https://opensource.com/article/19/7/what-golden-image
|
||||
[14]: https://opensource.com/article/21/2/linux-media-players
|
||||
[15]: https://opensource.com/life/14/10/how-clean-digital-recordings-using-audacity
|
@ -3,29 +3,30 @@
|
||||
[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14169-1.html"
|
||||
|
||||
在 2022 年推进你的 Kubernetes 之旅的 15 种方法
|
||||
2021 总结:推进你的 Kubernetes 之旅的 15 种方法
|
||||
======
|
||||
无论你是在家庭实验室里试验 Kubernetes,还是想成为一个成为 Kubernetes 的维护者,Opensource.com 上都有适合你的资源。
|
||||
![Ship captain sailing the Kubernetes seas][1]
|
||||
|
||||
> 无论你是在家庭实验室里试验 Kubernetes,还是想成为一个成为 Kubernetes 的维护者,这里都有适合你的资源。
|
||||
|
||||

|
||||
|
||||
2021 年对于 Kubernetes 来说是令人兴奋的一年,这些文章证明了这一点。从有趣的界面到家庭实验室再到开发环境,看看我在 2021 年最喜欢的 K8s 文章。
|
||||
|
||||
如果你对基本原理感兴趣,这篇[关于 Linux 上的容器][2]从内到外阐明了 Linux 容器的工作原理。你是否想获取一些乐趣?安装 minikube 并开始使用 [DOOM 游戏作为界面][3]来管理它。DOOM 的另一个选择是 [kubectl][4],一个更传统的 Kubernetes 控制 CLI。
|
||||
如果你对基本原理感兴趣,这篇 [介绍 Linux 上的容器][2] 的文章从内到外阐明了 Linux 容器的工作原理。你是否想获取一些乐趣?安装 minikube 并开始使用 [DOOM 游戏作为界面][3] 来管理它。另一个选择是 [kubectl][4],这是一个更传统的 Kubernetes 控制 CLI。
|
||||
|
||||
即使你只在你的 [Linux homelab][5] 上运行 Kubernetes,你也可以使用 [Terraform 和 Helm][6] 等工具来自动化日常操作。这创造了一个[更好地掌握 Terraform][7]的机会。
|
||||
即使你只在你的 [Linux 家庭实验室][5] 上运行 Kubernetes,你也可以使用 [Terraform 和 Helm][6] 等工具来自动化日常操作。这创造了一个 [更好地掌握 Terraform][7] 的机会。
|
||||
|
||||
生活中可以确定的几件事之一是,计算机会以奇怪而有趣的方式出错。[用 Prometheus 和 Grafana 监控你的 Kubernetes 集群][8],看看它是如何出错的。[使用 Grafana Tempo 的分布式跟踪][9]来监控里面运行的应用。通过引入 [Chaos Mesh][10] 在 Kubernetes 中造成有意的混乱,来监控你监控的性能。
|
||||
|
||||
如果你正在开发在 Kubernetes 上运行的应用,[Quarkus 可以帮助你开发和测试][11]。使用 Java 的开发者[可以使用容器在 Kubernetes 上运行][12]应用。像 [Tackle-DiVA][13] 这样的工具有助于将应用移植到容器中。
|
||||
如果你正在开发在 Kubernetes 上运行的应用,[Quarkus 可以帮助你开发和测试][11]。使用 Java 的开发者 [可以在 Kubernetes 上使用容器运行][12] 应用。像 [Tackle-DiVA][13] 这样的工具有助于将应用移植到容器中。
|
||||
|
||||
像所有成功的开源项目一样,Kubernetes 的部分价值是一个强大的[生态系统][14]。例如,考虑到 [KubeEdge 项目][15],它有助于将计算和数据更接近终端用户。在使用 Kubernetes 一段时间后,你甚至可能想[成为 Kubernetes 维护者][16]。
|
||||
像所有成功的开源项目一样,Kubernetes 的部分价值是一个强大的 [生态系统][14]。比如 [KubeEdge 项目][15],它有助于将计算和数据更接近终端用户。在使用 Kubernetes 一段时间后,你甚至可能想 [成为 Kubernetes 维护者][16]。
|
||||
|
||||
有这么多有趣的 Kubernetes 主题可供选择,可能很难将它们全部看完。不过,对于系统管理员和开发人员来说,优秀的 Kubernetes 资源是必须的。请阅读这些精选的内容。
|
||||
有这么多有趣的 Kubernetes 内容可供学习,可能很难将它们全部看完。不过,对于系统管理员和开发人员来说,优秀的 Kubernetes 资源是必须的。请阅读这些精选的内容。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -34,7 +35,7 @@ via: https://opensource.com/article/21/12/learn-kubernetes-2022
|
||||
作者:[Moshe Zadka][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,22 +3,22 @@
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14166-1.html"
|
||||
|
||||
在 Linux 中像专业人士一样使用 GNOME 截图工具
|
||||
======
|
||||
|
||||
有[几个可用于 Linux 的截图工具][1]。我更喜欢[使用 Flameshot 进行截图][2]和 Shutter 来编辑现有的截图。
|
||||
有 [几个可用于 Linux 的截图工具][1],我喜欢 [使用 Flameshot 进行截图][2] 和 Shutter 来编辑现有的截图。
|
||||
|
||||
但不幸的是,Flameshot 不能在 4K 屏幕上工作。因此,我不得不使用默认的 GNOME 截图工具,它在我的带有超高清屏幕的戴尔 XPS 上工作得非常好。
|
||||
|
||||
![GNOME screenshot tool][3]
|
||||
|
||||
这一“被迫之举”让我意识到,如果你知道如何正确使用,[GNOME 截图][4]并不是一个糟糕的工具。
|
||||
这一“被迫之举”让我意识到,如果你知道如何正确使用,[GNOME 截图][4] 并不是一个糟糕的工具。
|
||||
|
||||
由此,我指的是用键盘快捷键来使用它,因为这样可以节省大量的时间。
|
||||
在这里,我指的是用键盘快捷键来使用它,因为这样可以节省大量的时间。
|
||||
|
||||
让我展示一下如何像专家一样用那些方便的键盘快捷键来使用 GNOME 截图应用。
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
### 对整个屏幕进行截图:使用 Prt Scr 键
|
||||
|
||||
这是最简单的操作。在你的键盘上找到 Prt Sc 或 Prt Scr 或 Prt Scn 键并按下它。它将对整个屏幕进行截图,并将其保存在你的主目录下的图片文件夹中。
|
||||
这是最简单的操作。在你的键盘上找到 `Prt Sc`(或称 `Prt Scr`、`Prt Scn`)键并按下它。它将对整个屏幕进行截图,并将其保存在你的主目录下的图片文件夹中。
|
||||
|
||||
![Screenshot of entire screen saved as PNG file][5]
|
||||
|
||||
@ -40,9 +40,9 @@
|
||||
|
||||
要给正在运行的图形应用截图,你需要这样做:
|
||||
|
||||
点击正在运行的应用,使其成为焦点。现在,按住 Alt 键并按 Prt Scr 键。
|
||||
点击正在运行的应用,使其获得焦点。现在,按住 `Alt` 键并按 `Prt Scr` 键。
|
||||
|
||||
它将获得应用窗口的截图,并保存到图片目录中。
|
||||
它将得到应用窗口的截图,并保存到图片目录中。
|
||||
|
||||
![Screenshot of an application window in GNOME][6]
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
|
||||
### 对屏幕的选定区域进行截图:使用 Shift+Prt Scr 键
|
||||
|
||||
按住 Shift 键。然后按 Prt Scr 键。你会看到屏幕上出现一个选框。将鼠标移动到所需的区域,开始拖动光标。它将高亮显示该区域,并在你释放鼠标后立即进行截图。
|
||||
按住 `Shift` 键。然后按 `Prt Scr` 键。你会看到屏幕上出现一个选框。将鼠标移动到所需的区域,开始拖动光标。它将高亮显示该区域,并在你释放鼠标后立即进行截图。
|
||||
|
||||
![Taking screenshot of an area in GNOME][7]
|
||||
|
||||
@ -62,19 +62,17 @@
|
||||
|
||||
![Screenshot copied to the clipboard can be used in various applications][8]
|
||||
|
||||
首先截图,然后将保存的截图文件附在聊天工具中是不必要的。相反,你可以直接将截图复制到剪贴板,然后使用 Ctrl+V 快捷键将图像(从剪贴板)粘贴到聊天工具。
|
||||
首先截图,但没必要将保存的截图文件附在聊天工具中。相反,你可以直接将截图复制到剪贴板,然后使用 `Ctrl+V` 快捷键将图像(从剪贴板)粘贴到聊天工具。
|
||||
|
||||
这样,你的系统就不会有不必要的截图,你也可以节省一些鼠标点击次数。
|
||||
这样,你的系统就不会保留不必要的截图,你也可以节省一些鼠标点击次数。
|
||||
|
||||
要把截图保存到剪贴板,以便你能把它们粘贴到聊天工具、绘图工具或文档中,你必须把 Ctrl 键和你在前面几节中看到的其他截图快捷键一起使用。
|
||||
要把截图保存到剪贴板,以便你能把它们粘贴到聊天工具、绘图工具或文档中,你必须把 `Ctrl` 键和你在前面几节中看到的其他截图快捷键一起使用。
|
||||
|
||||
* Ctrl+Prt Scr:将整个屏幕的截图复制到剪贴板上。
|
||||
* Ctrl+Alt+Prt Scr:将应用窗口的截图复制到剪贴板上。
|
||||
* Ctrl+Shift+Prt Scr:将选定区域的截图复制到剪贴板上
|
||||
* `Ctrl+Prt Scr`:将整个屏幕的截图复制到剪贴板上。
|
||||
* `Ctrl+Alt+Prt Scr`:将应用窗口的截图复制到剪贴板上。
|
||||
* `Ctrl+Shift+Prt Scr`:将选定区域的截图复制到剪贴板上
|
||||
|
||||
|
||||
|
||||
我必须补充一点,在这种情况下,[使用像 Flameshot 这样的工具][2]甚至更好,因为它允许你在将截图保存到剪贴板之前对其进行注释。这样,你可以很容易地高亮屏幕的重要部分。
|
||||
我必须补充一点,在这种情况下,[使用像 Flameshot 这样的工具][2] 甚至更好一些,因为它允许你在将截图保存到剪贴板之前对其进行注释。这样,你可以很容易地高亮屏幕的重要部分。
|
||||
|
||||
### 在截图中添加延迟,以便对下拉菜单进行截图
|
||||
|
||||
@ -90,7 +88,7 @@
|
||||
|
||||
### 你有什么技巧吗?
|
||||
|
||||
这就是我对 GNOME 截图工具的所有提示。如果你还没有广泛地使用它,你应该会发现它很有帮助。如果你已经是一个专家,也许你知道一些可以添加到本文中的东西?请在评论区与我们其他人分享吧。
|
||||
这就是我使用 GNOME 截图工具的所有技巧。如果你还没有广泛地使用它,你应该会发现它很有帮助。如果你已经是一个专家,也许你知道一些可以添加到本文中的东西?请在评论区与我们其他人分享吧。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -99,7 +97,7 @@ via: https://itsfoss.com/using-gnome-screenshot-tool/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
202
published/20220105 Why might you run your own DNS server.md
Normal file
202
published/20220105 Why might you run your own DNS server.md
Normal file
@ -0,0 +1,202 @@
|
||||
[#]: subject: "Why might you run your own DNS server?"
|
||||
[#]: via: "https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/"
|
||||
[#]: author: "Julia Evans https://jvns.ca/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14165-1.html"
|
||||
|
||||
为什么你要运行自己的 DNS 服务器?
|
||||
======
|
||||
|
||||

|
||||
|
||||
使得 DNS 难以理解的事情之一是它是 **分布式的**。有成千上万(也许是几十万?我不知道!)的<ruby>权威性域名服务器<rt>authoritative nameserver</rt></ruby>,以及至少 [1000 万个解析器][1]。而且它们正在运行许多不同的软件!不同服务器运行着不同的软件意味着 DNS 的工作方式有很多不一致的地方,这可能导致各种令人沮丧的问题。
|
||||
|
||||
但是,与其谈论这些问题,我更感兴趣的是弄清楚 —— 为什么 DNS 是分布式的是一件好事?
|
||||
|
||||
### 为什么 DNS 是分布式的是件好事?
|
||||
|
||||
一个原因是 **可扩展性** —— DNS 的分布式设计使其更容易扩展,对故障的恢复能力更强。我发现,尽管 DNS 已经有近 40 年的历史,但它的扩展性仍然很好,这真是令人惊讶。这一点非常重要,但这并不是这篇文章的主题。
|
||||
|
||||
相反,我想说的是,它是分布式的意味着你可以 **控制** 你的 DNS 的工作方式。你可以向巨大而复杂的 DNS 服务器中添加更多的服务器!添加你控制的服务器!
|
||||
|
||||
昨天我 [在 Twitter 上问][2] 为什么你要运行自己的 DNS 服务器,我得到了很多很好的答案,我想在这里总结一下。
|
||||
|
||||
### 你可以运行 2 种类型的 DNS 服务器
|
||||
|
||||
你可以运行 2 种主要类型的 DNS 服务器:
|
||||
|
||||
1. 如果你拥有一个域名,你可以为该域名运行一个 **权威名称服务器**
|
||||
2. 如果你有一台电脑(或一个有很多电脑的公司),你可以运行一个 **解析器** 来为这些电脑解析 DNS。
|
||||
|
||||
### DNS 不是静态数据库
|
||||
|
||||
我经常看到 DNS 的 “电话簿” 比喻,域名就像人名,IP 地址就像电话号码。
|
||||
|
||||
这是一个不错的思维模型。但是,“电话簿” 思维模型可能会使你认为,如果你对 `google.com` 进行 DNS 查询,你将永远得到相同的结果。而这是不正确的。
|
||||
|
||||
你在 DNS 查询中得到的记录可能取决于:
|
||||
|
||||
* 你在世界的哪个地方(也许你会得到一个离你更近的服务器的 IP 地址)
|
||||
* 你是否在企业网络里(你可以在其中解析内部域名)
|
||||
* 该域名是否被你的 DNS 解析器认为是 “坏” 的(它可能被封锁!)
|
||||
* 之前的 DNS 查询(也许 DNS 解析器正在做基于 DNS 的负载平衡,每次给你一个不同的 IP 地址)
|
||||
* 你是否在使用机场 Wi-Fi 专属门户(机场 Wi-Fi 会在你登录前以不同的方式解析 DNS 记录,它会给你发送一个特殊的 IP 来重定向你)
|
||||
* 随便什么
|
||||
|
||||
你可能想控制你自己的服务器的很多原因都与 DNS 不是一个静态数据库这一事实有关 —— 对于如何处理 DNS 查询,你可能会有不同的选择(无论是为你的域名还是为你的组织)。
|
||||
|
||||
### 运行权威性名称服务器的理由
|
||||
|
||||
这些原因并没有任何特定的顺序。
|
||||
|
||||
对于其中一些原因,你不一定必须要运行你自己的权威名称服务器,你只需选择提供了该功能的权威名称服务器服务就行了。
|
||||
|
||||
要明确的是:有很多理由 **不** 运行自己的权威名称服务器 —— 我就没有运行,我也不想说服你应该这样做。它需要时间来维护,你的服务可能不那么可靠,等等。
|
||||
|
||||
#### 原因:安全
|
||||
|
||||
[这条推文说的很好][3]:
|
||||
|
||||
> [存在] 攻击者通过你的 DNS 供应商的客户支持人员获得 DNS 变更权限的风险,客服本来只应该提供帮助。他们可以被你的 DNS 阻止(也许就是因为缺少这个)。内部可能更容易审计和验证内容。
|
||||
|
||||
### 原因:你喜欢运行 bind/nsd
|
||||
|
||||
有几个人提到的一个原因是:“我习惯于编写区域文件和运行 `bind` 或 `nsd` ,对我来说这样做更容易。”
|
||||
|
||||
如果你喜欢 bind/nsd 的方式,但又不想运维自己的服务器,有几个人提到,你也可以通过运行一个 “隐藏的主服务器” 来获得 bind 的优势,该服务器存储记录,但从一个 “辅助” 服务器提供所有的实际 DNS 查询。这里有一些我发现的关于配置辅助 DNS 的网页,以 [NS1][4]、[cloudflare][5] 和 [Dyn][6] 作为示例。
|
||||
|
||||
我真的不知道什么是最佳的权威 DNS 服务器。我想我只在工作中使用过 nsd。
|
||||
|
||||
#### 原因:你可以使用新的记录类型
|
||||
|
||||
并非所有的 DNS 服务都支持某些较新的 DNS 记录类型,但如果你运行你自己的 DNS,你就可以支持任何你想要的记录类型。
|
||||
|
||||
#### 原因:用户界面
|
||||
|
||||
你可能不喜欢你正在使用的 DNS 服务的用户界面(或 API,或干脆没有 API)。这与 “你喜欢运行 BIND ”的原因差不多,也许你喜欢编写区域文件的方式。
|
||||
|
||||
#### 原因:你可以自己修复问题
|
||||
|
||||
当问题出现时,能够自己解决,有一些明显的优点和缺点(优点:你可以解决问题,缺点:你必须解决问题)。
|
||||
|
||||
#### 原因:做一些奇怪的、自定义的事情
|
||||
|
||||
你可以写一个 DNS 服务器,做任何你想做的事情,它不一定要只返回一组静态记录。
|
||||
|
||||
有几个例子:
|
||||
|
||||
* Replit 有一篇博文介绍了 [为什么他们编写自己的权威性 DNS 服务器来处理路由][7]
|
||||
* [nip.io][8] 将 10.0.0.1.nip.io 映射为 10.0.0.1
|
||||
* 我为 [乱用 dns][9] 而写了一个自定义 DNS 服务器
|
||||
|
||||
#### 原因:省钱
|
||||
|
||||
权威名称服务器似乎一般按每百万次 DNS 查询收费。比如,似乎 Route 53 每百万次查询收费 0.5 美元,[NS1][10] 每百万次查询收费约 8 美元。
|
||||
|
||||
我对一个大型网站的权威 DNS 服务器实际需要解决多少次查询没有概念(哪些类型的网站会对其权威 DNS 服务器进行 10 亿次 DNS 查询?可能是很多,但我没有这方面的经验)。但是有几个人在回复中提到成本是一个原因。
|
||||
|
||||
#### 原因:你可以改变你的注册商
|
||||
|
||||
如果你为你的域名使用一个单独的权威名称服务器,而不是你的注册商的名称服务器,那么当你转移到一个不同的注册商时,你所要做的就是把你的权威 DNS 服务器设置为正确的值,从而使你的 DNS 恢复正常。你不需要迁移你所有的 DNS 记录,那非常痛苦。
|
||||
|
||||
但你不需要为此而运行你自己的名字服务器。
|
||||
|
||||
#### 原因:地理 DNS
|
||||
|
||||
你可能想根据客户的位置为你的域名返回不同的 IP 地址,给他们一个离他们很近的服务器。
|
||||
|
||||
这是很多权威的域名服务器服务所提供的服务,你不需要为此而专门运行名字服务器。
|
||||
|
||||
#### 原因:避免针对他人的拒绝服务攻击
|
||||
|
||||
许多权威 DNS 服务器是共享的。这意味着,如果有人攻击 `google.com` 或其他的 DNS 服务器,而你恰好在使用同一个权威 DNS 服务器,你可能会受到影响,即使攻击不是针对你。例如,2016 年的这次 [对 Dyn 的 DDoS 攻击][11]。
|
||||
|
||||
#### 原因:把所有的配置放在一个地方
|
||||
|
||||
有一个人提到,他们喜欢把所有的配置(DNS 记录、let's encrypt、nginx 等)放在一台服务器上的同一个地方。
|
||||
|
||||
#### 另类原因:把 DNS 当作 VPN 使用
|
||||
|
||||
显然,[iodine][12] 是一个可以让你通过 DNS 隧道传输流量的权威 DNS 服务器,它可以让你像 VPN 一样与外界联系,
|
||||
|
||||
### 运行解析器的原因
|
||||
|
||||
#### 原因:隐私
|
||||
|
||||
如果有人能看到你所有的 DNS 查询,他们就有你(或你组织中的每个人)正在访问的所有域名的完整列表!你可能更愿意保持这种隐私。你可能更愿意保持这种隐私。
|
||||
|
||||
#### 原因:阻止恶意网站
|
||||
|
||||
如果你运行你自己的解析器,你可以(通过不返回任何结果)拒绝解析你认为 “坏” 的域名的 DNS 查询。
|
||||
|
||||
几个你可以自己运行(或只是使用)的解析器的例子:
|
||||
|
||||
* [Pi-Hole][13] 阻止广告商
|
||||
* [Quad9][14] 阻止做恶意软件/网络钓鱼/间谍软件的域名。 Cloudflare 似乎有一个 [类似的服务][15]
|
||||
* 我想也有一些企业安全软件会阻止那些托管恶意软件的域名的 DNS 查询
|
||||
* DNS 不是静态数据库。它是非常动态的,答案往往实时取决于查询的 IP 地址、内容服务器的当前负载等。除非你将这些记录的服务委托给做出这些决定的实体,否则很难实时实现。
|
||||
* DNS 委派控制使访问控制非常简单。从区域中切下的部分都由控制委派服务器的人控制,所以对一个主机名的责任是隐含在 DNS 委派中的。
|
||||
|
||||
#### 原因:在 nginx 中获得动态代理
|
||||
|
||||
这里有一个很酷的故事,来自 [这条推文][16]:
|
||||
|
||||
> 我在一个应用程序中写了一个 DNS 服务器,然后把它设置为 nginx 的解析器,这样我就可以获得动态的后端代理,而不需要 nginx 运行 lua。Nginx 向应用程序发送 DNS 查询,应用程序查询 Redis 并作出相应的反应。这对我正在做的事情来说,效果非常好。
|
||||
|
||||
#### 原因:避免恶意解析器
|
||||
|
||||
一些 ISP 运行的 DNS 解析器会做一些不好的事情,比如把不存在的域名指向他们控制的 IP,向你显示广告或他们控制的奇怪的搜索页面。
|
||||
|
||||
使用你控制的解析器或你信任的另一个解析器可以帮助你避免这种情况。
|
||||
|
||||
#### 原因:解析内部域名
|
||||
|
||||
你可能有一个内部网络,其域名(比如 `blah.corp.yourcompany.com`)并不在公共互联网上。为内部网络中的机器运行你自己的解析器,就有可能访问这些域名。
|
||||
|
||||
无论是访问只在本地的服务,还是为公共互联网上的服务获得本地地址,你都可以在家庭网络中做同样的事情。
|
||||
|
||||
#### 原因:避免你的 DNS 查询被中间人劫持
|
||||
|
||||
有一个人 [说][17]:
|
||||
|
||||
> 我在我的局域网路由器上运行了一个解析器,它的上游使用了基于 HTTPS 的 DNS(DoH),所以物联网和其他不支持 DoH 或 DoT 的设备不会在外面喷射明文 DNS 查询。
|
||||
|
||||
### 就是这样
|
||||
|
||||
对我来说,探索 DNS 的 “原因” 感觉很重要,因为它是一个如此复杂凌乱的系统,我认为大多数人如果不理解为什么这些复杂的东西是有用的,就很难有动力去学习这么复杂的主题。
|
||||
|
||||
感谢 Marie 和 Kamal 对这篇文章的讨论,也感谢 Twitter 上提供这些原因的所有人。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/
|
||||
|
||||
作者:[Julia Evans][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://jvns.ca/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.icann.org/en/blogs/details/ten-million-dns-resolvers-on-the-internet-22-3-2012-en
|
||||
[2]: https://twitter.com/b0rk/status/1478490484406468614
|
||||
[3]: https://twitter.com/thatcks/status/1478503078680838153
|
||||
[4]: https://help.ns1.com/hc/en-us/articles/360017508173-Configuring-NS1-as-a-secondary-provider-a-k-a-Creating-secondary-zones-
|
||||
[5]: https://blog.cloudflare.com/secondary-dns-a-faster-more-resilient-way-to-serve-your-dns-records/
|
||||
[6]: https://help.dyn.com/standard-dns/dyn-secondary-dns-information/
|
||||
[7]: https://blog.replit.com/dns
|
||||
[8]: https://nip.io
|
||||
[9]: https://jvns.ca/blog/2021/12/15/mess-with-dns/
|
||||
[10]: https://ns1.com/plans
|
||||
[11]: https://en.wikipedia.org/wiki/DDoS_attack_on_Dyn
|
||||
[12]: https://github.com/yarrick/iodine
|
||||
[13]: https://pi-hole.net/
|
||||
[14]: https://www.quad9.net/
|
||||
[15]: https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families
|
||||
[16]: https://twitter.com/jordanorelli/status/1478795241876504577
|
||||
[17]: https://twitter.com/passcod/status/1478806468539269120
|
@ -0,0 +1,119 @@
|
||||
[#]: subject: "5 Tiny Yet Useful Features I Would Like to See in GNOME in 2022"
|
||||
[#]: via: "https://news.itsfoss.com/gnome-features-i-want/"
|
||||
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14168-1.html"
|
||||
|
||||
我希望在 GNOME 中看到的 5 个微小而有用的功能
|
||||
======
|
||||
|
||||
> 我知道对于圣诞愿望清单来说已经太晚了,但我仍然想分享我希望在 GNOME 中看到的东西。
|
||||
|
||||

|
||||
|
||||
GNOME 是许多 Linux 发行版的默认桌面环境。它也是我最喜欢的一个,因为它提供了一种现代的桌面体验。
|
||||
|
||||
但这并不意味着 GNOME 是完美的,不需要改进。事实上,这里有几个建议可以改善整个用户体验。
|
||||
|
||||
### 1、方便的应用程序卸载选项
|
||||
|
||||
桌面 Linux 是碎片化的。为了增加混乱,连软件包也是零零散散的。而最糟糕的是当你从系统中删除一个应用程序时。
|
||||
|
||||
举个例子,你要通过 DEB 包安装一个应用程序,并使用 GNOME 软件中心界面来安装它。
|
||||
|
||||
但如果你不喜欢这个应用程序,想把它删除呢?
|
||||
|
||||
你不会在软件中心中找到该应用程序。相反,你得必须使用命令行的方法。
|
||||
|
||||
这还没完。还有 Snap 和 [Flatpak][1] 软件包。如果你已经使用了其中之一,你必须先找出来,然后使用正确的命令才行。
|
||||
|
||||
GNOME 采用了类似于 Android/iOS 的方法,将应用程序显示在一个网格中,并将它们组织在文件夹中。移动操作系统为用户提供了一种方式,即按住图标并删除应用程序。如果能有一个类似的选项,右键点击应用程序图标并选择卸载,那就更好了。
|
||||
|
||||
![][2]
|
||||
|
||||
这样,终端用户就不用管所安装的应用程序是 Deb 包还是 Snap 包。没有必要为此进入终端,而且它就发生在访问应用程序地方,这不是挺好吗?
|
||||
|
||||
Linux Mint Cinnamon 版有这样的功能,你在菜单中右键点击一个应用程序条目,选择删除它。
|
||||
|
||||
![Linux Mint Cinnamon 中可以使用右键删除选项][3]
|
||||
|
||||
如果 Cinnamon 能做到,GNOME 应该也能做到,对吗?
|
||||
|
||||
### 2、在应用程序商店中设置默认软件源
|
||||
|
||||
如果一个应用程序有多种格式,GNOME 软件中心可以让你选择软件源。至少这是我在 Fedora 的 GNOME 软件中看到的,但在 Ubuntu 中没有。
|
||||
|
||||
![][4]
|
||||
|
||||
假设有人在软件中心同时添加了 Flatpak 和 Snap 支持,而一个应用程序在 Flatpak、Snap 和软件包管理器(apt、DNF 等)中都可用,它可能会在搜索结果中显示多次。
|
||||
|
||||
如果能够设置一个默认的打包格式,使其优先于其他格式,那就更好了。如果你把 Flatpak 作为默认,它就不会显示 Snap 版本,默认只安装 Flatpak 版本。
|
||||
|
||||
### 3、跨系统同步安装的应用程序
|
||||
|
||||
这一点可能取决于发行版情况,从技术和策略的角度看都比较复杂。
|
||||
|
||||
安卓、iOS、macOS 和 Windows 都有这个功能,这样可以更容易开始使用新设备或重置的同一设备。你从他们的官方应用程序商店安装的应用程序与你的个人资料相关联。你重新安装/重置操作系统,或者在一个新系统上,登录应用程序商店,它就会显示你以前使用过的应用程序。
|
||||
|
||||
在 Linux 上,如果你由于某种原因重新安装系统,你就会失去你所安装的应用程序。当然,你可以重新安装它们,但你也必须回忆起你以前安装的应用程序。
|
||||
|
||||
我记得 Ubuntu 曾经有个 Ubuntu One 云,我以为他们会推出这个功能,但他们关闭了这个云服务。然而,Ubuntu One 仍然活着,并被用作 SSO 登录。事实上,你可以在 Ubuntu 软件中心看到 Ubuntu One 的登录选项,但它并没有做任何事情。
|
||||
|
||||
![Ubuntu 软件中心的登录选项][5]
|
||||
|
||||
知道你之前从 GNOME 软件中心安装了哪些软件,将使电脑的格式化和在电脑之间的移动更加容易。你不觉得吗?
|
||||
|
||||
当然,许多 Linux 用户不一定依靠软件中心来获取应用程序,但这对一些人来说可能是一个有用的功能。
|
||||
|
||||
### 4、面部解锁和/或指纹登录
|
||||
|
||||
我喜欢用密码登录并解锁 Windows 的方式。是的,我偶尔会使用 Windows。不,不是用来玩游戏,而是用超高清观看流媒体内容。过去几周我用得比较频繁,因为我在另一个城市,我必须依靠我的笔记本电脑来观看 4K 的 Netflix,而不是使用我的电视。
|
||||
|
||||
输入整个 8 到 10 个字符的长密码,加上特殊字符,总觉得是件麻烦事。值得庆幸的是,我的笔记本电脑有一个指纹识别器,但不是每个人都有这种奢侈。
|
||||
|
||||
对于许多已经习惯于在移动设备上使用这些方法的用户来说,使用指纹或面部来解锁设备可能会很好。
|
||||
|
||||
已经有一些项目允许你在 Linux 上使用面部解锁,GNOME 确实可以考虑将其加入到其产品中。
|
||||
|
||||
### 5、带回“添加新文档”选项
|
||||
|
||||
几年前,GNOME 删除了从右键菜单中创建一个新文档的功能。
|
||||
|
||||
现在仍然可以实现这个功能。你必须先在你的主目录的 Templates 文件夹中创建一个模板文档。然后所有的模板文档都可以在右键菜单中找到。
|
||||
|
||||
![][6]
|
||||
|
||||
但这本应是一个默认功能。人们不应该胡乱摆弄而试图找出“创建新文档”选项的去处。
|
||||
|
||||
现在是时候让 GNOME 恢复这个功能了。
|
||||
|
||||
### 你希望在 GNOME 中看到什么功能?
|
||||
|
||||
由于我主要使用 Ubuntu,它的定制 GNOME 与原生 GNOME 不同。原生 GNOME 也应该把小程序指示器带回来,这样像 Dropbox 等应用程序就可以快速访问。
|
||||
|
||||
GNOME 开发者不太可能关注像我们这样的普通 Linux 用户的想法,但我还是要问问你怎么看。
|
||||
|
||||
你希望在 GNOME 或桌面 Linux 中看到什么新功能?你也可以分享一些你最喜欢的、已经从 GNOME 中删除的,但你希望它们能重新出现的功能。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/gnome-features-i-want/
|
||||
|
||||
作者:[Abhishek][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/root/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/what-is-flatpak/
|
||||
[2]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/Remove-application-option-gnome.png?w=800&ssl=1
|
||||
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/removing-google-chrome-from-mint.webp?resize=799%2C562&ssl=1
|
||||
[4]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/choosing-software-source-gnome.png?resize=1568%2C1007&ssl=1
|
||||
[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/sign-in-ubuntu-software-center.png?resize=1568%2C836&ssl=1
|
||||
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/templates-in-ubuntu.png?resize=800%2C479&ssl=1
|
@ -0,0 +1,147 @@
|
||||
[#]: subject: "Modern Alternatives to Some of the Classic Linux Commands"
|
||||
[#]: via: "https://itsfoss.com/legacy-linux-commands-alternatives/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14172-1.html"
|
||||
|
||||
一些经典 Linux 命令的现代替代品
|
||||
======
|
||||
|
||||

|
||||
|
||||
当你 [开始学习 Linux][1] 时,最初学习的是一套标准的 Linux 命令,这些命令从 UNIX 时代就已经存在了。随着你作为一个 Linux 用户的年龄增长,你会不断地掌握这套标准命令。
|
||||
|
||||
但是,这些标准的、传统的命令是几十年前创建的,虽然它们完成了预定的工作,但是它们的功能还可以改进,结构还可以简化。
|
||||
|
||||
这就是为什么存在 “替代” 工具,以加强传统的 UNIX/Linux 命令。在这篇文章中,我将列出一些新的命令行工具,你可以用这些工具来代替旧式的经典 Linux 命令。
|
||||
|
||||
请注意,你不应该过分依赖这些替代品,特别是如果你管理(或计划管理)许多 Linux 服务器时。传统的 Linux 命令在所有的 Linux 发行版和 Linux 服务器上都可以找到。这些现代的替代方案很有可能在远程服务器上无法使用。
|
||||
|
||||
在你的个人能力范围内,你可以学习了解这些新的工具,以帮助你更有效率。
|
||||
|
||||
听起来不错?让我们看看你是否能在这里找到你下一个最喜欢的命令行工具。
|
||||
|
||||
### HTTPie: wget 和 curl 的替代品
|
||||
|
||||
[在终端下载文件][2] 时,`wget` 和 `curl` 是两个最常用的工具。有趣的是,并不是所有的发行版都默认安装了 `curl` 和 `wget`。
|
||||
|
||||
HTTPie(`http`)以一种更人性化的方式做同样的工作。你会看到彩色的、格式化的输出,这使得它更容易理解和调试。
|
||||
|
||||
![][3]
|
||||
|
||||
### 蝙蝠:猫的替代品
|
||||
|
||||
`cat` 命令可能是你最先学会的命令之一。它可以完成查看小型文本文件内容的工作。
|
||||
|
||||
但 [bat 命令][4] 更上一层楼,添加了语法高亮和 Git 集成等功能,并且还提供了分页选项。
|
||||
|
||||
![][5]
|
||||
|
||||
### ncdu: du 命令的替代品
|
||||
|
||||
Linux 中的 [du 命令][6] 用来检查一个目录的大小。这不是一个非常直观的命令,当然它的默认输出也不算非常好。
|
||||
|
||||
与此相比,`ncdu` 要好得多,它能及时提供相关信息。
|
||||
|
||||
![][7]
|
||||
|
||||
它还有其他一些功能,比如用图表显示磁盘使用情况,对显示进行排序,甚至可以交互式地删除目录。
|
||||
|
||||
它是基于 ncurses 的,因此 “nc” 这个前缀被加到 `du` 中。此外,还有一个类似的 CLI 工具:[gdu][8],也是一个 `du` 的替代品,因为是使用 Go 编写的,这使得它的性能得到了提升。
|
||||
|
||||
### htop: top 命令的替代品
|
||||
|
||||
`top` 命令是 Linux 终端中的任务管理器。它是一个查看运行进程和资源消耗的好工具,但是 [理解和使用 top 命令][9] 可能很复杂。
|
||||
|
||||
另一方面,[htop][10] 有一个漂亮的彩色输出,并且界面比 `top` 命令更直观。你可以垂直和水平滚动,以图形方式配置显示的信息。你可以在 `htop` 的输出屏幕上交互式地杀死进程。
|
||||
|
||||
![][11]
|
||||
|
||||
### fd:find 命令的替代品
|
||||
|
||||
`find` 命令是最强大和最常用的 Linux 命令之一。不能想象一个系统管理员可以不使用 `find` 命令就能生存下去。
|
||||
|
||||
但是,`find` 命令的结构奇怪,如果你进行大量的查找操作,它可能会很慢。
|
||||
|
||||
一个更好、更快的替代方案是 [fd 命令][12]。`fd` 是用 Rust 编写的,它比其传统的竞争对手更简单、更快速。
|
||||
|
||||
![][13]
|
||||
|
||||
### exa:ls 命令的替代品
|
||||
|
||||
[exa][14] 命令行工具不止可以列出目录内容。它的默认设置更好,使用颜色来区分文件类型和元数据。`exa` 还可以显示一个文件的扩展属性,以及标准的文件系统信息,如 inode、块数,以及文件的各种日期和时间。
|
||||
|
||||
你可以使用树状视图来查看目录结构。它也有内置的 Git 支持,可以看到哪些文件被修改、提交和暂存等。
|
||||
|
||||
![][15]
|
||||
|
||||
### duf:df 命令的替代品
|
||||
|
||||
Linux 中的 [df 命令][16] 用来检查磁盘空间。虽然它在大多数情况下都不错,但一个更简单、更好的替代方法是 [duf][17],这是一个用 Go 编写的工具。
|
||||
|
||||
它提供了一个所有挂载设备的概览,这很容易理解。你还可以指定一个目录/文件名并检查该挂载点的可用空间。
|
||||
|
||||
通过 `duf`,你可以对输出进行排序、列出 indoe 信息,甚至将输出保存为 JSON 格式。
|
||||
|
||||
![][18]
|
||||
|
||||
### 太长不读:男人的替代品
|
||||
|
||||
我知道对于纯粹主义者来说,[Linux 中的手册页][19] 是不二之选。但是,手册页有时会过于详细和复杂,难以阅读和理解。
|
||||
|
||||
这就是 `tldr` 登场的时机。“TLDR” 是流行的互联网行话,意思是“<ruby>太长不读<rt>to long didn't read</rt></ruby>”。这就是他们创建 `tldr` 的想法。如果你觉得手册页太长而不想阅读,[tldr 通过提供命令的实际例子而将其简化了][20]。
|
||||
|
||||
![][21]
|
||||
|
||||
### Neovim:Vim 的替代品
|
||||
|
||||
我希望我在这里没有冒犯谁,但更好的 Vim 不是 Emacs,而是 [Neovim][22]。
|
||||
|
||||
几年前,作为对传统的 Vi 编辑器的改进,Vim 出现了。又是几年过去了,Neovim 提出了将 Vim 扩展为一个 IDE 的想法。
|
||||
|
||||
它增加了现代终端的功能,如光标样式、焦点事件、括号内粘贴等,并内置了一个终端模拟器。最重要的是,你不需要忘却 Vim 的习惯就可以开始使用 Neovim。
|
||||
|
||||
### 你的选择呢?
|
||||
|
||||
再次强调,这些替代命令还不能完全替代原来的命令,特别是如果你管理许多 Linux 系统的话。你可能无法在所有的系统上找到并安装它们。只有你可以完全控制你的 Linux 机器时,它们才是好东西。
|
||||
|
||||
除此以外,你是否在这个列表中找到了一些好的替代命令行工具?是哪一个呢?另外,你知道其他一些可以 “替代” 传统 UNIX 命令的工具吗?为什么不在评论区与我们分享呢?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/legacy-linux-commands-alternatives/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://academy.itsfoss.com/
|
||||
[2]: https://itsfoss.com/download-files-from-linux-terminal/
|
||||
[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/httpie-screenshot.jpg?resize=800%2C399&ssl=1
|
||||
[4]: https://github.com/sharkdp/bat
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/bat-command-example.png?resize=656%2C450&ssl=1
|
||||
[6]: https://linuxhandbook.com/find-directory-size-du-command/
|
||||
[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2022/01/ncdu-command-example-800x448.png?resize=800%2C448&ssl=1
|
||||
[8]: https://itsfoss.com/gdu/
|
||||
[9]: https://linuxhandbook.com/top-command/
|
||||
[10]: https://htop.dev/
|
||||
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2022/01/htop-example-800x453.webp?resize=800%2C453&ssl=1
|
||||
[12]: https://github.com/sharkdp/fd
|
||||
[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/fd-command.webp?resize=800%2C514&ssl=1
|
||||
[14]: https://itsfoss.com/exa/
|
||||
[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/04_exa_all_flags.webp?resize=800%2C600&ssl=1
|
||||
[16]: https://linuxhandbook.com/df-command/
|
||||
[17]: https://itsfoss.com/duf-disk-usage/
|
||||
[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/02/duf-screenshot.jpg?resize=800%2C481&ssl=1
|
||||
[19]: https://itsfoss.com/linux-man-page-guide/
|
||||
[20]: https://itsfoss.com/tldr-linux-man-pages-simplified/
|
||||
[21]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/tldr-example-800x594.png?resize=800%2C594&ssl=1
|
||||
[22]: https://neovim.io/
|
@ -0,0 +1,126 @@
|
||||
[#]: subject: "Linux Kernel 5.16 Release Improves Gaming & Adds Support for New-Gen Hardware"
|
||||
[#]: via: "https://news.itsfoss.com/linux-kernel-5-16/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Linux Kernel 5.16 Release Improves Gaming & Adds Support for New-Gen Hardware
|
||||
======
|
||||
|
||||
Linux Kernel 5.16 is an interesting release for both gamers and desktop users.
|
||||
|
||||
The changes introduced aren’t massive, but useful upgrades for users with the latest hardware and looking to get better performance in terms of gaming.
|
||||
|
||||
### Linux Kernel 5.16: What’s New?
|
||||
|
||||
The support for the latest generation hardware from team red (AMD) and team blue (Intel) are some major additions to this release. You will notice improvements for the CPU and GPU as well.
|
||||
|
||||
There are also some improvements for Raspberry Pi 4, and other ARM hardware/processors.
|
||||
|
||||
Here are the key highlights of this release:
|
||||
|
||||
#### Performance Boost for AMD-Powered Laptops
|
||||
|
||||
As per some benchmark tests by [Phoronix][1], Linux Kernel 5.16 seems to give a performance uplift to laptops with Ryzen processors and Radeon graphics.
|
||||
|
||||
If you are going the AMD way or already have a laptop with AMD CPU and GPU, you should more out of your laptop!
|
||||
|
||||
I suggest you take a look at the benchmarks if you are curious about the exact figures and how it impacts the performance.
|
||||
|
||||
#### Sony PlayStation 5 & Nintendo Switch Controller Support
|
||||
|
||||
![][2]
|
||||
|
||||
PlayStation 5 is undoubtedly one of the best-selling consoles (even if you can’t find one).
|
||||
|
||||
Hoping that you got yours, Linux Kernel 5.16 improves the support for PlayStation controller with an update contributed by Sony. In case you’re curious, they added the official driver to the Linux Kernel last year with [Linux 5.12][3], so kudos to them!
|
||||
|
||||
In addition to that, the open-source reverse-engineered driver for Switch Pro and Joy-Cons controller is finally joining the mainline with this release.
|
||||
|
||||
#### Improvement for Windows Games Running on Linux
|
||||
|
||||
If all goes well, Windows games run fine on Linux, however, there are some performance issues lurking. So, to match a specific functionality in Windows, FUTEX2’s **sys_futex_waitv()** system call is being added to Linux Kernel 5.16.
|
||||
|
||||
It was being worked on for quite a while since last year. So, it is good to finally see it in the first week of 2022.
|
||||
|
||||
Considering it will resemble the behavior of Windows interacting with games, Wine/Proton-powered games should get a performance boost.
|
||||
|
||||
Even if it is by a small margin, it brings the Linux gaming experience closer to what you find with Windows, in terms of performance.
|
||||
|
||||
#### Raspberry Pi Compute Module 4 Support
|
||||
|
||||
A variant of the Raspberry Pi 4 series tailored for industrial and commercial applications is now supported with Linux Kernel 5.16.
|
||||
|
||||
![][4]
|
||||
|
||||
#### Display Port 2.0 Support
|
||||
|
||||
While Display Port 2.0 is not meant for current-gen AMD cards, progress has been made to bring DP 2.0 support in the AMDGPU driver. This way, upcoming Linux Kernel releases should quickly adopt the latest standard if/when RX 7000 series GPU requires DP 2.0.
|
||||
|
||||
#### Initial Work for Intel Raptor Lake
|
||||
|
||||
Intel Raptor Lake will be the 13th Gen series of processors, due for release later in 2022.
|
||||
|
||||
And, Linux Kernel 5.16 marks the early work for the Raptor Lake series, considering there are rumors for it to introduce a 24-core/32 thread variant.
|
||||
|
||||
#### Ryzen 6000 Mobile Processor Support
|
||||
|
||||
Initial work for AMD’s next-gen Ryzen 6000 mobile series (announced at CES 2022) is taking shape with Linux Kernel 5.16.
|
||||
|
||||
#### Apple M1 Improvements & Apple Magic Keyboard
|
||||
|
||||
The support for the Apple M1 chip is significantly improving with every kernel release. This time, you get additions for USB, PCIe, and a few minor fixes.
|
||||
|
||||
In addition to that, you finally get to see the support for the Apple Magic keyboard in the mainline Linux Kernel.
|
||||
|
||||
#### Connectivity Improvements
|
||||
|
||||
With Linux Kernel 5.16, there are improvements to support low-latency USB audio.
|
||||
|
||||
And, some vital work to support newer Realtek 802.1ax wireless adapters comes baked in with it.
|
||||
|
||||
#### Other Improvements
|
||||
|
||||
Some other notable additions include:
|
||||
|
||||
* Snapdragon 690 support
|
||||
* KVM RISC-V support
|
||||
* AMD EPYC CPU KVM improvements
|
||||
* Improved support for HP Omen laptops
|
||||
* RISC-V kernel build enables open-source NVIDIA driver
|
||||
|
||||
|
||||
|
||||
You can refer to the [official changelog][5] and [Linus Torvald’s announcement][6] to explore more details.
|
||||
|
||||
### How to Install Linux Kernel 5.16?
|
||||
|
||||
You should find the newer kernel listed on [Linux Kernel Archives][7]. So, you can download the [tarball][8] to test it out. You can follow our [Linux Kernel upgrade guide][9] for help.
|
||||
|
||||
If you want to avoid compiling it yourself, you should wait for a few weeks for distributions to push it to the repositories.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-kernel-5-16/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.phoronix.com/scan.php?page=article&item=linux516-amd-apus&num=1
|
||||
[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
|
||||
[3]: https://news.itsfoss.com/linux-kernel-5-12-release/
|
||||
[4]: https://i2.wp.com/i.ytimg.com/vi/aOH43s9lm7I/hqdefault.jpg?w=780&ssl=1
|
||||
[5]: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.16
|
||||
[6]: http://lkml.iu.edu/hypermail/linux/kernel/2201.1/00613.html
|
||||
[7]: https://www.kernel.org
|
||||
[8]: https://git.kernel.org/torvalds/t/linux-5.16.tar.gz
|
||||
[9]: https://itsfoss.com/upgrade-linux-kernel-ubuntu/
|
@ -1,150 +0,0 @@
|
||||
[#]: subject: "Edit audio on Linux with Audacity"
|
||||
[#]: via: "https://opensource.com/article/21/12/audacity-linux-creative-app"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Edit audio on Linux with Audacity
|
||||
======
|
||||
Audacity is a classic power tool of the open source software world for
|
||||
recording, editing, and doing so much more with sound.
|
||||
![Colorful sound wave graph][1]
|
||||
|
||||
The Audacity sound editor is one of those open source applications that filled a niche that seemingly nobody else realized existed. Initially developed at Carnegie Mellon University at a time when many people still thought computers were just for office and schoolwork, and you required special DSP peripherals for serious multimedia work. Audacity recognized that, occasionally, the average computer user needed to edit audio. The Audacity team has consistently provided an open source application for recording and cleaning up sound in the two decades since.
|
||||
|
||||
I use Audacity a lot, and being an editor by training, I'm used to significant and usually single-key keyboard shortcuts in my applications. By building shortcuts around single letters, you can have one hand on the mouse and one on the keyboard, so the delay between choosing a tool or an important function and clicking the mouse is mere milliseconds. Throughout this article, I'll highlight the keyboard shortcut I use in Audacity if you want to optimize your own settings.
|
||||
|
||||
### Install Audacity on Linux
|
||||
|
||||
Audacity is available on most Linux distributions from your package manager. On Fedora, Mageia, and similar distributions:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo dnf install audacity`
|
||||
```
|
||||
|
||||
On Elementary, Mint, and other Debian-based distributions:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo apt install audacity`
|
||||
```
|
||||
|
||||
However, I use Audacity as a [Flatpak][2].
|
||||
|
||||
On Windows or macOS, download an Audacity installer from the [Audacity website][3].
|
||||
|
||||
A recent fork, called [Tenacity][4], aims to continue the Audacity tradition with a different team of developers. At the time of writing, the two are essentially the same application, so this article applies equally to both. Whether the two diverge in features later remains to be seen.
|
||||
|
||||
Once installed, launch the application from your Application or Activities menu.
|
||||
|
||||
### Setting inputs in Audacity
|
||||
|
||||
First, you must set your audio _input_ so that Audacity receives the signal from the microphone or audio interface you want to use. What you choose depends on your setup and what audio peripherals you own. USB microphones usually get listed as **Microphone**, but a microphone with a 1/8" input jack likely gets labeled as **Line in**. Your different options:
|
||||
|
||||
#### Pulse Audio
|
||||
|
||||
Linux uses Advanced Linux Sound Architecture (ALSA) as its backend for sound, while macOS and Windows use their own closed frameworks. On Linux, you can set Pulse Audio as your input source to direct Audacity to _one_ virtual interface (Pulse), so you can route sound input from your System Settings. This is my preferred method because it centralizes all control in one convenient control panel. Gone are the days of selecting a microphone in one application only to discover that the microphone got muted elsewhere.
|
||||
|
||||
![Sound input][5]
|
||||
|
||||
(Seth Kenlon, [CC BY-SA 4.0][6])
|
||||
|
||||
#### Device access
|
||||
|
||||
If your distribution or OS doesn't use Pulse Audio, or if for some reason you prefer to access sound devices directly, you can alternatively select a device from the drop-down menu. This requires some knowledge of how your system lists sound devices, which isn't always obvious. A desktop might have several inputs, some in the rear of the tower and some in a front panel. Laptops usually have fewer input options, but you probably have a microphone near your webcam and possibly an external one if you're using one.
|
||||
|
||||
### Recording audio with Audacity
|
||||
|
||||
Once your input is selected, press the **Record** button (the button with a red dot).
|
||||
|
||||
![Recording audio][7]
|
||||
|
||||
(Seth Kenlon, [CC BY-SA 4.0][6])
|
||||
|
||||
If you're recording into a microphone, all you have to do is start talking. If you're recording input from, say, [a vinyl record player][8], then you must start it. Whatever it is, as long as Audacity is in Record mode, any signal sent to your selected input is written to Audacity and rendered as a waveform on your screen.
|
||||
|
||||
**My shortcut:** I use the **R** key to start recording. By default, **Space** stops a recording (and also plays a recording back).
|
||||
|
||||
### Editing audio
|
||||
|
||||
Recording rarely goes exactly as planned. Maybe you start recording too soon and have to sit through seconds of vinyl silence (it's like silence, but scratchier), or you discover that you fill all of your spoken silence with "uh" and "um" and other vocables, or you just have a false start. Audacity is first and foremost a waveform editor, meaning you can cut out the sounds you don't want in the final recording with the same ease that you make edits to the words you type into a word processor.
|
||||
|
||||
### Editing sound at zero crossings
|
||||
|
||||
The main editing tool in Audacity is the Selection Tool. It's the familiar "I-beam" cursor you see in word processors, and its function is the same here. You can click and drag this cursor across a region of sound, and then you can copy or paste or cut or delete or just play the region.
|
||||
|
||||
**My shortcut:** I use the **I** key to activate the selection tool because the cursor looks like the letter "I."
|
||||
|
||||
However, in a word processor, you can see the end and start of each letter very clearly. There's no chance of you accidentally selecting and deleting only half of a letter.
|
||||
However, the "resolution" (called the _sample rate_) of sound in modern applications is very good, so it's difficult for the human eye to locate a clean break in an audio wave. Audacity can adjust your work so that your selected region lands on what's called a [zero crossing][9], which avoids subtle but noticeable glitches where you made cuts.
|
||||
|
||||
![Zero crossing][10]
|
||||
|
||||
(Seth Kenlon, [CC BY-SA 4.0][6])
|
||||
|
||||
After you make a selection, go to the **Select** menu and choose **At Zero Crossings**.
|
||||
|
||||
**My shortcut:** I use the **Z** key to adjust a selection to zero crossings and the **X** key to delete a region (it saves me from having to move my hand all the way up to **Del** or **Backspace**.)
|
||||
|
||||
### Making room for more
|
||||
|
||||
The beauty of editing is that your final product doesn't have to be true to what you recorded. I've recorded lectures and even scripted readings that end up getting sidetracked for one reason or another, or that omit a section of important information, only to then rearrange or add brand new audio before publishing.
|
||||
|
||||
Moving a selection of audio is similar to deleting, except instead of removing audio, you copy and paste the selection the same way you do in a word processor—copy or cut using standard keyboard shortcuts, reposition your cursor, and paste. Making room for insert edits, though, requires empty space on your audio timeline so you can record additional audio to fill the gap you've created. For this, you use the Selection Tool and the Time Shift Tool.
|
||||
|
||||
To create a gap in your audio, position your Selection Tool cursor at the point where you want to add empty space. Navigate to the **Edit** menu, select the **Clip Boundaries** submenu, and then choose **Split**. This splits your audio at the point of your Selection tool.
|
||||
|
||||
Activate the **Time Shift Tool** in the top toolbar (the icon is two joined arrows pointing left and right.) Click and drag the right half of your split audio to create a gap.
|
||||
|
||||
![Spacer][11]
|
||||
|
||||
(Seth Kenlon, [CC BY-SA 4.0][6])
|
||||
|
||||
**My shortcut:** I use **K** to split (or "kut," as a mnemonic) and **T** to activate the Time Shift Tool.
|
||||
|
||||
### Exporting audio
|
||||
|
||||
When you're happy with your audio, you can export it so you can share it with others. Audacity has a good selection of formats it can export to, and it's able to pipe its output to tools like [ffmpeg][12] for more formats than you'll probably ever need.
|
||||
|
||||
My preference is to export audio in the FLAC format, an audio format that's a little like a WAV, except it's losslessly compressed. It takes up a fraction of the space without any loss in quality. To try it out, go to **File**, select the **Export** submenu, and then choose **Export Audio**. With a FLAC file as your [golden image][13], you can use SoundConverter to convert your file into whatever format is best for any number of delivery targets—Ogg Vorbis or Opus or Webm for browsers, M4A files for Apple devices, and maybe an MP3 for a legacy system.
|
||||
|
||||
If you just want a quick and simple export from Audacity, the easy option is Ogg Vorbis. This is an open source file format that plays in most web browsers (Firefox, Chromium, Chrome, Android, and Edge) and [media players like VLC, mpv, and many others][14].
|
||||
|
||||
### Explore Audacity
|
||||
|
||||
Audacity is a classic power tool of the open source software world. Basic recording and editing are only the beginning. You can add effects, [filter out (some) noise][15], adjust speed, change pitch, and much more. Whether you're recording lectures at school, mixing up drum loops, splicing together sounds for a video game, or just exploring the world of audio, go launch Audacity and get creative!
|
||||
|
||||
Using Audacity, you can quickly clean up audio file so that any background noise becomes tolerable.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/audacity-linux-creative-app
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/colorful_sound_wave.png?itok=jlUJG0bM (Colorful sound wave graph)
|
||||
[2]: https://opensource.com/article/21/11/how-install-flatpak-linux
|
||||
[3]: https://www.audacityteam.org/
|
||||
[4]: https://github.com/tenacityteam/tenacity
|
||||
[5]: https://opensource.com/sites/default/files/uploads/gnome-sound-setting.png (Sound input)
|
||||
[6]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[7]: https://opensource.com/sites/default/files/uploads/audacity-input.png (Recording audio)
|
||||
[8]: https://opensource.com/article/18/1/audacity-digitize-records
|
||||
[9]: https://en.wikipedia.org/wiki/Zero_crossing
|
||||
[10]: https://opensource.com/sites/default/files/uploads/audacity-zero-crossing.jpg (Zero crossing)
|
||||
[11]: https://opensource.com/sites/default/files/uploads/audacity-split.jpg (Spacer)
|
||||
[12]: https://opensource.com/article/21/11/linux-line-commands-reclaim-space-converting-files#audio
|
||||
[13]: https://opensource.com/article/19/7/what-golden-image
|
||||
[14]: https://opensource.com/article/21/2/linux-media-players
|
||||
[15]: https://opensource.com/life/14/10/how-clean-digital-recordings-using-audacity
|
@ -1,74 +0,0 @@
|
||||
[#]: subject: "5 tips for learning a new programming language in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/learn-programming"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
5 tips for learning a new programming language in 2022
|
||||
======
|
||||
With the power of open source, programming can be accessible to anyone.
|
||||
Find a project you want to work on, and let that be your first entry to
|
||||
programming.
|
||||
![Woman sitting in front of her computer][1]
|
||||
|
||||
Anyone can get started in programming. [We all started somewhere][2], and you don't need to have a computer science background to learn to code. That's the power of Linux and open source—anyone can learn a bit of coding.
|
||||
|
||||
If you want to learn a new programming language, we have several great articles to get you started. Below are a few of our most popular articles to help you.
|
||||
|
||||
### Comparing programming languages
|
||||
|
||||
Most programming languages share certain similarities. Once you know how to do a thing in one programming language, learning the next programming language is mostly a matter of figuring out its syntax and structure.
|
||||
|
||||
#### [How different programming languages do the same thing][3]
|
||||
|
||||
A great way to learn a new programming language is to write a simple test program, such as a game, to explore how the programming language works. One sample program I often write is a simple "guess the number" game, where the computer picks a number between one and 100 and asks me to guess it. Earlier this year, we ran a series of articles exploring how to write the number-guessing game in several programming languages. Learn how these different programming languages implement the major steps in the "guess the number" game.
|
||||
|
||||
#### [How different programming languages read and write data][4]
|
||||
|
||||
[Alan's][5] article compares how different programming languages read and write data in the same spirit. Whether that data comes from a configuration file or a file a user creates, processing data on a storage device is common for coders. Alan's comparison article provides insight into different approaches taken by several popular programming languages such as C, Java, Groovy, and others.
|
||||
|
||||
### Learning a new programming language
|
||||
|
||||
Whether you want to pick up a new programming language or want to explore an existing one, check out the great articles below about learning programming.
|
||||
|
||||
#### [How to write 'Hello World' in WebAssembly][6]
|
||||
|
||||
WebAssembly is a bytecode format that virtually every browser can compile to its host system's machine code. Alongside JavaScript and WebGL, WebAssembly fulfills the demand for porting applications for platform-independent use in the web browser. [Stephan][7] explains how to create the classic Hello World program in WASM-text.
|
||||
|
||||
#### [Cross-compiling made easy with Golang][8]
|
||||
|
||||
[Gaurav][9] wrote about learning Go's cross-compilation support by converting a script into a Go program. You can write your program once and compile it for another environment with cross-compilation.
|
||||
|
||||
#### [Why I use the D programming language for scripting][10]
|
||||
|
||||
The D programming language is often thought of as a system programming language due to its static typing and metaprogramming capabilities. However, it's also a very productive scripting language. [Lawrence][11] wrote about how to leverage the D programming language for common scripting.
|
||||
|
||||
With the power of open source, programming can be accessible to anyone. Find a project you want to work on, and let that be your first entry to programming.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/learn-programming
|
||||
|
||||
作者:[Jim Hall][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_2.png?itok=JPlR5aCA (Woman sitting in front of her computer)
|
||||
[2]: https://opensource.com/article/21/8/first-programming-language
|
||||
[3]: https://opensource.com/article/21/4/compare-programming-languages
|
||||
[4]: https://opensource.com/article/21/7/programming-read-write
|
||||
[5]: https://opensource.com/users/alansmithee
|
||||
[6]: https://opensource.com/article/21/3/hello-world-webassembly
|
||||
[7]: https://opensource.com/users/hansic99
|
||||
[8]: https://opensource.com/article/21/1/go-cross-compiling
|
||||
[9]: https://opensource.com/users/gkamathe
|
||||
[10]: https://opensource.com/article/21/1/d-scripting
|
||||
[11]: https://opensource.com/users/aberba
|
@ -1,57 +0,0 @@
|
||||
[#]: subject: "5 ways to learn the C programming language in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/c-programming"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
5 ways to learn the C programming language in 2022
|
||||
======
|
||||
With only a little knowledge of C, you can do a lot.
|
||||
![Person drinking a hot drink at the computer][1]
|
||||
|
||||
I am proficient in several programming languages, but my favorite has to be C. Developed in the 1970s as a systems programming language, C remains one of the most popular programming languages in 2021. If you'd like to explore several features of the C programming language, start with these popular articles from the last year:
|
||||
|
||||
[Short option parsing using getopt in C][2]
|
||||
|
||||
You can make your program much more flexible if it responds to the user every time it runs. Let your user tell your program what files to use or how to do things differently. And for that, you need to read the command line. This article shows you how to read the command line directly using `argv` and use short command-line options using `getopt`.
|
||||
|
||||
[Position text on your screen in Linux with ncurses][3]
|
||||
|
||||
Most Linux utilities just scroll text from the bottom of the screen. But what if you wanted to position text on the screen, such as for a game or a data display? That's where `ncurses` comes in.
|
||||
|
||||
[Get started programming with DOS conio][4]
|
||||
|
||||
C isn't just for Linux. You can find C on many operating systems, including DOS. The standard way for many C programmers to control console input and output was with the `conio` library. Learn how to use `conio` to update the console from DOS programs, including text color and text windows.
|
||||
|
||||
[Write a chess game using bit-fields and masks][5]
|
||||
|
||||
The standard way to associate information in a C program is by using a structure that combines two or more related fields. For example, you might use a structure to track chess pieces on a board. But there's a more straightforward way to track the same information while using less data and memory. Using binary bit-fields and masks, you can store a single value to identify the pieces and color in each square.
|
||||
|
||||
[5 common bugs in C programming and how to fix them][6]
|
||||
|
||||
Even the best programmers can create programming bugs. Depending on what your program does, these bugs could introduce security vulnerabilities, cause the program to crash, or create unexpected behavior. But with a little extra code, you can avoid the most common and most serious C programming bugs. Here are five bugs that can break your application and how you can avoid them.
|
||||
|
||||
With only a little knowledge of C, you can do a lot. Explore new ways to add features to your next C programming project.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/c-programming
|
||||
|
||||
作者:[Jim Hall][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coffee_tea_laptop_computer_work_desk.png?itok=D5yMx_Dr (Person drinking a hot drink at the computer)
|
||||
[2]: https://opensource.com/article/21/8/short-option-parsing-c
|
||||
[3]: https://opensource.com/article/21/8/ncurses-linux
|
||||
[4]: https://opensource.com/article/21/9/programming-dos-conio
|
||||
[5]: https://opensource.com/article/21/8/binary-bit-fields-masks
|
||||
[6]: https://opensource.com/article/21/10/programming-bugs
|
@ -1,208 +0,0 @@
|
||||
[#]: subject: "Why might you run your own DNS server?"
|
||||
[#]: via: "https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/"
|
||||
[#]: author: "Julia Evans https://jvns.ca/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Why might you run your own DNS server?
|
||||
======
|
||||
|
||||
One of the things that makes DNS difficult to understand is that it’s **decentralized**. There are thousands (maybe hundreds of thousands? I don’t know!) of authoritative nameservers, and at least [10 million resolvers][1]. And they’re running lots of different software! All these different servers running software means that there’s a lot of inconsistency in how DNS works, which can cause all kinds of frustrating problems.
|
||||
|
||||
But instead of talking about the problems, I’m interested in figuring out – why is it a good thing that DNS is decentralized?
|
||||
|
||||
### why is it good that DNS is decentralized?
|
||||
|
||||
One reason is **scalability** – the decentralized design of DNS makes it easier to scale and more resilient to failures. I find it really amazing that DNS is still scaling well even though it’s almost 40 years old. This is very important but it’s not what this post is about.
|
||||
|
||||
Instead, I want to talk about how the fact that it’s decentralized means that you can have **control** of how your DNS works. You can add more servers to the giant complicated mess of DNS servers! Servers that you control!
|
||||
|
||||
Yesterday I [asked on Twitter][2] why you might want to run your own DNS servers, and I got a lot of great answers that I wanted to summarize here.
|
||||
|
||||
### you can run 2 types of DNS servers
|
||||
|
||||
There are 2 main types of DNS servers you can run:
|
||||
|
||||
1. if you own a domain, you can run an **authoritative nameserver** for that domain
|
||||
2. if you have a computer (or a company with lots of computers), you can run a **resolver** that’s resolves DNS for those computers
|
||||
|
||||
|
||||
|
||||
### DNS isn’t a static database
|
||||
|
||||
I’ve seen the “phone book” metaphor for DNS a lot, where domain names are like names and IP addresses are like phone numbers.
|
||||
|
||||
This is an okay mental model to start with. But the “phone book” mental model might make you think that if you make a DNS query for `google.com`, you’ll always get the same result. And that’s not true at all!
|
||||
|
||||
Which record you get in reply to a DNS query can depend on:
|
||||
|
||||
* where you are in the world (maybe you’ll get an IP address of a server that’s physically closer to you!)
|
||||
* if you’re on a corporate network (where you might be able to resolve internal domain names)
|
||||
* whether the domain name is considered “bad” by your DNS resolver (it might be blocked!)
|
||||
* the previous DNS query (maybe the DNS resolver is doing DNS-based load balancing to give you a different IP address every time)
|
||||
* whether you’re using an airport wifi captive portal (airport wifi will resolve DNS records differently before you log in, it’ll send you a special IP to redirect you)
|
||||
* literally anything
|
||||
|
||||
|
||||
|
||||
A lot of the reasons you might want to control your own server are related to the fact that DNS isn’t a static database – there are a lot of choices you might want to make about how DNS queries are handled (either for your domain or for your organization).
|
||||
|
||||
### reasons to run an authoritative nameserver
|
||||
|
||||
These reasons aren’t in any particular order.
|
||||
|
||||
For some of these you don’t necessarily have to run your own authoritative nameserver, you can just choose an authoritative nameserver service that has the features you want.
|
||||
|
||||
To be clear: there are lots of reasons **not** to run your own authoritative nameserver – I don’t run my own, and I’m not trying to convince you that you should. It takes time to maintain, your service might not be as reliable, etc.
|
||||
|
||||
**reason: security**
|
||||
|
||||
[this tweet phrased it well][3]:
|
||||
|
||||
> [There’s a] risk of an attacker gaining DNS change access through your vendor’s customer support people, who only want to be helpful. Or getting locked out from your DNS (perhaps because of the lack of that). In-house may be easier to audit and verify the contents.
|
||||
|
||||
**reason: you like running bind/nsd**
|
||||
|
||||
One reason several people mentioned was “I’m used to writing zone files and running `bind` or `nsd`, it’s easier for me to just do that”.
|
||||
|
||||
If you like the interface of bind/nsd but don’t want to operate your own server, a couple of people mentioned that you can also get the advantages of bind by running a “hidden primary” server which stores the records, but serve all of the actual DNS queries from a “secondary” server. Here are some pages I found about configuring secondary DNS from from [NS1][4] and [cloudflare][5] and [Dyn][6] as an example.
|
||||
|
||||
I don’t really know what the best authoritative DNS server to run is. I think I’ve only used nsd at work.
|
||||
|
||||
**reason: you can use new record types**
|
||||
|
||||
Some newer DNS record types aren’t supported by all DNS services, but if you run your own you can support any record types you want.
|
||||
|
||||
**reason: user interface**
|
||||
|
||||
You might not like the user interface (or API, or lack of API) of the DNS service you’re using. This is pretty related to the “you like running BIND” reason – maybe you like the zone file interface!
|
||||
|
||||
**reason: you can fix problems yourself**
|
||||
|
||||
There are some obvious pros and cons to being able to fix problems yourself when they arise (pro: you can fix the problem, con: you have to fix the problem).
|
||||
|
||||
**reason: do something weird and custom**
|
||||
|
||||
You can write a DNS server that does anything you want, it doesn’t have to just return a static set of records.
|
||||
|
||||
A few examples:
|
||||
|
||||
* Replit has a blog post about [why they wrote their own authoritative DNS server to handle routing][7]
|
||||
* [nip.io][8] maps 10.0.0.1.nip.io to 10.0.0.1
|
||||
* I wrote a custom DNS server for [mess with dns][9]
|
||||
|
||||
|
||||
|
||||
**reason: to save money**
|
||||
|
||||
Authoritative nameservers seem to generally charge per million DNS queries. As an example, at a quick glance it looks like Route 53 charges about $0.50 per million queries and [NS1][10] charges about $8 per million queries.
|
||||
|
||||
I don’t have the best sense for how many queries a large website’s authoritative DNS server can expect to actually need to resolve (what kinds of sites get 1 billion DNS queries to their authoritative DNS server? Probably a lot, but I don’t have experience with that.). But a few people in the replies mentioned cost as a reason.
|
||||
|
||||
**reason: you can change your registrar**
|
||||
|
||||
If you use a separate authoritative nameserver for your domain instead of your registrar’s nameserver, then when you move to a different registrar all you hvae to do to get your DNS back up is to set your authoritative DNS server to the right value. You don’t need to migrate all your DNS records, which is a huge pain!
|
||||
|
||||
You don’t need to run your own nameserver to do this.
|
||||
|
||||
**reason: geo DNS**
|
||||
|
||||
You might want to return different IP addresses for your domain depending on where the client is, to give them a server that’s close to them.
|
||||
|
||||
This is a service lots of authoritative nameserver services offer, you don’t need to write your own to do this.
|
||||
|
||||
**reason: avoid denial of service attacks targeted at someone else**
|
||||
|
||||
Many authoritative DNS servers are shared. This means that if someone attacks the DNS server for `google.com` or something and you happen to be using the same authoritative DNS server, you could be affected even though the attack wasn’t aimed at you. For example, this [DDoS attack on Dyn][11] in 2016.
|
||||
|
||||
**reason: keep all of your configuration in one place**
|
||||
|
||||
One person mentioned that they like to keep all of their configuration (DNS records, let’s encrypt, nginx, etc) in the same place on one server.
|
||||
|
||||
**wild reason: use DNS as a VPN**
|
||||
|
||||
Apparently [iodine][12] is an authoritative DNS server that lets you tunnel your traffic over DNS, if you’re on a network that only allows you to contact the outside world as a VPN.
|
||||
|
||||
### reasons to run a resolver
|
||||
|
||||
**reason: privacy**
|
||||
|
||||
If someone can see all your DNS lookups, they have a complete list of all the domains you (or everyone from your organization) is visiting! You might prefer to keep that private.
|
||||
|
||||
**reason: block malicious sites**
|
||||
|
||||
If you run your own resolver, you can refuse to resolve DNS queries (by just not returning any results) for domains that you consider “bad”.
|
||||
|
||||
A few examples of resolvers that you can run yourself (or just use):
|
||||
|
||||
* [Pi-Hole][13] blocks advertisers
|
||||
* [Quad9][14] blocks domains that do malware/phishing/spyware. Cloudflare seems to have a [similar service][15]
|
||||
* I imagine there’s also corporate security software that blocks DNS queries for domains that host malware
|
||||
* DNS isn’t a static database. It’s very dynamic, and answers often depend in real time on the IP address a query came from, current load on content servers etc. That’s hard to do in real time unless you delegate serving those records to the entity making those decisions.
|
||||
* DNS delegating control makes access control very simple. Everything under a zone cut is controlled by the person who controls the delegated server, so responsibility for a hostname is implicit in the DNS delegation.
|
||||
|
||||
|
||||
|
||||
**reason: get dynamic proxying in nginx**
|
||||
|
||||
Here’s a cool story from [this tweet][16]:
|
||||
|
||||
> I wrote a DNS server into an app and then set it as nginx’s resolver so that I could get dynamic backend proxying without needing nginx to run lua. Nginx sends DNS query to app, app queries redis and responds accordingly. It worked pretty great for what I was doing.
|
||||
|
||||
**reason: avoid malicious resolvers**
|
||||
|
||||
Some ISPs run DNS resolvers that do bad things like nonexistent domains to an IP they control that shows you ads or a weird search page that they control.
|
||||
|
||||
Using either a resolver you control or a different resolver that you trust can help you avoid that.
|
||||
|
||||
**reason: resolve internal domains**
|
||||
|
||||
You might have an internal network with domains (like `blah.corp.yourcompany.com`) that aren’t on the public internet. Running your own resolver for machines in the internal network makes it possible to access those domains.
|
||||
|
||||
You can do the same thing on a home network, either to access local-only services or to just get local addresses for services that are on the public internet.
|
||||
|
||||
**reason: avoid your DNS queries being MITM’d**
|
||||
|
||||
One person [said][17]:
|
||||
|
||||
> I run a resolver on my LAN router that uses DNS over HTTPS for its upstream, so IoT and other devices that don’t support DoH or DoT don’t spray plaintext DNS outside
|
||||
|
||||
### that’s all for now
|
||||
|
||||
It feels important to me to explore the “why” of DNS, because it’s such a complicated messy system and I think most people find it hard to get motivated to learn about complex topics if they don’t understand why all this complexity is useful.
|
||||
|
||||
Thanks to Marie and Kamal for discussing this post, and to everyone on Twitter who provided reasons
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/
|
||||
|
||||
作者:[Julia Evans][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://jvns.ca/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.icann.org/en/blogs/details/ten-million-dns-resolvers-on-the-internet-22-3-2012-en
|
||||
[2]: https://twitter.com/b0rk/status/1478490484406468614
|
||||
[3]: https://twitter.com/thatcks/status/1478503078680838153
|
||||
[4]: https://help.ns1.com/hc/en-us/articles/360017508173-Configuring-NS1-as-a-secondary-provider-a-k-a-Creating-secondary-zones-
|
||||
[5]: https://blog.cloudflare.com/secondary-dns-a-faster-more-resilient-way-to-serve-your-dns-records/
|
||||
[6]: https://help.dyn.com/standard-dns/dyn-secondary-dns-information/
|
||||
[7]: https://blog.replit.com/dns
|
||||
[8]: https://nip.io
|
||||
[9]: https://jvns.ca/blog/2021/12/15/mess-with-dns/
|
||||
[10]: https://ns1.com/plans
|
||||
[11]: https://en.wikipedia.org/wiki/DDoS_attack_on_Dyn
|
||||
[12]: https://github.com/yarrick/iodine
|
||||
[13]: https://pi-hole.net/
|
||||
[14]: https://www.quad9.net/
|
||||
[15]: https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families
|
||||
[16]: https://twitter.com/jordanorelli/status/1478795241876504577
|
||||
[17]: https://twitter.com/passcod/status/1478806468539269120
|
@ -1,78 +0,0 @@
|
||||
[#]: subject: "Must-have open source cheat sheets for 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/open-source-cheat-sheets"
|
||||
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Must-have open source cheat sheets for 2022
|
||||
======
|
||||
Keep these handy cheat sheets at your side while you learn the Linux
|
||||
command line or practice a new programming language.
|
||||
![Brain on a computer screen][1]
|
||||
|
||||
You can't remember every command or shortcut you need to use. We are all human. Usually, I keep notes on separate bits of paper and in notebooks. This has led to some serious dysfunction on my desk. There is some five years' worth of clutter in scribbled bits everywhere. 2021's cheat sheets will bring that clutter down a notch. From JavaScript to Linux, there's something in this list for you.
|
||||
|
||||
### How to write your first JavaScript code
|
||||
|
||||
This [article][2] is for those first-timers out there who want to try learning a new language this year. [Seth Kenlon][3] covers installing JavaScript and getting started making a simple HTML page. While Seth explains that JavaScript isn't only for websites, all major web browsers do have a JavaScript engine to run your code. Throughout this walkthrough, Seth covers syntax, variables, and functions to get you started on your way to creating a new app. Finally, Seth covers the ability to go cross-platform with JavaScript before sharing the [cheat sheet][4].
|
||||
|
||||
### Linux Package management
|
||||
|
||||
In [Chris Hermansen's][5] [article][6], we get a brief preview for using `apt` before he shares his [cheat sheet][7]. Many people use Debian-based Linux daily at home and in the office. In this starter article, we get a sneak peek at what we can use `apt` for, starting with using `apt` to find software within the packaging system and also look into those packages' metadata with another command. Next, Chris covers if a package includes a file or package dependencies required during the install. Finally, Chris covers how to remove packages with the `apt` command. This thorough cheat sheet can give you more than your day-to-day package management with Linux. If `apt` isn't for you, you can check out the `dnf` [cheat sheet][8].
|
||||
|
||||
### Get started programming with DOS conio
|
||||
|
||||
Are you looking to get into DOS next year? If so, you're ready to create exciting new applications and [Jim Hall][9] has a [cheat sheet][10] for you. While defining `conio` in this [article][11], Jim covers how to make your very own colorful text-based user interface before sharing the cheat sheet. Jim explains that you can do so much more with your apps that are more interactive and exciting. Now that you have this cheat sheet, you can create your own app using DOS `conio`.
|
||||
|
||||
### Learn SQLite3
|
||||
|
||||
Work with this common database? Here's how you can be a power user with this [cheat sheet][12]. In this [hands-on tutorial][13], [Klaatu][14] starts with installing and interacting with SQLite3, then creates a database with a table before sharing the cheat sheet. Klaatu also explains data types and the date timestamp function in a nice simple paragraph. Klaatu adds more detailed functions to this tutorial, including viewing tables, altering tables, and so much more. If you want to go forth and be powerful with your SQLite3 database or just want to learn how to use it, this cheat sheet is for you.
|
||||
|
||||
### More Linux cheat sheets
|
||||
|
||||
While I've only scratched the surface with these cheat sheets, I would like to mention some honorable mentions that include cheat sheets for Linux by [Seth Kenlon][3]:
|
||||
|
||||
* Seth's powerful use of [grep][15] is useful for every occasion.
|
||||
* The [find][16] command cheat sheet is especially helpful for when I don't want to spend a ton of time wandering around directories.
|
||||
* The [wget][17] cheat sheet is handy for those times you really need something from the internet.
|
||||
|
||||
|
||||
|
||||
### Start 2022 with a look back on 2021
|
||||
|
||||
2021 was a stellar year for cheat sheets, many of which were about Linux, but others have taken it so far as to start you off with a brand new language. I urge you to print out these cheat sheets and start learning something new in 2022. We welcome authors of all experience levels, so tell us how you learned your new skills by [sending us an article or cheat sheet idea][18].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/open-source-cheat-sheets
|
||||
|
||||
作者:[Jessica Cherry][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/cherrybomb
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brain_computer_solve_fix_tool.png?itok=okq8joti (Brain on a computer screen)
|
||||
[2]: https://opensource.com/article/21/7/javascript-cheat-sheet
|
||||
[3]: https://opensource.com/users/seth
|
||||
[4]: https://opensource.com/downloads/javascript-cheat-sheet
|
||||
[5]: https://opensource.com/users/clhermansen
|
||||
[6]: https://opensource.com/article/21/6/apt-linux
|
||||
[7]: https://opensource.com/downloads/apt-cheat-sheet
|
||||
[8]: https://opensource.com/downloads/dnf-cheat-sheet
|
||||
[9]: https://opensource.com/users/jim-hall
|
||||
[10]: https://opensource.com/downloads/dos-conio-cheat-sheet
|
||||
[11]: https://opensource.com/article/21/9/programming-dos-conio
|
||||
[12]: https://opensource.com/downloads/sqlite-cheat-sheet
|
||||
[13]: https://opensource.com/article/21/2/sqlite3-cheat-sheet
|
||||
[14]: https://opensource.com/users/klaatu
|
||||
[15]: https://opensource.com/downloads/grep-cheat-sheet
|
||||
[16]: https://opensource.com/downloads/linux-find-cheat-sheet
|
||||
[17]: https://opensource.com/downloads/linux-wget-cheat-sheet
|
||||
[18]: https://opensource.com/how-submit-article
|
@ -0,0 +1,76 @@
|
||||
[#]: subject: "11 open source ideas for being more eco-friendly in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/open-source-eco-friendly"
|
||||
[#]: author: "Lauren Pritchett https://opensource.com/users/lauren-pritchett"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
11 open source ideas for being more eco-friendly in 2022
|
||||
======
|
||||
A round-up of Raspberry Pi tutorials, home automation projects, and open
|
||||
source apps that encourage environmentally conscious behavior.
|
||||
![Green sprout grass in dirt soil][1]
|
||||
|
||||
For governments and large organizations, open source continued to be a critical component for policy decisions and sustainability goals in 2021. The [United Nations][2] is one such organization that is relying on open source to reach its goals across a wide spectrum of issues including climate change. While it is crucial for world leaders to make big decisions to save the planet, many average citizens are also eager to contribute to the cause. Last year on Opensource.com, several authors shared their projects and ideas for making an impact on climate change. If you have a goal to make more eco-friendly choices in 2022, give these articles a read.
|
||||
|
||||
### Raspberry Pi tutorials and DIY projects
|
||||
|
||||
You can learn a lot about how your choices impact the globe by understanding your own carbon footprint. Open source technology is ideal for giving its users full control of that access and information. The following articles offer hands-on tutorials for monitoring your home and turning it into an eco-friendly powerhouse without wasting power.
|
||||
|
||||
* **[How I monitor my greenhouse with CircuitPython and open source tools][3]** Keep track of your greenhouse's temperature, humidity, and ambient light using a microcontroller, sensors, Python, and MQTT.
|
||||
* **[Convert your Raspberry Pi into a trading bot with Pythonic][4]** Reduce your power consumption by setting up your cryptocurrency trading bot on a Raspberry Pi.
|
||||
* **[Why choose open source for your home automation project][5]** Home automation is an exciting and fun branch of tech. Start designing your home automation solutions today with open source tools and this [eBook][6].
|
||||
* **[Build a home thermostat with a Raspberry Pi][7]** The ThermOS project is an answer to the many downsides of off-the-shelf smart thermostats.
|
||||
* **[Set up temperature sensors in your home with a Raspberry Pi][8]** Find out how hot your house is with a simple home Internet of Things project.
|
||||
* **[Monitor your home's temperature and humidity with Raspberry Pis and Prometheus][9]** Instrument a Prometheus application with Python on Raspberry Pis to collect temperature sensor data.
|
||||
* **[Open source solar power for anyone][10]** A new book teaches how to build your own solar power system at any budget using open source technology.
|
||||
|
||||
|
||||
|
||||
### Exploring the planet with open source
|
||||
|
||||
One of my goals for 2022 is to spend more time outdoors and appreciate what the Earth has to offer. Thankfully, there are plenty of open source apps to encourage me to do that.
|
||||
|
||||
* **[Identify flowers and trees with open source][11]** PlantNet combines open source technology with crowdsourced knowledge to help you become an amateur botanist.
|
||||
* **[Explore the night sky with this open source astronomy app][12]** Stargaze from your Linux desktop or Android device with KStars.
|
||||
* **[How open source is helping solve the plastic pollution problem][13]** OpenLitterMap empowers people to map and share data on litter problems in their communities.
|
||||
|
||||
|
||||
|
||||
### Open source climate change research
|
||||
|
||||
In 2022, there is still a lot to learn about climate change. Open source is helping to facilitate research with advanced technologies like 3D printing.
|
||||
|
||||
* **[Open source gets dirty with 3D printing][14]** 3D printing and open source technology enable advanced research for soil science.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/open-source-eco-friendly
|
||||
|
||||
作者:[Lauren Pritchett][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/lauren-pritchett
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/roman-synkevych-unsplash.jpg?itok=lIeB57IW (Green sprout grass in dirt soil)
|
||||
[2]: https://opensource.com/article/21/11/open-source-un-sustainability
|
||||
[3]: https://opensource.com/article/21/5/monitor-greenhouse-open-source
|
||||
[4]: https://opensource.com/article/21/9/raspberry-pi-trading-bot
|
||||
[5]: https://opensource.com/article/21/6/home-automation-ebook
|
||||
[6]: https://opensource.com/downloads/home-automation-ebook
|
||||
[7]: https://opensource.com/article/21/3/thermostat-raspberry-pi
|
||||
[8]: https://opensource.com/article/21/7/temperature-sensors-pi
|
||||
[9]: https://opensource.com/article/21/7/home-temperature-raspberry-pi-prometheus
|
||||
[10]: https://opensource.com/article/21/11/open-source-solar-power
|
||||
[11]: https://opensource.com/article/21/7/open-source-plantnet
|
||||
[12]: https://opensource.com/article/21/1/kstars
|
||||
[13]: https://opensource.com/article/21/1/openlittermap
|
||||
[14]: https://opensource.com/article/21/10/open-source-soil-science
|
64
sources/tech/20220109 9 ways to learn Ansible this year.md
Normal file
64
sources/tech/20220109 9 ways to learn Ansible this year.md
Normal file
@ -0,0 +1,64 @@
|
||||
[#]: subject: "9 ways to learn Ansible this year"
|
||||
[#]: via: "https://opensource.com/article/22/1/learn-ansible"
|
||||
[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
9 ways to learn Ansible this year
|
||||
======
|
||||
Ansible is an open source automation tool that can be used in a variety
|
||||
of ways. Here are a few examples of last year's most popular Ansible
|
||||
tutorials and stories.
|
||||
![woman on laptop sitting at the window][1]
|
||||
|
||||
Automation just keeps improving the lives of everyone on the IT team. Ansible helps anyone who uses IT automation, whether for keeping files organized or configuring printers, or for anything else someone can imagine and build. These are some of the most notable use cases and experiences shared on Opensource.com in 2021.
|
||||
|
||||
If you are hearing about Ansible for the first time, or if you're a seasoned user, these articles will have something for you.
|
||||
|
||||
* Michael DeHaan, the founder of Ansible, shares his thoughts on how he was led to IT automation. This interview has great information and insights into [how Ansible came into existence][2] and developed over time.
|
||||
|
||||
* Automation saves the day when you can automate many of your daily tasks as a sysadmin. Learn how to implement automated processes for [five everyday sysadmin tasks][3] using Ansible.
|
||||
|
||||
* Is your Downloads folder full of junk? Introducing a simple way to clean up files on your system with a simple playbook. It scales easily, and once scheduled it will run as frequently as you ask. Learn more about [removing files with Ansible][4].
|
||||
|
||||
* If you're [writing Ansible playbooks][5], four lines of code can improve them. Think about the next user, especially when you are collaborating on a project. A small effort can prevent big problems.
|
||||
|
||||
* The Ansible community has taken steps to make the project more inclusive by reviewing its codebase and updating its language. See a summary of the [Ansible terminology changes][6].
|
||||
|
||||
* Call APIs from your Ansible playbook like a pro! Find out something everyone should know about [leveraging REST APIs from a playbook][7].
|
||||
|
||||
* Have some CronJobs that should run daily, weekly, or monthly? Use [Ansible and anacron][8] to set tasks to leverage timestamps instead of scheduled time, so even if your machine is off at the scheduled time, it will run when it's back on.
|
||||
|
||||
* If you are just getting started with Ansible, maybe you want some direction on where to begin. Here are [10 ways everyone can use Ansible][9].** **
|
||||
|
||||
* Magic happens when a community works together. It's not just code: learn [how Ansible built a design system][10], creating reusable brand assets for community use. You'll especially appreciate this story if you are a designer or community manager.
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/learn-ansible
|
||||
|
||||
作者:[Sumantro Mukherjee][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/sumantro
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
|
||||
[2]: https://opensource.com/article/21/2/ansible-origin-story
|
||||
[3]: https://opensource.com/article/21/3/ansible-sysadmin
|
||||
[4]: https://opensource.com/article/21/9/keep-folders-tidy-ansible
|
||||
[5]: https://opensource.com/article/21/1/improve-ansible-play
|
||||
[6]: https://opensource.com/article/21/5/inclusive-language-ansible
|
||||
[7]: https://opensource.com/article/21/9/ansible-rest-apis
|
||||
[8]: https://opensource.com/article/21/9/ansible-anacron-automation
|
||||
[9]: https://opensource.com/article/21/1/ansible
|
||||
[10]: https://opensource.com/article/21/4/ansible-community-logos
|
@ -0,0 +1,58 @@
|
||||
[#]: subject: "8 surprising things I learned about Python in 2021"
|
||||
[#]: via: "https://opensource.com/article/22/1/python-roundup"
|
||||
[#]: author: "Sumantro Mukherjee https://opensource.com/users/sumantro"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
8 surprising things I learned about Python in 2021
|
||||
======
|
||||
Opensource.com authors shed light on new ways to use the popular
|
||||
programming language.
|
||||
![Hands on a keyboard with a Python book ][1]
|
||||
|
||||
Python has long been one of the most popular programming languages, but that doesn't mean there's nothing new to learn. This list of Opensource.com's most-read articles about Python is an excellent place to start.
|
||||
|
||||
* Widespread adoption of machine learning is here, and its applications are still growing. See how machine learning, using [Naïve Bayes][2] classifiers and implemented with Python, can solve real-life problems.
|
||||
|
||||
* The transition to Python 3 is complete, but enhancements keep coming. Seth Kenlon highlights [five hidden gems in Python 3][3] that stand out among recent improvements.
|
||||
|
||||
* Openshot has been one of the best options for Linux video editing for years. This popular article will show you how you, too, can [edit video on Linux][4] with this Python app.
|
||||
|
||||
* The best part of Python is the limitless possibilities a programmer can achieve. [Cython][5] is a compiler that will not only help speed up code execution but also let users write C extensions for Python.
|
||||
|
||||
* Python can make API unit testing simpler. Miguel Brito shows you [three ways to test your API][6] with Python.
|
||||
|
||||
* As computation power increases, more and more programs run concurrently. That can make it challenging to debug, log, and profile what's going wrong. [VizTracer][7] was created to solve exactly that problem.
|
||||
|
||||
* Users' personal projects, big and small, are a good reminder of how much fun open source coding can be. Here's an inspirational one: how Opensource.com author Darin London [monitors his greenhouse][8] using CircuitPython.
|
||||
|
||||
* Linux users often encounter programs requiring a lot of command-line arguments that are not pleasant to work with. This is a [nice configuration parsing hack][9] to make life easier.
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/python-roundup
|
||||
|
||||
作者:[Sumantro Mukherjee][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/sumantro
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/python-programming-code-keyboard.png?itok=fxiSpmnd (Hands on a keyboard with a Python book )
|
||||
[2]: https://opensource.com/article/21/1/machine-learning-python
|
||||
[3]: https://opensource.com/article/21/7/python-3
|
||||
[4]: https://opensource.com/article/21/2/linux-python-video
|
||||
[5]: https://opensource.com/article/21/4/cython
|
||||
[6]: https://opensource.com/article/21/9/unit-test-python
|
||||
[7]: https://opensource.com/article/21/3/python-viztracer
|
||||
[8]: https://opensource.com/article/21/5/monitor-greenhouse-open-source
|
||||
[9]: https://opensource.com/article/21/6/parse-configuration-files-python
|
@ -0,0 +1,229 @@
|
||||
[#]: subject: "How to find a domain's authoritative nameservers"
|
||||
[#]: via: "https://jvns.ca/blog/2022/01/11/how-to-find-a-domain-s-authoritative-nameserver/"
|
||||
[#]: author: "Julia Evans https://jvns.ca/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to find a domain's authoritative nameservers
|
||||
======
|
||||
|
||||
Here’s a very quick “how to” post on how to find your domain’s authoritative nameserver.
|
||||
|
||||
I’m writing this because if you made a DNS update and it didn’t work, there are 2 options:
|
||||
|
||||
1. Your authoritative nameserver doesn’t have the correct record
|
||||
2. Your authoritative nameserver **does** have the correct record, but an old record is cached and you need to wait for the cache to expire
|
||||
|
||||
|
||||
|
||||
To be able to tell which one is happening (do you need to make a change, or do you just need to wait?), you need to be able to find your domain’s authoritative nameserver and query it to see what records it has.
|
||||
|
||||
But when I looked up “how to find a domain’s authoritative nameserver” to see what advice was out there, I found a lot of different methods being mentioned, some of which can give you the wrong answer.
|
||||
|
||||
So let’s walk through a way to find your domain’s authoritative nameservers that’s guaranteed to always give you the correct answer. I’ll also explain why some of the other methods aren’t always accurate.
|
||||
|
||||
### first, an easy but less accurate way
|
||||
|
||||
If you definitely haven’t updated your authoritative DNS server in the last week or so, a very easy way to find it is to run `dig +short ns DOMAIN`
|
||||
|
||||
```
|
||||
|
||||
$ dig +short ns jvns.ca
|
||||
art.ns.cloudflare.com.
|
||||
roxy.ns.cloudflare.com.
|
||||
|
||||
```
|
||||
|
||||
In this case, we get the correct answer. Great!
|
||||
|
||||
But if you _have_ updated your authoritative DNS server in the last few days (maybe because you just registered the domain!), that can give you an inaccurate answer. So here’s the slightly more complicated way that’s guaranteed to always give you the correct answer.
|
||||
|
||||
### step 1: query a root nameserver
|
||||
|
||||
We’re going to look up the authoritative nameserver for `jvns.ca` in this example.
|
||||
|
||||
No matter what domain we’re looking up, we need to start with the root nameservers. `h.root-servers.net` is one of the [13 DNS root nameservers][1], and `dig @h.root-servers.net` means “send the query to `h.root-servers.net`”.
|
||||
|
||||
```
|
||||
|
||||
$ dig @h.root-servers.net jvns.ca
|
||||
;; Got answer:
|
||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42165
|
||||
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
|
||||
;; WARNING: recursion requested but not available
|
||||
|
||||
;; OPT PSEUDOSECTION:
|
||||
; EDNS: version: 0, flags:; udp: 1232
|
||||
;; QUESTION SECTION:
|
||||
;jvns.ca. IN A
|
||||
|
||||
;; AUTHORITY SECTION: <------------ this is the section we're interested in
|
||||
ca. 172800 IN NS c.ca-servers.ca. <------- we'll use this record
|
||||
ca. 172800 IN NS j.ca-servers.ca.
|
||||
ca. 172800 IN NS x.ca-servers.ca.
|
||||
ca. 172800 IN NS any.ca-servers.ca.
|
||||
|
||||
;; ADDITIONAL SECTION:
|
||||
c.ca-servers.ca. 172800 IN A 185.159.196.2
|
||||
j.ca-servers.ca. 172800 IN A 198.182.167.1
|
||||
x.ca-servers.ca. 172800 IN A 199.253.250.68
|
||||
any.ca-servers.ca. 172800 IN A 199.4.144.2
|
||||
c.ca-servers.ca. 172800 IN AAAA 2620:10a:8053::2
|
||||
j.ca-servers.ca. 172800 IN AAAA 2001:500:83::1
|
||||
x.ca-servers.ca. 172800 IN AAAA 2620:10a:80ba::68
|
||||
any.ca-servers.ca. 172800 IN AAAA 2001:500:a7::2
|
||||
|
||||
;; Query time: 96 msec
|
||||
;; SERVER: 198.97.190.53#53(198.97.190.53)
|
||||
;; WHEN: Tue Jan 11 08:30:57 EST 2022
|
||||
;; MSG SIZE rcvd: 289
|
||||
|
||||
```
|
||||
|
||||
The answer we’re looking for is this line in the “AUTHORITY SECTION”:
|
||||
|
||||
```
|
||||
|
||||
ca. 172800 IN NS c.ca-servers.ca.
|
||||
|
||||
```
|
||||
|
||||
It doesn’t matter which line in this section you pick, you can use any of them. I just picked the first one.
|
||||
|
||||
This tells us the server we need to talk to in step 2: `c.ca-servers.ca.`
|
||||
|
||||
### step 2: query the .ca nameservers
|
||||
|
||||
Now we run `dig @c.ca-servers.ca jvns.ca`
|
||||
|
||||
```
|
||||
|
||||
$ dig @c.ca-servers.ca jvns.ca
|
||||
;; Got answer:
|
||||
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24920
|
||||
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 1
|
||||
;; WARNING: recursion requested but not available
|
||||
|
||||
;; OPT PSEUDOSECTION:
|
||||
; EDNS: version: 0, flags:; udp: 1232
|
||||
;; QUESTION SECTION:
|
||||
;jvns.ca. IN A
|
||||
|
||||
;; AUTHORITY SECTION: <------------ this is the section we're interested in
|
||||
jvns.ca. 86400 IN NS art.ns.cloudflare.com. <---- we'll use this record
|
||||
jvns.ca. 86400 IN NS roxy.ns.cloudflare.com.
|
||||
|
||||
;; Query time: 26 msec
|
||||
;; SERVER: 185.159.196.2#53(185.159.196.2)
|
||||
;; WHEN: Tue Jan 11 08:32:44 EST 2022
|
||||
;; MSG SIZE rcvd: 90
|
||||
|
||||
```
|
||||
|
||||
Same as last time: the answer we’re looking for is this line in the “AUTHORITY SECTION”:
|
||||
|
||||
```
|
||||
|
||||
jvns.ca. 86400 IN NS art.ns.cloudflare.com.
|
||||
|
||||
```
|
||||
|
||||
Again, it doesn’t matter which line in this section you pick, you can use any of them. I just picked the first one.
|
||||
|
||||
### success! we know the authoritative nameserver!
|
||||
|
||||
The authoritative nameserver for `jvns.ca` is `art.ns.cloudflare.com.`. Now you can now query `art.ns.cloudflare.com.` directly to see what DNS records it has for `jvns.ca`.
|
||||
|
||||
```
|
||||
|
||||
$ dig @art.ns.cloudflare.com. jvns.ca
|
||||
jvns.ca. 292 IN A 172.64.80.1
|
||||
|
||||
```
|
||||
|
||||
Nice, it worked.
|
||||
|
||||
### this is exactly what’s happening behind the scenes when you make a DNS query
|
||||
|
||||
The reason I like this method is that it mimics what’s happening behind the scenes when you make a DNS query. When Google’s DNS resolver `8.8.8.8.` looks up `jvns.ca`, the server it queries to to get `jvns.ca`’s authoritative nameserver is `c.ca-servers.net` (or one of the other options, like `j.ca-servers.ca.` or `x.ca-servers.ca.`)
|
||||
|
||||
Because this method uses the exact same information source as a real DNS query, you’re guaranteed to get a correct answer every time.
|
||||
|
||||
Often in practice I skip step 1 because I remember that the answer for `.ca` domains is `c.ca-servers.net`, so I can skip straight to step 2.
|
||||
|
||||
### this is useful to do when you’re updating your nameservers
|
||||
|
||||
When I update my nameservers with my domain registrar, they don’t actually update the authoritative nameserver right away. It takes a while, maybe an hour. So I like to go through these steps to check if my registrar has actually updated my authoritative nameserver yet.
|
||||
|
||||
### other ways to get a domain’s authoritative nameserver
|
||||
|
||||
Here are a few other ways you can get the authoritative nameserver for a domain and why I didn’t recommend them as the main method.
|
||||
|
||||
**dig +trace jvns.ca**
|
||||
|
||||
This does the exact same thing so it will always give you the right answer, but the output is a bit confusing to read so I’m a bit more hesitant to recommend it.
|
||||
|
||||
**dig ns jvns.ca**
|
||||
|
||||
This will usually give you the right answer, but there are 2 reasons it might be wrong:
|
||||
|
||||
1. You might get an old cached record
|
||||
2. The NS record you get doesn’t come from the same place as it does when we do the method described in this post. In this example, instead of getting a NS record from `c.ca-servers.net`, `dig ns jvns.ca` will give you an NS record from `art.ns.cloudflare.com`. In practice usually these are the exact same thing, but in some weird edge cases they might not be.
|
||||
|
||||
|
||||
|
||||
**dig soa jvns.ca**
|
||||
|
||||
You can also find nameservers in the SOA record!
|
||||
|
||||
```
|
||||
|
||||
$ dig SOA jvns.ca
|
||||
jvns.ca. 3600 IN SOA art.ns.cloudflare.com. dns.cloudflare.com. 2267173366 10000 2400 604800 3600
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
here it is
|
||||
|
||||
```
|
||||
|
||||
This will usually give the right answer, there are 2 reasons it might be wrong, similarly to the NS record:
|
||||
|
||||
1. This response comes from your authoritative nameserver. So if you’re in the middle of updating your nameserver, you might get the wrong answer because your DNS resolver sent the request to the old nameserver.
|
||||
2. Your authoritative nameserver could be returning a SOA record which doesn’t have the correct nameserver for some reason
|
||||
|
||||
|
||||
|
||||
**whois jvns.ca**
|
||||
|
||||
This will usually give you the right answer, but it might be an old cached version.
|
||||
|
||||
Here’s what this looks like on my machine for this example: (it gives us the right answer)
|
||||
|
||||
```
|
||||
|
||||
$ whois jvns.ca | grep 'Name Server'
|
||||
Name Server: art.ns.cloudflare.com
|
||||
Name Server: roxy.ns.cloudflare.com
|
||||
|
||||
```
|
||||
|
||||
### that’s all!
|
||||
|
||||
I hope this helps some of you debug your DNS issues!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://jvns.ca/blog/2022/01/11/how-to-find-a-domain-s-authoritative-nameserver/
|
||||
|
||||
作者:[Julia Evans][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://jvns.ca/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.iana.org/domains/root/servers
|
@ -0,0 +1,87 @@
|
||||
[#]: subject: "QPrompt is a Free and Open Source Teleprompter for Video Creators"
|
||||
[#]: via: "https://itsfoss.com/qprompt/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
QPrompt is a Free and Open Source Teleprompter for Video Creators
|
||||
======
|
||||
|
||||
These days, all sorts of people are creating video contents. From the professional YouTubers to school teachers, creating video content has become part of various job profiles.
|
||||
|
||||
From screen recorders to video editors, there are various tools that help create good videos. Teleprompter is also one such tool.
|
||||
|
||||
A teleprompter runs visual cues or even complete text so that a speaker can take hints while speaking. You might have seen news readers using the teleprompter.
|
||||
|
||||
There are dedicated teleprompter software that can be run on computer or mobile device.
|
||||
|
||||
One such software is QPrompt which is available for free on Linux, Windows and other platforms.
|
||||
|
||||
### QPrompt: Personal teleprompter software
|
||||
|
||||
![][1]
|
||||
|
||||
[QPrompt][2] is a teleprompter software for all kinds of video creators. Its main focus is on ease of use, and fast performance.
|
||||
|
||||
QPrompt works with webcams and cellphones, studio teleprompters, and tablet teleprompters. Its unique ability is to make its background transparent and that makes it excellent for video conferencing.
|
||||
|
||||
Here’s the highlight of QPrompt’s features:
|
||||
|
||||
* Works with studio teleprompters, tablet teleprompters, webcams and phones
|
||||
* Fluid motion, jitter free experience
|
||||
* Make changes on the fly while prompting
|
||||
* Paste from other software without hassle
|
||||
* Estimates remaining time for you
|
||||
* Use markers to skip to anywhere on the script
|
||||
* Prompt to multiple screens, with independent mirroring
|
||||
* Background transparency allows you to monitor yourself or your audience as you speak
|
||||
* Built in chronometer
|
||||
* Progress indicator
|
||||
* Rich text formatting
|
||||
* Supports writing systems of over 180 languages
|
||||
|
||||
|
||||
|
||||
The Q in QPrompt is a hint that the application is made using Qt framework. It uses [Kirigami framework][3] for the user interface. All of that makes it an excellent choice for KDE but it works the same in GNOME.
|
||||
|
||||
### Installing QPrompt
|
||||
|
||||
![QPrompt running in Ubuntu][4]
|
||||
|
||||
QPrompt is a free and open source software and it is available for Linux, Windows and macOS. There is also APK available for Android devices but it’s not stable yet.
|
||||
|
||||
Linux users have the choice to select between AppImage, Snap and Deb file. Flatpak package is under development at the moment of writing this article.
|
||||
|
||||
You can get the AppImage from the download section of the project’s website:
|
||||
|
||||
[Download QPrompt in AppImage][2]
|
||||
|
||||
Other installation options are available on the release page of its GitHub repository:
|
||||
|
||||
[Other download options][5]
|
||||
|
||||
### Conclusion
|
||||
|
||||
I wanted to review this application on its functionality but since I have never used a teleprompter, I don’t think I could test and ‘judge’ all of its feature. If you have used such applications in the past, give QPrompt a try and see how it competes with other software in its category.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/qprompt/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2022/01/QPrompt.jpg?resize=800%2C678&ssl=1
|
||||
[2]: https://qprompt.app/
|
||||
[3]: https://develop.kde.org/frameworks/kirigami/
|
||||
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/QPrompt-screenshot.png?resize=800%2C505&ssl=1
|
||||
[5]: https://github.com/Cuperino/QPrompt/releases
|
@ -0,0 +1,100 @@
|
||||
[#]: subject: "Run containers on Linux without sudo in Podman"
|
||||
[#]: via: "https://opensource.com/article/22/1/run-containers-without-sudo-podman"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Run containers on Linux without sudo in Podman
|
||||
======
|
||||
Configure your system for rootless containers.
|
||||
![Command line prompt][1]
|
||||
|
||||
Containers are an important part of modern computing, and as the infrastructure around containers evolves, new and better tools have started to surface. It used to be that you could run containers with just [LXC][2], and then Docker gained popularity, and things started getting more complex. Eventually, we got the container management system we all deserved with [Podman][3], a daemonless container engine that makes containers and pods easy to build, run, and manage.
|
||||
|
||||
Containers interface directly with Linux kernel abilities like cgroups and namespaces, and they spawn lots of new processes within those namespaces. In short, running a container is literally running a Linux system _inside_ a Linux system. From the operating system's viewpoint, it looks very much like an administrative and privileged activity. Normal users don't usually get to have free reign over system resources the way containers demand, so by default, root or `sudo` permissions are required to run Podman. However, that's only the default setting, and it's by no means the only setting available or intended. This article demonstrates how to configure your Linux system so that a normal user can run Podman without the use of `sudo` ("rootless").
|
||||
|
||||
### Namespace user IDs
|
||||
|
||||
A [kernel namespace][4] is essentially an imaginary construct that helps Linux keep track of what processes belong together. It's the red queue ropes of Linux. There's not actually a difference between processes in one queue and another, but it's helpful to cordon them off from one another. Keeping them separate is the key to declaring one group of processes a "container" and the other group of processes your OS.
|
||||
|
||||
Linux tracks what user or group owns each process by User ID (UID) and Group ID (GID). Normally, a user has access to a thousand or so subordinate UIDs to assign to child processes in a namespace. Because Podman runs an entire subordinate operating system assigned to the user who started the container, you need a lot more than the default allotment of subuids and subgids.
|
||||
|
||||
You can grant a user more subuids and subgids with the `usermod` command. For example, to grant more subuids and subgids to the user `tux`, choose a suitably high UID that has no user assigned to it (such as 200,000) and increment it by several thousand:
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
$ sudo usermod \
|
||||
\--add-subuids 200000-265536 \
|
||||
\--add-subgids 200000-265536 \
|
||||
tux
|
||||
|
||||
```
|
||||
|
||||
### Namespace access
|
||||
|
||||
There are limits on namespaces, too. This usually gets set very high, but you can verify the user allotment of namespaces with `systctl`, the kernel parameter tool:
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
$ sysctl --all --pattern user_namespaces
|
||||
user.max_user_namespaces = 28633
|
||||
|
||||
```
|
||||
|
||||
That's plenty of namespaces, and it's probably what your distribution has set by default. If your distribution doesn't have that property or has it set very low, then you can create it by entering this text into the file `/etc/sysctl.d/userns.conf`:
|
||||
|
||||
|
||||
```
|
||||
`user.max_user_namespaces=28633`
|
||||
```
|
||||
|
||||
Load that setting:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo sysctl -p /etc/sysctl.d/userns.conf`
|
||||
```
|
||||
|
||||
### Run a container without root
|
||||
|
||||
Once you've got your configuration set, reboot your computer to ensure that the changes to your user and kernel parameters are loaded and active.
|
||||
|
||||
After you reboot, try running a container image:
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
$ podman run -it busybox echo "hello"
|
||||
hello
|
||||
|
||||
```
|
||||
|
||||
### Containers like commands
|
||||
|
||||
Containers may feel mysterious if you're new to them, but actually, they're no different than your existing Linux system. They are literally processes running on your system, without the cost or barrier of an emulated environment or virtual machine. All that separates a container from your OS are kernel namespaces, so they're really just native processes with different labels on them. Podman makes this more evident than ever, and once you configure Podman to be a rootless command, containers feel more like commands than virtual environments. Podman makes containers and pods easy, so give it a try.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/run-containers-without-sudo-podman
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/command_line_prompt.png?itok=wbGiJ_yg (Command line prompt)
|
||||
[2]: https://opensource.com/article/18/11/behind-scenes-linux-containers
|
||||
[3]: http://podman.io
|
||||
[4]: https://opensource.com/article/19/10/namespaces-and-containers-linux
|
@ -1,49 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]:主题:(物联网提供了一种通过联网温度计跟踪COVID-19的方法)
|
||||
[#]:链接:(https://www.networkworld.com/article/3539058/iot-offers-a-way-to-track-covid-19-via-connected-thermometers.html)
|
||||
[#]:作者:(Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
物联网提供了一种通过联网温度计跟踪COVID-19的方法
|
||||
======
|
||||
COVID-19大流行使一家联网温度计制造商成为全国知名企业,因为Kinsa提供了一个可能了解疾病传播的窗口。
|
||||
[Kinsa / 传单 / 开放式街道地图 / 三维电解剖标测系统][1]
|
||||
|
||||
一家名为Kinsa的公司正在利用[物联网][2]技术来创建一个连接温度计的网络,收集大量的匿名健康数据,这些数据可以为了解当前和未来的流行病提供帮助。
|
||||
|
||||
该公司创始人兼首席执行官英德尔·辛格(Inder Singh)表示,能够近乎实时地跟踪美国各地的发烧水平,对于广大公众以及医疗保健部门和政府的决策者来说,都可能是一条至关重要的信息。
|
||||
|
||||
[[通过订阅Network World时事通讯获取定期的见解。]][3]
|
||||
|
||||
该系统的联网技术相对简单——温度计通过蓝牙连接到用户手机上的一个应用程序,该应用程序通过互联网将匿名数据报告给Kinsa的云。辛格强调说,该公司只整理到县一级的数据,并声称通过Kinsa的数据识别个人几乎是不可能的。
|
||||
|
||||
“我们不提供个人身份信息,我们不提供识别数据,”他说。“这款应用程序只会引导你找到你需要的护理和服务。”
|
||||
|
||||
有了体温读数和一些关于体温测量者的基本人口统计信息以及他们的其他症状,这款应用程序可以提供基本的指导,比如是否需要去看医生,以及用户所在的区域是否出现了异常的发烧程度。
|
||||
|
||||
然而,真正的价值在于Kinsa在其[美国健康天气地图][1]上分析和细分的聚合数据,这些数据是从该公司生态系统中的100多万个温度计收集而来的。根据辛格的说法,这个想法是为了给公众提供一种方式,让他们对自己的健康做出更明智的决定。
|
||||
|
||||
“这是一个参与性很强的活动,”他说。“每个人都能得到数据,每个人都能做出反应。”
|
||||
|
||||
Kinsa仍然直接向消费者销售温度计,但该公司正计划与地方政府、卫生部门甚至学区进行更密切的合作——辛格说,Kinsa已经与美国两个州(他拒绝透露姓名)以及包括圣奥古斯丁,佛罗里达州在内的多个市政府合作。
|
||||
|
||||
他说:“我们的希望是,我们能够找出如何建立一个可扩展的模型——我们永远不会只靠卖20美元的温度计就可以在全球范围内扩展。”。我们的目标是使该产品能够广泛应用,从而成为医疗保健部门有意义的早期预警系统。
|
||||
|
||||
加入[Facebook][4]和[LinkedIn][5]的网络社区,对最热门的话题发表评论。
|
||||
|
||||
作者:[Jon Gold][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Jon-Gold/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://healthweather.us/?mode=Atypical
|
||||
[2]: https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html
|
||||
[3]: https://www.networkworld.com/newsletters/signup.html
|
||||
[4]: https://www.facebook.com/NetworkWorld/
|
||||
[5]: https://www.linkedin.com/company/network-world
|
@ -1,65 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (NIST aims to make frequency sharing more efficient for wireless networks)
|
||||
[#]: via: (https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html)
|
||||
[#]: author: (Patrick Nelson https://www.networkworld.com/author/Patrick-Nelson/)
|
||||
|
||||
NIST的目标是使无线网络的频率共享更加有效
|
||||
======
|
||||
机器学习公式将帮助不同的无线电协议,如Wi-Fi和LTE,在同一的无线频谱中更有效地协同工作。
|
||||
马丁·威廉姆斯/IDG
|
||||
|
||||
|
||||
美国国家标准与技术研究所([NIST][1])开发的机器学习公式有可能显著改善[5G][2]和其他无线网络选择和共享通信频率的方式。研究人员声称,与试错法相比,NIST的公式可以使共享通信频率的过程效率提高多达5000倍。
|
||||
|
||||
NIST系统的理念是,无线电设备可以从经验中学习其网络环境,而不是像现在这样,简单地根据试错法选择频率信道。
|
||||
|
||||
NIST在[其网站上的一篇文章][3]中说,在特定的环境条件下,“该算法可以学习哪个信道提供最好的结果”。
|
||||
|
||||
**阅读更多内容:**[波束成形如何提高无线通信速度][4]
|
||||
|
||||
该团队说:“这个公式可以被编程到现实世界中许多[不同]类型网络的发射机的软件中。”
|
||||
|
||||
从本质上讲,计算机模拟的算法是一个公式,它映射了先前在环境射频条件下的经验。例如,这些条件可以包括在一个信道(一组相邻的频率)内运行的发射机的数量。
|
||||
|
||||
文章说:“…如果发射机选择了一个未被占用的信道,那么成功传输的概率就会上升,从而导致更高的数据速率。”同样地,当发射机选择一个没有太多干扰的信道时,信号会更强,你也会得到更好的数据速率。发射机记住哪个信道提供最佳结果, 并学会在下次需要清晰信号时学会选择刻度盘上的那个位置。
|
||||
|
||||
这与今天的工作方式不同。也就是说,无线电只是试图找到一个开放频率,然后与类似协议的无线电进行通信。在复杂的情况下,例如Wi-Fi,跳频和[波束成形][4]被用来优化信道。
|
||||
|
||||
研究人员解释说,NIST的机器学习技术的亮点在于共享频谱,比如通过授权频谱辅助接入(LAA)共享Wi-Fi。LAA是未经许可的LTE频谱,称为LTE-U,频率为5GHz。在相同频率下的Wi-Fi与LAA的组合中,协议是不同的:无线电之间不能相互通信以协调工作,而且频带越繁忙就可能出现混乱——传输会遇到其他传输。但是,如果所有的无线电接收机都能更好地选择他们的时段,通过学习哪些有效,哪些无效,那么这将会更好。
|
||||
|
||||
NIST工程师杰森·科德(Jason Coder)在文章中说:“这可能会使未经许可的频段的通信更加高效。”
|
||||
|
||||
事实上,NIST声称,它“可以帮助5G和其他无线网络选择和共享通信频率,其效率大约是试错法的5000倍。”
|
||||
|
||||
这里的关键词是“共享”,因为为了在有限的频谱内增加通信,必须进行更多的共享——物联网或媒体流媒体等用户都在争夺同样的隐喻地产。随着物联网和数字技术的不断发展,无授权和授权频段的结合,就像LAA中的情况一样,可能会变得更加普遍。(未授权的频段是指那些没有分配给特定用户的频段,比如移动网络运营商;授权的频段是在拍卖中中标并分配的。)
|
||||
|
||||
在NIST场景中,相互竞争的发射机“都学习在不相互通信的情况下最大化网络数据速率”。因此,多种协议和数据类型,如视频或传感器数据,或Wi-Fi和移动网络,可以相互协作。
|
||||
|
||||
NIST的公式大大简化了为发射机分配最佳信道的过程,根据这篇文章研究发现,穷尽努力[使用试错法]来确定最佳解决方案需要大约45600次试验,而这个公式只需要尝试10个渠道就可以选择类似的解决方案,仅仅0.02%的努力。”
|
||||
|
||||
NIST的研究人员最近在今年举行的IEEE第91届车辆技术会议上展示了他们的研究成果。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html
|
||||
|
||||
作者:[Patrick Nelson][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Patrick-Nelson/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.nist.gov/
|
||||
[2]: https://www.networkworld.com/article/3330603/5g-versus-4g-how-speed-latency-and-application-support-differ.html
|
||||
[3]: https://www.nist.gov/news-events/news/2020/05/nist-formula-may-help-5g-wireless-networks-efficiently-share-communications
|
||||
[4]: https://www.networkworld.com/article/3445039/beamforming-explained-how-it-makes-wireless-communication-faster.html
|
||||
[5]: https://events.vtsociety.org/vtc2020-spring/conference-sessions/program/
|
||||
[6]: https://www.facebook.com/NetworkWorld/
|
||||
[7]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,72 @@
|
||||
[#]: subject: "5 tips for learning a new programming language in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/learn-programming"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
2022 年学习新编程语言的 5 个提示
|
||||
======
|
||||
借助开源的力量,任何人都可以编程。找到一个你想做的项目,并让它成为你进入编程的第一个项目。
|
||||
![Woman sitting in front of her computer][1]
|
||||
|
||||
任何人都可以开始学习编程。[我们都是从某处开始的][2],而且你不需要有计算机科学背景就可以学习编码。这就是 Linux 和开源的力量:任何人都可以学习一点编码。
|
||||
|
||||
如果你想学习一种新的编程语言,我们有几篇很棒的文章可以让你开始学习。下面是我们最受欢迎的几篇文章,它们可以帮助到你。
|
||||
|
||||
### 比较编程语言
|
||||
|
||||
大多数编程语言都有某些相似之处。当你知道如何用一种编程语言做一件事,学习下一种编程语言主要是弄清其语法和结构。
|
||||
|
||||
#### [不同的编程语言如何做同样的事情][3]
|
||||
|
||||
学习一种新的编程语言的一个好方法是写一个简单的测试程序,如一个游戏,以探索该编程语言的工作原理。我经常写的一个示例程序是一个简单的“猜数字”游戏,即计算机 在 1 到 100 之间挑选一个数字,让我猜出来。今年早些时候,我们发表了一系列文章,探讨如何用几种编程语言编写猜数字游戏。了解这些不同的编程语言如何实现“猜数字”游戏的主要步骤。
|
||||
|
||||
#### [不同的编程语言如何读写数据][4]
|
||||
|
||||
[Alan 的][5]文章比较了不同的编程语言如何在相同的思想下读写数据。无论这些数据是来自于配置文件还是用户创建的文件,在存储设备上处理数据对于编码者来说是很常见的。Alan 的比较文章提供了对几种流行的编程语言,如 C、Java、Groovy 和其他语言所采取的不同方法的深入了解。
|
||||
|
||||
### 学习一种新的编程语言
|
||||
|
||||
无论你是想学习一种新的编程语言,还是想探索一种现有的编程语言,请看看下面这些关于学习编程的好文章。
|
||||
|
||||
#### [如何用 WebAssembly 编写 “Hello World”][6]
|
||||
|
||||
WebAssembly 是一种字节码格式,几乎所有的浏览器都可以将其编译为主机系统的机器代码。与 JavaScript 和 WebGL 一起,WebAssembly 满足了将应用移植到网络浏览器中独立使用的需求。[Stephan][7] 解释了如何用 WASM-text 创建经典的 Hello World 程序。
|
||||
|
||||
#### [用 Golang 轻松实现交叉编译][8]
|
||||
|
||||
[Gaurav][9] 写了关于通过将脚本转换为 Go 程序来学习 Go 的交叉编译支持。你可以一次写好你的程序,并通过交叉编译为另一个环境进行编译。
|
||||
|
||||
#### [为什么我使用 D 编程语言来编写脚本][10]
|
||||
|
||||
D 编程语言由于其静态类型和元编程能力,常常被认为是一种系统编程语言。然而,它也是一种非常高效的脚本语言。[Lawrence][11] 写了关于如何利用 D 编程语言进行普通的脚本编写。
|
||||
|
||||
借助于开源的力量,编程可以被任何人所接受。找到一个你想做的项目,并让它成为你进入编程的第一个项目。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/learn-programming
|
||||
|
||||
作者:[Jim Hall][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_2.png?itok=JPlR5aCA (Woman sitting in front of her computer)
|
||||
[2]: https://opensource.com/article/21/8/first-programming-language
|
||||
[3]: https://opensource.com/article/21/4/compare-programming-languages
|
||||
[4]: https://opensource.com/article/21/7/programming-read-write
|
||||
[5]: https://opensource.com/users/alansmithee
|
||||
[6]: https://opensource.com/article/21/3/hello-world-webassembly
|
||||
[7]: https://opensource.com/users/hansic99
|
||||
[8]: https://opensource.com/article/21/1/go-cross-compiling
|
||||
[9]: https://opensource.com/users/gkamathe
|
||||
[10]: https://opensource.com/article/21/1/d-scripting
|
||||
[11]: https://opensource.com/users/aberba
|
@ -0,0 +1,57 @@
|
||||
[#]: subject: "5 ways to learn the C programming language in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/c-programming"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
2022 年学习 C 语言编程的 5 种方法
|
||||
======
|
||||
只需掌握一点 C 语言的知识,你就可以做很多事情。
|
||||
![Person drinking a hot drink at the computer][1]
|
||||
|
||||
我精通几种编程语言,但我最喜欢的是 C 语言。C 语言开发于 20 世纪 70 年代,作为一种系统编程语言,在 2021 年仍然是最受欢迎的编程语言之一。如果你想探索 C 语言的几个特点,可以从去年的这些热门文章开始:
|
||||
|
||||
在 C 语言中使用 getopt 进行短选项解析][2]
|
||||
|
||||
如果你的程序每次运行时都能对用户作出反应,你就可以使它变得更加灵活。让你的用户告诉你的程序使用什么文件或如何以不同的方式做事情。为此,你需要读取命令行。这篇文章告诉你如何使用 `argv` 直接读取命令行,并使用 `getopt` 读取短命令行选项。
|
||||
|
||||
[在 Linux 中用 ncurses 定位屏幕上的文本][3]
|
||||
|
||||
大多数 Linux 工具只是从屏幕的底部滚动文本。但如果你想在屏幕上定位文本,比如游戏或数据显示,该怎么办?这就是 `ncurses` 的作用。
|
||||
|
||||
[用 DOS conio 开始编程][4]
|
||||
|
||||
C 语言并不只适用于 Linux。你可以在许多操作系统上找到 C,包括 DOS。许多 C 程序员控制控制台输入和输出的标准方法是使用 `conio` 库。学习如何使用 `conio` 来更新 DOS 程序的控制台,包括文本颜色和文本窗口。
|
||||
|
||||
[使用位域和掩码编写国际象棋游戏][5]
|
||||
|
||||
在 C 语言程序中关联信息的标准方法是使用一个结合了两个或多个相关字段的结构体。例如,你可以用一个结构体来跟踪棋盘上的棋子。但是有一种更直接的方法来跟踪同样的信息,同时使用更少的数据和内存。使用二进制位域和掩码,你可以存储一个单一的值来识别每个方格中的棋子和颜色。
|
||||
|
||||
[C 语言编程中的 5 个常见错误以及如何修复它们][6]
|
||||
|
||||
即使是最好的程序员也会产生编程错误。根据你的程序所做的事情,这些 bug 可能会引入安全漏洞,导致程序崩溃,或产生意外的行为。但是,通过一点额外的代码,你可以避免最常见和最严重的 C 语言编程错误。这里有五个可能破坏你的应用的 bug 以及你如何避免它们。
|
||||
|
||||
只需一点 C 语言知识,你就可以做很多事情。探索新的方法,为你的下一个 C 语言编程项目增加功能。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/c-programming
|
||||
|
||||
作者:[Jim Hall][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coffee_tea_laptop_computer_work_desk.png?itok=D5yMx_Dr (Person drinking a hot drink at the computer)
|
||||
[2]: https://opensource.com/article/21/8/short-option-parsing-c
|
||||
[3]: https://opensource.com/article/21/8/ncurses-linux
|
||||
[4]: https://opensource.com/article/21/9/programming-dos-conio
|
||||
[5]: https://opensource.com/article/21/8/binary-bit-fields-masks
|
||||
[6]: https://opensource.com/article/21/10/programming-bugs
|
@ -0,0 +1,77 @@
|
||||
[#]: subject: "Must-have open source cheat sheets for 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/open-source-cheat-sheets"
|
||||
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
2022 年必备的开源备忘单
|
||||
======
|
||||
在你学习 Linux 命令行或练习新的编程语言时,请随身携带这些方便的备忘单。
|
||||
![Brain on a computer screen][1]
|
||||
|
||||
你不可能记住每一个你需要使用的命令或快捷方式。我们都是人。通常情况下,我把笔记放在不同的纸片上和笔记本里。这导致我的办公桌上出现了一些严重的紊乱。到处都是一些五年前的杂乱无章的潦草文字。2021 年的备忘单将把混乱降低一个档次。从 JavaScript 到 Linux,这个列表中都有适合你的东西。
|
||||
|
||||
### 如何编写你的第一段JavaScript代码
|
||||
|
||||
这篇[文章][2]是为那些今年想尝试学习一门新语言的初来乍到者准备的。[Seth Kenlon][3] 介绍了安装 JavaScript 和开始制作一个简单的 HTML 页面。虽然 Seth 解释说 JavaScript 并不只用于网站,但所有主要的网络浏览器都有一个 JavaScript 引擎来运行你的代码。在整个演练过程中,Seth 涵盖了语法、变量和函数,让你开始创建一个新的应用。最后,在分享[备忘录][4]之前,Seth 还介绍了用 JavaScript 进行跨平台的能力。
|
||||
|
||||
### Linux 软件包管理
|
||||
|
||||
在 [Chris Hermanse][5] 的[文章][6]中,在他分享他的[备忘录][7]之前,我们得到了关于使用 `apt` 的简要预览。许多人每天在家里和办公室使用基于 Debian 的 Linux。在这篇入门文章中,我们可以看一下 `apt` 的用途,首先是用 `apt` 在打包系统中寻找软件,也可以用另一个命令查看这些软件包的元数据。接下来,Chris 介绍了一个软件包是否包括安装过程中需要的文件或软件包依赖。最后,Chris 介绍了如何用 `apt` 命令删除软件包。这份详尽的备忘录可以给你带来比 Linux 的日常软件包管理更多的东西。如果 `apt` 不适合你,你可以看看 `dnf` [备忘录][8]。
|
||||
|
||||
### 用 DOS conio 开始编程
|
||||
|
||||
你是否想在明年进入 DOS?如果是的话,你已经准备好创建令人兴奋的新应用,[Jim Hall][9] 为你准备了一份[备忘录][10]。在这篇[文章][11]中定义了 `conio`,在分享备忘录之前,Jim 介绍了如何制作你自己的彩色文本用户界面。Jim 解释说,你可以用你的应用做更多的事情,使其更具互动性和刺激性。现在你有了这个备忘录,你就可以用 DOS `conio` 创建你自己的应用了。
|
||||
|
||||
### 学习 SQLite3
|
||||
|
||||
与这种常见的数据库一起工作?下面是你如何通过这个[备忘录][12]成为一个资深用户。在这个[实践教程][13]中,[Klaatu][14] 从安装和与 SQLite3 互动开始,然后在分享备忘录之前创建了一个带表的数据库。Klaatu 还用一段很简单的文字解释了数据类型和日期时间戳功能。Klaatu 在本教程中增加了更多详细的功能,包括查看表格、改变表格等等。如果你想继续使用 SQLite3 数据库并使其变得强大,或者只是想学习如何使用它,这个备忘录就适合你。
|
||||
|
||||
### 更多的 Linux 备忘录
|
||||
|
||||
虽然我只是用这些备忘单触及了皮毛,但我想提到一些值得称赞的地方,其中包括 [Seth Kenlon][3] 的 Linux 备忘单:
|
||||
|
||||
* Seth 对 [grep][15] 的强大使用对各种场合都很有用。
|
||||
* [find][16] 命令备忘录对于我不想花大量时间在目录中徘徊的时候特别有帮助。
|
||||
* [wget][17] 备忘录对于那些你需要从互联网上获取东西的时候是很方便的。
|
||||
|
||||
|
||||
|
||||
### 以回顾 2021 年开始 2022 年
|
||||
|
||||
2021 年是备忘录的辉煌之年,其中许多是关于 Linux 的,但也有一些备忘录甚至让你从一种全新的语言开始。我强烈建议你打印出这些备忘录,在 2022 年开始学习新东西。我们欢迎各种经验水平的作者,请通过[给我们发送文章或备忘录][18]告诉我们你是如何学习新技能的。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/open-source-cheat-sheets
|
||||
|
||||
作者:[Jessica Cherry][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/cherrybomb
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brain_computer_solve_fix_tool.png?itok=okq8joti (Brain on a computer screen)
|
||||
[2]: https://opensource.com/article/21/7/javascript-cheat-sheet
|
||||
[3]: https://opensource.com/users/seth
|
||||
[4]: https://opensource.com/downloads/javascript-cheat-sheet
|
||||
[5]: https://opensource.com/users/clhermansen
|
||||
[6]: https://opensource.com/article/21/6/apt-linux
|
||||
[7]: https://opensource.com/downloads/apt-cheat-sheet
|
||||
[8]: https://opensource.com/downloads/dnf-cheat-sheet
|
||||
[9]: https://opensource.com/users/jim-hall
|
||||
[10]: https://opensource.com/downloads/dos-conio-cheat-sheet
|
||||
[11]: https://opensource.com/article/21/9/programming-dos-conio
|
||||
[12]: https://opensource.com/downloads/sqlite-cheat-sheet
|
||||
[13]: https://opensource.com/article/21/2/sqlite3-cheat-sheet
|
||||
[14]: https://opensource.com/users/klaatu
|
||||
[15]: https://opensource.com/downloads/grep-cheat-sheet
|
||||
[16]: https://opensource.com/downloads/linux-find-cheat-sheet
|
||||
[17]: https://opensource.com/downloads/linux-wget-cheat-sheet
|
||||
[18]: https://opensource.com/how-submit-article
|
Loading…
Reference in New Issue
Block a user