一位开源项目维护者的 5 个决心
不管怎么说,好的交流是一个活跃的开源社区的必备品。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/093920o0m0zi1ki1kxukg0.png">Media</a>我通常不会定下大的新年决心。当然,我在自我提升方面没有任何问题,这篇文章我希望锚定的是这个日历中的另外一部分。不过即使是这样,这里也有一些东西要从今年的免费日历上划掉,并将其替换为一些可以激发我的自省的新日历内容。在 2017 年,我从不在社交媒体上分享我从未阅读过的文章。我一直保持这样的状态,我也认为它让我成为了一个更好的互联网公民。对于 2019 年,我正在考虑让我成为更好的开源软件维护者的决心。下面是一些我在一些项目中担任维护者或共同维护者时坚持的决心:1、包含行为准则Jono Bacon 在他的文章“<a href="https://opensource.com/article/17/8/mistakes-open-source-avoid">7 个你可能犯的错误</a>”中包含了一条“不强制执行行为准则”。当然,要强制执行行为准则,你首先需要有一个行为准则。我打算默认用<a href="https://www.contributor-covenant.org/">贡献者契约</a>,但是你可以使用其他你喜欢的。关于这个许可协议,最好的方法是使用别人已经写好的,而不是你自己写的。但是重要的是,要找到一些能够定义你希望你的社区执行的,无论它们是什么样子。一旦这些被记录下来并强制执行,人们就能自行决定是否成为他们想象中社区的一份子。2、使许可证清晰且明确&#…
不管怎么说,好的交流是一个活跃的开源社区的必备品。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/093920o0m0zi1ki1kxukg0.png">Media</a>我通常不会定下大的新年决心。当然,我在自我提升方面没有任何问题,这篇文章我希望锚定的是这个日历中的另外一部分。不过即使是这样,这里也有一些东西要从今年的免费日历上划掉,并将其替换为一些可以激发我的自省的新日历内容。在 2017 年,我从不在社交媒体上分享我从未阅读过的文章。我一直保持这样的状态,我也认为它让我成为了一个更好的互联网公民。对于 2019 年,我正在考虑让我成为更好的开源软件维护者的决心。下面是一些我在一些项目中担任维护者或共同维护者时坚持的决心:1、包含行为准则Jono Bacon 在他的文章“<a href="https://opensource.com/article/17/8/mistakes-open-source-avoid">7 个你可能犯的错误</a>”中包含了一条“不强制执行行为准则”。当然,要强制执行行为准则,你首先需要有一个行为准则。我打算默认用<a href="https://www.contributor-covenant.org/">贡献者契约</a>,但是你可以使用其他你喜欢的。关于这个许可协议,最好的方法是使用别人已经写好的,而不是你自己写的。但是重要的是,要找到一些能够定义你希望你的社区执行的,无论它们是什么样子。一旦这些被记录下来并强制执行,人们就能自行决定是否成为他们想象中社区的一份子。2、使许可证清晰且明确&#…
使用 Ansible 来管理你的工作站:配置自动化
学习如何使 Ansible 自动对一系列台式机和笔记本应用配置。Media
via https://linux.cn/article-10449-1.html
学习如何使 Ansible 自动对一系列台式机和笔记本应用配置。Media
via https://linux.cn/article-10449-1.html
使用 Ansible 来管理你的工作站:配置自动化
学习如何使 Ansible 自动对一系列台式机和笔记本应用配置。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/162446gszu3hzkrewilswr.jpg">Media</a>Ansible 是一个令人惊讶的自动化的配置管理工具。其主要应用在服务器和云部署上,但在工作站上的应用(无论是台式机还是笔记本)却鲜少得到关注,这就是本系列所要关注的。在这个系列的<a href="https://linux.cn/article-10434-1.html">第一部分</a>,我向你展示了 ansible-pull 命令的基本用法,我们创建了一个安装了少量包的剧本。它本身是没有多大的用处的,但是为后续的自动化做了准备。在这篇文章中,将会达成闭环,而且在最后部分,我们将会有一个针对工作站自动配置的完整的工作解决方案。现在,我们将要设置 Ansible 的配置,这样未来将要做的改变将会自动的部署应用到我们的工作站上。现阶段,假设你已经完成了<a href="https://linux.cn/article-10434-1.html">第一部分</a>的工作。如果没有的话,当你完成的时候回到本文。你应该已经有一个包含第一篇文章中代码的 GitHub 库。我们将直接在之前创建的部分之上继续。首先,因为我们要做的不仅仅是安装包文件,所以我们要做一些重新的组织工作。现在,我们已经有一个名为 local.yml 并包含以下内容的剧本:<pre class="prettyprint linenums">- hosts: localhost become: true tasks: - name: Install packages apt: name={{item}} with_items: - htop - mc - tmux</pre>如果我们仅仅想实现一个任务那么上面的配置就足够了。随着向我们的配置中不…
学习如何使 Ansible 自动对一系列台式机和笔记本应用配置。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/162446gszu3hzkrewilswr.jpg">Media</a>Ansible 是一个令人惊讶的自动化的配置管理工具。其主要应用在服务器和云部署上,但在工作站上的应用(无论是台式机还是笔记本)却鲜少得到关注,这就是本系列所要关注的。在这个系列的<a href="https://linux.cn/article-10434-1.html">第一部分</a>,我向你展示了 ansible-pull 命令的基本用法,我们创建了一个安装了少量包的剧本。它本身是没有多大的用处的,但是为后续的自动化做了准备。在这篇文章中,将会达成闭环,而且在最后部分,我们将会有一个针对工作站自动配置的完整的工作解决方案。现在,我们将要设置 Ansible 的配置,这样未来将要做的改变将会自动的部署应用到我们的工作站上。现阶段,假设你已经完成了<a href="https://linux.cn/article-10434-1.html">第一部分</a>的工作。如果没有的话,当你完成的时候回到本文。你应该已经有一个包含第一篇文章中代码的 GitHub 库。我们将直接在之前创建的部分之上继续。首先,因为我们要做的不仅仅是安装包文件,所以我们要做一些重新的组织工作。现在,我们已经有一个名为 local.yml 并包含以下内容的剧本:<pre class="prettyprint linenums">- hosts: localhost become: true tasks: - name: Install packages apt: name={{item}} with_items: - htop - mc - tmux</pre>如果我们仅仅想实现一个任务那么上面的配置就足够了。随着向我们的配置中不…
在 Linux 中打扮你的冬季 Bash 提示符
你的 Linux 终端可能支持 Unicode,那么为何不利用它在提示符中添加季节性的图标呢?Media
via https://linux.cn/article-10450-1.html
你的 Linux 终端可能支持 Unicode,那么为何不利用它在提示符中添加季节性的图标呢?Media
via https://linux.cn/article-10450-1.html
在 Linux 中打扮你的冬季 Bash 提示符
你的 Linux 终端可能支持 Unicode,那么为何不利用它在提示符中添加季节性的图标呢?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/184022d59vyvvkvqaa578v.png">Media</a>欢迎再次来到 Linux 命令行玩具日历的另一篇。如果这是你第一次访问该系列,你甚至可能会问自己什么是命令行玩具?我们对此比较随意:它会是终端上有任何有趣的消遣,对于任何节日主题相关的还有额外的加分。也许你以前见过其中的一些,也许你没有。不管怎样,我们希望你玩得开心。今天的玩具非常简单:它是你的 Bash 提示符。你的 Bash 提示符?是的!我们还有几个星期的假期可以盯着它看,在北半球冬天还会再多几周,所以为什么不玩玩它。目前你的 Bash 提示符号可能是一个简单的美元符号( $),或者更有可能是一个更长的东西。如果你不确定你的 Bash 提示符是什么,你可以在环境变量 $PS1 中找到它。要查看它,请输入:<pre class="prettyprint linenums">echo $PS1</pre>对于我而言,它返回:<pre class="prettyprint linenums">[\u@\h \W]\$</pre>\u、\h 和 \W 分别是用户名、主机名和工作目录的特殊字符。你还可以使用其他一些符号。为了帮助构建你的 Bash 提示符,你可以使用 <a href="http://ezprompt.net/">EzPrompt</a>,这是一个 PS1 配置的在线生成器,它包含了许多选项,包括日期和时间、Git 状态等。你可能还有其他变量来组成 Bash 提示符。对我来说,$PS2 包含了我命令提示符的结束括号。有关详细信息,请参阅…
你的 Linux 终端可能支持 Unicode,那么为何不利用它在提示符中添加季节性的图标呢?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/184022d59vyvvkvqaa578v.png">Media</a>欢迎再次来到 Linux 命令行玩具日历的另一篇。如果这是你第一次访问该系列,你甚至可能会问自己什么是命令行玩具?我们对此比较随意:它会是终端上有任何有趣的消遣,对于任何节日主题相关的还有额外的加分。也许你以前见过其中的一些,也许你没有。不管怎样,我们希望你玩得开心。今天的玩具非常简单:它是你的 Bash 提示符。你的 Bash 提示符?是的!我们还有几个星期的假期可以盯着它看,在北半球冬天还会再多几周,所以为什么不玩玩它。目前你的 Bash 提示符号可能是一个简单的美元符号( $),或者更有可能是一个更长的东西。如果你不确定你的 Bash 提示符是什么,你可以在环境变量 $PS1 中找到它。要查看它,请输入:<pre class="prettyprint linenums">echo $PS1</pre>对于我而言,它返回:<pre class="prettyprint linenums">[\u@\h \W]\$</pre>\u、\h 和 \W 分别是用户名、主机名和工作目录的特殊字符。你还可以使用其他一些符号。为了帮助构建你的 Bash 提示符,你可以使用 <a href="http://ezprompt.net/">EzPrompt</a>,这是一个 PS1 配置的在线生成器,它包含了许多选项,包括日期和时间、Git 状态等。你可能还有其他变量来组成 Bash 提示符。对我来说,$PS2 包含了我命令提示符的结束括号。有关详细信息,请参阅…
Open Source 103:开源与云的商业碰撞
我们看到开源社区开始纷纷将左版调到最高音量来应对过去所没有出现过的市场环境Media
via https://linux.cn/article-10451-1.html
我们看到开源社区开始纷纷将左版调到最高音量来应对过去所没有出现过的市场环境Media
via https://linux.cn/article-10451-1.html
Open Source 103:开源与云的商业碰撞
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/220945ir4l826rjsulrj4s.jpg">Media</a>最近开源界还发生了一系列有代表性的事件,三个重量级的开源软件社区先后修改了开源许可证来应对公有云厂商的不当竞争,这三个开源软件社区背后的主导企业和核心产品分别是:Redis Labs(Redis。一个开源的键值对 NoSQL 数据库)MongoDB(MongoDB,一个开源的分布式文档 NoSQL 数据库)Confluent(Apache Kafka。一个开源的分布式流/消息系统)开源软件与公有云的商业碰撞正式拉开帷幕开源社区被激怒的原因在于公有云厂商实际上是在利用开源社区的成果在变现,但对开源社区却没有回馈贡献,这有悖于开源精神。几乎所有主流的公有云厂商都被点名,Amazon/Microsoft/Alibaba/Google,其中,对 AWS 的吐槽最多,原话是 “the worst behavior” 。随着云计算的渗透,公有云厂商将有机会把握住企业客户使用软件产品的『流量入口』,对于公有云厂商而言,他们很自然的选择就是上线更多的软件产品 SKU 来提升客户粘性、做高客单价、提高变现能力,于是最快的方式就是向开源社区直接『伸手』,将开源版软件封装成服务提供给客户,同时为了保证自己的产品竞争优势选择不把对开源项目的改进回馈到开源社区。所以开源社区对公有云厂商说,你必须把基于开源项目的改进也开源代码回馈社区,否则你就别『窃取』开源社区的成果。开源面临的真ઽ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/16/220945ir4l826rjsulrj4s.jpg">Media</a>最近开源界还发生了一系列有代表性的事件,三个重量级的开源软件社区先后修改了开源许可证来应对公有云厂商的不当竞争,这三个开源软件社区背后的主导企业和核心产品分别是:Redis Labs(Redis。一个开源的键值对 NoSQL 数据库)MongoDB(MongoDB,一个开源的分布式文档 NoSQL 数据库)Confluent(Apache Kafka。一个开源的分布式流/消息系统)开源软件与公有云的商业碰撞正式拉开帷幕开源社区被激怒的原因在于公有云厂商实际上是在利用开源社区的成果在变现,但对开源社区却没有回馈贡献,这有悖于开源精神。几乎所有主流的公有云厂商都被点名,Amazon/Microsoft/Alibaba/Google,其中,对 AWS 的吐槽最多,原话是 “the worst behavior” 。随着云计算的渗透,公有云厂商将有机会把握住企业客户使用软件产品的『流量入口』,对于公有云厂商而言,他们很自然的选择就是上线更多的软件产品 SKU 来提升客户粘性、做高客单价、提高变现能力,于是最快的方式就是向开源社区直接『伸手』,将开源版软件封装成服务提供给客户,同时为了保证自己的产品竞争优势选择不把对开源项目的改进回馈到开源社区。所以开源社区对公有云厂商说,你必须把基于开源项目的改进也开源代码回馈社区,否则你就别『窃取』开源社区的成果。开源面临的真ઽ…
Caffeinated 6.828:实验 6:网络驱动程序
现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。Media
via https://linux.cn/article-10452-1.html
现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。Media
via https://linux.cn/article-10452-1.html
Caffeinated 6.828:实验 6:网络驱动程序
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/204350s86sch2hc3939xs3.jpeg">Media</a>简介这个实验是默认你能够自己完成的最终项目。现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。这个网卡基于 Intel 82540EM 芯片,也就是众所周知的 E1000 芯片。预备知识使用 Git 去提交你的实验 5 的源代码(如果还没有提交的话),获取课程仓库的最新版本,然后创建一个名为 lab6 的本地分支,它跟踪我们的远程分支 origin/lab6:<pre class="prettyprint linenums">athena% cd ~/6.828/labathena% add gitathena% git commit -am 'my solution to lab5'nothing to commit (working directory clean)athena% git pullAlready up-to-date.athena% git checkout -b lab6 origin/lab6Branch lab6 set up to track remote branch refs/remotes/origin/lab6.Switched to a new branch "lab6"athena% git merge lab5Merge made by recursive. fs/fs.c | 42 +++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-)athena%</pre>然后,仅有网卡驱动程序并不能够让你的操作系统接入互联网。在新的实验 6 的代码中,我们为你提供了网络栈和一个网络服务器。与以前的实验一样,使用 git 去拉取这个实验的代码,合并到你自己的代码中,并去浏览新的 net/ 目录中的内容,以及在 kern/ 中的新文件。除了写这个驱动程序以外,你还需要去创建一个访问你的驱动程序的系统调用。你将要去实现那些在网络服务器中缺失的代码,以便于在网络栈和你的驱动程序之间传输包。你还需要通过完成一个 web 服务器来将所有的东西连接到一起。你的新 web 服务器还需要你的文件系统来提供所需要的文件。大&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/204350s86sch2hc3939xs3.jpeg">Media</a>简介这个实验是默认你能够自己完成的最终项目。现在你已经有了一个文件系统,一个典型的操作系统都应该有一个网络栈。在本实验中,你将继续为一个网卡去写一个驱动程序。这个网卡基于 Intel 82540EM 芯片,也就是众所周知的 E1000 芯片。预备知识使用 Git 去提交你的实验 5 的源代码(如果还没有提交的话),获取课程仓库的最新版本,然后创建一个名为 lab6 的本地分支,它跟踪我们的远程分支 origin/lab6:<pre class="prettyprint linenums">athena% cd ~/6.828/labathena% add gitathena% git commit -am 'my solution to lab5'nothing to commit (working directory clean)athena% git pullAlready up-to-date.athena% git checkout -b lab6 origin/lab6Branch lab6 set up to track remote branch refs/remotes/origin/lab6.Switched to a new branch "lab6"athena% git merge lab5Merge made by recursive. fs/fs.c | 42 +++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-)athena%</pre>然后,仅有网卡驱动程序并不能够让你的操作系统接入互联网。在新的实验 6 的代码中,我们为你提供了网络栈和一个网络服务器。与以前的实验一样,使用 git 去拉取这个实验的代码,合并到你自己的代码中,并去浏览新的 net/ 目录中的内容,以及在 kern/ 中的新文件。除了写这个驱动程序以外,你还需要去创建一个访问你的驱动程序的系统调用。你将要去实现那些在网络服务器中缺失的代码,以便于在网络栈和你的驱动程序之间传输包。你还需要通过完成一个 web 服务器来将所有的东西连接到一起。你的新 web 服务器还需要你的文件系统来提供所需要的文件。大&…
如何在 Linux 中安装微软的 .NET Core SDK
本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Media
via https://linux.cn/article-10453-1.html
本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Media
via https://linux.cn/article-10453-1.html
如何在 Linux 中安装微软的 .NET Core SDK
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/215837aa9devtxvnqq7nb0.png">Media</a><strong>.NET Core</strong> 是微软提供的免费、跨平台和开源的开发框架,可以构建桌面应用程序、移动端应用程序、网络应用程序、物联网应用程序和游戏应用程序等。如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何 Linux 和类 Unix 操作系统下的开发环境。本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Linux 中安装 .NET Core SDK.NET Core 支持 GNU/Linux、Mac OS 和 Windows 系统,可以在主流的 GNU/Linux 操作系统上安装运行,包括 Debian、Fedora、CentOS、Oracle Linux、RHEL、SUSE/openSUSE 和 Ubuntu 。在撰写这篇教程时,其最新版本为 <strong>2.2</strong>。<strong>Debian 9</strong> 系统上安装 .NET Core SDK,请按如下步骤进行。首先,需要注册微软的密钥,接着把 .NET 源仓库地址添加进来,运行的命令如下:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/9/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>注册好密钥及添加完仓库源后,就可以安装 .NET SDK 了,命令如下:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Debian 8 系统上安装:</strong>增加微软密钥,添加 .NET 仓库源:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/8/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>安装 .NET SDK:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Fedora 28 系统上安装:</strong>…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/17/215837aa9devtxvnqq7nb0.png">Media</a><strong>.NET Core</strong> 是微软提供的免费、跨平台和开源的开发框架,可以构建桌面应用程序、移动端应用程序、网络应用程序、物联网应用程序和游戏应用程序等。如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何 Linux 和类 Unix 操作系统下的开发环境。本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序。Linux 中安装 .NET Core SDK.NET Core 支持 GNU/Linux、Mac OS 和 Windows 系统,可以在主流的 GNU/Linux 操作系统上安装运行,包括 Debian、Fedora、CentOS、Oracle Linux、RHEL、SUSE/openSUSE 和 Ubuntu 。在撰写这篇教程时,其最新版本为 <strong>2.2</strong>。<strong>Debian 9</strong> 系统上安装 .NET Core SDK,请按如下步骤进行。首先,需要注册微软的密钥,接着把 .NET 源仓库地址添加进来,运行的命令如下:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/9/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>注册好密钥及添加完仓库源后,就可以安装 .NET SDK 了,命令如下:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Debian 8 系统上安装:</strong>增加微软密钥,添加 .NET 仓库源:<pre class="prettyprint linenums">$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/8/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list</pre>安装 .NET SDK:<pre class="prettyprint linenums">$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2</pre><strong>Fedora 28 系统上安装:</strong>…
开始使用 Wekan 吧,一款开源看板软件
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。Media
via https://linux.cn/article-10454-1.html
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。Media
via https://linux.cn/article-10454-1.html
开始使用 Wekan 吧,一款开源看板软件
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104136gsdtspyese2z2ktd.png">Media</a>每年年初,人们似乎都在想方设法地让自己更具生产力。对新年目标、期待,当然还有“新年新气象”这样的口号等等都促人上进。可大部分生产力软件的推荐都严重偏向闭源的专有软件,但事实上并不用这样。这是我挑选的 19 款帮助你在 2019 年提升生产力的开源工具中的第 2 个。Wekan<a href="https://en.wikipedia.org/wiki/Kanban">看板</a>是当今敏捷开发流程中的重要组成部分。我们中的很多人使用它同时管理自己的工作和生活。有些人在用 <a href="https://www.trello.com">Trello</a> 这样的 APP 来跟踪他们的项目,例如哪些事务正在处理,哪些事务已经完成。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137ae1l4abia4ge0f41.png">Media</a>但这些 APP 通常需要连接到一个工作账户或者商业服务中。而 <a href="https://wekan.github.io/">Wekan</a> 作为一款开源看板工具,你可以让它完全在本地运行,或者使用你自己选择的服务运行它。其他的看板 APP 提供的功能在 Wekan 里几乎都有,例如创建看板、列表、泳道、卡片,在列表间拖放,给指定的用户安排任务,给卡片添加标签等等,基本上你对一款现代看板软件的功能需求它都能提供。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137kkun2n3snf6y6agg.png">Media</a>Wekan 的独到之处在于它的内置规则。虽然其他的看板软件支持邮件更新emailing updates,但…
这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104136gsdtspyese2z2ktd.png">Media</a>每年年初,人们似乎都在想方设法地让自己更具生产力。对新年目标、期待,当然还有“新年新气象”这样的口号等等都促人上进。可大部分生产力软件的推荐都严重偏向闭源的专有软件,但事实上并不用这样。这是我挑选的 19 款帮助你在 2019 年提升生产力的开源工具中的第 2 个。Wekan<a href="https://en.wikipedia.org/wiki/Kanban">看板</a>是当今敏捷开发流程中的重要组成部分。我们中的很多人使用它同时管理自己的工作和生活。有些人在用 <a href="https://www.trello.com">Trello</a> 这样的 APP 来跟踪他们的项目,例如哪些事务正在处理,哪些事务已经完成。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137ae1l4abia4ge0f41.png">Media</a>但这些 APP 通常需要连接到一个工作账户或者商业服务中。而 <a href="https://wekan.github.io/">Wekan</a> 作为一款开源看板工具,你可以让它完全在本地运行,或者使用你自己选择的服务运行它。其他的看板 APP 提供的功能在 Wekan 里几乎都有,例如创建看板、列表、泳道、卡片,在列表间拖放,给指定的用户安排任务,给卡片添加标签等等,基本上你对一款现代看板软件的功能需求它都能提供。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/18/104137kkun2n3snf6y6agg.png">Media</a>Wekan 的独到之处在于它的内置规则。虽然其他的看板软件支持邮件更新emailing updates,但…
设计微服务架构前应该了解的 5 项指导原则
顶级 CTO 基于五个简单的原则为精心设计的微服务提供建议。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/002658s8xpfp7qzk1j3jwc.jpg">Media</a>对于从微服务开始的团队来说,最大的挑战之一就是坚持金发女孩原则The Goldilocks principle(该典故来自于童话《金发姑娘和三只熊》):不要太大,不要太小,不能太紧密耦合。之所以是挑战的部分原因是会对究竟什么是设计良好的微服务感到疑惑。数十位 CTO 通过采访分享了他们的经验,这些对话说明了设计良好的微服务的五个特点。本文将帮助指导团队设计微服务。(有关详细信息,请查看即将出版的书籍 <a href="https://buttercms.com/books/microservices-for-startups/">Microservices for Startups</a>,LCTT 译注:已可免费下载完整的电子版)。本文将简要介绍微服务的边界和主观的 “规则”,以避免在深入了解五个特征之前就开始指导您的微服务设计。微服务边界<a href="https://buttercms.com/books/microservices-for-startups/should-you-always-start-with-a-monolith">使用微服务开发新系统的核心优势</a>之一是该体系结构允许开发人员独立构建和修改各个组件,但在最大限度地减少每个 API 之间的回调数量方面可能会出现问题。根据 <a href="https://www.sparkpost.com/">SparkPost</a> 工程副总裁 Chris McFadden 所说,解决方案是应用适当的服务边界。关于边界,与有时难以理解和抽象的领域驱动设计(DDD,一种微服务框架)形成鲜明对比,本文重点介绍了和我们行业的一些顶级 CTO 一同建立的明确定义的&…
顶级 CTO 基于五个简单的原则为精心设计的微服务提供建议。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/002658s8xpfp7qzk1j3jwc.jpg">Media</a>对于从微服务开始的团队来说,最大的挑战之一就是坚持金发女孩原则The Goldilocks principle(该典故来自于童话《金发姑娘和三只熊》):不要太大,不要太小,不能太紧密耦合。之所以是挑战的部分原因是会对究竟什么是设计良好的微服务感到疑惑。数十位 CTO 通过采访分享了他们的经验,这些对话说明了设计良好的微服务的五个特点。本文将帮助指导团队设计微服务。(有关详细信息,请查看即将出版的书籍 <a href="https://buttercms.com/books/microservices-for-startups/">Microservices for Startups</a>,LCTT 译注:已可免费下载完整的电子版)。本文将简要介绍微服务的边界和主观的 “规则”,以避免在深入了解五个特征之前就开始指导您的微服务设计。微服务边界<a href="https://buttercms.com/books/microservices-for-startups/should-you-always-start-with-a-monolith">使用微服务开发新系统的核心优势</a>之一是该体系结构允许开发人员独立构建和修改各个组件,但在最大限度地减少每个 API 之间的回调数量方面可能会出现问题。根据 <a href="https://www.sparkpost.com/">SparkPost</a> 工程副总裁 Chris McFadden 所说,解决方案是应用适当的服务边界。关于边界,与有时难以理解和抽象的领域驱动设计(DDD,一种微服务框架)形成鲜明对比,本文重点介绍了和我们行业的一些顶级 CTO 一同建立的明确定义的&…
Ubuntu PPA 使用指南
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。Media
via https://linux.cn/article-10456-1.html
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。Media
via https://linux.cn/article-10456-1.html
Ubuntu PPA 使用指南
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。如果你一直在使用 Ubuntu 或基于 Ubuntu 的其他 Linux 发行版,例如 Linux Mint、Linux Lite、Zorin OS 等,你可能会遇到以下三种神奇的命令:<pre class="prettyprint linenums">sudo add-apt-repository ppa:dr-akulavich/lighttablesudo apt-get updatesudo apt-get install lighttable-installer</pre>许多网站推荐使用类似于以上几行的形式 <a href="https://itsfoss.com/remove-install-software-ubuntu/">在 Ubuntu 中安装应用程序</a>。这就是所谓的使用 PPA 安装应用程序。但什么是 PPA?为什么要用它?使用 PPA 安全吗?如何正确使用 PPA?如何删除 PPA?我将在这个详细的指南中回答上述所有问题。即使你已经了解了一些关于 PPA 的事情,我相信这篇文章仍然会让你了解这方面的更多知识。请注意我正在使用 Ubuntu 撰写本文。因此,我几乎在各个地方都使用了 Ubuntu 这个术语,但文中的说明和步骤也适用于其他基于 Debian/Ubuntu 的发行版。什么是 PPA?为什么要使用 PPA?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/110250dii8pypjzqyhz3j3.png">Everything you need to know about PPA in Ubuntu Linux</a>PPA 表示个人软件包存档Personal Package Archive。这样说容易理解吗?可能不是很容易。在了解 PPA 之前,你应该了解 Linux 中软件仓库的概念。关于软件仓库,在这里我不会详述。软件仓库和包管理的概念软件仓库是一组文件,其中包含各种软件及其版本的信息,以及校验和等其他一些详细信息。每个版本的 Ubuntu 都有自己的四个官方软件仓库:Main - Canonical 支持的自由开源软件。Universe - 社区维护的自由开源软&…
一篇涵盖了在 Ubuntu 和其他 Linux 发行版中使用 PPA 的几乎所有问题的深入的文章。如果你一直在使用 Ubuntu 或基于 Ubuntu 的其他 Linux 发行版,例如 Linux Mint、Linux Lite、Zorin OS 等,你可能会遇到以下三种神奇的命令:<pre class="prettyprint linenums">sudo add-apt-repository ppa:dr-akulavich/lighttablesudo apt-get updatesudo apt-get install lighttable-installer</pre>许多网站推荐使用类似于以上几行的形式 <a href="https://itsfoss.com/remove-install-software-ubuntu/">在 Ubuntu 中安装应用程序</a>。这就是所谓的使用 PPA 安装应用程序。但什么是 PPA?为什么要用它?使用 PPA 安全吗?如何正确使用 PPA?如何删除 PPA?我将在这个详细的指南中回答上述所有问题。即使你已经了解了一些关于 PPA 的事情,我相信这篇文章仍然会让你了解这方面的更多知识。请注意我正在使用 Ubuntu 撰写本文。因此,我几乎在各个地方都使用了 Ubuntu 这个术语,但文中的说明和步骤也适用于其他基于 Debian/Ubuntu 的发行版。什么是 PPA?为什么要使用 PPA?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/110250dii8pypjzqyhz3j3.png">Everything you need to know about PPA in Ubuntu Linux</a>PPA 表示个人软件包存档Personal Package Archive。这样说容易理解吗?可能不是很容易。在了解 PPA 之前,你应该了解 Linux 中软件仓库的概念。关于软件仓库,在这里我不会详述。软件仓库和包管理的概念软件仓库是一组文件,其中包含各种软件及其版本的信息,以及校验和等其他一些详细信息。每个版本的 Ubuntu 都有自己的四个官方软件仓库:Main - Canonical 支持的自由开源软件。Universe - 社区维护的自由开源软&…
Turtl:Evernote 的开源替代品
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。Media
via https://linux.cn/article-10457-1.html
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。Media
via https://linux.cn/article-10457-1.html
Turtl:Evernote 的开源替代品
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133836jlxxu3l8u8k83uul.jpg">Media</a>我认识的每个人都会记笔记,许多人使用在线笔记应用,如 Evernote、Simplenote 或 Google Keep。这些都是很好的工具,但你不得不担忧信息的安全性和隐私性 —— 特别是考虑到 <a href="https://blog.evernote.com/blog/2016/12/15/evernote-revisits-privacy-policy/">Evernote 2016 年的隐私策略变更</a>。如果你想要更好地控制笔记和数据,你需要转向开源工具。无论你离开 Evernote 的原因是什么,都有开源替代品。让我们来看看其中一个选择:Turtl。入门<a href="https://turtlapp.com/">Turtl</a> 背后的开发人员希望你将其视为“具有绝对隐私的 Evernote”。说实话,我不能保证 Turtl 提供的隐私级别,但它是一个非常好的笔记工具。要开始使用 Turtl,<a href="https://turtlapp.com/download/">下载</a>适用于 Linux、Mac OS 或 Windows 的桌面客户端,或者获取它的 <a href="https://turtlapp.com/download/">Android 应用</a>。安装它,然后启动客户端或应用。系统会要求你输入用户名和密码。Turtl 使用密码来生成加密密钥,根据开发人员的说法,加密密钥会在将笔记存储在设备或服务器上之前对其进行加密。使用 Turtl你可以使用 Turtl 创建以下类型的笔记:密码档案图片书签文字笔记无论你选择何种类型的笔记,你都可以在类似的窗口中创建:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133851n3je9zuqlrhhqkfh.png">Create new text note with Turtl</a><em>在 Turtl 中创建新笔记</em>添加笔记标题、文字并(如果你正在创建文件或图像…
如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133836jlxxu3l8u8k83uul.jpg">Media</a>我认识的每个人都会记笔记,许多人使用在线笔记应用,如 Evernote、Simplenote 或 Google Keep。这些都是很好的工具,但你不得不担忧信息的安全性和隐私性 —— 特别是考虑到 <a href="https://blog.evernote.com/blog/2016/12/15/evernote-revisits-privacy-policy/">Evernote 2016 年的隐私策略变更</a>。如果你想要更好地控制笔记和数据,你需要转向开源工具。无论你离开 Evernote 的原因是什么,都有开源替代品。让我们来看看其中一个选择:Turtl。入门<a href="https://turtlapp.com/">Turtl</a> 背后的开发人员希望你将其视为“具有绝对隐私的 Evernote”。说实话,我不能保证 Turtl 提供的隐私级别,但它是一个非常好的笔记工具。要开始使用 Turtl,<a href="https://turtlapp.com/download/">下载</a>适用于 Linux、Mac OS 或 Windows 的桌面客户端,或者获取它的 <a href="https://turtlapp.com/download/">Android 应用</a>。安装它,然后启动客户端或应用。系统会要求你输入用户名和密码。Turtl 使用密码来生成加密密钥,根据开发人员的说法,加密密钥会在将笔记存储在设备或服务器上之前对其进行加密。使用 Turtl你可以使用 Turtl 创建以下类型的笔记:密码档案图片书签文字笔记无论你选择何种类型的笔记,你都可以在类似的窗口中创建:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/133851n3je9zuqlrhhqkfh.png">Create new text note with Turtl</a><em>在 Turtl 中创建新笔记</em>添加笔记标题、文字并(如果你正在创建文件或图像…
计算机实验室之树莓派:课程 1 OK01
OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。Media
via https://linux.cn/article-10458-1.html
OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。Media
via https://linux.cn/article-10458-1.html
计算机实验室之树莓派:课程 1 OK01
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/163408xpyibrbyq5d4q5cf.jpg">Media</a>OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。1、入门我们假设你已经访问了<a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/downloads.html">下载</a>页面,并且已经获得了必需的 GNU 工具链。也下载了一个称为操作系统模板的文件。请下载这个文件并在一个新目录中解开它。2、开始现在,你已经展开了这个模板文件,在 source 目录中创建一个名为 main.s 的文件。这个文件包含了这个操作系统的代码。具体来看,这个文件夹的结构应该像下面这样:<pre class="prettyprint linenums">build/ (empty)source/ main.skernel.ldLICENSEMakefile</pre>用文本编辑器打开 main.s 文件,这样我们就可以输入汇编代码了。树莓派使用了称为 ARMv6 的汇编代码变体,这就是我们即将要写的汇编代码类型。扩展名为 .s 的文件一般是汇编代码,需要记住的是,在这里它是 ARMv6 的汇编代码。首先,我们复制下面的这些命令。<pre class="prettyprint linenums">.section .init.globl _start_start:</pre>实际上,上面这些指令并没有在树莓派上做任何事情,它们是提供给汇编器的指令。汇编器是一个转换程序,它将我们能够理解的汇编代码转换成树莓派能够理解的机器代码。在汇编代码中,每个行都是一个新的命令。上面的第一行告诉汇编器 <a href="#fn1">1</a> 在哪里放我…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/19/163408xpyibrbyq5d4q5cf.jpg">Media</a>OK01 课程讲解了树莓派如何入门,以及在树莓派上如何启用靠近 RCA 和 USB 端口的 OK 或 ACT 的 LED 指示灯。这个指示灯最初是为了指示 OK 状态的,但它在第二版的树莓派上被改名为 ACT。1、入门我们假设你已经访问了<a href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/downloads.html">下载</a>页面,并且已经获得了必需的 GNU 工具链。也下载了一个称为操作系统模板的文件。请下载这个文件并在一个新目录中解开它。2、开始现在,你已经展开了这个模板文件,在 source 目录中创建一个名为 main.s 的文件。这个文件包含了这个操作系统的代码。具体来看,这个文件夹的结构应该像下面这样:<pre class="prettyprint linenums">build/ (empty)source/ main.skernel.ldLICENSEMakefile</pre>用文本编辑器打开 main.s 文件,这样我们就可以输入汇编代码了。树莓派使用了称为 ARMv6 的汇编代码变体,这就是我们即将要写的汇编代码类型。扩展名为 .s 的文件一般是汇编代码,需要记住的是,在这里它是 ARMv6 的汇编代码。首先,我们复制下面的这些命令。<pre class="prettyprint linenums">.section .init.globl _start_start:</pre>实际上,上面这些指令并没有在树莓派上做任何事情,它们是提供给汇编器的指令。汇编器是一个转换程序,它将我们能够理解的汇编代码转换成树莓派能够理解的机器代码。在汇编代码中,每个行都是一个新的命令。上面的第一行告诉汇编器 <a href="#fn1">1</a> 在哪里放我…