mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-03-15 01:50:08 +08:00
commit
bdd574da95
@ -0,0 +1,72 @@
|
||||
[#]: subject: (Explore the Kubernetes ecosystem in 2021)
|
||||
[#]: via: (https://opensource.com/article/21/6/kubernetes-ebook)
|
||||
[#]: author: (Chris Collins https://opensource.com/users/clcollins)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-13506-1.html)
|
||||
|
||||
探索 Kubernetes 生态系统(2021 版)
|
||||
======
|
||||
|
||||
> 这份可下载的指南充满了有用的教程,让 SRE 和系统管理员使用 Kubernetes 获得便利。
|
||||
|
||||

|
||||
|
||||
Kubernetes 是容器编排的事实标准,在基础设施管理和应用开发方面已经迅速发展成为容器环境的主导。作为一个拥有庞大的爱好者和专业人士社区的开源平台,以及作为云原生计算基金会的一部分,Kubernetes 不仅成为一个强大而令人印象深刻的编排系统本身,而且它还促进了一个庞大的相关工具和服务的生态系统,使其更容易使用,并通过更强大和复杂的组件扩展其功能。
|
||||
|
||||
在这本新的电子书《[给 SRE 和系统管理员的 Kubernetes 指导][2]》中,[Jess Cherry][3](Ben Finkel 也有贡献)涵盖了一系列用于管理和整合 Kubernetes 的工具和服务。Cherry 和 Finkel 提供了一些有用的 _入门_ 指南,包括 Kubernetes 和一些工具。他们甚至还分享了面试问题,以帮助读者为在这个快速增长的大规模生态系统中工作做好准备。
|
||||
|
||||
### 了解 Kubernetes
|
||||
|
||||
如果你刚开始接触 Kubernetes 和容器,Ben Finkel 的 《[Kubernetes 入门][4]》文如其题,也是一篇对你需要了解的相关概念的出色介绍。它也是一本轻量级的快速入门指南,用于设置和使用单节点集群进行测试。没有什么比亲身体验技术并直接进入学习更好的方法了。什么是<ruby>吊舱<rt>Pod</rt></ruby>? 如何在集群上部署一个应用程序? Ben 一一为你做了介绍。
|
||||
|
||||
与集群交互的主要方式是 [kubectl][5] 命令,这是一种 CLI 工具,它提供了一种与管理集群本身的 API 服务器交互的适合方式。例如,你可以使用 `kubectl get` 来列出上述的吊舱和部署,但正如你对 Kubernetes 这样复杂的东西所期望的那样,它的 CLI 界面有很强的功能和灵活性。Jess Cherry 的《[9 个系统管理员需要知道的 kubectl 命令][6]》速查表是一个很好的介绍,是使用 `kubectl` 的入门好方法。
|
||||
|
||||
同样,Cherry 的《[给初学者的 Kubernetes 命令空间][7]》也很好地解释了什么是命名空间以及它们在 Kubernetes 中的使用方式。
|
||||
|
||||
### 简化 Kubernetes 的工作
|
||||
|
||||
在一个复杂的系统中工作是很困难的,尤其是使用像 `kubectl` 这样强大而极简的 CLI 工具。幸运的是,在围绕 Kubernetes 的生态系统中,有许多工具可用于简化事情,使扩展服务和集群管理更容易。
|
||||
|
||||
可用于在 Kubernetes 上部署和维护应用和服务的 `kubectl` 命令主要使用的是 YAML 和 JSON。然而,一旦你开始管理更多应用,用 YAML 的大型仓库这样做会变得既重复又乏味。一个好的解决方案是采用一个模板化的系统来处理你的部署。[Helm][8] 就是这样一个工具,被称为 “Kubernetes 的包管理器”,Helm 提供了一种方便的方式来打包和共享应用。Cherry 写了很多关于 Helm 的有用文章:创建有效的 《[Helm 海图][9]》和有用的《[Helm 命令][10]》。
|
||||
|
||||
`kubectl` 也为你提供了很多关于集群本身的信息:上面运行的是什么,以及正在发生的事件。这些信息可以通过 `kubectl` 来查看和交互,但有时有一个更直观的 GUI 来进行交互是有帮助的。[K9s][11] 符合这两个世界的要求。虽然它仍然是一个终端应用,但它提供了视觉反馈和一种与集群交互的方式,而不需要长长的 `kubectl` 命令。Cherry 也写了一份很好的《[k9s 使用入门][12]》的指南。
|
||||
|
||||
### 建立在 Kubernetes 的强大和灵活性之上的扩展
|
||||
|
||||
幸运的是,尽管 Kubernetes 是复杂而强大的,但它惊人的灵活并且开源。它专注于其核心优势:容器编排,并允许围绕它的爱好者和专业人士的社区扩展其能力,以承担不同类型的工作负载。其中一个例子是 [Knative][13],在 Kubernetes 之上提供组件,它为无服务器和事件驱动的服务提供工具,并利用 Kubernetes 的编排能力在容器中运行最小化的微服务。事实证明,这样做非常高效,既能提供在容器中开发小型、易于测试和维护的应用的好处,又能提供仅在需要时运行这些应用的成本优势,可以在特定事件中被触发,但在其他时候处于休眠。
|
||||
|
||||
在这本电子书中,Cherry 介绍了 Knative 和它的事件系统,以及为什么值得自己研究使用 Knative。
|
||||
|
||||
### 有一个完整的世界可以探索
|
||||
|
||||
通过 Jess Cherry 和 Ben Finkel 的这本新的[电子书][2],可以开始了解 Kubernetes 和围绕它的生态系统。除了上述主题外,还有一些关于有用的 Kubernetes 扩展和第三方工具的文章。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/kubernetes-ebook
|
||||
|
||||
作者:[Chris Collins][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/clcollins
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_wheel_gear_devops_kubernetes.png?itok=xm4a74Kv (A ship wheel with someone steering)
|
||||
[2]: https://opensource.com/downloads/kubernetes-sysadmin
|
||||
[3]: https://opensource.com/users/cherrybomb
|
||||
[4]: https://opensource.com/article/17/11/getting-started-kubernetes
|
||||
[5]: https://kubernetes.io/docs/reference/kubectl/kubectl/
|
||||
[6]: https://opensource.com/article/20/5/kubectl-cheat-sheet
|
||||
[7]: https://opensource.com/article/19/12/kubernetes-namespaces
|
||||
[8]: https://helm.sh/
|
||||
[9]: https://opensource.com/article/20/5/helm-charts
|
||||
[10]: https://opensource.com/article/20/2/kubectl-helm-commands
|
||||
[11]: https://k9scli.io/
|
||||
[12]: https://opensource.com/article/20/5/kubernetes-administration
|
||||
[13]: https://cloud.google.com/knative/
|
@ -3,79 +3,79 @@
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-13510-1.html)
|
||||
|
||||
Subtitld: 一个跨平台的开源字幕编辑器
|
||||
======
|
||||
|
||||
字幕使观看视频的体验更加完美。你不需要一定理解视频的语言,字幕可以帮助你用你喜欢的文字来弄清楚正在发生什么。
|
||||

|
||||
|
||||
你在流媒体平台上获得了大部分内容的字幕,你可能需要为一些你在本地收藏的视频添加字幕。
|
||||
字幕可以使观看视频的体验更加完美。你不需要一定理解视频的语言,字幕可以帮助你用你喜欢的文字来弄清楚正在发生什么。
|
||||
|
||||
你在流媒体平台上找到的大部分内容都有字幕,你可能需要为一些你在本地收藏的视频添加字幕。
|
||||
|
||||
虽然你可以通过简单地下载 SRT 文件并使用视频播放器加载它来做到这一点,但你如何编辑它,删除它,或转录一个视频?Subtitld 是一个开源的字幕编辑器,它可以帮助你。
|
||||
|
||||
### Subtitld: 创建、删除、切分和转录字幕
|
||||
|
||||
Subtitld 是一个免费的开源项目,让你充分利用你的字幕。
|
||||
Subtitld 是一个自由开源的项目,可以让你充分利用你的字幕。
|
||||
|
||||
![][1]
|
||||
|
||||
如果你没有字幕,就创建一个,如果你需要编辑它,就去吧。有了这个开源工具,你会有许多选项来处理字幕。
|
||||
如果你没有字幕,就创建一个,如果你需要编辑它,就用这个吧。有了这个开源工具,你会有许多选项来处理字幕。
|
||||
|
||||
换句话说,它是一个成熟的字幕编辑器,也是同类产品中的一个(就我所遇到的而言)。
|
||||
换句话说,它是字幕编辑器之一,也是一个成熟的字幕编辑器(就我所遇到的而言)。
|
||||
|
||||
在你决定试用它之前,让我强调一些关键功能。
|
||||
|
||||
### Subtitld 的特点
|
||||
### Subtitld 的功能
|
||||
|
||||
![][2]
|
||||
|
||||
它提供了大量的功能,虽然不是每个人都需要所有的功能,但如果你是一个经常创建、编辑和处理字幕的人,它应该会很方便。
|
||||
它提供了大量的功能,虽然不是每个人都需要所有的功能,但如果你是一个经常需要创建、编辑和处理字幕的人,它应该会很方便。
|
||||
|
||||
下面是它们的列表:
|
||||
下面是它的功能列表:
|
||||
|
||||
* 创建字幕
|
||||
* 编辑字幕
|
||||
* 使用时间轴移动字幕,手动同步
|
||||
* 放大/缩小功能,帮助处理拥挤的时间线
|
||||
* 支持保存为SRT文件格式
|
||||
* 支持保存为 SRT 文件格式
|
||||
* 支持各种其他格式的导入和导出(SSA、TTML、SBV、DFXP、VTT、XML、SCC 和 SAMI)
|
||||
* 易于调整大小或从时间轴上调整字幕的持续时间
|
||||
* 与其他字幕合并,或只是在项目中切分字幕
|
||||
* 易于调整字幕大小或从时间轴上调整字幕的持续时间
|
||||
* 与其他字幕合并,或从项目中切分字幕
|
||||
* 能够启用网格,按帧、场景或秒进行可视化
|
||||
* 在编辑器中回放以检查字幕情况
|
||||
* 在时间轴上捕捉字幕以避免重叠
|
||||
* 在字幕中添加/删除
|
||||
* 启用安全间隙,以确保字幕不会看起来不妥当
|
||||
* 启用安全边界,以确保字幕不会看起来不妥当
|
||||
* 调整播放速度
|
||||
* 可用的键盘快捷键
|
||||
* 键盘快捷键
|
||||
* 自动转录
|
||||
* 输出刻录了字幕的视频
|
||||
* 输出加入了字幕的视频
|
||||
* 无限次撤消
|
||||
|
||||
|
||||
|
||||
除了这些功能外,音频波形的视觉线索也有一定的帮助。
|
||||
除了这些功能外,音频波形的视觉提示也有一定的帮助。
|
||||
|
||||
![][3]
|
||||
|
||||
总的来说,如果你是一个转录视频的人,想一次性地编辑视频,你可以做很多事情也可以专业地使用它,
|
||||
总的来说,如果你是一个转录视频的人,想一次性地编辑视频,你可以用它做很多事情,也可以专业地使用它。
|
||||
|
||||
### 在 Linux 中安装 Subtitld
|
||||
|
||||
虽然它也适用于 Windows,但你可以使用 [snap 包][6]轻松地在 Linux 上安装它。你不会发现有任何二进制包或 Flatpak 可用,但你应该能够在任何 Linux 发行版上[使用 snap][7] 安装它。
|
||||
虽然它也适用于 Windows,但你可以在 Linux 上使用 [snap 包][6] 轻松地安装它。你不会找到二进制包或 Flatpak,但你应该能够在任何 Linux 发行版上 [使用 snap][7] 安装它。
|
||||
|
||||
[Subtitld][8]
|
||||
- [Subtitld][8]
|
||||
|
||||
如果你想探索,你可以在 [GitLab][9] 上找到源代码。
|
||||
如果你想深入探索,你可以在 [GitLab][9] 上找到源代码。
|
||||
|
||||
### 结尾的想法
|
||||
### 总结
|
||||
|
||||
它有视频同步或添加字幕的精细设置,我只是测试了一些导入、导出、添加或删除字幕的基本功能。
|
||||
|
||||
自动转录功能仍处于测试阶段(截至发布时),但用户界面可以有一些改进。例如,当我把鼠标悬停在编辑器内的按钮上时,它没有告诉我它是做什么的。
|
||||
自动转录功能仍处于测试阶段(截至发布时),但用户界面可以再做一些改进。例如,当我把鼠标悬停在编辑器内的按钮上时,它没有告诉我它是做什么的。
|
||||
|
||||
总的来说,它是一个在 Linux 上的有用工具。你对它有什么看法?请不要犹豫,在下面的评论中让我知道你的想法。
|
||||
|
||||
@ -86,7 +86,7 @@ via: https://itsfoss.com/subtitld/
|
||||
作者:[Ankush Das][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,14 +3,14 @@
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-13507-1.html)
|
||||
|
||||
有了 Deskreen,你可以将你的 Linux 屏幕镜像或串流到任何设备上
|
||||
用 Deskreen 将你的 Linux 屏幕镜像或串流到任何设备上
|
||||
======
|
||||
|
||||
外面的屏幕共享或屏幕镜像应用并不那么好。尽管大多数选项仅适用于 Windows/Mac,但你可能很难找到一个适用于 Linux 的开源解决方案。
|
||||
其它平台上的屏幕共享或屏幕镜像应用并不那么好。尽管大多数选项仅适用于 Windows/Mac,而你可能很难找到一个适用于 Linux 的开源解决方案。
|
||||
|
||||
有了这个应用,你可以与连接到网络的任何设备共享你的屏幕。
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
|
||||
![我把我的 Linux Mint 桌面镜像到我的 Android 手机上][1]
|
||||
|
||||
[Deskreen][2] 是一个免费开源的应用,可以让你使用任何带有网络浏览器的设备来作为电脑的副屏。
|
||||
[Deskreen][2] 是一个自由开源的应用,可以让你使用任何带有 Web 浏览器的设备来作为电脑的副屏。
|
||||
|
||||
如果你愿意,它还支持多个设备连接。
|
||||
|
||||
@ -41,20 +41,17 @@ Deskreen 的功能包括以下要点:
|
||||
* 最小的系统要求
|
||||
* 黑暗模式
|
||||
|
||||
|
||||
|
||||
这里没有一个冗长的功能列表,但对大多数用户来说应该是足够的。
|
||||
没有一个冗长的功能列表,但对大多数用户来说应该是足够的。
|
||||
|
||||
### 如何使用 Deskreen 应用?
|
||||
|
||||
Deskreen 使用分为三个简单的步骤,让我为你强调一下,以便你开始使用:
|
||||
|
||||
首先,当你启动该应用时,它会显示一个二维码和一个 IP 地址,以帮助你用网络浏览器连接其他设备,以串流你的屏幕。
|
||||
|
||||
首先,当你启动该应用时,它会显示一个二维码和一个 IP 地址,以帮助你用 Web 浏览器连接其他设备,以串流你的屏幕。
|
||||
|
||||
![][4]
|
||||
|
||||
你可以去做任何你喜欢的事情,在你的辅助设备上的网络浏览器的帮助下建立连接。
|
||||
你可以按你喜欢的方式,在你的辅助设备上的 Web 浏览器的帮助下建立连接。
|
||||
|
||||
当你扫描二维码或在浏览器的地址栏中输入 IP 地址,你会在 Deskreen 应用上得到一个提示,允许或拒绝连接。除非是你不认识它,否则就允许吧。
|
||||
|
||||
@ -66,11 +63,11 @@ Deskreen 使用分为三个简单的步骤,让我为你强调一下,以便
|
||||
|
||||
你可以选择串流整个屏幕或选择你想串流的窗口。然而,并不是每个应用窗口都能被检测到。
|
||||
|
||||
在我的快速测试中,我没有得到 Rocket.Chat 应用窗口,但它似乎也能检测到 Slack 窗口、Deskscreen 窗口和终端。
|
||||
在我的快速测试中,我没有检测到 Rocket.Chat 应用窗口,但它似乎能检测到 Slack 窗口、Deskscreen 窗口和终端。
|
||||
|
||||
![][7]
|
||||
|
||||
你只需要选择源并确认,就可以了。你应该注意到它在你的副屏(手机/桌面)上串流。
|
||||
你只需要选择源并确认,就可以了。你应该注意到它在你的副屏(手机/桌面)上开始串流。
|
||||
|
||||
![][8]
|
||||
|
||||
@ -82,11 +79,11 @@ Deskreen 还为你提供了管理连接设备的能力。因此,如果你需
|
||||
|
||||
### 在 Linux 中安装 Deskreen
|
||||
|
||||
你会得到一个用于 Linux 机器的 DEB 包和 AppImage 文件。如果你不知道,可以通过我们的[安装 DEB 包][10]和[使用 AppImage 文件][11]指南来安装它。
|
||||
你会找到一个用于 Linux 机器的 DEB 包和 AppImage 文件。如果你不知道,可以通过我们的 [安装 DEB 包][10] 和 [使用 AppImage 文件][11] 指南来安装它。
|
||||
|
||||
你可以从[官方网站][2]下载它,或者从它的 [GitHub 页面][12]探索更多的信息。
|
||||
你可以从 [官方网站][2] 下载它,或者从它的 [GitHub 页面][12]探索更多的信息。
|
||||
|
||||
[Deskreen][2]
|
||||
- [Deskreen][2]
|
||||
|
||||
### 结束语
|
||||
|
||||
@ -94,7 +91,7 @@ Deskreen 还为你提供了管理连接设备的能力。因此,如果你需
|
||||
|
||||
当然,它不能取代你的电脑的第二个显示器的优势,但在一些使用情况下,你可能不需要第二个屏幕。
|
||||
|
||||
现在,我想问你一些事情。你能想到哪些实际应用可以用到 Deskreen?
|
||||
现在,我想问你,你能想到哪些实际应用可以用到 Deskreen?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -103,7 +100,7 @@ via: https://itsfoss.com/deskreen/
|
||||
作者:[Ankush Das][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/) 荣誉推出
|
||||
|
@ -1,87 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (littlebirdnest)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (FCC auctions should be a long-term boost for 5G availability)
|
||||
[#]: via: (https://www.networkworld.com/article/3584072/fcc-auctions-should-be-a-long-term-boost-for-5g-availability.html)
|
||||
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
|
||||
FCC auctions should be a long-term boost for 5G availability
|
||||
======
|
||||
Federal Communications Commission policymaking targets creation of new services by making more spectrum available
|
||||
[FCC][1]
|
||||
|
||||
As the march towards 5G progresses, it’s apparent that more spectrum will be needed to fully enable it as a service, and the Federal Communications Commission has clearly taken the message to heart.
|
||||
|
||||
### 5G resources
|
||||
|
||||
* [What is 5G? Fast wireless technology for enterprises and phones][2]
|
||||
* [How 5G frequency affects range and speed][3]
|
||||
* [Private 5G can solve some problems that Wi-Fi can’t][4]
|
||||
* [Private 5G keeps Whirlpool driverless vehicles rolling][5]
|
||||
* [5G can make for cost-effective private backhaul][6]
|
||||
* [CBRS can bring private 5G to enterprises][7]
|
||||
|
||||
|
||||
|
||||
The FCC recently finished [auctioning off priority-access licenses for Citizen’s Broadband Radio Service (CBRS)][8] spectrum for 5G, representing 70MHz swath of new bandwidth within the 3.5GHz band. It took in $4.58 billion and is one of several such auctions in recent years aimed at freeing up more channels for wireless data. In 2011, 2014 and 2015 the FCC auctioned off 65MHz in the low- to mid-band, between roughly 1.7GHz and 2.2GHz, for example, and the 700MHz band.
|
||||
|
||||
But the operative part of the spectrum now is the sub-6GHz or mid-band spectrum, in the same area as that sold off in the [CBRS][9] auction. A forthcoming C-Band auction will be the big one, according to experts, with a whopping 280MHz of spectrum on the table.
|
||||
|
||||
“The big money’s coming with the C-band auction,” said Jason Leigh, a research manager with IDC. “Mid-band spectrum in the U.S. is scarce— that’s why you’re seeing this great urgency.”
|
||||
|
||||
[[Get regularly scheduled insights by signing up for Network World newsletters.]][10]
|
||||
|
||||
While the major mobile-data providers are still expected to snap up the lion’s share of the available licenses in that auction, some of the most innovative uses of the spectrum will be implemented by the enterprise, which will compete against the carriers for some of the available frequencies.
|
||||
|
||||
Specialist networks for [IoT][11], asset tracking and other private networking applications are already possible via private LTE, but the maturation of 5G substantially broadens their scope, thanks to that technology’s advanced spectrum sharing, low-latency and multi-connectivity features. That, broadly, means a lot of new wire-replacement applications, including industrial automation, facilities management and more.
|
||||
|
||||
## Reallocating spectrum means negotiation
|
||||
|
||||
It hasn’t been a simple matter to shift America’s spectrum priorities around, and few would know that better than former FCC chair Tom Wheeler. Much of the spectrum that the government has been pushing to reallocate to mobile broadband over the past decade was already licensed out to various stakeholders, frequently government agencies and satellite network operators.
|
||||
|
||||
Those stakeholders have to be moved to different parts of the spectrum, often compensated at taxpayer expense, and getting the various players to share and share alike has frequently been a complicated process, Wheeler said.
|
||||
|
||||
“One of the challenges the FCC faces is that the allocation of spectrum was first made from analog assumptions that have been rewritten as a result of digital technology,” he pointed out, citing the transition from analog to digital TV as an example. Where an analog TV signal took up 6MHz of spectrum and required guard bands on either side to avoid interference, four or five digital signals can be fit into that one channel.
|
||||
|
||||
Those assumptions have proved challenging to confront. Incumbents have publicly protested the FCC’s moves in the mid-band, arguing that insufficient precautions have been taken to avoid interference with existing services, and that changing frequency assignments often means they have to buy new equipment.
|
||||
|
||||
“I went through it with the [Department of Defense], with the satellite companies, and the fact of the matter is that one of the big regulatory challenges is that nobody wants to give up the nice secure position that they have based on analog assumptions,” said Wheeler. “I think you also have to pay serious consideration, but I found that claims of interference were the first refuge of people who didn’t like the threat of competition or anything else.”
|
||||
|
||||
## The future: more services
|
||||
|
||||
The broader point of the opening of the mid-band to carrier and enterprise use will be potentially major advantages for U.S. businesses, regardless of the exact manner in which that spectrum is opened, according to Leigh. While the U.S. is sticking to the auction format for allocating wireless spectrum, other countries, like Germany, have set aside mid-band spectrum specifically for enterprise use.
|
||||
|
||||
For a given company trying to roll its own private 5G network, that could push spectrum auction prices higher. But, ultimately, the services are going to be available, whether they’re provisioned in-house or sold by a mobile carrier or vendor, as long as there’s enough spectrum available to them.
|
||||
|
||||
“The things you can do on the enterprise side for 5G are what’s going to drive the really futuristic stuff,” he said.
|
||||
|
||||
Join the Network World communities on [Facebook][12] and [LinkedIn][13] to comment on topics that are top of mind.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3584072/fcc-auctions-should-be-a-long-term-boost-for-5g-availability.html
|
||||
|
||||
作者:[Jon Gold][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://www.networkworld.com/author/Jon-Gold/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.flickr.com/photos/fccdotgov/4808818548/
|
||||
[2]: https://www.networkworld.com/article/3203489/what-is-5g-fast-wireless-technology-for-enterprises-and-phones.html
|
||||
[3]: https://www.networkworld.com/article/3568253/how-5g-frequency-affects-range-and-speed.html
|
||||
[4]: https://www.networkworld.com/article/3568614/private-5g-can-solve-some-enterprise-problems-that-wi-fi-can-t.html
|
||||
[5]: https://www.networkworld.com/article/3488799/private-5g-keeps-whirlpool-driverless-vehicles-rolling.html
|
||||
[6]: https://www.networkworld.com/article/3570724/5g-can-make-for-cost-effective-private-backhaul.html
|
||||
[7]: https://www.networkworld.com/article/3529291/cbrs-wireless-can-bring-private-5g-to-enterprises.html
|
||||
[8]: https://www.networkworld.com/article/3572564/cbrs-wireless-yields-45b-for-licenses-to-support-5g.html
|
||||
[9]: https://www.networkworld.com/article/3180615/faq-what-in-the-wireless-world-is-cbrs.html
|
||||
[10]: https://www.networkworld.com/newsletters/signup.html
|
||||
[11]: https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html
|
||||
[12]: https://www.facebook.com/NetworkWorld/
|
||||
[13]: https://www.linkedin.com/company/network-world
|
84
sources/talk/20210621 Jim Hall- How Do You Fedora.md
Normal file
84
sources/talk/20210621 Jim Hall- How Do You Fedora.md
Normal file
@ -0,0 +1,84 @@
|
||||
[#]: subject: (Jim Hall: How Do You Fedora?)
|
||||
[#]: via: (https://fedoramagazine.org/jim-hall-how-do-you-fedora/)
|
||||
[#]: author: (Karimi Hari Priya https://fedoramagazine.org/author/haripriya21/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Jim Hall: How Do You Fedora?
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
We recently interviewed Jim Hall on how he uses Fedora. This is part of a [series][2] on the Fedora Magazine. The series profiles Fedora users and how they use Fedora to get things done. Contact us on the [feedback form][3] if you are interested in being interviewed for a further installment of this series.
|
||||
|
||||
## **Who is Jim Hall?**
|
||||
|
||||
Jim Hall served as Chief Information Officer in higher education and government for over eight years and has recently started the consulting company [Hallmentum][4]. Most of his work includes training, workshops, and coaching to help new IT leaders develop leadership skills, also to help current IT leaders get better at leadership. Apart from consulting, Jim also serves as adjunct faculty at the university level, currently teaching courses in Management Information Systems (MIS) and Technical & Professional Writing.
|
||||
|
||||
How did Jim grow up? Jim’s childhood heroes were from TV and movies, including Batman and Han Solo. Jim’s long-time favorite go-to movie is Star Wars: A New Hope. Jim says, “I am a big Star Wars nerd.” Jim’s favorite meals are Italian. “I love Italian food! Probably my favorite Italian dish is chicken cacciatore.” Jim’s opinion is that Honesty, Creativity, Imagination, Curiosity, and Openness are the five greatest qualities someone can possess.
|
||||
|
||||
He loves writing, which is good because most of his day job is about writing. He spends a lot of time writing “how-to” articles for places like OpenSource.com, CloudSavvy IT, and Linux Magazine, and right now he is writing a book about C programming. Apart from writing, he also relaxes by playing video games. He owns a PlayStation 4 and can be found most Saturday afternoons in front of his TV playing a game.
|
||||
|
||||
## **Fedora Community**
|
||||
|
||||
Jim started using Linux in 1993. His first Linux distribution was Softlanding Linux System (SLS) 1.03, running Linux kernel 0.99 patch level 11. “I’ve been a full-time Linux user at home ever since”. Jim became more involved in Fedora after attending a Linux conference long ago in the Fedora Core days. Jim met Tom “Spot” Callaway there, and they got talking about Fedora. “Spot encouraged me to contribute another way: by finding bugs and reporting them. And that’s how I got involved in testing for all the Beta releases”.
|
||||
|
||||
What would Jim like to change in Fedora? He would like to see a countdown on the getfedora.org website, that tells when the new Beta release or new full release is due out as a change in Fedora Project. And Jim wishes that other people know how easy it is to use Fedora. ”The most challenging thing in contributing to open source is to figure out how to make their first contribution.” Jim adds, “I don’t know that I’m a ‘Fedora Project member’ like other developers would be. I’m just a user. But as someone who’s been involved in developing open-source software since 1993 or 1994, I try to be a helpful member of the community. So I take every opportunity to experiment with new Fedora releases, even the Beta releases, and let people know if I find problems.”
|
||||
|
||||
## **What hardware do you use?**
|
||||
|
||||
Jim is currently running a ThinkCentre M720 Tiny. It’s configured with 8th Generation Intel Core i3-8100T (3.10GHz, 6MB Cache), 32GB (16GB + 16GB) DDR4 2666MHz, Intel graphics, 256GB Solid State Drive PCIe-NVME Opal M.2, Intel 8265 802.11AC, and Bluetooth 4.2. His monitor is an Asus VE248H. “It all works great with Fedora!” says Jim.
|
||||
|
||||
He uses the Perixx Periboard-512 Ergonomic Classic Split Keyboard which replaced his original Microsoft Natural Keyboard Elite PS/2 keyboard from 1998. Jim says “I sometimes swap out the Perixx keyboard for my USB clone of the original IBM Model M keyboard, from Unicomp. I do love the clicky keyboard with the buckling spring action. And mine is in the ‘putty white’ color so it has that classic look and feel.”
|
||||
|
||||
## **What software do you use?**
|
||||
|
||||
Jim is currently running Fedora 33 and previously Fedora 33 Beta, and Fedora 32. “I use GNOME 3 as my desktop. I find the defaults suit most of my needs, so I don’t have any GNOME Extensions loaded, but I do adjust a few things using Settings and GNOME Tweaks. So I’m not making any big changes. For example, I changed my default user interface font to use Droid Sans Regular. And I used Settings to change the keyboard shortcut so Alt-Tab switches windows instead of switching applications. I grew up with the Alt-Tab workflow, so I’m used to that,” says Jim. He uses Firefox and Google Chrome as his web browsers.
|
||||
|
||||
To run his consultancy business, Jim relies on a suite of applications:
|
||||
|
||||
* [LibreOffice][5] to write his books. For example, he published [Coaching Buttons][6] last year. He wrote this book entirely using LibreOffice. More recently, he wrote a book about [Writing Free DOS Programs in C][7] and used LibreOffice for that too.
|
||||
* [INKSCAPE][8] for creating his company logo in vector format. His logo scales up and down perfectly—from a small corner image on a document to a large-format poster or banner. And INKSCAPE lets him export to a variety of common formats. Jim says that his advertising partners appreciate that INKSCAPE can export to EPS (Encapsulated Postscript), which makes it a snap to print his logo on products.
|
||||
* [GIMP][9] for other graphics, such as a splash image. “My splash image is my company logo placed over a background image, and I use that in place of a plain logo where I need extra pizzazz, such as on printed materials. I also use a version of the splash image on my website.”
|
||||
* [QEMU][10] to run a virtual machine where he can boot [FreeDOS][11]. “I like using QEMU because I can set all the options I need at the command line, which gives me a lot of extra flexibility in configuring the virtual machine. To make this easier, I put all the options into a script, and use that to run QEMU with the same options every time.”
|
||||
* [Scribus][12] to print products. Scribus is easy to use to create print-ready materials with _full bleed_, meaning any color backgrounds overlap the edge of the paper. Full bleed requires a special print-ready file that overlaps the print area . It even provides cut marks so that the printer knows exactly where to trim.
|
||||
|
||||
|
||||
|
||||
![Scribus – Postcard][13]
|
||||
|
||||
![QEMU – running as easy as in FreeDOS][14]
|
||||
|
||||
![Libre Office Writer][15]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/jim-hall-how-do-you-fedora/
|
||||
|
||||
作者:[Karimi Hari Priya][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://fedoramagazine.org/author/haripriya21/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2020/12/PXL_20200929_205044670.PORTRAIT-01.COVER_-816x345.jpg
|
||||
[2]: https://fedoramagazine.org/tag/how-do-you-fedora
|
||||
[3]: https://fedoramagazine.org/submit-an-idea-or-tip
|
||||
[4]: https://hallmentum.com/
|
||||
[5]: https://www.libreoffice.org/
|
||||
[6]: https://www.amazon.com/Coaching-Buttons-Jim-Hall/dp/0359834930
|
||||
[7]: https://www.freedos.org/books/
|
||||
[8]: https://inkscape.org/
|
||||
[9]: https://www.gimp.org/
|
||||
[10]: https://www.qemu.org/
|
||||
[11]: https://www.freedos.org/
|
||||
[12]: https://www.scribus.net/
|
||||
[13]: https://fedoramagazine.org/wp-content/uploads/2021/03/Scribus-postcard-1024x576.png
|
||||
[14]: https://fedoramagazine.org/wp-content/uploads/2021/03/QEMU-running-AsEasyAs-in-FreeDOS.png
|
||||
[15]: https://fedoramagazine.org/wp-content/uploads/2021/03/LibreOffice-Writer-book-1-1024x576.png
|
@ -0,0 +1,82 @@
|
||||
[#]: subject: (Why transparency is critical to your open source project's security)
|
||||
[#]: via: (https://opensource.com/article/21/6/security-transparency)
|
||||
[#]: author: (Ana Jimenez Santamaria https://opensource.com/users/anajs)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Why transparency is critical to your open source project's security
|
||||
======
|
||||
A community's health and transparency are good measures of a project's
|
||||
security.
|
||||
![Lock][1]
|
||||
|
||||
The Biden Administration's recent [executive order on cybersecurity][2] aims to improve [security assurance][3] and the use of best practices. Transparency and project health are two factors that help to support security across the entire software industry—especially now.
|
||||
|
||||
### Software security is now open source software security
|
||||
|
||||
Because [92% of modern applications][4] contain open source components, improving software security generally means improving open source software security.
|
||||
|
||||
According to the Biden executive order:
|
||||
|
||||
> "The trust we place in our digital infrastructure should be proportional to how trustworthy and transparent that infrastructure is."
|
||||
|
||||
Transparency is a cornerstone of security assurance because it helps establish trust and confidence in the technology. Indeed, without transparency, trust and security evaporate. Therefore, one of the ways we can help improve security is by enhancing the transparency of our projects.
|
||||
|
||||
Transparency through open source can provide information about a project that allows users to assess its health in at least two ways:
|
||||
|
||||
* **Cross-community environments:** Cross-team and community collaboration are keys to meeting constantly evolving security, privacy, and safety standards. Security is a complex process involving multiple teams across a single organization and multiple organizations (i.e., cross-community), given its open source nature.
|
||||
* **Public disclosure:** Transparency also enables organizations to quickly build and issue public security reports to identify potential threats and vulnerabilities.
|
||||
|
||||
|
||||
|
||||
### How to measure transparency to achieve security assurance
|
||||
|
||||
Open source should be in the DNA of every modern organization that wants to achieve a high level of transparency. However, transparency involves more than simply allowing access to code, products, designs, services, or APIs. Transparency is a **commitment to total clarity**.
|
||||
|
||||
Open source has evolved into a complex ecosystem of projects and organizations with different kinds of relationships. [Open source program offices][5] (OSPOs) enable companies, public institutions, governments, and other organizations to keep tabs on the size and health of their open source ecosystems. They take care of not only the projects the organization is using but also the ones it's releasing or contributing to.
|
||||
|
||||
One of the ways to measure transparency across open source ecosystems is by assessing the answers to the following questions about a community's health:
|
||||
|
||||
* **How many maintainers are needed to keep the project sustainable?** The [Bus Factor][6] is a way to determine how many contributors a project can lose before it stalls. The metric (which hypothesizes what would happen if certain contributors got run over by a bus) calculates the smallest number of people who make 50% of contributions and visualizes the answer.
|
||||
* **Who are the core developers?** The [Onion Model][7] is an approach to identifying the most committed developers and the ones the project relies upon most.
|
||||
* **What organizations are involved in the software development process?** In addition to analyzing the number of companies whose employees make commits, issues, or code contributions, the [Elephant Factor][8] determines the minimum number of companies doing half of the work.
|
||||
* **Does the software have security certifications?** Possessing well-known security certifications, such as the [Core Infrastructure Initiative Best Practices Badge][9], indicates that open source projects follow best practices and meet required certification criteria.
|
||||
* **How active is the community?** There are various ways to assess whether a community is active. One way is to look at the community's reaction speed, including how fast issues are resolved vs. how many are ignored.
|
||||
|
||||
|
||||
|
||||
Most of these questions are part of the [CHAOSS metrics][10] definition. Community Health Analytics Open Source Software (CHAOSS) is a Linux Foundation project focused on creating a standard set of metrics and software to help define open source community health. Its GrimoireLab tool makes it [easier][11] for projects to analyze and report their community health metrics.
|
||||
|
||||
### Closing thoughts
|
||||
|
||||
Open source software [took over the world][12] a long time ago. The Biden administration's new executive order is another reason to take the open source ecosystem seriously, as both public entities and private companies rely upon it. But open source innovation has a unique methodology that doesn't follow traditional business processes. Using open source involves [investing in OSPOs][13] and measuring transparency by looking at a project's health based on its activity to achieve the required security assurance.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/security-transparency
|
||||
|
||||
作者:[Ana Jimenez Santamaria][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/anajs
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/security-lock-password.jpg?itok=KJMdkKum (Lock)
|
||||
[2]: https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/
|
||||
[3]: https://www.igi-global.com/dictionary/quantitative-security-assurance/70165
|
||||
[4]: https://blog.tidelift.com/open-source-is-everywhere-survey-results-part-1
|
||||
[5]: https://opensource.com/article/20/5/open-source-program-office
|
||||
[6]: https://chaoss.community/metric-bus-factor/
|
||||
[7]: https://chaoss.github.io/grimoirelab-sigils/common/onion_analysis/
|
||||
[8]: https://chaoss.community/metric-elephant-factor/
|
||||
[9]: https://chaoss.community/metric-cii-best-practices-badge/
|
||||
[10]: https://chaoss.community/metrics/
|
||||
[11]: https://opensource.com/article/21/6/health-metrics-cauldron
|
||||
[12]: https://techcrunch.com/2019/01/12/how-open-source-software-took-over-the-world/
|
||||
[13]: https://todogroup.org/guides/create-program/
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (baddate)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,145 +0,0 @@
|
||||
[#]: subject: (Build a static website with Eleventy)
|
||||
[#]: via: (https://opensource.com/article/21/6/static-site-builder)
|
||||
[#]: author: (Nwokocha Wisdom https://opensource.com/users/wise4rmgod)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Build a static website with Eleventy
|
||||
======
|
||||
Eleventy is a JavaScript-based alternative to Jekyll and Hugo for
|
||||
building static websites.
|
||||
![Digital images of a computer desktop][1]
|
||||
|
||||
A static site generator is a tool that generates a full, static HTML website based on raw data and a set of templates. It automates the task of coding individual HTML pages and gets those pages ready to serve to users. Because the HTML pages are prebuilt, they load very quickly in users' browsers.
|
||||
|
||||
Static sites work particularly well for documentation, too, because static sites are easy to scale, and they're an easy way to generate, maintain, and deploy your project's documentation. For these reasons, organizations often use them to document application programming interfaces (APIs), database schemas, and other information. Documentation is an important part of software development, design, and other aspects of tech. All codebases require some form of documentation, with options ranging from a simple README to full documentation.
|
||||
|
||||
### Eleventy: A static site generator
|
||||
|
||||
[Eleventy][2] (11ty) is a simple static site generator and an alternative to [Jekyll][3] and [Hugo][4]. It's written in JavaScript and transforms a directory of templates (of varying types) into HTML. It's also open source, released under the MIT License.
|
||||
|
||||
Eleventy works with HTML, Markdown, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, and JavaScript Template Literals.
|
||||
|
||||
Its features include:
|
||||
|
||||
* Easy setup
|
||||
* Supports multiple template languages (e.g., Nunjucks, HTML, JavaScript, Markdown, Liquid)
|
||||
* Customizable
|
||||
* Based on JavaScript, which is familiar to many web developers and easy for new users to learn
|
||||
|
||||
|
||||
|
||||
### Install Eleventy
|
||||
|
||||
Eleventy requires Node.js. On Linux, you can install Node.js using your package manager:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo dnf install nodejs`
|
||||
```
|
||||
|
||||
If your package manager doesn't have Node.js available, or if you're not on Linux, you can [install it][5] from the Node.js website.
|
||||
|
||||
Once Node.js is installed, use it to install Eleventy:
|
||||
|
||||
|
||||
```
|
||||
`$ npm install -g @11ty/eleventy`
|
||||
```
|
||||
|
||||
That's it!
|
||||
|
||||
### Build a static site for your documentation
|
||||
|
||||
Now you can start using Eleventy to build your static documentation site. Here are the steps to follow.
|
||||
|
||||
#### 1\. Create a package.json file
|
||||
|
||||
To install Eleventy into your project, you need a package.json file:
|
||||
|
||||
|
||||
```
|
||||
`$ npm init -y`
|
||||
```
|
||||
|
||||
#### 2\. Install Eleventy into package.json
|
||||
|
||||
Install and save Eleventy into your project's `package.json` by running:
|
||||
|
||||
|
||||
```
|
||||
`$ npm install-save-dev @11ty/eleventy`
|
||||
```
|
||||
|
||||
#### 3\. Run Eleventy
|
||||
|
||||
Use the `npx` command to run your local project's version of Eleventy. After you verify installation went as expected, try to run Eleventy:
|
||||
|
||||
|
||||
```
|
||||
`$ npx @11ty/eleventy`
|
||||
```
|
||||
|
||||
#### 4\. Create some templates
|
||||
|
||||
Now run two commands to create two new template files (an HTML and a Markdown file):
|
||||
|
||||
|
||||
```
|
||||
$ cat << EOF >> index.html
|
||||
<!doctype html><html>
|
||||
<head>
|
||||
<title>Page title</title>
|
||||
</head><body>
|
||||
<p>Hello world</p>
|
||||
</body></html>
|
||||
EOF
|
||||
$ echo '# Page header' > index.md
|
||||
```
|
||||
|
||||
This compiles any content templates in the current directory or subdirectories into the output folder (which defaults to `_site`).
|
||||
|
||||
Run `eleventy --serve` to start a development web server.
|
||||
|
||||
|
||||
```
|
||||
`$ npx @11ty/eleventy-serve`
|
||||
```
|
||||
|
||||
Open `http://localhost:8080/README/` in the web browser of your choice to see your Eleventy output.
|
||||
|
||||
Then upload the files in `_site` to your web server to publish your site for the world to see.
|
||||
|
||||
### Try Eleventy
|
||||
|
||||
Eleventy is a static site generator that's easy to use, template, and theme. If you're already using Node.js in your development workflow, Eleventy may be a more natural fit than Jekyll or Hugo. It provides great results quickly and saves you from complex site design and maintenance. To learn more about using Eleventy, read through its [documentation][6].
|
||||
|
||||
* * *
|
||||
|
||||
_This is based on [Building a technical documentation static site for open source projects][7], which first appeared on Nwokocha Wisdom Maduabuchi's Medium site, and is republished with permission._
|
||||
|
||||
See how Jekyll, an open source generator of static HTML files, makes running a blog as easy as...
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/static-site-builder
|
||||
|
||||
作者:[Nwokocha Wisdom][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/wise4rmgod
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_desk_home_laptop_browser.png?itok=Y3UVpY0l (Digital images of a computer desktop)
|
||||
[2]: https://www.11ty.dev/
|
||||
[3]: https://opensource.com/article/17/4/getting-started-jekyll
|
||||
[4]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo
|
||||
[5]: https://nodejs.org/en/
|
||||
[6]: https://www.11ty.dev/docs/getting-started/
|
||||
[7]: https://wise4rmgodadmob.medium.com/building-a-technical-documentation-static-site-for-open-source-projects-7af4e73d77f0
|
@ -1,84 +0,0 @@
|
||||
[#]: subject: (Try this new open source tool for data analytics)
|
||||
[#]: via: (https://opensource.com/article/21/6/cubejs)
|
||||
[#]: author: (Ray Paik https://opensource.com/users/rpaik)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Try this new open source tool for data analytics
|
||||
======
|
||||
Cube.js is an open source analytical platform that acts as a layer
|
||||
between data sources and applications.
|
||||
![metrics and data shown on a computer screen][1]
|
||||
|
||||
Data analytics is a trendy field with many solutions available. One of them is [Cube.js][2], an open source analytical platform. You can think of Cube.js as a layer between your data sources and applications.
|
||||
|
||||
As the diagram below shows, Cube.js supports serverless data warehouses and most modern relational database management systems (RDBMS). You can work with any JavaScript front-end library for data visualization, and Cube.js will take care of the rest, including access control, performance, concurrency, and more.
|
||||
|
||||
![Cube.js architecture][3]
|
||||
|
||||
(©2021, [Cube Dev, Inc.][2])
|
||||
|
||||
### Key benefits
|
||||
|
||||
When I ask our community members about Cube.js's key benefits, they frequently mention:
|
||||
|
||||
* **Its abstraction layer:** After configuring Cube.js, people say they no longer have to worry about performance optimization, resource management, SQL expertise, etc. Many refer to Cube.js as a "black box" because its abstraction layer helps them focus on understanding the data rather than the implementation details.
|
||||
* **Ease of customization:** Since Cube.js is visualization-agnostic, it's easy to integrate with front-end frameworks to build solutions that look like a user's own platform. Most commercial platforms (e.g., Looker, Tableau, etc.) require a lot more customization work to integrate with their infrastructure. Many users say that the ease of customization combined with the abstraction layer enables them to reduce development time for their data analytics platforms.
|
||||
* **Community support:** When getting started with Cube.js, people usually get help from fellow community members (especially on our [Slack][4]), and many mention community support as a key onboarding resource.
|
||||
|
||||
|
||||
|
||||
Visit the [user stories page][5] to read more about people's experience with Cube.js and how they use it.
|
||||
|
||||
### Get started
|
||||
|
||||
If you want to check out Cube.js:
|
||||
|
||||
* Go to our [Documentation page][6], click on **Getting started**, and follow the instructions to get Cube.js up and running on your laptop or workstation.
|
||||
* Once you get to the [developer playground][7], you will be able to generate the data schema, execute queries, and build dashboards to see Cube.js in action.
|
||||
|
||||
|
||||
|
||||
After you get Cube.js up and running, here are some helpful resources:
|
||||
|
||||
* [Documentation][6]: We put a lot of focus on our documentation because it is a critical resource for open source communities. We're also adding video clips to our documentation pages and the [getting started playlist][8] on our YouTube channel.
|
||||
* [Discourse][9]: The Cube.js forum is a recent addition where community members can share their use cases, tips & tricks, etc. so that we can build a community knowledge base.
|
||||
* [GitHub][10]: You'll find the Cube.js code here, and community members file bugs or feature requests via [issues][11]. We also publish our [quarterly roadmaps][12] on GitHub so that everyone can see what we're working on.
|
||||
* [Monthly community calls][13]: We have calls on the second Wednesday of each month to discuss community updates, showcase feature demos, and invite community members to share their use cases. You will find call logistics on the [community calls page][13], and you can find recordings of past calls on the [community calls playlist][14] on our YouTube channel.
|
||||
|
||||
|
||||
|
||||
As with any good open source project, Cube.js has many contributors to the software. If you want to look at pull requests (PRs) from the community, search for PRs with the label `pr:community`. If you are eager to look for issues that you can work on, search for issues with the labels `good first issue` or `help wanted`.
|
||||
|
||||
I hope you will give Cube.js a try. If you have any questions, please feel free to leave comments below or find me on the [Cube.js Slack][4]!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/cubejs
|
||||
|
||||
作者:[Ray Paik][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/rpaik
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
|
||||
[2]: https://cube.dev/
|
||||
[3]: https://opensource.com/sites/default/files/uploads/cubejs-architecture.png (Cube.js architecture)
|
||||
[4]: https://slack.cube.dev/
|
||||
[5]: https://cube.dev/blog/category/user-stories/
|
||||
[6]: https://cube.dev/docs/
|
||||
[7]: https://cube.dev/docs/dev-tools/dev-playground
|
||||
[8]: https://www.youtube.com/playlist?list=PLtdXl_QTQjpaXhVEefh7JCIdtYURoyWo9
|
||||
[9]: https://forum.cube.dev/
|
||||
[10]: https://github.com/cube-js/cube.js
|
||||
[11]: https://github.com/cube-js/cube.js/issues
|
||||
[12]: https://github.com/cube-js/cube.js/projects
|
||||
[13]: https://cube.dev/community-call/
|
||||
[14]: https://www.youtube.com/playlist?list=PLtdXl_QTQjpb1dHZCM09qKTsgvgqjSvc9
|
@ -2,7 +2,7 @@
|
||||
[#]: via: (https://opensource.com/article/21/6/migrate-vms-kubernetes-forklift)
|
||||
[#]: author: (Miguel Perez Colino https://opensource.com/users/mperezco)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -2,7 +2,7 @@
|
||||
[#]: via: (https://itsfoss.com/set-up-razer-devices-linux/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,230 +0,0 @@
|
||||
[#]: subject: (Systemd Timers for Scheduling Tasks)
|
||||
[#]: via: (https://fedoramagazine.org/systemd-timers-for-scheduling-tasks/)
|
||||
[#]: author: (Richard England https://fedoramagazine.org/author/rlengland/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (dcoliversun)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Systemd Timers for Scheduling Tasks
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
Systemd has provided timers for a while and it is worth taking a look at this feature as an alternative to _cron_. This article will show you how to use timers with _systemd_ to run a task after the system has booted and on a recurring basis after that. This is not a comprehensive discussion of _systemd_, only an introduction to this one feature.
|
||||
|
||||
### Cron vs anacron vs systemd: a quick review
|
||||
|
||||
_Cron_ can schedule a task to be run at a granularity ranging from minutes to months or more. It is relatively simple to set up, requiring a single configuration file. Although the configuration line is somewhat esoteric. It can also be used by general users.
|
||||
|
||||
_Cron_, however, fails if your system happens to not be running when the appropriate execution time occurs.
|
||||
|
||||
_Anacron_, overcomes the “system not running” issue. It insures that the task will be executed when your system is again active. While it was intended to be used by administrators, some systems give general users access.
|
||||
|
||||
However, the _anacron_ frequency of execution can be no less than daily.
|
||||
|
||||
Both _cron_ and _anacron_ have issues with consistency in execution context. Care must be taken that the environment in effect when the task runs is exactly that used when testing. The same shell, environment variables and paths must be provided. This means that testing and debugging can sometimes be difficult.
|
||||
|
||||
_Systemd_ timers offer the best of both _cron_ and _anacron_. Allows scheduling down to minute granularity. Assures that the task will be executed when the system is again running even if it was off during the expected execution time. Is available to all users. You can test and debug the execution in the environment it will run in.
|
||||
|
||||
However, the configuration is more involved, requiring at least two configuration files.
|
||||
|
||||
If your _cron_ and _anacron_ configuration is serving you well then there may not be a reason to change. But _systemd_ is at least worth investigating since it may simplify any current _cron_ /_anacron_ work-arounds.
|
||||
|
||||
### Configuration
|
||||
|
||||
_Systemd_ timer executed functions require, at a minimum, two files. These are the “timer unit” and the “service unit”. Actions consisting of more than a simple command, you will also need a “job” file or script to perform the necessary functions.
|
||||
|
||||
The timer unit file defines the schedule while the service unit file defines the task(s) performed. More details on the .timer unit is available in “man systemd.timer”. Details on the service unit are available in “man systemd.service”.
|
||||
|
||||
There are several locations where unit files exist (listed in the man page). Perhaps the easiest location for the general user, however, is “~/.config/systemd/user”. Note that “user” here, is the literal string “user”.
|
||||
|
||||
### Demo
|
||||
|
||||
This demo is a simple example creating a user scheduled job rather than a system schedule job (which would run as root). It prints a message, date, and time to a file.
|
||||
|
||||
1. Start by creating a shell script that will perform the task. Create this in your local “bin” directory, for example, in
|
||||
“~/bin/schedule-test.sh”
|
||||
|
||||
|
||||
|
||||
```
|
||||
To create the file:
|
||||
```
|
||||
|
||||
touch ~/bin/schedule-test.sh
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
Then add the following content to the file you just created.
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
echo "This is only a test: $(date)" >> "$HOME/schedule-test-output.txt"
|
||||
```
|
||||
|
||||
Remember to make your shell script executable.
|
||||
|
||||
2. Create the .service unit that will call the script above. Create the directory and file in:
|
||||
“~/.config/systemd/user/schedule-test.service”:
|
||||
|
||||
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=A job to test the systemd scheduler
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/home/<user>/bin/schedule-test.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
```
|
||||
|
||||
Note that <user> should be your @HOME address but the “user” in the path name for the unit file is literally the string “user”.
|
||||
|
||||
The _ExecStart_ line should provide an absolute address with no variables. An exception to this is that for _user_ units you may substitute “%h” for $HOME. In other words you can use:
|
||||
|
||||
```
|
||||
ExecStart=%h/bin/schedule-test.sh
|
||||
```
|
||||
|
||||
This is only for user unit file use. It is not good for system units since “%h” will always return “/root” when run in the system environment. Other substitutions are found in “man systemd.unit” under the heading “SPECIFIERS”. As it is outside the scope of this article, that’s all we need to know about SPECIFIERS for now.
|
||||
|
||||
3\. Create a .timer unit file which actually schedules the .service unit you just created. Create it in the same location as the .service file “~/.config/systemd/user/schedule-test.timer”. Note that the file names differ only in their extensions, that is ,”.service” versus “.timer”
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Schedule a message every 1 minute
|
||||
RefuseManualStart=no # Allow manual starts
|
||||
RefuseManualStop=no # Allow manual stops
|
||||
|
||||
[Timer]
|
||||
#Execute job if it missed a run due to machine being off
|
||||
Persistent=true
|
||||
#Run 120 seconds after boot for the first time
|
||||
OnBootSec=120
|
||||
#Run every 1 minute thereafter
|
||||
OnUnitActiveSec=60
|
||||
#File describing job to execute
|
||||
Unit=schedule-test.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
|
||||
Note that the .timer file has used “OnUnitActiveSec” to specify the schedule. Much more flexible is the “OnCalendar” option. For example:
|
||||
|
||||
```
|
||||
# run on the minute of every minute every hour of every day
|
||||
OnCalendar=*-*-* *:*:00
|
||||
# run on the hour of every hour of every day
|
||||
OnCalendar=*-*-* *:00:00
|
||||
# run every day
|
||||
OnCalendar=*-*-* 00:00:00
|
||||
# run 11:12:13 of the first or fifth day of any month of the year
|
||||
# 2012, but only if that day is a Thursday or Friday
|
||||
OnCalendar=Thu,Fri 2012-*-1,5 11:12:13
|
||||
```
|
||||
|
||||
More information on “OnCalendar” is available [here][2].
|
||||
|
||||
4\. All the pieces are in place but you should test to make certain everything works. First, enable the user service:
|
||||
|
||||
```
|
||||
$ systemctl --user enable schedule-test.service
|
||||
```
|
||||
|
||||
This should result in output similar to this:
|
||||
|
||||
```
|
||||
Created symlink /home/<user>/.config/systemd/user/default.target.wants/schedule-test.service → /home/<user>/.config/systemd/user/schedule-test.service.
|
||||
```
|
||||
|
||||
Now do a test run of the job:
|
||||
|
||||
```
|
||||
$ systemctl --user start schedule-test.service
|
||||
```
|
||||
|
||||
Check your output file ( $HOME/schedule-test-output.txt ) to insure that your script is
|
||||
performing correctly. There should be a single entry since we have not started the timer yet. Debug as necessary. Don’t forget to enable the service again if you needed to change your .service file as opposed to the shell script it invokes.
|
||||
|
||||
5\. Once the job works correctly, schedule it for real by enabling and starting the user timer for your service:
|
||||
|
||||
```
|
||||
$ systemctl --user enable schedule-test.timer
|
||||
$ systemctl --user start schedule-test.timer
|
||||
```
|
||||
|
||||
Note that you have already started and enabled the service in step 4, above, so it is only necessary to enable and start the timer for it.
|
||||
|
||||
The “enable” command will result in output similar to this:
|
||||
|
||||
```
|
||||
Created symlink /home/<user>/.config/systemd/user/timers.target.wants/schedule-test.timer → /home/<user>/.config/systemd/user/schedule-test.timer.
|
||||
```
|
||||
|
||||
and the “start” will simply return you to a CLI prompt.
|
||||
|
||||
### Other operations
|
||||
|
||||
You can check and monitor the service. The first command below is particularly useful if you receive an error from the service unit:
|
||||
|
||||
```
|
||||
$ systemctl --user status schedule-test
|
||||
$ systemctl --user list-unit-files
|
||||
```
|
||||
|
||||
Manually stop the service:
|
||||
|
||||
```
|
||||
$ systemctl --user stop schedule-test.service
|
||||
```
|
||||
|
||||
Permanently stop and disable the timer and the service, reload the daemon config and reset any failure notifications:
|
||||
|
||||
```
|
||||
$ systemctl --user stop schedule-test.timer
|
||||
$ systemctl --user disable schedule-test.timer
|
||||
$ systemctl --user stop schedule-test.service
|
||||
$ systemctl --user disable schedule-test.service
|
||||
$ systemctl --user daemon-reload
|
||||
$ systemctl --user reset-failed
|
||||
```
|
||||
|
||||
### Summary
|
||||
|
||||
This article will jump-start you with _systemd_ timers, however, there is much more to _systemd_ than covered here. This article should provide you with a foundation on which to build. You can explore more about it starting in the [Fedora Magazine systemd series][3] .
|
||||
|
||||
References – Further reading:
|
||||
|
||||
* man systemd.timer
|
||||
* man systemd.service
|
||||
* [Use systemd timers instead of cronjobs][4]
|
||||
* [Understanding and administering systemd][5]
|
||||
* Also, <https://opensource.com/> has a good systemd cheatsheet
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/systemd-timers-for-scheduling-tasks/
|
||||
|
||||
作者:[Richard England][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://fedoramagazine.org/author/rlengland/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2021/06/schedule_with_systemd_timer-816x345.jpg
|
||||
[2]: https://www.freedesktop.org/software/systemd/man/systemd.time.html#Calendar%20Events
|
||||
[3]: https://fedoramagazine.org/what-is-an-init-system/
|
||||
[4]: https://opensource.com/article/20/7/systemd-timers
|
||||
[5]: https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/
|
@ -0,0 +1,243 @@
|
||||
[#]: subject: (8 books open source technologists should read this summer)
|
||||
[#]: via: (https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list)
|
||||
[#]: author: (Joshua Allen Holm https://opensource.com/users/holmja)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
8 books open source technologists should read this summer
|
||||
======
|
||||
The 2021 Opensource.com summer reading list features eight recommended
|
||||
books for you to kick back, relax, and learn by reading.
|
||||
![Reading a book, selfcare][1]
|
||||
|
||||
Welcome to the 2021 Opensource.com summer reading list. This year's list contains eight wonderful book recommendations from members of the Opensource.com community. From classics like Frank Herbert's _Dune_ and a new translation of _Beowulf_ to non-fiction books about the history of tech industry culture, this list has books for readers with different tastes and interests.
|
||||
|
||||
Each recommendation provides valuable insight into why the person who recommended the book thinks it is worth reading. As always, the book selections and reviews shared by my peers are insightful and inspiring. I always learn so much from what they share, and I always enjoy seeing what new and interesting books I will invariably add to my "to read" list. I hope that you will also find something to add to your "to read" pile.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* * *
|
||||
|
||||
## [Beowulf: A New Translation][2]
|
||||
|
||||
[![Beowulf book cover][3]][2]
|
||||
|
||||
**by Maria Dahvana Headley** (recommendation written by [Kevin Sonney][4])
|
||||
|
||||
From the first line, you know this isn't the same "Beowulf" you slogged through in grade school.
|
||||
|
||||
> Bro! Tell me we still know how to speak of kings!
|
||||
|
||||
Before I fell into the IT field, I was an English major with a deep, abiding love of _Beowulf_. It can be difficult to read, and (at least here in the United States) it is required reading in high school, but many people remember it as a boring read where the language and structure get in the way of the story. In this translation, Headley puts the story first while maintaining a modern translation that is accurate in structure and meaning with the original text. From the opening "Bro!" to the occasional (and appropriate!) vulgarity, to the description of the "Hashtag: Blessed" Queen, readers will find themselves hanging on every line to find out what happens next. Headley's translation, more than any other, is also a joy to read out loud, just as it was for the bards who told it in the mead halls and longhouses of long ago.
|
||||
|
||||
This is a well-researched, well-written, and most importantly, engaging translation of one of the most important historical works of English literature. Headley makes _Beowulf_ FUN to read, and the reader gets immersed in the story, just like the listeners did over their drinks and meals long ago.
|
||||
|
||||
## [Competing on Internet Time: Lessons From Netscape and Its Battle With Microsoft][5]
|
||||
|
||||
[![Competing on Internet Time book cover][6]][5]
|
||||
|
||||
**by Michael A. Cusumano and David B. Yoffie** (recommendation written by [Gaurav Kamathe][7])
|
||||
|
||||
If you are reading this right now, chances are you are using a web browser. In fact, if you use a computer today in any form, can you imagine computing without a web browser? We spend the majority of time in it today—doing work, connecting with friends, surfing the web, watching movies, playing music, finding directions, ordering food, etc. Sure, apps have replaced some of these functions on mobile devices; however, the browser has in many ways become the operating system when it comes to the internet and the web.
|
||||
|
||||
There was a time when the web was taking root, and browsers were not mainstream. Few people could have imagined the potential of the web and the impact it would have on humankind. The browser is what made the web truly accessible to everybody, beyond just the technically savvy. If you are curious about what went into developing this exciting technology, the company that created it, and the battles it had to fight along the way against a mighty adversary, well, then keep reading.
|
||||
|
||||
_Competing on Internet Time_ traces events between the years 1994 and 1998. It mostly revolves around two companies: Netscape (today known as Mozilla), then a new, up and coming startup with a radical new product (the web browser) that came out of nowhere and grew rapidly to capture 90% of the browser market, and Microsoft, a well-known giant (even then) known for its dominance in the operating system market. The authors interviewed many key figures at both companies and provided their analysis of the events that transpired. This book is an interesting read from both a technology and a business standpoint. It goes in-depth on business strategy, decision-making, the benefits of speed, technology choice, and, more importantly, the culture of these two diverse organizations.
|
||||
|
||||
One key takeaway from the book is how Netscape truly embraced and utilized the internet as a competitive advantage at a time when other companies, including Microsoft, had ignored it for too long. Another takeaway is that Netscape, being the smaller of the two, had the advantage of flexibility, allowing it to introduce new products rapidly. A third lesson is how Microsoft fully utilized its operating system-market monopoly to beat Netscape at its browser game. Netscape tried to counter this by becoming a champion of cross-platform technology and introducing and pushing open standards to keep Microsoft on its back foot. In the face of stiff competition, Netscape turned its business strategy and went from being just a browser company and made forays into intranet, extranet, and enterprise software markets, ultimately losing this battle. All of this and more happened in a span of just four (internet) years.
|
||||
|
||||
## [Dune][8]
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
**[![Dune book cover][9]][8]**
|
||||
|
||||
* * *
|
||||
|
||||
**by Frank Herbert** (recommendation written by [Matthew Broberg][10])
|
||||
|
||||
My first review of _Dune_ was that it was an inventive, solid read. That was [not received well][11] by friends on Twitter. On reflection, I don't think that assessment does it justice. _Dune_ is an exceptionally influential piece of art from the mid-1960s that interweaves futuristic cultures, empires, and religions. It also plays with timelines. Every chapter weaves the future in as the present unfolds. The layers of foreshadowing while the world of Arrakis comes into focus are a joy to read.
|
||||
|
||||
I have since finished the second book in the series and plan to go on to the third. This world is massive, thoughtful, and feels as modern as it is timeless.
|
||||
|
||||
## [Hacking Diversity: The Politics of Inclusion in Open Technology Cultures][12]
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
**[![Hacking Diversity book cover][13]][12]**
|
||||
|
||||
* * *
|
||||
|
||||
**by Christina Dunbar-Hester** (recommendation written by [Bryan Behrenshausen][14])
|
||||
|
||||
What motivates this critical anthropology of open source technology communities isn't the question: _Why aren't open source communities more diverse?_ or even _How do we involve more underrepresented minorities in open source?_ Instead, Dunbar-Hester seeks answers to a more complex question: _How do the ways open source communities discuss diversity and inclusion inadvertently constrain their ability to make these communities more inclusive and diverse?_
|
||||
|
||||
By embedding herself inside various open technology communities—visiting their makerspaces, attending their meetups, listening at their conferences—Dunbar-Hester offers numerous insights that help readers understand how well-meaning and good-faith diversity, equity, and inclusion initiatives might produce results antithetical to their own aspirations. If you're at all interested in making open source communities more welcoming and inclusive, you'll want to read this book.
|
||||
|
||||
## [Letters to a New Developer: What I Wish I Had Known When Starting My Development Career][15]
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
**[![Letters to a New Developer book cover][16]][15]**
|
||||
|
||||
* * *
|
||||
|
||||
**by Dan Moore** (recommendation written by [Joshua Allen Holm][17])
|
||||
|
||||
If you found yourself entering (or re-entering) the job market during the last year, you found that much of the traditional mentoring structure for starting a new job was seriously disrupted. It is harder to get solid career advice when meetups and meetings are virtual, so, as an alternative, I suggest reading _Letters to a New Developer: What I Wish I Had Known When Starting My Development Career._
|
||||
|
||||
The book is divided into 10 chapters, covering Your First Month, Questions, Writing, Tools to Learn, Practices, Understanding the Business, Learning, Mistakes, Your Career, and Community. Each chapter begins with a brief introduction followed by a series of letters addressed to the reader about the chapter's subject. The letters are all interesting and engaging to read.
|
||||
|
||||
Having almost the entire book in epistolary format makes this book feel more personal than other career guidance books. After a year of being disconnected because of COVID-19, the human touch of the letter-based approach makes this book a pleasure to read. No book, not even one as excellent as _Letters to a New Developer,_ can replace a few good human mentors who can adjust their advice to specific circumstances, but this is a solid alternative to having ready access to a mentor in the next cubicle.
|
||||
|
||||
I highly recommend picking up a copy, even if you do not think you need career advice. There are many insightful things in _Letters to a New Developer_ that would benefit even someone well-established in their career.
|
||||
|
||||
## [The All-Consuming World][18]
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
**[![The All-Consuming World book cover][19]][18]**
|
||||
|
||||
* * *
|
||||
|
||||
**by Cassandra Khaw** (recommendation written by [Kevin Sonney][4])
|
||||
Release date: September 7, 2021; review based on an advance review copy
|
||||
|
||||
Khaw, author of the Lovecraftian _Hammers on Bone_ and the hilarious and visceral _Rupert Wong: Canibal Chef_ series, brings her distinctive style to a far-future space cyberpunk thriller. In _The All-Consuming World_, a band of criminals comes out of retirement to return to the mythical planet that once almost destroyed them. Khaw excels at writing realistic, messy characters whose flaws are their greatest strengths. At times visceral and profane, Khaw builds a complex universe with complex people, where those people can be artificial intelligences, rogue hackers, cyborgs, clones, heavily modified humans, and more.
|
||||
|
||||
_The All-Consuming World_ is a fast, violent, and complex ride from the opening heist onward. Khaw adds her voice to the amazing array of recent modern cyberpunk authors with her unique combination of style, wit, and mayhem. This book may not be for everyone, but I enjoyed the heck out of it.
|
||||
|
||||
## [The Language Lover's Puzzle Book: Lexical Perplexities and Cracking Conundrums From Across the Globe][20]
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
**[![The Language Lover's Puzzle Book cover][21]][20]**
|
||||
|
||||
* * *
|
||||
|
||||
**by Alex Bellos** (recommendation written by [Joshua Allen Holm][17])
|
||||
|
||||
Are you a word nerd? Do you love puzzles? If the answer to both those questions is "yes," then _The Language Lover's Puzzle Book_ is the book for you. This book explores interesting facts about language through a series of puzzles and anecdotes.
|
||||
|
||||
Each of the book's 10 chapters covers different aspects of language like numbers and familial relations. You will find puzzles about ancient languages, like Babylonian and Egyptian, modern languages, and even constructed languages like [Dothraki][22]. Each puzzle is a brain teaser that makes you think about how languages work. The puzzles vary in difficulty, but each presents an interesting challenge for the reader to solve.
|
||||
|
||||
A book full of complex puzzles about languages certainly has a niche audience; still, the anecdotes contained within are interesting enough to make _The Language Lover's Puzzle Book_ something enjoyable even to a reader not interested in solving the puzzles for themselves. Solving the puzzles is very much the point of the book, but the information in the book is still fascinating and informative, even to readers who do not want to challenge themselves with puzzle solving.
|
||||
|
||||
You can watch Alex Bellos' [talk at the Royal Institution][23] for a preview of the puzzles and anecdotes contained in _The Language Lover's Puzzle Book_.
|
||||
|
||||
This review was based on the UK edition of _The Language Lover's Puzzle Book_. A [US edition][24] with the title _The Language Lover's Puzzle Book: Perple_ing Le_ical Patterns to Unmi_ and Ve_ing Synta_ to Outfo__ is due out in November and available now for preorder.
|
||||
|
||||
## [Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security, Second Edition][25]
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
* * *
|
||||
|
||||
**[![Understanding the Digital World book cover][26]][25]**
|
||||
|
||||
* * *
|
||||
|
||||
**by Brian W. Kernighan** (recommendation written by [Jim Hall][27])
|
||||
|
||||
I loved reading _Understanding the Digital World_. While it's listed as a textbook on Amazon, I didn't find it an "academic" text. It's almost a casual introduction to technology, from basic ideas such as "what is a computer" and "analog versus digital" to more advanced topics including mobile devices, internet communication, artificial intelligence, and cryptography.
|
||||
|
||||
Kernighan introduces each topic in a conversational way, so you don't feel like you're stepping up to a more advanced topic. Rather, it's a natural progression or flow from one topic to the next.
|
||||
|
||||
I especially appreciated his demonstration of the Toy Computer, a hypothetical computer model you can experiment with in a web browser. With the Toy, Kernighan explains the fundamentals of Assembly programming without getting lost in the details of macro assembly and specific registers. I found this an approachable way to discuss the topic.
|
||||
|
||||
I also appreciated Kernighan's discussion about operating systems further into the book. Kernighan explains this technical concept in clear terms, breaking down the components into easily understood sections.
|
||||
|
||||
_Understanding the Digital World_ would make a great gift for anyone interested in technology at almost any age level.
|
||||
|
||||
* * *
|
||||
|
||||
Not seeing something that piques your interest? Check out our previous lists for more suggestions:
|
||||
|
||||
* [2020 Opensource.com summer reading list][28]
|
||||
* [2019 Opensource.com summer reading list][29]
|
||||
* [2018 Open Organization summer reading list][30]
|
||||
* [2016 Opensource.com summer reading list][31]
|
||||
* [2015 Opensource.com summer reading list][32]
|
||||
* [2014 Opensource.com summer reading list][33]
|
||||
* [2013 Opensource.com summer reading list][34]
|
||||
* [2012 Opensource.com summer reading list][35]
|
||||
* [2011 Opensource.com summer reading list][36]
|
||||
* [2010 Opensource.com summer reading list][37]
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list
|
||||
|
||||
作者:[Joshua Allen Holm][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/holmja
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/reading_book_selfcare_wfh_learning_education_520.png?itok=H6satV2u (Reading a book, selfcare)
|
||||
[2]: https://us.macmillan.com/books/9780374110031
|
||||
[3]: https://opensource.com/sites/default/files/uploads/beowulf.jpg (Beowulf book cover)
|
||||
[4]: https://opensource.com/users/ksonney
|
||||
[5]: https://www.simonandschuster.com/books/Competing-On-Internet-Time/David-B-Yoffie/9780684831121
|
||||
[6]: https://opensource.com/sites/default/files/uploads/competing_on_internet_time.jpg (Competing on Internet Time book cover)
|
||||
[7]: https://opensource.com/users/gkamathe
|
||||
[8]: https://dunenovels.com/dune/
|
||||
[9]: https://opensource.com/sites/default/files/uploads/dune.jpg (Dune book cover)
|
||||
[10]: https://opensource.com/users/mbbroberg
|
||||
[11]: https://twitter.com/mbbroberg/status/1372323276802961408
|
||||
[12]: https://press.princeton.edu/books/hardcover/9780691182070/hacking-diversity
|
||||
[13]: https://opensource.com/sites/default/files/uploads/hacking_diversity.jpg (Hacking Diversity book cover)
|
||||
[14]: https://opensource.com/users/bbehrens
|
||||
[15]: https://letterstoanewdeveloper.com/the-book/
|
||||
[16]: https://opensource.com/sites/default/files/uploads/letters_to_a_new_developer_150.jpg (Letters to a New Developer book cover)
|
||||
[17]: https://opensource.com/users/holmja
|
||||
[18]: https://www.erewhonbooks.com/books/the-all-consuming-world-cassandra-khaw
|
||||
[19]: https://opensource.com/sites/default/files/uploads/the_all-consuming_world.jpg (The All-Consuming World book cover)
|
||||
[20]: https://www.alexbellos.com/language
|
||||
[21]: https://opensource.com/sites/default/files/uploads/the_language_lover_s_puzzle_book.jpg (The Language Lover's Puzzle Book cover)
|
||||
[22]: https://en.wikipedia.org/wiki/Dothraki_language
|
||||
[23]: https://www.youtube.com/watch?v=2NLquktkdqk
|
||||
[24]: https://www.amazon.com/dp/B08WK5X45V/
|
||||
[25]: https://press.princeton.edu/books/hardcover/9780691219097/understanding-the-digital-world
|
||||
[26]: https://opensource.com/sites/default/files/uploads/understanding_the_digital_world.jpg (Understanding the Digital World book cover)
|
||||
[27]: https://opensource.com/users/jim-hall
|
||||
[28]: https://opensource.com/article/20/6/summer-reading-list
|
||||
[29]: https://opensource.com/article/19/6/summer-reading-list
|
||||
[30]: https://opensource.com/open-organization/18/6/summer-reading-2018
|
||||
[31]: https://opensource.com/life/16/6/2016-summer-reading-list
|
||||
[32]: https://opensource.com/life/15/6/2015-summer-reading-list
|
||||
[33]: https://opensource.com/life/14/6/annual-reading-list-2014
|
||||
[34]: https://opensource.com/life/13/6/summer-reading-list-2013
|
||||
[35]: https://opensource.com/life/12/7/your-2012-open-source-summer-reading
|
||||
[36]: https://opensource.com/life/11/7/summer-reading-list
|
||||
[37]: https://opensource.com/life/10/8/open-books-opensourcecom-summer-reading-list
|
@ -0,0 +1,138 @@
|
||||
[#]: subject: (Replace man pages with Tealdeer on Linux)
|
||||
[#]: via: (https://opensource.com/article/21/6/tealdeer-linux)
|
||||
[#]: author: (Sudeshna Sur https://opensource.com/users/sudeshna-sur)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Replace man pages with Tealdeer on Linux
|
||||
======
|
||||
Tealdeer is a Rust implementation of tldr, which provides
|
||||
easy-to-understand information about common commands.
|
||||
![computer screen ][1]
|
||||
|
||||
Man pages were my go-to resource when I started exploring Linux. Certainly, `man` is the most frequently used command when a beginner starts getting familiar with the world of the command line. But man pages, with their extensive lists of options and arguments, can be hard to decipher, which makes it difficult to understand whatever you wanted to know. If you want an easier solution with example-based output, I think [tldr][2] is the best option.
|
||||
|
||||
### What's Tealdeer?
|
||||
|
||||
[Tealdeer][3] is a wonderful implementation of tldr in Rust. It's a community-driven man page that gives very simple examples of how commands work. The best part about Tealdeer is that it has virtually every command you would normally use.
|
||||
|
||||
### Install Tealdeer
|
||||
|
||||
On Linux, you can install Tealdeer from your software repository. For example, on [Fedora][4]:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo dnf install tealdeer`
|
||||
```
|
||||
|
||||
On macOS, use [MacPorts][5] or [Homebrew][6].
|
||||
|
||||
Alternately, you can build and install the tool with Rust's Cargo package manager:
|
||||
|
||||
|
||||
```
|
||||
`$ cargo install tealdeer`
|
||||
```
|
||||
|
||||
### Use Tealdeer
|
||||
|
||||
Entering `tldr --list` returns the list of man pages tldr supports, like `touch`, `tar`, `dnf`, `docker`, `zcat`, `zgrep`, and so on:
|
||||
|
||||
|
||||
```
|
||||
$ tldr --list
|
||||
2to3
|
||||
7z
|
||||
7za
|
||||
7zr
|
||||
[
|
||||
a2disconf
|
||||
a2dismod
|
||||
a2dissite
|
||||
a2enconf
|
||||
a2enmod
|
||||
a2ensite
|
||||
a2query
|
||||
[...]
|
||||
```
|
||||
|
||||
Using `tldr` with a specific command (like `tar`) shows example-based man pages that describe all the options that you can do with that command:
|
||||
|
||||
|
||||
```
|
||||
$ tldr tar
|
||||
|
||||
Archiving utility.
|
||||
Often combined with a compression method, such as gzip or bzip2.
|
||||
More information: <[https://www.gnu.org/software/tar\>][7].
|
||||
|
||||
[c]reate an archive and write it to a [f]ile:
|
||||
|
||||
tar cf target.tar file1 file2 file3
|
||||
|
||||
[c]reate a g[z]ipped archive and write it to a [f]ile:
|
||||
|
||||
tar czf target.tar.gz file1 file2 file3
|
||||
|
||||
[c]reate a g[z]ipped archive from a directory using relative paths:
|
||||
|
||||
tar czf target.tar.gz --directory=path/to/directory .
|
||||
|
||||
E[x]tract a (compressed) archive [f]ile into the current directory [v]erbosely:
|
||||
|
||||
tar xvf source.tar[.gz|.bz2|.xz]
|
||||
|
||||
E[x]tract a (compressed) archive [f]ile into the target directory:
|
||||
|
||||
tar xf source.tar[.gz|.bz2|.xz] --directory=directory
|
||||
|
||||
[c]reate a compressed archive and write it to a [f]ile, using [a]rchive suffix to determine the compression program:
|
||||
|
||||
tar caf target.tar.xz file1 file2 file3
|
||||
```
|
||||
|
||||
To control the cache:
|
||||
|
||||
|
||||
```
|
||||
$ tldr --update
|
||||
$ tldr --clear-cache
|
||||
```
|
||||
|
||||
You can give Tealdeer output some color with the `--color` option, setting it to `always`, `auto`, and `never`. The default is `auto`, but I like the added context color provides, so I make mine permanent with this addition to my `~/.bashrc` file:
|
||||
|
||||
|
||||
```
|
||||
`alias tldr='tldr --color always'`
|
||||
```
|
||||
|
||||
### Conclusion
|
||||
|
||||
The beauty of Tealdeer is you don't need a network connection to use it, except when you're updating the cache. So, even if you are offline, you can still search for and learn about your new favorite command. For more information, consult the tool's [documentation][8].
|
||||
|
||||
Would you use Tealdeer? Or are you already using it? Let us know what you think in the comments below.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/tealdeer-linux
|
||||
|
||||
作者:[Sudeshna Sur][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/sudeshna-sur
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/features_solutions_command_data.png?itok=4_VQN3RK (computer screen )
|
||||
[2]: https://github.com/tldr-pages/tldr
|
||||
[3]: https://github.com/dbrgn/tealdeer
|
||||
[4]: https://src.fedoraproject.org/rpms/rust-tealdeer
|
||||
[5]: https://opensource.com/article/20/11/macports
|
||||
[6]: https://opensource.com/article/20/6/homebrew-mac
|
||||
[7]: https://www.gnu.org/software/tar\>
|
||||
[8]: https://dbrgn.github.io/tealdeer/intro.html
|
@ -0,0 +1,141 @@
|
||||
[#]: subject: (Why I love programming on FreeDOS with GW-BASIC)
|
||||
[#]: via: (https://opensource.com/article/21/6/freedos-gw-basic)
|
||||
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (chai-yuan)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
Why I love programming on FreeDOS with GW-BASIC
|
||||
======
|
||||
BASIC was my entry into computer programming. I haven't written BASIC
|
||||
code in years, but I'll always have a fondness for BASIC and GW-BASIC.
|
||||
![Old UNIX computer][1]
|
||||
|
||||
When I was growing up, it seemed every "personal computer" from the TRS-80 to the Commodore to the Apple let you write your own programs in the Beginners' All-purpose Symbolic Instruction Code ([BASIC][2]) programming language. Our family had a clone of the Apple II called the Franklin ACE 1000, which—as a clone—also ran AppleSoft BASIC. I took to AppleSoft BASIC right away and read books and magazines to teach myself about BASIC programming.
|
||||
|
||||
Later, our family upgraded to an IBM PC running DOS. Just like every personal computer before it, the IBM PC also ran its own version of DOS, called BASICA. Later versions of DOS replaced BASIC with an updated interpreter called GW-BASIC.
|
||||
|
||||
BASIC was my entry into computer programming. As I grew up, I learned other programming languages. I haven't written BASIC code in years, but I'll always have a fondness for BASIC and GW-BASIC.
|
||||
|
||||
### Microsoft open-sources GW-BASIC
|
||||
|
||||
In May 2020, Microsoft surprised everyone (including me) by releasing the source code to GW-BASIC. Rich Turner (Microsoft) wrote in the [announcement][3] on the Microsoft Developer Blog:
|
||||
|
||||
“Since re-open-sourcing MS-DOS 1.25 & 2.0 on GitHub last year, we’ve received numerous requests to also open-source Microsoft BASIC. Well, here we are! As clearly stated in the repo's readme, these sources are the 8088 assembly language sources from 10th Feb 1983 and are being open-sourced for historical reference and educational purposes. This means we will not be accepting PRs (Pull Requests) that modify the source in any way.”
|
||||
|
||||
You can find the GW-BASIC source code release at the [GW-BASIC GitHub][4]. And yes, Microsoft used the [MIT License][5], which makes this open source software.
|
||||
|
||||
Unfortunately, the GW-BASIC code was entirely in Assembly, which wouldn't build with modern tools. But open source developers got to work on that and adjusted the code to assemble with updated DOS assemblers. One project is [TK Chia's GitHub][6] project to update GW-BASIC to assemble with JWASM or other assemblers. You can find several [source and binary releases][7] on TK Chia's project. The notes from the latest version (October 2020) mention that this is “a 'pre-release' binary of GW-BASIC as rebuilt in 2020” and that “support for serial port I/O is missing. Light pen input, joystick input, and printer (parallel port) output need more testing.” But if you don't need those extra features in GW-BASIC, you should be able to use this latest release to get back into BASIC programming with an open-sourced GW-BASIC.
|
||||
|
||||
FreeDOS 1.3 RC4 doesn't include GW-BASIC, but installing it is pretty easy. Just download the `gwbas-20201025.zip` archive file from TK Chia's October 2020 GW-BASIC release, and extract it (unzip it) on your FreeDOS system. The binary archive uses a default path of `\DEVEL\GWBASIC`.
|
||||
|
||||
### Getting started with GW-BASIC
|
||||
|
||||
To start GW-BASIC, run the `GWBASIC.EXE` program from the DOS command line. Note that DOS is _case insensitive_ so you don't actually need to type that in all uppercase letters. Also, DOS will run any `EXE` or `COM` or `BAT` programs automatically, so you don't need to provide the extension, either. Go into the `\DEVEL\GWBASIC` and type `GWBASIC` to run BASIC.
|
||||
|
||||
![GW-BASIC][8]
|
||||
|
||||
The GW-BASIC interpreter
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
GW-BASIC is an _interpreted_ programming language. The GW-BASIC environment is a "shell" that parses each line in your BASIC program _as it runs the code_. This is a little slower than _compiled_ languages like C but makes for an easier coding-debugging cycle. You can test your code as you go, just by entering it into the interpreter.
|
||||
|
||||
Each line in a GW-BASIC program needs to start with a line number. GW-BASIC uses the line numbers to make sure it executes your program statements in the correct order. With these line numbers, you can later "insert" new program statements between two other statements by giving it a line number that's somewhere in between the other line numbers. For this reason, most BASIC programmers wrote line numbers that went up by tens so that line numbers would go like 10, 20, 30, and so on.
|
||||
|
||||
New to GW-BASIC? You can learn about the programming language by reading an online GW-BASIC reference. Microsoft didn't release a programming guide with the GW-BASIC source code, but you can search for one. [Here's one reference][10] that seems to be a copy of the original Microsoft GW-BASIC User's Guide.
|
||||
|
||||
Let's start with a simple program to print out a list of random numbers. The `FOR` statement creates a loop over a range of numbers, and `RND(1)` prints a random value between 0 and 1.
|
||||
|
||||
![GW-BASIC][11]
|
||||
|
||||
Entering our first program
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
Do you see those highlighted words at the bottom of the screen? Those are keyboard shortcuts that you can access using the "F" keys (or _function_ keys) on your keyboard. For example, F1 will insert the word `LIST` into the GW-BASIC interpreter. The "left arrow" indicates that the shortcut will hit Enter for you, so F2 will enter the `RUN` command and immediately execute it. Let's run the program a few times to see what happens.
|
||||
|
||||
![GW-BASIC][12]
|
||||
|
||||
The two lists of random numbers are the same
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
Interestingly, the list of random numbers is the same every time we run the BASIC program. That's because the GW-BASIC random number generator resets every time you execute a BASIC program.
|
||||
|
||||
To generate new random numbers every time, we need to "seed" the random number generator with a value. One way to do this is by prompting the user to enter their own seed, then use that value with the `RANDOMIZE` instruction. We can insert those two statements at the top of the program using line numbers 1 and 2. GW-BASIC will automatically add those statements before line 10.
|
||||
|
||||
![GW-BASIC][13]
|
||||
|
||||
Updating the program
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
With the random number generator using a new seed, we get a different list of random numbers every time we run our program.
|
||||
|
||||
![GW-BASIC][14]
|
||||
|
||||
Now the lists of random numbers are different
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
### "Guess the number" game in GW-BASIC
|
||||
|
||||
Whenever I start learning a new programming language, I focus on defining variables, writing a statement, and evaluating expressions. Once I have a general understanding of those concepts, I can usually figure out the rest on my own. Most programming languages have some similarities, so once you know one programming language, learning the next one is a matter of figuring out the unique details and recognizing the differences.
|
||||
|
||||
To help me practice a new programming language, I like to write a few test programs. 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. The program loops until I guess correctly.
|
||||
|
||||
Let's write a version of this "guess the number" game in GW-BASIC. To start, enter the `NEW` instruction to tell GW-BASIC to forget the previous program and start a new one.
|
||||
|
||||
My "guess the number" program first prompts the user to enter a random number seed, then generates a random number between 1 and 100. The `RND(1)` function actually generates a random value between 0 and 1 (actually 0.9999…) so I first multiply `RND(1)` by 100 to get a value between 0 and 99.9999…, then I turn that into an integer (remove everything after the decimal point). Adding 1 gives a number that's between 1 and 100.
|
||||
|
||||
The program then enters a simple loop where it prompts the user for a guess. If the guess is too low or too high, the program lets the user know to adjust their guess. The loop continues as long as the user's guess is _not_ the same as the random number picked earlier.
|
||||
|
||||
![GW-BASIC][15]
|
||||
|
||||
Entering a "guess the number" program
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
We can run the program by tapping the F2 key. Using a random seed of 1234 generates a completely new random number. It took me six guesses to figure out the secret number was 49.
|
||||
|
||||
![GW-BASIC][16]
|
||||
|
||||
Guessing the secret number
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
And that's your first introduction to GW-BASIC programming! Thanks to Microsoft for releasing this great piece of history as open source software, and thanks also to the many open source developers who assembled GW-BASIC so we can run it.
|
||||
|
||||
One more thing before I go—It's not obvious how to exit GW-BASIC. The interpreter had a special instruction for that—to quit, enter `SYSTEM` and GW-BASIC will exit back to DOS.
|
||||
|
||||
![GW-BASIC][17]
|
||||
|
||||
Enter SYSTEM to quit GW-BASIC
|
||||
(Jim Hall, [CC-BY SA 4.0][9])
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/freedos-gw-basic
|
||||
|
||||
作者:[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/retro_old_unix_computer.png?itok=SYAb2xoW (Old UNIX computer)
|
||||
[2]: https://en.wikipedia.org/wiki/BASIC#:~:text=BASIC%20(Beginners'%20All%2Dpurpose,at%20Dartmouth%20College%20in%201964.
|
||||
[3]: https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-basic/
|
||||
[4]: https://github.com/microsoft/GW-BASIC
|
||||
[5]: https://github.com/microsoft/GW-BASIC/blob/master/LICENSE
|
||||
[6]: https://github.com/tkchia/GW-BASIC
|
||||
[7]: https://github.com/tkchia/GW-BASIC/releases
|
||||
[8]: https://opensource.com/sites/default/files/uploads/gwbasic1.png (The GW-BASIC interpreter)
|
||||
[9]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[10]: http://www.antonis.de/qbebooks/gwbasman/index.html
|
||||
[11]: https://opensource.com/sites/default/files/uploads/gwbasic2.png (Entering our first program)
|
||||
[12]: https://opensource.com/sites/default/files/uploads/gwbasic3.png (The two lists of random numbers are the same)
|
||||
[13]: https://opensource.com/sites/default/files/uploads/gwbasic4.png (Updating the program)
|
||||
[14]: https://opensource.com/sites/default/files/uploads/gwbasic5.png (Now the lists of random numbers are different)
|
||||
[15]: https://opensource.com/sites/default/files/uploads/guessnum1.png (Entering a "guess the number" program)
|
||||
[16]: https://opensource.com/sites/default/files/uploads/guessnum2.png (Guessing the secret number)
|
||||
[17]: https://opensource.com/sites/default/files/uploads/guessnum3.png (Enter SYSTEM to quit GW-BASIC)
|
@ -0,0 +1,110 @@
|
||||
[#]: subject: (KTorrent: An Incredibly Useful BitTorrent Application by KDE)
|
||||
[#]: via: (https://itsfoss.com/ktorrent/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
KTorrent: An Incredibly Useful BitTorrent Application by KDE
|
||||
======
|
||||
|
||||
There are a variety of BitTorrent applications available for Linux. But finding a good application that offers many features should save you some time.
|
||||
|
||||
KTorrent by KDE is one such BitTorrent app built for Linux.
|
||||
|
||||
While there are [several torrent clients for Linux][1], I recently found KTorrent interesting for my use-case.
|
||||
|
||||
### KTorrent: Open Source BitTorrent Client for Linux
|
||||
|
||||
![][2]
|
||||
|
||||
KTorrent is a full-fledged torrent client primarily tailored for KDE desktop. It should work simply fine no matter what desktop environment you use.
|
||||
|
||||
Of course, with KDE desktop, you may get a seamless user experience.
|
||||
|
||||
Let us look at the all the features offered.
|
||||
|
||||
### Features of KTorrent
|
||||
|
||||
![][3]
|
||||
|
||||
For regular torrent users, having an extensive set of features makes things easy. And KTorrent is no exception. Here, I’ll highlight the key highlights of KTorrent:
|
||||
|
||||
* Adding torrent downloads in a queue
|
||||
* Ability to control the speed limits per download (or overall)
|
||||
* Video and audio file preview option
|
||||
* Supports importing of downloaded files (partial/full)
|
||||
* Ability to prioritize torrent downloads when downloading multiple files
|
||||
* Selection of specific files to download for multi-file torrents
|
||||
* IP filter with the option of kicking/banning peers
|
||||
* UDP tracker support
|
||||
* µTorrent peer support
|
||||
* Support for protocol encryption
|
||||
* Ability to create trackerless torrent
|
||||
* Scripting support
|
||||
* System tray integration
|
||||
* Connection through a proxy
|
||||
* Added plugin support
|
||||
* Supports IPv6
|
||||
|
||||
|
||||
|
||||
KTorrent sounds something useful as a torrent client that you can use daily with control to manage all your torrent downloads at one place.
|
||||
|
||||
![][4]
|
||||
|
||||
In addition to the features mentioned above, it offers great control over the behavior of the client as well. For instance, tweaking the color that indicates downloads/pause/trackers.
|
||||
|
||||
You also get the ability to set the notification if you want to disable the sound of completing a torrent download or getting notified of the activity.
|
||||
|
||||
![][5]
|
||||
|
||||
While features like protocol encryption support may not be able to replace some of the [best VPN][6] services, it is an important addition for desktop clients.
|
||||
|
||||
### Installing KTorrent in Linux
|
||||
|
||||
KTorrent should be available through your package managers like [Synaptic][7] or the default repositories. You can also find it listed in your software center for easy installation.
|
||||
|
||||
In addition to this, it also offers a [Flatpak][8] official package on [Flathub][9] for any Linux distribution. If you need help with that, we have a [Flatpak guide][10] for reference.
|
||||
|
||||
You can also try the [snap package][11] available if you prefer that.
|
||||
|
||||
To explore more about it and the source code, head to its [official KDE app page][12].
|
||||
|
||||
[KTorrent][12]
|
||||
|
||||
### Closing Thoughts
|
||||
|
||||
KTorrent is a phenomenal torrent client for Linux. I tried it on my Linux Mint system on top of Cinnamon desktop, and it worked great.
|
||||
|
||||
I like how simple, yet configurable it is. Even though I don’t use a torrent client every day, I did not see anything weird with KTorrent in my brief testing.
|
||||
|
||||
What do you think about KTorrent as a torrent client for Linux? What do you prefer to use it instead?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/ktorrent/
|
||||
|
||||
作者:[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://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/best-torrent-ubuntu/
|
||||
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/ktorrent-download.png?resize=850%2C582&ssl=1
|
||||
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/06/ktorrent-configure.png?resize=850%2C656&ssl=1
|
||||
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/06/ktorrent-speed-limit.png?resize=850%2C585&ssl=1
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/06/ktorrent-plugins.png?resize=850%2C643&ssl=1
|
||||
[6]: https://itsfoss.com/best-vpn-linux/
|
||||
[7]: https://itsfoss.com/synaptic-package-manager/
|
||||
[8]: https://itsfoss.com/what-is-flatpak/
|
||||
[9]: https://flathub.org/apps/details/org.kde.ktorrent
|
||||
[10]: https://itsfoss.com/flatpak-guide/
|
||||
[11]: https://snapcraft.io/ktorrent
|
||||
[12]: https://apps.kde.org/ktorrent/
|
@ -0,0 +1,106 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (littlebirdnest)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (FCC auctions should be a long-term boost for 5G availability)
|
||||
[#]: via: (https://www.networkworld.com/article/3584072/fcc-auctions-should-be-a-long-term-boost-for-5g-availability.html)
|
||||
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
|
||||
|
||||
|
||||
美国联邦通讯委员的拍卖是长期的有助于5G普及
|
||||
|
||||
======
|
||||
|
||||
美国联邦通讯委员新的决策——让更多的频段能够被用于通信
|
||||
|
||||
在5G的竞争当中,为了让5G的能力完全发挥出来,增加频谱是非常有必要的, 美国联邦通讯委员也知晓这一点
|
||||
|
||||
什么是5G 给企业和手机更快的传输速度
|
||||
|
||||
|
||||
|
||||
5G频率是如何影响5G范围和5G的速度的
|
||||
|
||||
|
||||
|
||||
5G能够解决哪些,WiFi无法解决的问题
|
||||
|
||||
|
||||
|
||||
5G能够让Whirlpool无人驾驶汽车继续运转
|
||||
|
||||
|
||||
|
||||
5G能够让网络回传更有效率
|
||||
|
||||
|
||||
|
||||
公民的宽带无线服务将5G带给企业
|
||||
|
||||
美国联邦通讯委员近日完成了对公民的宽带无线服务5G频谱的拍卖---3.5GHz中的70MHz
|
||||
|
||||
砸进去了45.8个亿的目的,和以往的拍卖不同的地方在于,能腾出更多的频段用于无线传输
|
||||
|
||||
|
||||
|
||||
FCC 在 2011 2014和2015年拍卖了 65MHz 的低中频,大致在1.7GHz至2.2GHz,例如现在的700MHz。但是现在可操作的范围的频段是低于6GHz频段或中间频段,刚好是CMRS拍卖的部分,即将到来的C频段拍卖将会是重要一环,根据专家猜测,将会有巨大的280MHz频段进行拍卖
|
||||
|
||||
C频段的拍卖,将会很有价值” IDC的研究主管Jasom leigh说到
|
||||
|
||||
中频段在美国是极稀有的,这也就是为什么人们会如此积极
|
||||
|
||||
然而主要的移动数据提供商仍然希望抢到这次拍卖中的最大份额,
|
||||
|
||||
企业会对新的频段实施一系列的创新,同样将会与运营商竞争一系列可用的频率
|
||||
|
||||
特别是物联网,资产追踪以及其他的个人应用早已通过LTE网络实现,而5G网络将会有扩大他们的范围,这多亏了 5G的频谱共享,低延迟,多连接的特性。广义讲,能替代更多当前需要线的设备,如工业上的自动化,设备的管理等等
|
||||
|
||||
重新分配频段就意味着谈判
|
||||
|
||||
对于想要改变美国的频段优先事项上的问题绝非小事,FCC此前的主席Tom Wheeler对此绝对深有体会,过去10年里,政府一直在推动重新分配频段,而享有频段者的大多是政府机构或者是卫星网络运营商商
|
||||
|
||||
这些频段享有者被分配到不同频段,常以纳税人的税进行补偿,然后让更多的人进行享用,然而这一过程通常是困难的
|
||||
|
||||
并指出“ FCC现在要面临的其中一个挑战就是分配频段从原本的模拟信号变成数字信号” 类似于模拟电视变成数字电视
|
||||
|
||||
当模拟电视要求上到6MHz频段以及要求更宽的宽带去避免冲突,数字信号却能够在一个频率里有5个信号
|
||||
|
||||
这一系列变革是具有挑战性的,反对者义不容辞公开反对FCC进入中频宽带,并说明这样做会干涉他们原有的设备和服务,也意味着更换频率就等于买新的设备
|
||||
|
||||
公司讨论过,事实上其中一个较大的原因是监管层的问题,没人想放弃现有体系下基于模拟信号的工作岗位” Wheeler说到,“我觉得你应该考虑周全,但我发现那些所谓宣称信号冲突的人,其实并不关心来自竞争的威胁或者其他事物的威胁。
|
||||
|
||||
未来:更多的服务
|
||||
|
||||
将中频段开放给企业和运营商对美国商业将会有更多潜在的优势,无论是具体是哪一个频段开放,根据Leigh的说法,美国应该根据拍卖的形式来分配无线频段,像德国就早已设立专门的中频段来给企业使用
|
||||
|
||||
对于一家试图推出自己的私有 5G 网络的公司,就可能推高拍卖的价格,但最终,一定要让这项服务存在,无论是内部供应服务还是移动运营商贩卖服务,只要他们有足够的频段使用
|
||||
|
||||
“企业能够围绕5G做更加有科技含量的事物”他说到
|
||||
|
||||
|
||||
via: https://www.networkworld.com/article/3584072/fcc-auctions-should-be-a-long-term-boost-for-5g-availability.html
|
||||
|
||||
作者:[Jon Gold][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/littlebirdnest)
|
||||
校对:[校对者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://www.flickr.com/photos/fccdotgov/4808818548/
|
||||
[2]: https://www.networkworld.com/article/3203489/what-is-5g-fast-wireless-technology-for-enterprises-and-phones.html
|
||||
[3]: https://www.networkworld.com/article/3568253/how-5g-frequency-affects-range-and-speed.html
|
||||
[4]: https://www.networkworld.com/article/3568614/private-5g-can-solve-some-enterprise-problems-that-wi-fi-can-t.html
|
||||
[5]: https://www.networkworld.com/article/3488799/private-5g-keeps-whirlpool-driverless-vehicles-rolling.html
|
||||
[6]: https://www.networkworld.com/article/3570724/5g-can-make-for-cost-effective-private-backhaul.html
|
||||
[7]: https://www.networkworld.com/article/3529291/cbrs-wireless-can-bring-private-5g-to-enterprises.html
|
||||
[8]: https://www.networkworld.com/article/3572564/cbrs-wireless-yields-45b-for-licenses-to-support-5g.html
|
||||
[9]: https://www.networkworld.com/article/3180615/faq-what-in-the-wireless-world-is-cbrs.html
|
||||
[10]: https://www.networkworld.com/newsletters/signup.html
|
||||
[11]: https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html
|
||||
[12]: https://www.facebook.com/NetworkWorld/
|
||||
[13]: https://www.linkedin.com/company/network-world
|
@ -1,70 +0,0 @@
|
||||
[#]: subject: (Explore the Kubernetes ecosystem in 2021)
|
||||
[#]: via: (https://opensource.com/article/21/6/kubernetes-ebook)
|
||||
[#]: author: (Chris Collins https://opensource.com/users/clcollins)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
在 2021 年探索 Kubernetes 生态系统
|
||||
======
|
||||
这份可下载的指南充满了有用的教程,让 SRE 和系统管理员使用 Kubernetes 获得便利。
|
||||
![A ship wheel with someone steering][1]
|
||||
|
||||
Kubernetes 是容器编排的事实标准,在基础设施管理和应用开发方面已经迅速发展成为容器环境的主导。作为一个拥有庞大的爱好者和专业人士社区的开源平台,以及作为云原生计算基金会的一部分,Kubernetes 不仅成为一个强大而令人印象深刻的编排系统本身,而且它还促进了一个庞大的相关工具和服务的生态系统,使其更容易使用,并通过更强大和复杂的组件扩展其功能。
|
||||
|
||||
在这本新的电子书中,[给 SRE 和系统管理员的 Kubernetes 指导_][2],[Jess Cherry][3](Ben Finkel 也有贡献)涵盖了一系列相关的工具和服务,用于管理和整合 Kubernetes。Cherry 和 Finkel 提供了一些有用的_入门_指南,包括 Kubernetes 和一些工具。他们甚至还分享了面试问题,以帮助读者为在这个快速增长的大规模生态系统中工作做好准备。
|
||||
|
||||
### 了解 Kubernetes
|
||||
|
||||
如果你刚开始接触 Kubernetes 和容器,Ben Finkel 的 _[Kubernetes 入门][4]_既是恰当的标题,也是对你需要了解的相关概念的出色介绍。它也是一本轻量级的快速入门指南,用于设置和使用单节点集群进行测试。没有什么比亲身体验技术并直接进入学习更好的方法了。什么是 Pod? 如何在集群上部署一个应用程序? Ben 为你介绍。
|
||||
|
||||
与集群交互的主要方式是 [**kubectl**][5] 命令,一种 CLI 工具,它提供了一种人类可以访问的方式,与管理集群本身的 API 服务器交互。例如,你可以使用 **kubectl get** 来列出上述的 Pod 和部署,但正如你对 Kubernetes 这样复杂的东西所期望的那样,它的 CLI 界面有很强的功能和灵活性。Jess Cherry 的 [_9 个系统管理员需要知道的 kubectl 命令_][6]速记是一个很好的介绍,是开始使用 **kubectl** 的好方法。
|
||||
|
||||
同样,Cherry 的_[给初学者的 Kubernetes 命令空间[7]_也很好地解释了什么是命名空间以及它们在 Kubernetes 中的使用方式。
|
||||
|
||||
### 简化与 Kubernetes 的工作
|
||||
|
||||
在一个复杂的系统中工作是很困难的,尤其是像 **kubectl** 这样强大但最小的 CLI 工具。幸运的是,在围绕 Kubernetes 的生态系统中,有许多工具可用于简化事情,使扩展服务和集群管理更容易。
|
||||
|
||||
**kubectl** 命令可用于在 Kubernetes 上部署和维护应用和服务,主要是使用 YAML 和 JSON。 一旦你开始管理超过几个应用,然而,用 YAML 的大型仓库这样做会变得既重复又乏味。一个好的解决方案是采用一个模板化的系统来处理你的部署。[Helm][8]就是这样一个工具,被称为 _Kubernetes 的包管理器_,Helm 提供了一种方便的方式来打包和共享应用。Cherry 写了很多关于 Helm 的有用文章:创建有效的 [Helm 图表][9]和有用的 [Helm 命令][10]。
|
||||
|
||||
**kubectl** 也为你提供了很多关于集群本身的信息:上面运行的是什么,以及正在发生的事件。这些信息可以通过 **kubectl** 来查看和交互,但有时有一个更直观的 GUI 来进行交互是有帮助的。[K9s][11] 符合这两个世界的要求。虽然它仍然是一个终端应用,但它提供了视觉反馈和一种与集群交互的方式,而不需要长长的 **kubectl** 命令。Cherry 也写了一份很好的[开始使用 k9s][12] 的指南。
|
||||
|
||||
### 建立在 Kubernetes 的强大和灵活性之上的扩展
|
||||
|
||||
幸运的是,尽管 Kubernetes 是复杂而强大的,但它惊人的灵活和开源。它专注于其核心优势:容器编排,并允许围绕它的爱好者和专业人士社区扩展其能力,以承担不同类型的工作负载。其中一个例子是 [Knative][13],在 Kubernetes 之上提供组件,它为无服务器和事件驱动的服务提供工具,并利用 Kubernetes 的编排能力在容器中运行最小的微服务。事实证明,这样做非常高效,既能提供在容器中开发小型、易于测试和维护的应用的好处,又能提供仅在需要时运行这些应用的成本优势,在特定事件中被触发,但在其他时候处于休眠。
|
||||
|
||||
在这本电子书中,Cherry 介绍了 Knative 和它的事件系统,以及为什么值得自己研究使用 Knative。
|
||||
|
||||
### 有一个完整的世界可以探索
|
||||
|
||||
通过 Jess Cherry 和 Ben Finkel 的这本新的[电子书][2],可以开始了解 Kubernetes 和围绕它的生态系统。除了上述主题外,还有一些关于有用的 Kubernetes 扩展和第三方工具的文章。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/kubernetes-ebook
|
||||
|
||||
作者:[Chris Collins][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/clcollins
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_wheel_gear_devops_kubernetes.png?itok=xm4a74Kv (A ship wheel with someone steering)
|
||||
[2]: https://opensource.com/downloads/kubernetes-sysadmin
|
||||
[3]: https://opensource.com/users/cherrybomb
|
||||
[4]: https://opensource.com/article/17/11/getting-started-kubernetes
|
||||
[5]: https://kubernetes.io/docs/reference/kubectl/kubectl/
|
||||
[6]: https://opensource.com/article/20/5/kubectl-cheat-sheet
|
||||
[7]: https://opensource.com/article/19/12/kubernetes-namespaces
|
||||
[8]: https://helm.sh/
|
||||
[9]: https://opensource.com/article/20/5/helm-charts
|
||||
[10]: https://opensource.com/article/20/2/kubectl-helm-commands
|
||||
[11]: https://k9scli.io/
|
||||
[12]: https://opensource.com/article/20/5/kubernetes-administration
|
||||
[13]: https://cloud.google.com/knative/
|
142
translated/tech/20210615 Build a static website with Eleventy.md
Normal file
142
translated/tech/20210615 Build a static website with Eleventy.md
Normal file
@ -0,0 +1,142 @@
|
||||
[#]: subject: (Build a static website with Eleventy)
|
||||
[#]: via: (https://opensource.com/article/21/6/static-site-builder)
|
||||
[#]: author: (Nwokocha Wisdom https://opensource.com/users/wise4rmgod)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
用 Eleventy 建立一个静态网站
|
||||
======
|
||||
Eleventy 是一个基于 JavaScript 的 Jekyll 和 Hugo 的替代品,用于构建静态网站。
|
||||
![Digital images of a computer desktop][1]
|
||||
|
||||
静态网站生成器是一种基于原始数据和一组模板生成完整的静态 HTML 网站的工具。它自动完成单个 HTML 页面的编码任务,并让这些页面准备好为用户服务。由于 HTML 页面是预先建立的,它们在用户的浏览器中加载得非常快。
|
||||
|
||||
静态网站对文档也很友好,因为静态网站很容易扩展,而且它们是生成、维护和部署项目文档的一种简单方法。由于这些原因,企业经常使用它们来记录应用编程接口 (API)、数据库模式和其他信息。文档是软件开发、设计和其他方面技术的一个重要组成部分。所有的代码库都需要某种形式的文档,选择范围从简单的 README 到完整的文档。
|
||||
|
||||
### Eleventy: 一个静态网站生成器
|
||||
|
||||
[Eleventy][2] (11ty) 是一个简单的静态网站生成器,是 [Jekyll][3] 和 [Hugo][4] 的替代品。它是用 JavaScript 编写的,它将一个模板目录(不同类型)转化为 HTML。它也是开源的,在 MIT 许可下发布。
|
||||
|
||||
Eleventy 可以与 HTML、Markdown、Liquid、Nunjucks、Handlebars、Mustache、EJS、Haml、Pug 和 JavaScript Template Literals 协同工作。
|
||||
|
||||
它的特点包括:
|
||||
|
||||
* 易于设置
|
||||
* 支持多种模板语言(如 Nunjucks、HTML、JavaScript、Markdown、Liquid)
|
||||
* 可定制
|
||||
* 基于 JavaScript,这是许多网络开发者所熟悉的,新用户也容易学习
|
||||
|
||||
|
||||
|
||||
### 安装 Eleventy
|
||||
|
||||
Eleventy 需要 Node.js。在 Linux 上,你可以使用你的包管理器安装 Node.js:
|
||||
|
||||
|
||||
```
|
||||
`$ sudo dnf install nodejs`
|
||||
```
|
||||
|
||||
如果你的包管理器没有 Node.js,或者你不在 Linux 上,你可以从 Node.js 网站[安装它][5]。
|
||||
|
||||
Node.js 安装完毕后,就用它来安装 Eleventy:
|
||||
|
||||
|
||||
```
|
||||
`$ npm install -g @11ty/eleventy`
|
||||
```
|
||||
|
||||
这就完成了!
|
||||
|
||||
### 为你的文档建立一个静态网站
|
||||
|
||||
现在你可以开始使用 Eleventy 来建立你的静态文档网站。以下是需要遵循的步骤。
|
||||
|
||||
#### 1\. 创建一个 package.json 文件
|
||||
|
||||
要将 Eleventy 安装到你的项目中,你需要一个 package.json 文件:
|
||||
|
||||
|
||||
```
|
||||
`$ npm init -y`
|
||||
```
|
||||
|
||||
#### 2\. 将 Eleventy 安装到 package.json 中
|
||||
|
||||
安装 Eleventy 并保存到你的项目的 `package.json` 中,通过运行:
|
||||
|
||||
|
||||
```
|
||||
`$ npm install-save-dev @11ty/eleventy`
|
||||
```
|
||||
|
||||
#### 3\. 运行 Eleventy
|
||||
|
||||
使用 `npx` 命令来运行你本地项目的 Eleventy 版本。在你确认安装完成后,尝试运行 Eleventy:
|
||||
|
||||
|
||||
```
|
||||
`$ npx @11ty/eleventy`
|
||||
```
|
||||
|
||||
#### 4\. 创建一些模板
|
||||
|
||||
现在运行两个命令来创建两个新的模板文件(一个 HTML 和一个 Markdown 文件):
|
||||
|
||||
|
||||
```
|
||||
$ cat << EOF >> index.html
|
||||
<!doctype html><html>
|
||||
<head>
|
||||
<title>Page title</title>
|
||||
</head><body>
|
||||
<p>Hello world</p>
|
||||
</body></html>
|
||||
EOF
|
||||
$ echo '# Page header' > index.md
|
||||
```
|
||||
|
||||
这就把当前目录或子目录中的任何内容模板编译到输出文件夹中(默认为 `_site`)。
|
||||
|
||||
运行 `eleventy --serve` 来启动一个开发网络服务器。
|
||||
|
||||
|
||||
```
|
||||
`$ npx @11ty/eleventy-serve`
|
||||
```
|
||||
|
||||
在你的网络浏览器中打开 `http://localhost:8080/README/`,看你的 Eleventy 输出。
|
||||
|
||||
然后把 `_site` 中的文件上传到你的网络服务器,发布你的网站给世界看。
|
||||
|
||||
### 尝试 Eleventy
|
||||
|
||||
Eleventy 是一个静态网站生成器,它易于使用,有模板和主题。如果你已经在你的开发流程中使用 Node.js,Eleventy 可能比 Jekyll 或 Hugo 更自然。它能快速提供很好的结果,并使你免于复杂的网站设计和维护。要了解更多关于使用 Eleventy 的信息,请仔细阅读它的[文档][6]。
|
||||
|
||||
* * *
|
||||
|
||||
_本文基于[为开源项目建立技术文档静态网站][7],首次发布在 Nwokocha Wisdom Maduabuchi 的 Medium 上,经授权转载。_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/static-site-builder
|
||||
|
||||
作者:[Nwokocha Wisdom][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/wise4rmgod
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_desk_home_laptop_browser.png?itok=Y3UVpY0l (Digital images of a computer desktop)
|
||||
[2]: https://www.11ty.dev/
|
||||
[3]: https://opensource.com/article/17/4/getting-started-jekyll
|
||||
[4]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo
|
||||
[5]: https://nodejs.org/en/
|
||||
[6]: https://www.11ty.dev/docs/getting-started/
|
||||
[7]: https://wise4rmgodadmob.medium.com/building-a-technical-documentation-static-site-for-open-source-projects-7af4e73d77f0
|
@ -0,0 +1,84 @@
|
||||
[#]: subject: (Try this new open source tool for data analytics)
|
||||
[#]: via: (https://opensource.com/article/21/6/cubejs)
|
||||
[#]: author: (Ray Paik https://opensource.com/users/rpaik)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
试试这个新的数据分析开源工具吧
|
||||
======
|
||||
Cube.js 是一个开源的分析平台,作为数据源和应用之间的一层。
|
||||
![metrics and data shown on a computer screen][1]
|
||||
|
||||
数据分析是一个时髦的领域,有许多解决方案可供选择。其中之一是 [Cube.js][2],一个开源的分析平台。你可以把 Cube.js 看作是你的数据源和应用之间的一个层。
|
||||
|
||||
如下图所示,Cube.js 支持无服务器数据仓库和大多数现代关系型数据库管理系统 (RDBMS)。你可以使用任何用于数据可视化的 JavaScript 前端库,而 Cube.js 将负责其他工作,包括访问控制、性能、并发性等。
|
||||
|
||||
![Cube.js architecture][3]
|
||||
|
||||
(©2021, [Cube Dev, Inc.][2])
|
||||
|
||||
### 主要优点
|
||||
|
||||
当我向我们的社区成员询问 Cube.js 的主要优点时,他们经常提到:
|
||||
|
||||
|
||||
**它的抽象层:**配置 Cube.js 后,人们说他们不再需要担心性能优化、资源管理、SQL 专业知识等问题。许多人把 Cube.js 称为 “黑盒”,因为它的抽象层帮助他们专注于理解数据,而不是实施细节。
|
||||
**易于定制:**由于 Cube.js 是可视化的,它很容易与前端框架集成,建立看起来像用户自己平台的解决方案。大多数商业平台(如 Looker、Tableau 等)需要更多的定制工作来与他们的基础设施整合。许多用户说,定制的便利性与抽象层相结合,使他们能够减少数据分析平台的开发时间。
|
||||
**社区支持:**在开始使用 Cube.js 时,人们通常会从社区成员那里得到帮助(特别是在我们的 [Slack][4]),许多人提到社区支持是一个关键的入门资源。
|
||||
|
||||
|
||||
|
||||
访问[用户故事页面][5],阅读更多关于人们使用 Cube.js 的经验以及他们如何使用它。
|
||||
|
||||
### 开始使用
|
||||
|
||||
如果你想了解 Cube.js:
|
||||
|
||||
* 进入我们的[文档页面][6],点击**开始**,并按照指示在你的笔记本电脑或工作站上启动和运行 Cube.js。
|
||||
* 当你进入 [Developer Playground][7],你将能够生成数据模式,执行查询,并建立仪表盘,以看到 Cube.js 的运行。
|
||||
|
||||
|
||||
|
||||
在你启动和运行 Cube.js 之后,这里有一些有用的资源:
|
||||
|
||||
* [文档][6]:我们把大量的精力放在我们的文档上,因为它是开源社区的重要资源。我们还在我们的文档页面和 YouTube 频道的[入门播放列表][8]中添加了视频剪辑。
|
||||
* [Discourse][9]:Cube.js 论坛是最近增加的,社区成员可以在这里分享他们的使用案例、技巧和窍门等,这样我们就可以建立一个社区知识库。
|
||||
* [GitHub][10]: 你可以在这里找到 Cube.js 的代码,社区成员可以通过[问题页面][11]提交错误或功能请求。我们还在 GitHub 上发布了我们的[季度路线图][12],以便每个人都能看到我们正在进行的工作。
|
||||
* [每月社区电话会议][13]:我们在每个月的第二个星期三举行电话会议,讨论社区更新,展示功能演示,并邀请社区成员分享他们的使用案例。你可以在[社区电话会议页面][13]上找到电话会议的日程,你也可以在我们 YouTube 频道的[社区电话会议播放列表][14]上找到过去的电话会议录音。
|
||||
|
||||
|
||||
|
||||
就像任何好的开源项目一样,Cube.js 有许多软件贡献者。如果你想查看社区的拉取请求 (PR),请搜索带有 `pr:community` 标签的 PR。如果你想寻找你可以回答的问题,请搜索带有 `good first issue` 或者 `help wanted` 标签的问题。
|
||||
|
||||
我希望你试试 Cube.js。如果你有任何问题,请随时在下面留言或在 [Cube.js Slack][4] 上找我!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/6/cubejs
|
||||
|
||||
作者:[Ray Paik][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/rpaik
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
|
||||
[2]: https://cube.dev/
|
||||
[3]: https://opensource.com/sites/default/files/uploads/cubejs-architecture.png (Cube.js architecture)
|
||||
[4]: https://slack.cube.dev/
|
||||
[5]: https://cube.dev/blog/category/user-stories/
|
||||
[6]: https://cube.dev/docs/
|
||||
[7]: https://cube.dev/docs/dev-tools/dev-playground
|
||||
[8]: https://www.youtube.com/playlist?list=PLtdXl_QTQjpaXhVEefh7JCIdtYURoyWo9
|
||||
[9]: https://forum.cube.dev/
|
||||
[10]: https://github.com/cube-js/cube.js
|
||||
[11]: https://github.com/cube-js/cube.js/issues
|
||||
[12]: https://github.com/cube-js/cube.js/projects
|
||||
[13]: https://cube.dev/community-call/
|
||||
[14]: https://www.youtube.com/playlist?list=PLtdXl_QTQjpb1dHZCM09qKTsgvgqjSvc9
|
227
translated/tech/20210618 Systemd Timers for Scheduling Tasks.md
Normal file
227
translated/tech/20210618 Systemd Timers for Scheduling Tasks.md
Normal file
@ -0,0 +1,227 @@
|
||||
[#]: subject: (Systemd Timers for Scheduling Tasks)
|
||||
[#]: via: (https://fedoramagazine.org/systemd-timers-for-scheduling-tasks/)
|
||||
[#]: author: (Richard England https://fedoramagazine.org/author/rlengland/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (dcoliversun)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
||||
用于调度任务的 Systemd 定时器
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
Systemd 提供定时器有一段时间了,定时器替代了 _cron_ 功能,这一特性值得看看。本文将向你介绍在系统启动后如何使用 _systemd_ 中的定时器来运行任务,此后重复运行。这不是对 _systemd_ 的全面讨论,只是介绍这一特性。
|
||||
|
||||
### Cron、anacron 与 systemd:快速回顾
|
||||
|
||||
_Cron_ 可以将任务调度以几分钟到几个月或更长时间的粒度运行。设置起来相对简单,只需要一个配置文件。虽然配置过程有些深奥,但一般用户也可以使用。
|
||||
|
||||
|
||||
然而,如果您的系统在需要执行的时间没有运行,那么 _Cron_ 会失败。
|
||||
|
||||
_Anacron_ 克服了“系统不运行”问题。它确保你的系统再次启动时,任务将执行。虽然它旨在管理员使用,但有些系统允许普通用户访问 _Anacron_。
|
||||
|
||||
但是,_anacron_ 的执行频率不能低于每天一次。
|
||||
|
||||
_cron_ 和 _anacron_ 都存在执行上下文一致性的问题。必须注意任务运行时有效的环境与测试时使用的环境完全相同。必须提供相同的 shell、环境变量和路径。这意味着测试和调试有时会很困难。
|
||||
|
||||
_Systemd_ 定时器提供了 _cron_ 和 _anacron_ 的优点,允许调度到分钟粒度。确保在系统再次运行时执行任务,即使在预期的执行时间内任务处于关闭状态。对所有用户都可用。你可以在它将要运行的环境中测试和调试执行。
|
||||
|
||||
但是,配置更加复杂,至少需要两个配置文件。
|
||||
|
||||
如果你的 _cron_ and _anacron_ 配置很好地为你服务,那么可能没有理由改变。但是 _systemd_ 至少值得研究,因为它可以简化任何当前的 _cron_/_anacron_ 工作方式。
|
||||
|
||||
### 配置
|
||||
|
||||
_Systemd_ 定时器执行的函数至少需要两个文件。这两个是“<ruby>定时器<rt>timer unit</rt></ruby>”和“<ruby>系统服务<rt>service unit</rt></ruby>”。动作不仅仅是简单的命令,你还需要一个“作业”文件或脚本来执行必要的功能。
|
||||
|
||||
定时器文件定义调度表,而系统服务文件定义执行的任务。有关的更多详细信息参考 “man systemd.timer” 中提供的 .timer unit。服务单元的详细信息可在 “man systemd.service” 中找到。
|
||||
|
||||
There are several locations where unit files exist (listed in the man page). Perhaps the easiest location for the general user, however, is “~/.config/systemd/user”. Note that “user” here, is the literal string “user”.
|
||||
单元文件存在于几个位置(在 man page 中列出)。然而,对于普通用户来说,最容易找到的位置可能是 “~/.config/systemd/user”。请注意,这里的“用户”是字符串“用户”。
|
||||
|
||||
### 示例
|
||||
|
||||
此示例是一个创建用户调度作业而不是系统调度作业(以root用户身份运行)的简单示例。它将消息、日期和时间打印到文件中。
|
||||
|
||||
|
||||
1. 首先创建一个执行任务的 shell 脚本。在你的本地 “bin” 目录中创建它,例如在 “~/bin/schedule-test.sh” 中。
|
||||
|
||||
创建文件:
|
||||
|
||||
```
|
||||
touch ~/bin/schedule-test.sh
|
||||
```
|
||||
|
||||
然后将以下内容添加到你刚刚创建的文件中。
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
echo "This is only a test: $(date)" >> "$HOME/schedule-test-output.txt"
|
||||
```
|
||||
|
||||
记住赋予你的 shell 脚本执行权限。
|
||||
|
||||
2. 创建 .service 调用上面的脚本。在以下位置创建目录与文件:“~/.config/systemd/user/schedule-test.service
|
||||
|
||||
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=A job to test the systemd scheduler
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/home/<user>/bin/schedule-test.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
```
|
||||
|
||||
请注意<用户>应该是你的 @HOME 地址,但是资源文件路径名中的“用户”实际上是字符串“用户”。
|
||||
|
||||
_ExecStart_ 应该提供一个没有变量的绝对地址。例外情况是,对于 _用户_,您可以用 “%h” 替换 $HOME。换句话说,你可以使用:
|
||||
|
||||
```
|
||||
ExecStart=%h/bin/schedule-test.sh
|
||||
```
|
||||
|
||||
这仅用于用户文件。这不适用于系统服务,因为在系统环境中运行时 “%h” 总是返回 “/root”。其他替换可在“说明符”下的 “man systemd.unit” 中找到。因为它超出了本文的范围,所以这就是我们目前需要了解的关于说明符的全部内容。
|
||||
|
||||
3\. 创建一个 .timer 文件,该文件实际上调度你创建的 .service。在 .service 文件相同位置 “~/.config/systemd/user/schedule-test.timer” 创建它。请注意,文件名仅在拓展名上有所不同,例如一个是 “.service”,一个是 ".timer"。
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Schedule a message every 1 minute
|
||||
RefuseManualStart=no # Allow manual starts
|
||||
RefuseManualStop=no # Allow manual stops
|
||||
|
||||
[Timer]
|
||||
#Execute job if it missed a run due to machine being off
|
||||
Persistent=true
|
||||
#Run 120 seconds after boot for the first time
|
||||
OnBootSec=120
|
||||
#Run every 1 minute thereafter
|
||||
OnUnitActiveSec=60
|
||||
#File describing job to execute
|
||||
Unit=schedule-test.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
|
||||
请注意,.timer 文件使用了 “OnUnitActiveSec” 来指定调度表。“OnCalendar” 选项更加灵活。例如:
|
||||
|
||||
|
||||
```
|
||||
# run on the minute of every minute every hour of every day
|
||||
OnCalendar=*-*-* *:*:00
|
||||
# run on the hour of every hour of every day
|
||||
OnCalendar=*-*-* *:00:00
|
||||
# run every day
|
||||
OnCalendar=*-*-* 00:00:00
|
||||
# run 11:12:13 of the first or fifth day of any month of the year
|
||||
# 2012, but only if that day is a Thursday or Friday
|
||||
OnCalendar=Thu,Fri 2012-*-1,5 11:12:13
|
||||
```
|
||||
|
||||
有关 “OnCalendar” 的更多信息参见[这里][2]。
|
||||
|
||||
4\. 所有的部件都已就位,但你应该进行测试,以确保一切正常。首先,启用用户服务:
|
||||
|
||||
```
|
||||
$ systemctl --user enable schedule-test.service
|
||||
```
|
||||
|
||||
这将导致类似如下的输出:
|
||||
|
||||
```
|
||||
Created symlink /home/<user>/.config/systemd/user/default.target.wants/schedule-test.service → /home/<user>/.config/systemd/user/schedule-test.service.
|
||||
```
|
||||
|
||||
现在执行测试工作:
|
||||
|
||||
```
|
||||
$ systemctl --user start schedule-test.service
|
||||
```
|
||||
|
||||
检查你的输出文件($HOME/schedule-test-output.txt),确保你的脚本运行正常。应该只有一个条目,因为我们还没有启动定时器。必要时进行调试。如果你需要更改 .service 文件,而不是更改它调用的 shell 脚本,请不要忘记再次启用该服务。
|
||||
|
||||
5\. 一旦作业正常运行,通过为服务启用、启动用户定时器来实时调度作业:
|
||||
|
||||
```
|
||||
$ systemctl --user enable schedule-test.timer
|
||||
$ systemctl --user start schedule-test.timer
|
||||
```
|
||||
|
||||
请注意,你已经在上面的步骤4中启动、启用了服务,因此只需要为它启用、启动定时器。
|
||||
|
||||
启用命令会产生如下输出:
|
||||
|
||||
```
|
||||
Created symlink /home/<user>/.config/systemd/user/timers.target.wants/schedule-test.timer → /home/<user>/.config/systemd/user/schedule-test.timer.
|
||||
```
|
||||
|
||||
启动命令将返回命令行界面提示。
|
||||
|
||||
|
||||
### 其他操作
|
||||
|
||||
你可以检查和监控服务。如果你从系统服务收到错误,下面的第一个命令特别有用:
|
||||
|
||||
```
|
||||
$ systemctl --user status schedule-test
|
||||
$ systemctl --user list-unit-files
|
||||
```
|
||||
|
||||
手动停止服务:
|
||||
|
||||
```
|
||||
$ systemctl --user stop schedule-test.service
|
||||
```
|
||||
|
||||
永久停止并禁用定时器和服务,重新加载守护程序配置并重置任何失败通知:
|
||||
|
||||
```
|
||||
$ systemctl --user stop schedule-test.timer
|
||||
$ systemctl --user disable schedule-test.timer
|
||||
$ systemctl --user stop schedule-test.service
|
||||
$ systemctl --user disable schedule-test.service
|
||||
$ systemctl --user daemon-reload
|
||||
$ systemctl --user reset-failed
|
||||
```
|
||||
|
||||
### 总结
|
||||
|
||||
本文以 _systemd_ 定时器为出发点,但是 _systemd_ 的内容远不止于此。这篇文章应该为你提供一个基础。你可以从[Fedora Magazine systemd系列][3]开始探索更多。
|
||||
|
||||
参考 —— 更多阅读:
|
||||
|
||||
* man systemd.timer
|
||||
* man systemd.service
|
||||
* [Use systemd timers instead of cronjobs][4]
|
||||
* [Understanding and administering systemd][5]
|
||||
* <https://opensource.com/> 内有 systemd 快捷查询列表
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/systemd-timers-for-scheduling-tasks/
|
||||
|
||||
作者:[Richard England][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[dcoliversun](https://github.com/dcoliversun)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://fedoramagazine.org/author/rlengland/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2021/06/schedule_with_systemd_timer-816x345.jpg
|
||||
[2]: https://www.freedesktop.org/software/systemd/man/systemd.time.html#Calendar%20Events
|
||||
[3]: https://fedoramagazine.org/what-is-an-init-system/
|
||||
[4]: https://opensource.com/article/20/7/systemd-timers
|
||||
[5]: https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/
|
Loading…
Reference in New Issue
Block a user