计算机实验室之树莓派:课程 2 OK02
OK02 课程构建于 OK01 课程的基础上,通过不停地打开和关闭 OK 或 ACT LED 指示灯来实现闪烁。Media
via https://linux.cn/article-10478-1.html
OK02 课程构建于 OK01 课程的基础上,通过不停地打开和关闭 OK 或 ACT LED 指示灯来实现闪烁。Media
via https://linux.cn/article-10478-1.html
计算机实验室之树莓派:课程 2 OK02
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/26/120026xuuxhsb00kqsubkk.jpg">Media</a>OK02 课程构建于 OK01 课程的基础上,通过不停地打开和关闭 OK 或 ACT LED 指示灯来实现闪烁。假设你已经有了 <a href="https://linux.cn/article-10458-1.html">课程 1:OK01</a> 操作系统的代码,它将是这一节课的基础。1、等待等待是操作系统开发中非常有用的部分。操作系统经常发现自己无事可做,以及必须要延迟。在这个例子中,我们希望通过等待,让 LED 灯打开、关闭的闪烁可以看到。如果你只是打开和关闭它,你将看到这个视觉效果,因为计算机每秒种可以打开和关闭它好几千次(LCTT 译注:视觉暂留效应会使你难以发觉它的闪烁)。在后面的课程中,我们将看到精确的等待,但是现在,我们只要简单地去消耗时间就足够了。<pre class="prettyprint linenums">mov r2,#0x3F0000wait1$:sub r2,#1cmp r2,#0bne wait1$</pre>sub reg,#val 从寄存器 reg 中的值上减去数字 valcmp reg,#val 将寄存器中的值与数字 val 进行比较。如果最后的比较结果是不相等,那么执行后缀了 ne 的 b 命令。上面是一个很常见的产生延迟的代码片段,由于每个树莓派基本上是相同的,所以产生的延迟大致也是相同的。它的工作原理是,使用一个 mov 命令将值 3F000016 推入到寄存器 r2 中,然后将这个值减 1,直到这个值减到 0 为止。在这里使用了三个新命令 sub、 cmp 和 bne。sub 是减法命令,它只是简单地从第一个参数中的值减去第二个参数中的值。cmp 是个很有趣的…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/26/120026xuuxhsb00kqsubkk.jpg">Media</a>OK02 课程构建于 OK01 课程的基础上,通过不停地打开和关闭 OK 或 ACT LED 指示灯来实现闪烁。假设你已经有了 <a href="https://linux.cn/article-10458-1.html">课程 1:OK01</a> 操作系统的代码,它将是这一节课的基础。1、等待等待是操作系统开发中非常有用的部分。操作系统经常发现自己无事可做,以及必须要延迟。在这个例子中,我们希望通过等待,让 LED 灯打开、关闭的闪烁可以看到。如果你只是打开和关闭它,你将看到这个视觉效果,因为计算机每秒种可以打开和关闭它好几千次(LCTT 译注:视觉暂留效应会使你难以发觉它的闪烁)。在后面的课程中,我们将看到精确的等待,但是现在,我们只要简单地去消耗时间就足够了。<pre class="prettyprint linenums">mov r2,#0x3F0000wait1$:sub r2,#1cmp r2,#0bne wait1$</pre>sub reg,#val 从寄存器 reg 中的值上减去数字 valcmp reg,#val 将寄存器中的值与数字 val 进行比较。如果最后的比较结果是不相等,那么执行后缀了 ne 的 b 命令。上面是一个很常见的产生延迟的代码片段,由于每个树莓派基本上是相同的,所以产生的延迟大致也是相同的。它的工作原理是,使用一个 mov 命令将值 3F000016 推入到寄存器 r2 中,然后将这个值减 1,直到这个值减到 0 为止。在这里使用了三个新命令 sub、 cmp 和 bne。sub 是减法命令,它只是简单地从第一个参数中的值减去第二个参数中的值。cmp 是个很有趣的…
Fedora 28 服务器版的模块化
Fedora 的模块化从两个方面解决了这个问题。Fedora 仍将根据其传统政策发布标准版本。但是,它还将提供一组模块给出流行软件的限定替代版本。Media
via https://linux.cn/article-10479-1.html
Fedora 的模块化从两个方面解决了这个问题。Fedora 仍将根据其传统政策发布标准版本。但是,它还将提供一组模块给出流行软件的限定替代版本。Media
via https://linux.cn/article-10479-1.html
Fedora 28 服务器版的模块化
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/26/155921x1ju12dpxi0mz4aj.jpg">Media</a>什么是模块化所有开源发行版都面临的一个经典难题是“太快/太慢”的问题。用户安装操作系统是为了能够使用其应用程序。像 Fedora 这样的全面的发行版在大量可用软件方面有其优势和劣势。虽然有用户想要的软件包,但可能无法使用其所需的版本。以下是模块化Modularity如何帮助解决该问题。对于某些用户,Fedora 有时升级得太快。其快速发布周期以及尽可能提供最新稳定软件的愿望可能导致与应用程序的兼容性下降。如果因为 Fedora 将 Web 框架升级为不兼容的版本而导致用户无法运行 Web 应用程序,则会非常令人沮丧。对“太快”问题的经典回答是“Fedora 应该有一个 LTS 版本。”然而,这种方法只能解决问题的一半,并使这个难题的另一面变得更糟。有时候 Fedora 对某些用户而言又升级速度太慢。例如,Fedora 的发布可能与其它想要的软件的发布时间不匹配。一旦 Fedora 版本宣布稳定,打包者必须遵守 <a href="https://fedoraproject.org/wiki/Updates_Policy#Stable_Releases">稳定更新政策</a> 并且不能在系统中引入不兼容的更改。Fedora 的模块化从两个方面解决了这个问题。Fedora 仍将根据其传统政策发布标准版本。但是,它还将提供一组模块给出流行软件的限定替代版本。那些处于“太快”阵营的人仍然可以享受 Fedora 的新内核和其它通用平台增强功能。此外,他们仍然可以访问支持其应…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/26/155921x1ju12dpxi0mz4aj.jpg">Media</a>什么是模块化所有开源发行版都面临的一个经典难题是“太快/太慢”的问题。用户安装操作系统是为了能够使用其应用程序。像 Fedora 这样的全面的发行版在大量可用软件方面有其优势和劣势。虽然有用户想要的软件包,但可能无法使用其所需的版本。以下是模块化Modularity如何帮助解决该问题。对于某些用户,Fedora 有时升级得太快。其快速发布周期以及尽可能提供最新稳定软件的愿望可能导致与应用程序的兼容性下降。如果因为 Fedora 将 Web 框架升级为不兼容的版本而导致用户无法运行 Web 应用程序,则会非常令人沮丧。对“太快”问题的经典回答是“Fedora 应该有一个 LTS 版本。”然而,这种方法只能解决问题的一半,并使这个难题的另一面变得更糟。有时候 Fedora 对某些用户而言又升级速度太慢。例如,Fedora 的发布可能与其它想要的软件的发布时间不匹配。一旦 Fedora 版本宣布稳定,打包者必须遵守 <a href="https://fedoraproject.org/wiki/Updates_Policy#Stable_Releases">稳定更新政策</a> 并且不能在系统中引入不兼容的更改。Fedora 的模块化从两个方面解决了这个问题。Fedora 仍将根据其传统政策发布标准版本。但是,它还将提供一组模块给出流行软件的限定替代版本。那些处于“太快”阵营的人仍然可以享受 Fedora 的新内核和其它通用平台增强功能。此外,他们仍然可以访问支持其应…
tmux:适用于重度命令行 Linux 用户的终端复用器
它允许用户在单个窗口中创建或启用多个终端(垂直或水平),当你处理不同的问题时,可以在单个窗口中轻松访问和控制它们。Media
via https://linux.cn/article-10480-1.html
它允许用户在单个窗口中创建或启用多个终端(垂直或水平),当你处理不同的问题时,可以在单个窗口中轻松访问和控制它们。Media
via https://linux.cn/article-10480-1.html
tmux:适用于重度命令行 Linux 用户的终端复用器
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/115721l0rp0cn3ptq1u91c.jpg">Media</a>tmux 是终端复用器terminal multiplexer的缩写,它允许用户在单个窗口中创建或启用多个终端(垂直或水平),当你处理不同的问题时,可以在单个窗口中轻松访问和控制它们。它使用客户端-服务器模型,允许在用户之间共享会话,也可以将终端连接到 tmux 会话。我们可以根据需要轻松移动或重新排列虚拟控制台。终端会话可以从一个虚拟控制台自由切换到另一个。tmux 依赖于 libevent 和 ncurses 库。tmux 在屏幕底部提供了一个状态行,它显示当前 tmux 会话的有关信息,例如当前窗口编号、窗口名称、用户名、主机名、当前时间和日期。启动 tmux 时,它会在一个单独窗口上创建一个新的会话,并将其显示在屏幕上。它允许用户在同一个会话中创建任意数量的窗口。许多人说它类似于 screen,但我不这么认为,因为它提供了许多配置选项。<strong>注意:</strong> Ctrl+b 是 tmux 中的默认命令前缀,因此,要在 tmux 中执行任何操作,你必须先输入该前缀然后输入所需的选项。tmux 特性创建任意数量的窗口在一个窗口中创建任意数量的窗格它允许垂直和水平分割分离并重新连接窗口客户端-服务器架构,这允许用户之间共享会话tmux 提供许多配置技巧<strong>建议阅读:</strong><a href="https://www.2daygeek.com/tmate-instantly-share-your-terminal-session-to-anyone-in-seconds/">tmate - 马上与其他人分享你的终端会话</a><a href="https:/…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/115721l0rp0cn3ptq1u91c.jpg">Media</a>tmux 是终端复用器terminal multiplexer的缩写,它允许用户在单个窗口中创建或启用多个终端(垂直或水平),当你处理不同的问题时,可以在单个窗口中轻松访问和控制它们。它使用客户端-服务器模型,允许在用户之间共享会话,也可以将终端连接到 tmux 会话。我们可以根据需要轻松移动或重新排列虚拟控制台。终端会话可以从一个虚拟控制台自由切换到另一个。tmux 依赖于 libevent 和 ncurses 库。tmux 在屏幕底部提供了一个状态行,它显示当前 tmux 会话的有关信息,例如当前窗口编号、窗口名称、用户名、主机名、当前时间和日期。启动 tmux 时,它会在一个单独窗口上创建一个新的会话,并将其显示在屏幕上。它允许用户在同一个会话中创建任意数量的窗口。许多人说它类似于 screen,但我不这么认为,因为它提供了许多配置选项。<strong>注意:</strong> Ctrl+b 是 tmux 中的默认命令前缀,因此,要在 tmux 中执行任何操作,你必须先输入该前缀然后输入所需的选项。tmux 特性创建任意数量的窗口在一个窗口中创建任意数量的窗格它允许垂直和水平分割分离并重新连接窗口客户端-服务器架构,这允许用户之间共享会话tmux 提供许多配置技巧<strong>建议阅读:</strong><a href="https://www.2daygeek.com/tmate-instantly-share-your-terminal-session-to-anyone-in-seconds/">tmate - 马上与其他人分享你的终端会话</a><a href="https:/…
如何即时设置一个静态文件服务器
这个简单的实用程序会立即将你的系统变成一个静态文件服务器,允许你通过网络提供文件。你可以从任何设备访问这些文件,而不用担心它们的操作系统是什么。你所需的只是一个 Web 浏览器。Media
via https://linux.cn/article-10481-1.html
这个简单的实用程序会立即将你的系统变成一个静态文件服务器,允许你通过网络提供文件。你可以从任何设备访问这些文件,而不用担心它们的操作系统是什么。你所需的只是一个 Web 浏览器。Media
via https://linux.cn/article-10481-1.html
如何即时设置一个静态文件服务器
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/121220epj93339o3dq51qj.jpg">Media</a>曾经想通过网络共享你的文件或项目,但不知道怎么做?别担心!这里有一个名为 <strong>serve</strong> 的简单实用程序,可以通过网络即时共享你的文件。这个简单的实用程序会立即将你的系统变成一个静态文件服务器,允许你通过网络提供文件。你可以从任何设备访问这些文件,而不用担心它们的操作系统是什么。你所需的只是一个 Web 浏览器。这个实用程序还可以用来服务静态网站。它以前称为 “list” 或 “micri-list”,但现在名称已改为 “serve”(提供),这更适合这个实用程序的目的。使用 Serve 来设置一个静态文件服务器要安装 serve,首先你需要安装 NodeJS 和 NPM。参考以下链接在 Linux 中安装 NodeJS 和 NPM。<a href="https://www.ostechnix.com/install-node-js-linux/">如何在 Linux 上安装 NodeJS</a>NodeJS 和 NPM 安装完成后,运行以下命令来安装 serve:<pre class="prettyprint linenums">$ npm install -g serve</pre>完成!现在是时候 serve 文件或文件夹了。使用 serve 的典型语法是:<pre class="prettyprint linenums">$ serve [options] <path-to-files-or-folders></pre>提供特定文件或文件夹例如,让我们共享 Documents 目录里的内容。为此,运行:<pre class="prettyprint linenums">$ serve Documents/</pre>示例输出:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/121258a9exdceedbfc27bh.png">Media</a>正如你在上图中看到的,给定目录的内容已通过两个 URL 提供网络支持。要从本地系统访问内容,你只需打开 Web 浏览器,输入 URL http://localhost:5000/:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/121259dylfy0znnp6wy081.png">Media</a>serve 实用程序以简单的布局显示给定目ঈ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/121220epj93339o3dq51qj.jpg">Media</a>曾经想通过网络共享你的文件或项目,但不知道怎么做?别担心!这里有一个名为 <strong>serve</strong> 的简单实用程序,可以通过网络即时共享你的文件。这个简单的实用程序会立即将你的系统变成一个静态文件服务器,允许你通过网络提供文件。你可以从任何设备访问这些文件,而不用担心它们的操作系统是什么。你所需的只是一个 Web 浏览器。这个实用程序还可以用来服务静态网站。它以前称为 “list” 或 “micri-list”,但现在名称已改为 “serve”(提供),这更适合这个实用程序的目的。使用 Serve 来设置一个静态文件服务器要安装 serve,首先你需要安装 NodeJS 和 NPM。参考以下链接在 Linux 中安装 NodeJS 和 NPM。<a href="https://www.ostechnix.com/install-node-js-linux/">如何在 Linux 上安装 NodeJS</a>NodeJS 和 NPM 安装完成后,运行以下命令来安装 serve:<pre class="prettyprint linenums">$ npm install -g serve</pre>完成!现在是时候 serve 文件或文件夹了。使用 serve 的典型语法是:<pre class="prettyprint linenums">$ serve [options] <path-to-files-or-folders></pre>提供特定文件或文件夹例如,让我们共享 Documents 目录里的内容。为此,运行:<pre class="prettyprint linenums">$ serve Documents/</pre>示例输出:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/121258a9exdceedbfc27bh.png">Media</a>正如你在上图中看到的,给定目录的内容已通过两个 URL 提供网络支持。要从本地系统访问内容,你只需打开 Web 浏览器,输入 URL http://localhost:5000/:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/121259dylfy0znnp6wy081.png">Media</a>serve 实用程序以简单的布局显示给定目ঈ…
微型计算机的始祖:Altair 8800
这之后的微型计算机基本都是在对 Altair 改进,使得它更易用。从某种意义上来说,它们只是更复杂的 Altair。Altair,一个野兽派的极简作品,却为之后的许多微型计算机打下了铺垫。Media
via https://linux.cn/article-10482-1.html
这之后的微型计算机基本都是在对 Altair 改进,使得它更易用。从某种意义上来说,它们只是更复杂的 Altair。Altair,一个野兽派的极简作品,却为之后的许多微型计算机打下了铺垫。Media
via https://linux.cn/article-10482-1.html
微型计算机的始祖:Altair 8800
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/201947fd5sma9nax2qilst.jpg">Media</a>《大众电子Popular Electronics》的订阅者们是个复杂的群体,该杂志的编辑 Arthur Salsberg 不得不在 <a href="https://www.americanradiohistory.com/Archive-Poptronics/70s/1974/Poptronics-1974-12.pdf">1974 年 12 月刊</a> 中的前言部分指出这点。此前,杂志编辑组曾收到了对《如何搭建家庭媒体中心》文章的抱怨,称这篇文章激励了许多业余电视爱好者走出去,削弱了专业修理人员存在的必要性,这对许多人的电视造成了极大伤害。Salsberg 认为,这个担忧的产生可能是因为大家不清楚《大众电子》读者们的真实水平。他解释道,据杂志内部调查的数据显示,52% 的订阅者都是某方面的电子专家,并且其中的 150,000 人在最近 60 天之内都修过电视。此外,订阅者们平均在电子产品上花费了 470 美金(2018 年则是 3578 美金),并且他们拥有万用表、真空管伏特计、电子管测试仪、晶体管测试仪、射频讯号产生器和示波器等必要设备。“《大众电子》的读者们并不全都是新手。”Salsberg 总结道。熟悉《大众电子》的人居然会质疑它的订阅者,这令我十分吃惊。不过最近 60 天我的确没修过电视。我的电脑对我来说就是一块铝,我甚至没把它拆开看过。1974 年 12 月的《大众电子》刊登的像《驻波比是什么以及如何处理它》和《对万用表的测试》之类的特色文章,甚至连广告都令人生畏。它们中有个看起来像某种立体…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/201947fd5sma9nax2qilst.jpg">Media</a>《大众电子Popular Electronics》的订阅者们是个复杂的群体,该杂志的编辑 Arthur Salsberg 不得不在 <a href="https://www.americanradiohistory.com/Archive-Poptronics/70s/1974/Poptronics-1974-12.pdf">1974 年 12 月刊</a> 中的前言部分指出这点。此前,杂志编辑组曾收到了对《如何搭建家庭媒体中心》文章的抱怨,称这篇文章激励了许多业余电视爱好者走出去,削弱了专业修理人员存在的必要性,这对许多人的电视造成了极大伤害。Salsberg 认为,这个担忧的产生可能是因为大家不清楚《大众电子》读者们的真实水平。他解释道,据杂志内部调查的数据显示,52% 的订阅者都是某方面的电子专家,并且其中的 150,000 人在最近 60 天之内都修过电视。此外,订阅者们平均在电子产品上花费了 470 美金(2018 年则是 3578 美金),并且他们拥有万用表、真空管伏特计、电子管测试仪、晶体管测试仪、射频讯号产生器和示波器等必要设备。“《大众电子》的读者们并不全都是新手。”Salsberg 总结道。熟悉《大众电子》的人居然会质疑它的订阅者,这令我十分吃惊。不过最近 60 天我的确没修过电视。我的电脑对我来说就是一块铝,我甚至没把它拆开看过。1974 年 12 月的《大众电子》刊登的像《驻波比是什么以及如何处理它》和《对万用表的测试》之类的特色文章,甚至连广告都令人生畏。它们中有个看起来像某种立体…
使用 Fedora 28 中的模块
最近 Fedora Magazine 中题为 Fedora 28 服务器版的模块化在解释 Fedora 28 中的模块化方面做得很好。它还给出了一些示例模块并解释了它们解决的问题。本文将其中一个模块用于实际应用,包括使用模块安装设置 Review Board 3.0。Media
via https://linux.cn/article-10483-1.html
最近 Fedora Magazine 中题为 Fedora 28 服务器版的模块化在解释 Fedora 28 中的模块化方面做得很好。它还给出了一些示例模块并解释了它们解决的问题。本文将其中一个模块用于实际应用,包括使用模块安装设置 Review Board 3.0。Media
via https://linux.cn/article-10483-1.html
使用 Fedora 28 中的模块
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/205100merrbu3z93khhm5z.jpg">Media最近 Fedora Magazine 中题为 <a href="https://linux.cn/article-10479-1.html">Fedora 28 服务器版的模块化在解释 Fedora 28 中的模块化方面做得很好。它还给出了一些示例模块并解释了它们解决的问题。本文将其中一个模块用于实际应用,包括使用模块安装设置 Review Board 3.0。入门想要继续并使用模块,你需要一个 <a href="https://getfedora.org/server/">Fedora 28 服务器版并拥有 <a href="https://fedoramagazine.org/howto-use-sudo/">sudo 管理权限。另外,运行此命令以确保系统上的所有软件包都是最新的:<pre class="prettyprint linenums">sudo dnf -y update</pre>虽然你可以在 Fedora 28 非服务器版本上使用模块,但请注意<a href="https://fedoramagazine.org/modularity-fedora-28-server-edition/#comment-476696">上一篇文章评论中提到的警告。检查模块首先,看看 Fedora 28 可用的模块。运行以下命令:<pre class="prettyprint linenums">dnf module list</pre>输出列出了一组模块,这些模块显示了每个模块的关联的流、版本和可用安装配置文件。模块流旁边的 [d] 表示安装命名模块时使用的默认流。输出还显示大多数模块都有名为 default 的配置文件。这不是巧合,因为 default 是默认配置文件使用的名称。要查看所有这些模块的来源,请运行:<pre class="prettyprint linenums">dnf repolist</pre>与通常的 <a href="https://fedoraproject.org/wiki/Repositories">fedora 和更新包仓库一起,输出还显示了 fedora-modular 和 updates-modular 仓库。介绍声明你将设置 Review Board 3.0。也许名为 reviewboard 的模块在之前的输出中引起了你的注意。接下来,要获取有关该模块的一些详细信息,请运行以下命令:<pre class="prettyprint linenums">dnf module info reviewboard</p…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/205100merrbu3z93khhm5z.jpg">Media最近 Fedora Magazine 中题为 <a href="https://linux.cn/article-10479-1.html">Fedora 28 服务器版的模块化在解释 Fedora 28 中的模块化方面做得很好。它还给出了一些示例模块并解释了它们解决的问题。本文将其中一个模块用于实际应用,包括使用模块安装设置 Review Board 3.0。入门想要继续并使用模块,你需要一个 <a href="https://getfedora.org/server/">Fedora 28 服务器版并拥有 <a href="https://fedoramagazine.org/howto-use-sudo/">sudo 管理权限。另外,运行此命令以确保系统上的所有软件包都是最新的:<pre class="prettyprint linenums">sudo dnf -y update</pre>虽然你可以在 Fedora 28 非服务器版本上使用模块,但请注意<a href="https://fedoramagazine.org/modularity-fedora-28-server-edition/#comment-476696">上一篇文章评论中提到的警告。检查模块首先,看看 Fedora 28 可用的模块。运行以下命令:<pre class="prettyprint linenums">dnf module list</pre>输出列出了一组模块,这些模块显示了每个模块的关联的流、版本和可用安装配置文件。模块流旁边的 [d] 表示安装命名模块时使用的默认流。输出还显示大多数模块都有名为 default 的配置文件。这不是巧合,因为 default 是默认配置文件使用的名称。要查看所有这些模块的来源,请运行:<pre class="prettyprint linenums">dnf repolist</pre>与通常的 <a href="https://fedoraproject.org/wiki/Repositories">fedora 和更新包仓库一起,输出还显示了 fedora-modular 和 updates-modular 仓库。介绍声明你将设置 Review Board 3.0。也许名为 reviewboard 的模块在之前的输出中引起了你的注意。接下来,要获取有关该模块的一些详细信息,请运行以下命令:<pre class="prettyprint linenums">dnf module info reviewboard</p…
开始使用 WTF 吧,一款终端仪表板
使用 WTF 将关键信息置于视野之中,这个系列中第六个开源工具可使你在 2019 年更有工作效率。Media
via https://linux.cn/article-10484-1.html
使用 WTF 将关键信息置于视野之中,这个系列中第六个开源工具可使你在 2019 年更有工作效率。Media
via https://linux.cn/article-10484-1.html
开始使用 WTF 吧,一款终端仪表板
使用 WTF 将关键信息置于视野之中,这个系列中第六个开源工具可使你在 2019 年更有工作效率。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/232933zq4rx3rrqxqb5k6o.png">Media</a>每年年初似乎都有疯狂的冲动想提高工作效率。新年的决心,渴望开启新的一年,当然,“抛弃旧的,拥抱新的”的态度促成了这一切。通常这时的建议严重偏向闭源和专有软件,但事实上并不用这样。这是我挑选出的 19 个新的(或者对你而言新的)开源项目来帮助你在 2019 年更有效率。WTF曾几何时,我在一家使用<a href="https://en.wikipedia.org/wiki/Bloomberg_Terminal">彭博终端</a>的公司做咨询。我的反应是,“哇,在一个屏幕上显示的信息太多了。” 然而,现在,当我正在工作并且打开多个网页、仪表板和控制台应用程序以试图跟踪事物时,我似乎无法在屏幕上获得足够的信息。虽然 <a href="https://github.com/tmux/tmux">tmux</a> 和 <a href="https://www.gnu.org/software/screen/">Screen</a> 可以进行分屏和打开多个窗口,但它们很难设置,并且它们的键绑定可能需要一段时间才能学会(还经常与其他应用程序冲突)。<a href="https://wtfutil.com/">WTF</a> 是一个简单的、易于配置的终端信息仪表板。它是用 <a href="https://golang.org/">Go</a> 语言编写的,使用 YAML 配置文件,可以从几个不同的源提取数据。所有的数据源都包含在<a href="https://wtfutil.com/posts/modules/">模块</a>中,包括天气、问题跟踪器、日期和时间、Google 表格以及更多内容。有些窗格是交互式的,有些窗格只是使ī…
使用 WTF 将关键信息置于视野之中,这个系列中第六个开源工具可使你在 2019 年更有工作效率。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/27/232933zq4rx3rrqxqb5k6o.png">Media</a>每年年初似乎都有疯狂的冲动想提高工作效率。新年的决心,渴望开启新的一年,当然,“抛弃旧的,拥抱新的”的态度促成了这一切。通常这时的建议严重偏向闭源和专有软件,但事实上并不用这样。这是我挑选出的 19 个新的(或者对你而言新的)开源项目来帮助你在 2019 年更有效率。WTF曾几何时,我在一家使用<a href="https://en.wikipedia.org/wiki/Bloomberg_Terminal">彭博终端</a>的公司做咨询。我的反应是,“哇,在一个屏幕上显示的信息太多了。” 然而,现在,当我正在工作并且打开多个网页、仪表板和控制台应用程序以试图跟踪事物时,我似乎无法在屏幕上获得足够的信息。虽然 <a href="https://github.com/tmux/tmux">tmux</a> 和 <a href="https://www.gnu.org/software/screen/">Screen</a> 可以进行分屏和打开多个窗口,但它们很难设置,并且它们的键绑定可能需要一段时间才能学会(还经常与其他应用程序冲突)。<a href="https://wtfutil.com/">WTF</a> 是一个简单的、易于配置的终端信息仪表板。它是用 <a href="https://golang.org/">Go</a> 语言编写的,使用 YAML 配置文件,可以从几个不同的源提取数据。所有的数据源都包含在<a href="https://wtfutil.com/posts/modules/">模块</a>中,包括天气、问题跟踪器、日期和时间、Google 表格以及更多内容。有些窗格是交互式的,有些窗格只是使ī…
Hello World 的由来
没有人能确切说出为什么 Hello World 能在快速创新著称的行业中经受住时间的考验,但是它又确实留下来了。Media
via https://linux.cn/article-10485-1.html
没有人能确切说出为什么 Hello World 能在快速创新著称的行业中经受住时间的考验,但是它又确实留下来了。Media
via https://linux.cn/article-10485-1.html
Hello World 的由来
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/28/223412kzqz3mzq1pq39pqd.jpg">Media</a>资深软件开发人员都知道 <a href="http://en.wikipedia.org/wiki/%22Hello,_World!%22_program">Hello World</a> 程序,这是一个能在设备显示器上输出某种变体的 “Hello, World!” 的程序,是学习编程的第一步。在这个编程中只涉及到一些最基本语法的程序,可以用大多数编程语言了来编写。事实上,路易斯安纳理工学院计算机协会(ACM)在最近统计<a href="http://whatis.techtarget.com/definition/Hello-World">发现</a>这个程序至少有 204 个版本。传统意义上,Hello World 程序是用于说明编码过程是如何工作的,以及确保编程语言或系统能正常运行。它们经常是新手程序员学习的第一个程序,因为即使是经验很少或者没有经验的人也能轻松正确的执行 Hello World。首先,Hello World 简单,这就是为什么它经常被用做程序执行成功的晴雨表。如果 Hello World 在该框架中无法有效执行,那么其它更复杂的程序中也可能会失败。正如 <a href="http://www.win-vector.com/blog/2008/02/hello-world-an-instance-rhetoric-in-computer-science/">Win-Vector</a> 的一位专家所说,Hello World 实际上是一个对抗性程序。“该作者还说道,‘你的计算机系统能不能工作并不是一目了然,除非我能看到它至少能打印一行文字,否则我不会在上面浪费太多时间。’” Win-Vector 博主 John Mount 说。但是这个两词短语在计算机科学领域有着重大的影响。以 Hello World 为基础,新手程序员可以轻松的理解计算机科学原理或元素,而拥有多年编码经验的程序员可以用它来学习编程语言的工Ë…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/28/223412kzqz3mzq1pq39pqd.jpg">Media</a>资深软件开发人员都知道 <a href="http://en.wikipedia.org/wiki/%22Hello,_World!%22_program">Hello World</a> 程序,这是一个能在设备显示器上输出某种变体的 “Hello, World!” 的程序,是学习编程的第一步。在这个编程中只涉及到一些最基本语法的程序,可以用大多数编程语言了来编写。事实上,路易斯安纳理工学院计算机协会(ACM)在最近统计<a href="http://whatis.techtarget.com/definition/Hello-World">发现</a>这个程序至少有 204 个版本。传统意义上,Hello World 程序是用于说明编码过程是如何工作的,以及确保编程语言或系统能正常运行。它们经常是新手程序员学习的第一个程序,因为即使是经验很少或者没有经验的人也能轻松正确的执行 Hello World。首先,Hello World 简单,这就是为什么它经常被用做程序执行成功的晴雨表。如果 Hello World 在该框架中无法有效执行,那么其它更复杂的程序中也可能会失败。正如 <a href="http://www.win-vector.com/blog/2008/02/hello-world-an-instance-rhetoric-in-computer-science/">Win-Vector</a> 的一位专家所说,Hello World 实际上是一个对抗性程序。“该作者还说道,‘你的计算机系统能不能工作并不是一目了然,除非我能看到它至少能打印一行文字,否则我不会在上面浪费太多时间。’” Win-Vector 博主 John Mount 说。但是这个两词短语在计算机科学领域有着重大的影响。以 Hello World 为基础,新手程序员可以轻松的理解计算机科学原理或元素,而拥有多年编码经验的程序员可以用它来学习编程语言的工Ë…
如何为你的 Linux 终端带来好运
使用 fortune 实用程序将名言和俏皮话带到命令行。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/28/231312e2rczlc6l6a8wlw2.png">Media</a>这是 12 月,如果你还没有找到一款能激发你灵感的<a href="https://opensource.com/article/16/11/7-tech-advent-calendars-holiday-season">科技降临节日历</a>,那么,也许这个系列可以。从现在到 24 日,每天我们都会为你带来一个不同的 Linux 命令行玩具。你可能会问,什么是命令行玩具?它可能是一个游戏或任何简单的娱乐程序,为你的终端带来一点点快乐。你可能之前已经看过其中的一些,我们希望你也能发现一些新的东西。不管怎样,我们都希望你在关注时保有乐趣。今天的玩具是 fortune,它很古老。它的版本可以追溯到 1980 年,当时它包含在 Unix 中。我在 Fedora 中安装的版本是在 BSD 许可下提供的,我可以使用以下命令获取它。(LCTT 译注:fortune 这个命令得名于 fortune cookies,是流行于西方的中餐馆的一种脆饼干,里面包含格言、幸运数字等。)<pre class="prettyprint linenums">$ sudo dnf install fortune-mod -y</pre>你的发行版可能会有所不同。在某些情况下,你可能需要在 fortune 命令之外单独安装那些“幸运饼干”(尝试在你的包管理器中搜索 “fortunes”)。你还可以在 <a href="https://github.com/shlomif/fortune-mod">GitHub</a> 上查看它的源代码,然后,只需运行 fortune 即可获得好运。<pre class="prettyprint linenums">$ fortune"Time is an illusion. Lunchtime doubly so."-- Ford Prefect, _Hitchhiker's Guide to the Galaxy_</pre>那么,你为什么会在终端上需要 fortune 呢?当然是为了好玩啦。也许你想将它们添加到系统上的每天&…
使用 fortune 实用程序将名言和俏皮话带到命令行。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/28/231312e2rczlc6l6a8wlw2.png">Media</a>这是 12 月,如果你还没有找到一款能激发你灵感的<a href="https://opensource.com/article/16/11/7-tech-advent-calendars-holiday-season">科技降临节日历</a>,那么,也许这个系列可以。从现在到 24 日,每天我们都会为你带来一个不同的 Linux 命令行玩具。你可能会问,什么是命令行玩具?它可能是一个游戏或任何简单的娱乐程序,为你的终端带来一点点快乐。你可能之前已经看过其中的一些,我们希望你也能发现一些新的东西。不管怎样,我们都希望你在关注时保有乐趣。今天的玩具是 fortune,它很古老。它的版本可以追溯到 1980 年,当时它包含在 Unix 中。我在 Fedora 中安装的版本是在 BSD 许可下提供的,我可以使用以下命令获取它。(LCTT 译注:fortune 这个命令得名于 fortune cookies,是流行于西方的中餐馆的一种脆饼干,里面包含格言、幸运数字等。)<pre class="prettyprint linenums">$ sudo dnf install fortune-mod -y</pre>你的发行版可能会有所不同。在某些情况下,你可能需要在 fortune 命令之外单独安装那些“幸运饼干”(尝试在你的包管理器中搜索 “fortunes”)。你还可以在 <a href="https://github.com/shlomif/fortune-mod">GitHub</a> 上查看它的源代码,然后,只需运行 fortune 即可获得好运。<pre class="prettyprint linenums">$ fortune"Time is an illusion. Lunchtime doubly so."-- Ford Prefect, _Hitchhiker's Guide to the Galaxy_</pre>那么,你为什么会在终端上需要 fortune 呢?当然是为了好玩啦。也许你想将它们添加到系统上的每天&…
使用 PyHamcrest 执行健壮的单元测试
使用此框架编写断言,提高开发测试的准确性。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/003322zr855ene5unu00un.jpg">Media</a>在<a href="https://martinfowler.com/bliki/TestPyramid.html">测试金字塔</a>的底部是单元测试。单元测试每次只测试一个代码单元,通常是一个函数或方法。通常,设计单个单元测试是为了测试通过一个函数或特定分支的特定执行流程,这使得将失败的单元测试和导致失败的 bug 对应起来变得容易。理想情况下,单元测试很少使用或不使用外部资源,从而隔离它们并使它们更快。单元测试套件通过在开发过程的早期发现问题来帮助维护高质量的产品。有效的单元测试可以在代码离开开发人员机器之前捕获 bug,或者至少可以在特定分支上的持续集成环境中捕获 bug。这标志着好的和坏的单元测试之间的区别:<em>好的</em>测试通过尽早捕获 bug 并使测试更快来提高开发人员的生产力。<em>坏的</em>测试降低了开发人员的工作效率。当测试<em>附带的特性</em>时,生产率通常会降低。当代码更改时测试会失败,即使它仍然是正确的。发生这种情况是因为输出的不同,但在某种程度上是因为它不是函数契约function’s contract的一部分。因此,一个好的单元测试可以帮助执行函数所提交的契约。如果单元测试中断,那意味着该契约被违反了,应该(通过更改文档和测试)明确修改,或者(通过修复代码并保…
使用此框架编写断言,提高开发测试的准确性。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/003322zr855ene5unu00un.jpg">Media</a>在<a href="https://martinfowler.com/bliki/TestPyramid.html">测试金字塔</a>的底部是单元测试。单元测试每次只测试一个代码单元,通常是一个函数或方法。通常,设计单个单元测试是为了测试通过一个函数或特定分支的特定执行流程,这使得将失败的单元测试和导致失败的 bug 对应起来变得容易。理想情况下,单元测试很少使用或不使用外部资源,从而隔离它们并使它们更快。单元测试套件通过在开发过程的早期发现问题来帮助维护高质量的产品。有效的单元测试可以在代码离开开发人员机器之前捕获 bug,或者至少可以在特定分支上的持续集成环境中捕获 bug。这标志着好的和坏的单元测试之间的区别:<em>好的</em>测试通过尽早捕获 bug 并使测试更快来提高开发人员的生产力。<em>坏的</em>测试降低了开发人员的工作效率。当测试<em>附带的特性</em>时,生产率通常会降低。当代码更改时测试会失败,即使它仍然是正确的。发生这种情况是因为输出的不同,但在某种程度上是因为它不是函数契约function’s contract的一部分。因此,一个好的单元测试可以帮助执行函数所提交的契约。如果单元测试中断,那意味着该契约被违反了,应该(通过更改文档和测试)明确修改,或者(通过修复代码并保…