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的一部分。因此,一个好的单元测试可以帮助执行函数所提交的契约。如果单元测试中断,那意味着该契约被违反了,应该(通过更改文档和测试)明确修改,或者(通过修复代码并保…
Linux 终端上的漂亮小马
将小马宝莉的魔力带到终端<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/201901zpa7pb7za4gpazug.png">Media</a>欢迎再次来到 Linux 命令行玩具日历。如果这是你第一次访问该系列,你甚至可能会问自己什么是命令行玩具。我们正在思考中,但一般来说,它可能是一个游戏,或任何简单的消遣,可以帮助你在终端玩得开心。很可能你们中的一些人之前已经看过我们日历中的各种玩具,但我们希望每个人至少见到一件新事物。读者 <a href="https://opensource.com/users/n8chz">Lori</a> 在我之前关于 <a href="https://opensource.com/article/18/12/linux-toy-cowsay">cowsay</a> 的文章的评论中提出了今天玩具的建议:“嗯,我一直在玩一个叫 ponysay 的东西,它似乎是你的 cowsay 的彩色变种。”我对此感到好奇,并去看了一下,发现没有让我失望。简而言之,<a href="https://github.com/erkin/ponysay">ponysay</a> 的 cowsay 的重写,它包括了来自<a href="https://en.wikipedia.org/wiki/My_Little_Pony">小马宝莉</a>中的许多全彩色人物,你可以用它在 Linux 命令行输出短句。它实际上是一个非常完善的项目,拥有超过 400 个字符和字符组合,它还有让人难以置信的的 <a href="https://github.com/erkin/ponysay/blob/master/ponysay.pdf?raw=true">78 页的 PDF 文档</a>涵盖了所有的用法。要安装 ponysay,你需要查看项目的 <a href="https://github.com/erkin/ponysay/blob/master/README.md">README</a> 来选择最适合你的发行版和情况的安装方法。由于 ponysay 似乎没有为我的 Fedora 发行版打包,我选择试用 Docker 容器镜像,但你可以选择最适合你的方法。从源码安装可能也适合你。作为一个业余容器用户,我很ø…
将小马宝莉的魔力带到终端<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/201901zpa7pb7za4gpazug.png">Media</a>欢迎再次来到 Linux 命令行玩具日历。如果这是你第一次访问该系列,你甚至可能会问自己什么是命令行玩具。我们正在思考中,但一般来说,它可能是一个游戏,或任何简单的消遣,可以帮助你在终端玩得开心。很可能你们中的一些人之前已经看过我们日历中的各种玩具,但我们希望每个人至少见到一件新事物。读者 <a href="https://opensource.com/users/n8chz">Lori</a> 在我之前关于 <a href="https://opensource.com/article/18/12/linux-toy-cowsay">cowsay</a> 的文章的评论中提出了今天玩具的建议:“嗯,我一直在玩一个叫 ponysay 的东西,它似乎是你的 cowsay 的彩色变种。”我对此感到好奇,并去看了一下,发现没有让我失望。简而言之,<a href="https://github.com/erkin/ponysay">ponysay</a> 的 cowsay 的重写,它包括了来自<a href="https://en.wikipedia.org/wiki/My_Little_Pony">小马宝莉</a>中的许多全彩色人物,你可以用它在 Linux 命令行输出短句。它实际上是一个非常完善的项目,拥有超过 400 个字符和字符组合,它还有让人难以置信的的 <a href="https://github.com/erkin/ponysay/blob/master/ponysay.pdf?raw=true">78 页的 PDF 文档</a>涵盖了所有的用法。要安装 ponysay,你需要查看项目的 <a href="https://github.com/erkin/ponysay/blob/master/README.md">README</a> 来选择最适合你的发行版和情况的安装方法。由于 ponysay 似乎没有为我的 Fedora 发行版打包,我选择试用 Docker 容器镜像,但你可以选择最适合你的方法。从源码安装可能也适合你。作为一个业余容器用户,我很ø…
阿里大张旗鼓地开源的 Blink 里面有什么?
如同我们去年 12 月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。Media
via https://linux.cn/article-10489-1.html
如同我们去年 12 月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。Media
via https://linux.cn/article-10489-1.html
被社区关注的 Blink 开源到底向上游贡献了什么?
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/203451bbccfexfg2mcwnpz.png">Media</a>导读:如同我们去年 12 月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。阿里资深技术专家大沙,将为大家详细介绍本次开源的 Blink 主要功能和优化点,希望与业界同仁共同携手,推动 Flink 社区进一步发展。<pre class="prettyprint linenums">Blink on GitHub------https://github.com/apache/flink/tree/blink</pre>Blink 简介Apache Flink 是德国柏林工业大学的几个博士生和研究生从学校开始做起来的项目,早期叫做 Stratosphere。2014 年,StratoSphere 项目中的核心成员从学校出来开发了 Flink,同时将 Flink 计算的主流方向定位为流计算,并在同年将 Flink 捐赠 Apache 基金会,后来快速孵化成为 Apache 基金会的顶级项目。现在 Flink 是业界公认的最好的大数据流计算引擎。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/203927rb17xn1j99p88on4.png">Media</a>阿里巴巴在 2015 年开始尝试使用 Flink。但是阿里的业务体量非常庞大,挑战也很多。彼时的 Flink 不管是规模还是稳定性尚未经历实践,成熟度有待商榷。为了把这么大的业务体量支持好,我们不得不在 Flink 之上做了一系列的改进,所以阿里巴巴维护了一个内部版本的 Flink,它的名字叫做 Blink。基于 Blink 的计算平台于 2016 年正式上线。截至目前,阿里绝大多数的技术部门都在使用 Blink。Blink 一直在阿里内部错综复杂的业务场景中锻炼成长着。对于内部用户反馈的各种性能…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/203451bbccfexfg2mcwnpz.png">Media</a>导读:如同我们去年 12 月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。阿里资深技术专家大沙,将为大家详细介绍本次开源的 Blink 主要功能和优化点,希望与业界同仁共同携手,推动 Flink 社区进一步发展。<pre class="prettyprint linenums">Blink on GitHub------https://github.com/apache/flink/tree/blink</pre>Blink 简介Apache Flink 是德国柏林工业大学的几个博士生和研究生从学校开始做起来的项目,早期叫做 Stratosphere。2014 年,StratoSphere 项目中的核心成员从学校出来开发了 Flink,同时将 Flink 计算的主流方向定位为流计算,并在同年将 Flink 捐赠 Apache 基金会,后来快速孵化成为 Apache 基金会的顶级项目。现在 Flink 是业界公认的最好的大数据流计算引擎。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/203927rb17xn1j99p88on4.png">Media</a>阿里巴巴在 2015 年开始尝试使用 Flink。但是阿里的业务体量非常庞大,挑战也很多。彼时的 Flink 不管是规模还是稳定性尚未经历实践,成熟度有待商榷。为了把这么大的业务体量支持好,我们不得不在 Flink 之上做了一系列的改进,所以阿里巴巴维护了一个内部版本的 Flink,它的名字叫做 Blink。基于 Blink 的计算平台于 2016 年正式上线。截至目前,阿里绝大多数的技术部门都在使用 Blink。Blink 一直在阿里内部错综复杂的业务场景中锻炼成长着。对于内部用户反馈的各种性能…
5 个用于 SOHO 的 Linux 服务器发行版
Jack Wallen 为 Linux 服务器发行版提供了一些可靠的选择,绝对值回票价。Media
via https://linux.cn/article-10490-1.html
Jack Wallen 为 Linux 服务器发行版提供了一些可靠的选择,绝对值回票价。Media
via https://linux.cn/article-10490-1.html
5 个用于 SOHO 的 Linux 服务器发行版
Jack Wallen 为 Linux 服务器发行版提供了一些可靠的选择,绝对值回票价。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/215321bzhvvhpcpxxjpjuu.jpg">Media</a>啊,这个古老的问题:哪种 Linux 发行版最适合做服务器?通常,问这种问题时,所浮现出来的标准的答复就是:RHELSUSEUbuntu 服务器DebianCentOS然而,假如你将眼界放得更宽(不将服务器只看做是 IDC 托管的那种互联网服务器时),可能答案会有点不同。我准备稍微来点不同的。我想做出一个满足入选标准的发行版列表,这些发行版不仅是优秀的候选者,而且易于使用,可以为你的业务中的许多功能提供服务。在某些情况下,我选择的是一些替代品,可以取代其它需要一些工作才能达成要求的操作系统。我的一些选择是企业级服务器的社区版本,它们可以被视为购买更强大平台的入门级产品。你甚至可以在这里找到一两个作为特定任务平台的候选者。然而,最重要的是,你在此列表中找到的并非寻常的泛泛之辈。ClearOS什么是 ClearOS?对于家庭和小型企业用途,你可能找不到比它更好的解决方案。ClearOS 开箱即用,包括了入侵检测、强大的防火墙、带宽管理工具、邮件服务器、域控制器等工具。其目的是将服务器作为一个简单的家庭和 SOHO 服务器,并具有用户友好的基于 Web 的图形化界面,这使得 ClearOS 在某些评比中脱颖而出。从其界面中,你可&…
Jack Wallen 为 Linux 服务器发行版提供了一些可靠的选择,绝对值回票价。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/29/215321bzhvvhpcpxxjpjuu.jpg">Media</a>啊,这个古老的问题:哪种 Linux 发行版最适合做服务器?通常,问这种问题时,所浮现出来的标准的答复就是:RHELSUSEUbuntu 服务器DebianCentOS然而,假如你将眼界放得更宽(不将服务器只看做是 IDC 托管的那种互联网服务器时),可能答案会有点不同。我准备稍微来点不同的。我想做出一个满足入选标准的发行版列表,这些发行版不仅是优秀的候选者,而且易于使用,可以为你的业务中的许多功能提供服务。在某些情况下,我选择的是一些替代品,可以取代其它需要一些工作才能达成要求的操作系统。我的一些选择是企业级服务器的社区版本,它们可以被视为购买更强大平台的入门级产品。你甚至可以在这里找到一两个作为特定任务平台的候选者。然而,最重要的是,你在此列表中找到的并非寻常的泛泛之辈。ClearOS什么是 ClearOS?对于家庭和小型企业用途,你可能找不到比它更好的解决方案。ClearOS 开箱即用,包括了入侵检测、强大的防火墙、带宽管理工具、邮件服务器、域控制器等工具。其目的是将服务器作为一个简单的家庭和 SOHO 服务器,并具有用户友好的基于 Web 的图形化界面,这使得 ClearOS 在某些评比中脱颖而出。从其界面中,你可&…
如何开源你的 Python 库
这 12 个步骤能确保成功发布。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/175230y0spgkegsuu01uwi.jpg">Media</a>你写了一个 Python 库。自己觉着这太棒了!如果让人们能够轻松使用它不是很优雅么?这有一个需要考虑的清单,以及在开源 Python 库时要采取的具体步骤。1、源码将代码放在 <a href="https://github.com/">GitHub</a> 上,这里有很多开源项目,并且人们很容易提交拉取请求。2、许可证选择一个开源许可证。一般来说 <a href="https://en.wikipedia.org/wiki/MIT_License">MIT 许可证</a>是一个挺好的宽容许可证。如果你有特定要求,Creative Common 的<a href="https://choosealicense.com/">选择许可证</a>可以指导你完成其它选择。最重要的是,在选择许可证时要记住三条规则:不要创建自己的许可证。不要创建自己的许可证。不要创建自己的许可证。3、README将一个名为 <code>README.rst</code> 的文件(使用 ReStructured Text 格式化)放在项目树的顶层。GitHub 将像 Markdown 一样渲染 ReStructured Text,而 ReST 在 Python 的文档生态系统中的表现更好。4、测试写测试。这对你来说没有用处。但对于想要编写避免破坏相关功能的补丁的人来说,它非常有用。测试可帮助协作者进行协作。通常情况下,如果可以用 <a href="https://docs.pytest.org/en/latest/">pytest</a> 运行就最好了。还有其他测试工具 —— 但很少有理由去使用它们。5、样式使用 linter 制定样式:PyLint、Flake8 或者带上 <code>--check</code> 的 Black 。除非你使用 Black,否则请确保在一个文件中指定配置选项,并签入到版本控制系统中。6、API 文档使用 docstrings &#…
这 12 个步骤能确保成功发布。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/175230y0spgkegsuu01uwi.jpg">Media</a>你写了一个 Python 库。自己觉着这太棒了!如果让人们能够轻松使用它不是很优雅么?这有一个需要考虑的清单,以及在开源 Python 库时要采取的具体步骤。1、源码将代码放在 <a href="https://github.com/">GitHub</a> 上,这里有很多开源项目,并且人们很容易提交拉取请求。2、许可证选择一个开源许可证。一般来说 <a href="https://en.wikipedia.org/wiki/MIT_License">MIT 许可证</a>是一个挺好的宽容许可证。如果你有特定要求,Creative Common 的<a href="https://choosealicense.com/">选择许可证</a>可以指导你完成其它选择。最重要的是,在选择许可证时要记住三条规则:不要创建自己的许可证。不要创建自己的许可证。不要创建自己的许可证。3、README将一个名为 <code>README.rst</code> 的文件(使用 ReStructured Text 格式化)放在项目树的顶层。GitHub 将像 Markdown 一样渲染 ReStructured Text,而 ReST 在 Python 的文档生态系统中的表现更好。4、测试写测试。这对你来说没有用处。但对于想要编写避免破坏相关功能的补丁的人来说,它非常有用。测试可帮助协作者进行协作。通常情况下,如果可以用 <a href="https://docs.pytest.org/en/latest/">pytest</a> 运行就最好了。还有其他测试工具 —— 但很少有理由去使用它们。5、样式使用 linter 制定样式:PyLint、Flake8 或者带上 <code>--check</code> 的 Black 。除非你使用 Black,否则请确保在一个文件中指定配置选项,并签入到版本控制系统中。6、API 文档使用 docstrings &#…
5 款开源的 Linux 策略模拟游戏
用这些开源游戏来挑战你的战略技能,探索新世界。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/184016b3w65xynxxzxx63r.jpg">Media</a>长久以来,游戏都是 Linux 的软肋。近些年,Steam、GOG 等游戏发布平台上不少商业游戏都开始支持 Linux,这对于 Linux 的游戏生态来说是件好事,但是我们能在这些平台上玩到的游戏通常是不开源的商业作品。当然,这些游戏在一个开源的操作系统上运行,但对于一个开源提倡者来说这似乎还不够纯粹。那么,我们能找到既自由开源又能给玩家带来完整游戏体验的优质游戏吗?当然!虽然绝大多数的开源游戏很难和 3A 商业游戏大作竞争,但仍然有不少各种类型的开源游戏,不仅内容有趣而且直接可以通过几大 Linux 发行版本库中直接安装。就算某个游戏在不在某个发行版本的库中,我们也可以在这个游戏项目的网站上找到直接的安装方法。本篇文章将会介绍策略和模拟类游戏。我已经写了<a href="https://linux.cn/article-10433-1.html">街机游戏</a>、<a href="https://opensource.com/article/18/3/card-board-games-linux">桌面卡牌游戏</a>、<a href="https://opensource.com/article/18/6/puzzle-games-linux">解谜游戏</a>、<a href="https://opensource.com/article/18/7/racing-flying-games-linux">竞速飞行游戏</a>以及<a href="https://opensource.com/article/18/8/role-playing-games-linux">角色扮演游戏</a>。开源版“文明”(Freeciv)<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/184017ov8f411wwciilwac.png">Media</a><a href="http://www.freeciv.org/">Freeciv</a> 可以被视为是<a href="https://en.wikipedia.org/wiki/Civilization_(series)">文明系列</a>游戏的开源版本。游戏玩法和文明系列最早期的游戏十分类似,Freeciv 可以让玩家选&…
用这些开源游戏来挑战你的战略技能,探索新世界。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/184016b3w65xynxxzxx63r.jpg">Media</a>长久以来,游戏都是 Linux 的软肋。近些年,Steam、GOG 等游戏发布平台上不少商业游戏都开始支持 Linux,这对于 Linux 的游戏生态来说是件好事,但是我们能在这些平台上玩到的游戏通常是不开源的商业作品。当然,这些游戏在一个开源的操作系统上运行,但对于一个开源提倡者来说这似乎还不够纯粹。那么,我们能找到既自由开源又能给玩家带来完整游戏体验的优质游戏吗?当然!虽然绝大多数的开源游戏很难和 3A 商业游戏大作竞争,但仍然有不少各种类型的开源游戏,不仅内容有趣而且直接可以通过几大 Linux 发行版本库中直接安装。就算某个游戏在不在某个发行版本的库中,我们也可以在这个游戏项目的网站上找到直接的安装方法。本篇文章将会介绍策略和模拟类游戏。我已经写了<a href="https://linux.cn/article-10433-1.html">街机游戏</a>、<a href="https://opensource.com/article/18/3/card-board-games-linux">桌面卡牌游戏</a>、<a href="https://opensource.com/article/18/6/puzzle-games-linux">解谜游戏</a>、<a href="https://opensource.com/article/18/7/racing-flying-games-linux">竞速飞行游戏</a>以及<a href="https://opensource.com/article/18/8/role-playing-games-linux">角色扮演游戏</a>。开源版“文明”(Freeciv)<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/184017ov8f411wwciilwac.png">Media</a><a href="http://www.freeciv.org/">Freeciv</a> 可以被视为是<a href="https://en.wikipedia.org/wiki/Civilization_(series)">文明系列</a>游戏的开源版本。游戏玩法和文明系列最早期的游戏十分类似,Freeciv 可以让玩家选&…
将树莓派 3B+ 变为 PriTunl VPN
PriTunl 是一种 VPN 解决方案,适用于希望私密的访问其网络的小型企业和个人。Media
via https://linux.cn/article-10493-1.html
PriTunl 是一种 VPN 解决方案,适用于希望私密的访问其网络的小型企业和个人。Media
via https://linux.cn/article-10493-1.html
将树莓派 3B+ 变为 PriTunl VPN
PriTunl 是一种 VPN 解决方案,适用于希望私密的访问其网络的小型企业和个人。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/221526nut0y3xwiuyru04z.jpg">Media</a><a href="https://pritunl.com/">PriTunl</a> 是一款出色的 VPN 终端解决方案,非常适合希望以简单快捷的方式私密的访问网络的小型企业和个人。它是开源的,基本的免费版本涵盖最通用的简单的实例,足以让你快速入门。也有集成了活动目录等高级功能的付费企业版。有关树莓派 3B+ 的特别注意事项PriTunl 的安装通常也很简单,但要在树莓派 3B+ 上安装 PriTunl 有点小复杂。比如,PriTunl 只提供了 AMD64 和 i386 架构的二进制文件,但树莓派 3B+ 是 ARM 架构的,这意味着需要从源码自行编译可用于树莓派 3B+ 的 PriTunl 可执行文件。不过,无需担心,编译过程很简单,只需花一点时间执行几行命令即可。另一个问题:PriTunl 好像必须要是 64 位处理器架构,当我在 32 位操作系统上尝试编译的时候报错了。但幸运的是,用于 ARM64 架构的 Ubuntu 18.04 测试版本可以安装在树莓派 3B+ 上。同样,树莓派 3B+ 需要和其他树莓派不同的引导程序。需要一组小复杂的命令来安装更新树莓派 3B+ 上必要的组件。安装 PriTunl你可以先在树莓派 3B+ 上安装 64 位的操作系统来避免下面这些问题。此处需要一些必要的基础知识如在树莓派上执行命令行。打开终端,用如下命令下载 Ubuntu 18.04 用于 ARM64 架构的测试版:<pre class="prettyprint linenums">$ wget http://cdimage.ubuntu.com/releases/18.04/beta/ubuntu-18.04-beta-preinstalled-server…
PriTunl 是一种 VPN 解决方案,适用于希望私密的访问其网络的小型企业和个人。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/30/221526nut0y3xwiuyru04z.jpg">Media</a><a href="https://pritunl.com/">PriTunl</a> 是一款出色的 VPN 终端解决方案,非常适合希望以简单快捷的方式私密的访问网络的小型企业和个人。它是开源的,基本的免费版本涵盖最通用的简单的实例,足以让你快速入门。也有集成了活动目录等高级功能的付费企业版。有关树莓派 3B+ 的特别注意事项PriTunl 的安装通常也很简单,但要在树莓派 3B+ 上安装 PriTunl 有点小复杂。比如,PriTunl 只提供了 AMD64 和 i386 架构的二进制文件,但树莓派 3B+ 是 ARM 架构的,这意味着需要从源码自行编译可用于树莓派 3B+ 的 PriTunl 可执行文件。不过,无需担心,编译过程很简单,只需花一点时间执行几行命令即可。另一个问题:PriTunl 好像必须要是 64 位处理器架构,当我在 32 位操作系统上尝试编译的时候报错了。但幸运的是,用于 ARM64 架构的 Ubuntu 18.04 测试版本可以安装在树莓派 3B+ 上。同样,树莓派 3B+ 需要和其他树莓派不同的引导程序。需要一组小复杂的命令来安装更新树莓派 3B+ 上必要的组件。安装 PriTunl你可以先在树莓派 3B+ 上安装 64 位的操作系统来避免下面这些问题。此处需要一些必要的基础知识如在树莓派上执行命令行。打开终端,用如下命令下载 Ubuntu 18.04 用于 ARM64 架构的测试版:<pre class="prettyprint linenums">$ wget http://cdimage.ubuntu.com/releases/18.04/beta/ubuntu-18.04-beta-preinstalled-server…
开始使用 Isotope 吧,一款开源的 Web 邮件客户端
使用轻量级的电子邮件客户端 Isotope 阅读富文本电子邮件,这个开源工具系列的第十一个工具将使你在 2019 年更高效。Media
via https://linux.cn/article-10494-1.html
使用轻量级的电子邮件客户端 Isotope 阅读富文本电子邮件,这个开源工具系列的第十一个工具将使你在 2019 年更高效。Media
via https://linux.cn/article-10494-1.html
开始使用 Isotope 吧,一款开源的 Web 邮件客户端
使用轻量级的电子邮件客户端 Isotope 阅读富文本电子邮件,这个开源工具系列的第十一个工具将使你在 2019 年更高效。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/31/214235lx1d0660ff18h0d0.jpg">Media</a>在每年的年初,似乎都有一股疯狂的寻找提高工作效率方法的冲动。新年决心,渴望以正确的方式开始新的一年。当然,“旧不去的,新的不来”的态度都会导致这种情况。一般的建议都偏向于闭源和专有软件,然而并不是必须这样。以下是我挑选的 19 个新的(或者对你来说是新的)开源工具中的第 11 个,它将帮助你在 2019 年提高工作效率。Isotope正如我们在<a href="https://opensource.com/article/19/1/productivity-tool-cypht-email">本系列的第四篇文章</a>(Cypht)中所讨论的那样,我们花了很多时间来处理电子邮件。有很多方法可以解决它,我已经花了很多时间来寻找最适合我的电子邮件客户端。我认为这是一个重要的区别:对我有效的方法并不总是对其它人有效。有时对我有用的是像 <a href="https://www.thunderbird.net/">Thunderbird</a> 这样的完整客户端,有时是像 <a href="http://www.mutt.org/">Mutt</a> 这样的控制台客户端,有时是像 <a href="https://mail.google.com/">Gmail</a> 和 <a href="https://roundcube.net/">RoundCube</a> 这样基于 Web 的界面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/31/214238mg46e6g99es0dsyn.png">Media</a><a href="https://blog.marcnuri.com/isotope-mail-client-introduction/">Isotope</a> 是一个本地托管的、基于 Web 的电子邮件客户端。它非常轻巧,只使用 IMAP 协议,占用的磁盘空间非常小。与 Cypht 不同,Isotope 具有完整的 HTML 邮件支持,Ű…
使用轻量级的电子邮件客户端 Isotope 阅读富文本电子邮件,这个开源工具系列的第十一个工具将使你在 2019 年更高效。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/31/214235lx1d0660ff18h0d0.jpg">Media</a>在每年的年初,似乎都有一股疯狂的寻找提高工作效率方法的冲动。新年决心,渴望以正确的方式开始新的一年。当然,“旧不去的,新的不来”的态度都会导致这种情况。一般的建议都偏向于闭源和专有软件,然而并不是必须这样。以下是我挑选的 19 个新的(或者对你来说是新的)开源工具中的第 11 个,它将帮助你在 2019 年提高工作效率。Isotope正如我们在<a href="https://opensource.com/article/19/1/productivity-tool-cypht-email">本系列的第四篇文章</a>(Cypht)中所讨论的那样,我们花了很多时间来处理电子邮件。有很多方法可以解决它,我已经花了很多时间来寻找最适合我的电子邮件客户端。我认为这是一个重要的区别:对我有效的方法并不总是对其它人有效。有时对我有用的是像 <a href="https://www.thunderbird.net/">Thunderbird</a> 这样的完整客户端,有时是像 <a href="http://www.mutt.org/">Mutt</a> 这样的控制台客户端,有时是像 <a href="https://mail.google.com/">Gmail</a> 和 <a href="https://roundcube.net/">RoundCube</a> 这样基于 Web 的界面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/31/214238mg46e6g99es0dsyn.png">Media</a><a href="https://blog.marcnuri.com/isotope-mail-client-introduction/">Isotope</a> 是一个本地托管的、基于 Web 的电子邮件客户端。它非常轻巧,只使用 IMAP 协议,占用的磁盘空间非常小。与 Cypht 不同,Isotope 具有完整的 HTML 邮件支持,Ű…
在 Linux 命令行中规划你的假期日历
将命令链接在一起,构建一个彩色日历,然后在暴风雪中将其拂去。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/31/215315p9m5ohpmdzrczbf1.png">Media</a>欢迎阅读今天推出的 Linux 命令行玩具降临日历。如果这是你第一次访问本系列,你可能会问:什么是命令行玩具。即使我不太确定,但一般来说,它可以是一个游戏或任何简单的娱乐,可以帮助你在终端玩得开心。很可能你们中的一些人之前已经看过我们日历上的各种选择,但我们希望给每个人至少一件新东西。我们在没有创建实际日历的情况下完成了本系列的第 7 天,所以今天让我们使用命令行工具来做到这一点:cal。就其本身而言,cal 可能不是最令人惊奇的工具,但我们可以使用其它一些实用程序来为它增添一些趣味。很可能,你的系统上已经安装了 cal。要使用它,只需要输入 cal 即可。<pre class="prettyprint linenums">$ cal December 2018 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 2930 31 </pre>我们不打算在本文中深入介绍高级用法,因此如果你想了解有关 cal 的更多信息,查看 Opensouce.com 社区版主 Don Watkin 的优秀文章 <a href="https://opensource.com/article/16/12/using-calendar-function-linux">date 和 cal 命令概述</a>。现在,让我们用一个漂亮的盒子来为它增添趣味,就像我们在上一篇 Linux 玩具文章中介绍的那样。我将使用钻石块,用一点内边距来对齐。<pre class="prettyprint linenums">$ cal | boxes -d diamonds -p a1l4t2 /\ /\ /\ /\//\\/\ /\//\\/\ /\//\\/\ /\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\\//\/ \/\\// \/ \/ /\ December 2018 /\//\\ Su Mo Tu We Th Fr Sa //\\\\// 1 \\// \/ 2 3 4 5 6 7 8 \/ /\ 9 10 11…
将命令链接在一起,构建一个彩色日历,然后在暴风雪中将其拂去。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/31/215315p9m5ohpmdzrczbf1.png">Media</a>欢迎阅读今天推出的 Linux 命令行玩具降临日历。如果这是你第一次访问本系列,你可能会问:什么是命令行玩具。即使我不太确定,但一般来说,它可以是一个游戏或任何简单的娱乐,可以帮助你在终端玩得开心。很可能你们中的一些人之前已经看过我们日历上的各种选择,但我们希望给每个人至少一件新东西。我们在没有创建实际日历的情况下完成了本系列的第 7 天,所以今天让我们使用命令行工具来做到这一点:cal。就其本身而言,cal 可能不是最令人惊奇的工具,但我们可以使用其它一些实用程序来为它增添一些趣味。很可能,你的系统上已经安装了 cal。要使用它,只需要输入 cal 即可。<pre class="prettyprint linenums">$ cal December 2018 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 2930 31 </pre>我们不打算在本文中深入介绍高级用法,因此如果你想了解有关 cal 的更多信息,查看 Opensouce.com 社区版主 Don Watkin 的优秀文章 <a href="https://opensource.com/article/16/12/using-calendar-function-linux">date 和 cal 命令概述</a>。现在,让我们用一个漂亮的盒子来为它增添趣味,就像我们在上一篇 Linux 玩具文章中介绍的那样。我将使用钻石块,用一点内边距来对齐。<pre class="prettyprint linenums">$ cal | boxes -d diamonds -p a1l4t2 /\ /\ /\ /\//\\/\ /\//\\/\ /\//\\/\ /\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\\//\/ \/\\// \/ \/ /\ December 2018 /\//\\ Su Mo Tu We Th Fr Sa //\\\\// 1 \\// \/ 2 3 4 5 6 7 8 \/ /\ 9 10 11…