2019年8月

这比较复杂。

作为一个经常管理软件开发团队的人,多年来我一直关注度量指标。一次次,我发现自己领导团队使用一个又一个的项目平台(例如 Jira、GitLab 和 Rally)生成了大量可测量的数据。从那时起,我已经及时投入了大量时间从记录平台中提取了有用的指标,并采用了一种我们可以理解的格式,然后使用这些指标对开发的许多方面做出更好的选择。

今年早些时候,我有幸在 Linux 基金会遇到了一个名为 开源软件社区健康分析 Community Health Analytics for Open Source Software (CHAOSS)的项目。该项目侧重于从各种来源收集和丰富指标,以便开源社区的利益相关者可以衡量他们项目的健康状况。

CHAOSS 介绍

随着我对该项目的基本指标和目标越来越熟悉,一个问题在我的脑海中不断翻滚。什么是“健康”的开源项目,由谁来定义?

特定角色的人认为健康的东西可能另一个角色的人就不会这样认为。似乎可以用 CHAOSS 收集的细粒度数据进行市场细分实验,重点关注对特定角色可能最有意义的背景问题,以及 CHAOSS 收集哪些指标可能有助于回答这些问题。

CHAOSS 项目创建并维护了一套开源应用程序和度量标准定义,使得这个实验具有可能性,这包括:

  • 许多基于服务器的应用程序,用于收集、聚合和丰富度量标准(例如 Augur 和 GrimoireLab)。
  • ElasticSearch、Kibana 和 Logstash(ELK)的开源版本。
  • 身份服务、数据分析服务和各种集成库。

在我过去的一个程序中,有六个团队从事于不同复杂程度的项目,我们找到了一个简洁的工具,它允许我们从简单(或复杂)的 JQL 语句中创建我们想要的任何类型的指标,然后针对这些指标开发计算。在我们注意到之前,我们仅从 Jira 中就提取了 400 多个指标,而且还有更多指标来自手动的来源。

在项目结束时,我们认定这 400 个指标中,大多数指标在以我们的角色做出决策时并不重要。最终,只有三个对我们非常重要:“缺陷去除效率”、“已完成的条目与承诺的条目”,以及“每个开发人员的工作进度”。这三个指标最重要,因为它们是我们对自己、客户和团队成员所做出的承诺,因此是最有意义的。

带着这些通过经验得到的教训和对什么是健康的开源项目的问题,我跳进了 CHAOSS 社区,开始建立一套角色,以提供一种建设性的方法,从基于角色的角度回答这个问题。

CHAOSS 是一个开源项目,我们尝试使用民主共识来运作。因此,我决定使用 组成分子 constituent 这个词而不是利益相关者,因为它更符合我们作为开源贡献者的责任,以创建更具共生性的价值链。

虽然创建此组成模型的过程采用了特定的“目标-问题-度量”方法,但有许多方法可以进行细分。CHAOSS 贡献者已经开发了很好的模型,可以按照矢量进行细分,例如项目属性(例如,个人、公司或联盟)和“失败容忍度”。在为 CHAOSS 开发度量定义时,每个模型都会提供建设性的影响。

基于这一切,我开始构建一个谁可能关心 CHAOSS 指标的模型,以及每个组成分子在 CHAOSS 的四个重点领域中最关心的问题:

在我们深入研究之前,重要的是要注意 CHAOSS 项目明确地将背景判断留给了实施指标的团队。什么是“有意义的”和“什么是健康的?”的答案预计会因团队和项目而异。CHAOSS 软件的现成仪表板尽可能地关注客观指标。在本文中,我们关注项目创始人、项目维护者和贡献者。

项目组成分子

虽然这绝不是这些组成分子可能认为重要的问题的详尽清单,但这些选择感觉是一个好的起点。以下每个“目标-问题-度量”标准部分与 CHAOSS 项目正在收集和汇总的指标直接相关。

现在,进入分析的第 1 部分!

项目创始人

作为项目创始人,我关心:

  • 我的项目对其他人有用吗?通过以下测量:

    • 随着时间推移有多少复刻?

      • 指标:存储库复刻数。
    • 随着时间的推移有多少贡献者?

      • 指标:贡献者数量。
    • 贡献净质量。

      • 指标:随着时间的推移提交的错误。
      • 指标:随着时间的回归。
    • 项目的财务状况。

      • 指标:随着时间的推移的捐赠/收入。
      • 指标:随着时间的推移的费用。
  • 我的项目对其它人的可见程度?

    • 有谁知道我的项目?别人认为它很整洁吗?

      • 指标:社交媒体上的提及、分享、喜欢和订阅的数量。
    • 有影响力的人是否了解我的项目?

      • 指标:贡献者的社会影响力。
    • 人们在公共场所对项目有何评价?是正面还是负面?

      • 指标:跨社交媒体渠道的情感(关键字或 NLP)分析。
  • 我的项目可行性程度?

    • 我们有足够的维护者吗?该数字是随着时间的推移而上升还是下降?

      • 指标:维护者数量。
    • 改变速度如何随时间变化?

      • 指标:代码随时间的变化百分比。
      • 指标:拉取请求、代码审查和合并之间的时间。
  • 我的项目的多样化 & 包容性如何?

    • 我们是否拥有有效的公开行为准则(CoC)?

      • 度量标准: 检查存储库中的 CoC 文件。
    • 与我的项目相关的活动是否积极包容?

      • 指标:关于活动的票务政策和活动包容性行为的手动报告。
    • 我们的项目在可访问性上做的好不好?

      • 指标:验证发布的文字会议纪要。
      • 指标:验证会议期间使用的隐藏式字幕。
      • 指标:验证在演示文稿和项目前端设计中色盲可访问的素材。
  • 我的项目代表了多少价值

    • 我如何帮助组织了解使用我们的项目将节省多少时间和金钱(劳动力投资)

      • 指标:仓库的议题、提交、拉取请求的数量和估计人工费率。
    • 我如何理解项目创建的下游价值的数量,以及维护我的项目对更广泛的社区的重要性(或不重要)?

      • 指标:依赖我的项目的其他项目数。
    • 为我的项目做出贡献的人有多少机会使用他们学到的东西来找到合适的工作岗位,以及在哪些组织(即生活工资)?

      • 指标:使用或贡献此库的组织数量。
      • 指标:使用此类项目的开发人员的平均工资。
      • 指标:与该项目匹配的关键字的职位发布计数。

项目维护者

作为项目维护者,我关心:

  • 我是高效的维护者吗?

    • 指标:拉取请求在代码审查之前等待的时间。
    • 指标:代码审查和后续拉取请求之间的时间。
    • 指标:我的代码审核中有多少被批准?
    • 指标:我的代码评论中有多少被拒绝或返工?
    • 指标:代码审查的评论的情感分析。
  • 我如何让更多人帮助我维护这件事?

    • 指标:项目贡献者的社交覆盖面数量。
  • 我们的代码质量随着时间的推移变得越来越好吗?

    • 指标:计算随着时间的推移引入的回归数量。
    • 指标:计算随着时间推移引入的错误数量。
    • 指标:错误归档、拉取请求、代码审查、合并和发布之间的时间。

项目开发者和贡献者

作为项目开发者或贡献者,我关心:

  • 我可以从为这个项目做出贡献中获得哪些有价值的东西,以及实现这个价值需要多长时间?

    • 指标:下游价值。
    • 指标:提交、代码审查和合并之间的时间。
  • 通过使用我在贡献中学到的东西来增加工作机是否有良好的前景?

    • 指标:生活工资。
  • 这个项目有多受欢迎?

    • 指标:社交媒体帖子、分享和收藏的数量。
  • 社区有影响力的人知道我的项目吗?

    • 指标:创始人、维护者和贡献者的社交范围。

通过创建这个列表,我们开始让 CHAOSS 更加丰满了,并且在今年夏天项目中首次发布该指标时,我迫不及待地想看看广泛的开源社区可能有什么其他伟大的想法,以及我们还可以从这些贡献中学到什么(并衡量!)。

其它角色

接下来,你需要了解有关其他角色(例如基金会、企业开源计划办公室、业务风险和法律团队、人力资源等)以及最终用户的目标问题度量集的更多信息。他们关心开源的不同事物。

如果你是开源贡献者或组成分子,我们邀请你来看看这个项目并参与社区活动!


via: https://opensource.com/article/19/8/measure-project

作者:Jon Lawrence 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Check Linux Package Version

大多数人都知道如何在 Linux 中查找已安装软件包的版本,但是,你会如何查找那些还没有安装的软件包的版本呢?很简单!本文将介绍在 Debian 及其衍生品(如 Ubuntu)中,如何在软件包安装之前检查它的版本。对于那些想在安装之前知道软件包版本的人来说,这个小技巧可能会有所帮助。

在安装之前检查 Linux 软件包版本

在基于 DEB 的系统中,即使软件包还没有安装,也有很多方法可以查看他的版本。接下来,我将一一介绍。

方法 1 – 使用 Apt

检查软件包的版本的懒人方法:

$ apt show <package-name>

示例:

$ apt show vim

示例输出:

Package: vim
Version: 2:8.0.1453-1ubuntu1.1
Priority: optional
Section: editors
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Vim Maintainers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,852 kB
Provides: editor
Depends: vim-common (= 2:8.0.1453-1ubuntu1.1), vim-runtime (= 2:8.0.1453-1ubuntu1.1), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.7), libpython3.6 (>= 3.6.5), libselinux1 (>= 1.32), libtinfo5 (>= 6)
Suggests: ctags, vim-doc, vim-scripts
Homepage: https://vim.sourceforge.io/
Task: cloud-image, server
Supported: 5y
Download-Size: 1,152 kB
APT-Sources: http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description: Vi IMproved - enhanced vi editor
 Vim is an almost compatible version of the UNIX editor Vi.
 .
 Many new features have been added: multi level undo, syntax
 highlighting, command line history, on-line help, filename
 completion, block operations, folding, Unicode support, etc.
 .
 This package contains a version of vim compiled with a rather
 standard set of features.  This package does not provide a GUI
 version of Vim.  See the other vim-* packages if you need more
 (or less).

N: There is 1 additional record. Please use the '-a' switch to see it

正如你在上面的输出中看到的,apt show 命令显示了软件包许多重要的细节,例如:

  1. 包名称,
  2. 版本,
  3. 来源(vim 来自哪里),
  4. 维护者,
  5. 包的主页,
  6. 依赖,
  7. 下载大小,
  8. 简介,
  9. 其他。

因此,Ubuntu 仓库中可用的 Vim 版本是 8.0.1453。如果我把它安装到我的 Ubuntu 系统上,就会得到这个版本。

或者,如果你不想看那么多的内容,那么可以使用 apt policy 这个命令:

$ apt policy vim
vim:
  Installed: (none)
  Candidate: 2:8.0.1453-1ubuntu1.1
  Version table:
     2:8.0.1453-1ubuntu1.1 500
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
     2:8.0.1453-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

甚至更短:

$ apt list vim
Listing... Done
vim/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.1 amd64
N: There is 1 additional version. Please use the '-a' switch to see it

apt 是 Ubuntu 最新版本的默认包管理器。因此,这个命令足以找到一个软件包的详细信息,给定的软件包是否安装并不重要。这个命令将简单地列出给定包的版本以及其他详细信息。

方法 2 – 使用 Apt-get

要查看软件包的版本而不安装它,我们可以使用 apt-get 命令和 -s 选项。

$ apt-get -s install vim

示例输出:

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim
0 upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Inst vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])

这里,-s 选项代表 模拟。正如你在输出中看到的,它不执行任何操作。相反,它只是模拟执行,好让你知道在安装 Vim 时会发生什么。

你可以将 install 选项替换为 upgrade,以查看升级包时会发生什么。

$ apt-get -s upgrade vim

方法 3 – 使用 Aptitude

在 Debian 及其衍生品中,aptitude 是一个基于 ncurses(LCTT 译注:ncurses 是终端基于文本的字符处理的库)和命令行的前端 APT 包管理器。

使用 aptitude 来查看软件包的版本,只需运行:

$ aptitude versions vim
p   2:8.0.1453-1ubuntu1                                                              bionic                                                        500
p   2:8.0.1453-1ubuntu1.1                                                            bionic-security,bionic-updates                                500

你还可以使用模拟选项(-s)来查看安装或升级包时会发生什么。

$ aptitude -V -s install vim
The following NEW packages will be installed:
  vim [2:8.0.1453-1ubuntu1.1]
0 packages upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Need to get 1,152 kB of archives. After unpacking 2,852 kB will be used.
Would download/install/remove packages.

这里,-V 标志用于显示软件包的详细信息。

$ aptitude -V -s upgrade vim

类似的,只需将 install 替换为 upgrade 选项,即可查看升级包会发生什么。

$ aptitude search vim -F "%c %p %d %V"

这里,

  • -F 用于指定应使用哪种格式来显示输出,
  • %c – 包的状态(已安装或未安装),
  • %p – 包的名称,
  • %d – 包的简介,
  • %V – 包的版本。

当你不知道完整的软件包名称时,这非常有用。这个命令将列出包含给定字符串(即 vim)的所有软件包。

以下是上述命令的示例输出:

[...]
p vim                                                           Vi IMproved - enhanced vi editor                                         2:8.0.1453-1ub
p vim-tlib                                                      Some vim utility functions                                               1.23-1
p vim-ultisnips                                                 snippet solution for Vim                                                 3.1-3
p vim-vimerl                                                    Erlang plugin for Vim                                                    1.4.1+git20120
p vim-vimerl-syntax                                             Erlang syntax for Vim                                                    1.4.1+git20120
p vim-vimoutliner                                               script for building an outline editor on top of Vim                      0.3.4+pristine
p vim-voom                                                      Vim two-pane outliner                                                    5.2-1
p vim-youcompleteme                                             fast, as-you-type, fuzzy-search code completion engine for Vim           0+20161219+git

方法 4 – 使用 Apt-cache

apt-cache 命令用于查询基于 Debian 的系统中的 APT 缓存。对于要在 APT 的包缓存上执行很多操作时,它很有用。一个很好的例子是我们可以从某个仓库或 ppa 中列出已安装的应用程序

不仅是已安装的应用程序,我们还可以找到软件包的版本,即使它没有被安装。例如,以下命令将找到 Vim 的版本:

$ apt-cache policy vim

示例输出:

vim:
  Installed: (none)
  Candidate: 2:8.0.1453-1ubuntu1.1
  Version table:
     2:8.0.1453-1ubuntu1.1 500
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
     2:8.0.1453-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

正如你在上面的输出中所看到的,Vim 并没有安装。如果你想安装它,你会知道它的版本是 8.0.1453。它还显示 vim 包来自哪个仓库。

方法 5 – 使用 Apt-show-versions

在 Debian 和基于 Debian 的系统中,apt-show-versions 命令用于列出已安装和可用软件包的版本。它还显示所有可升级软件包的列表。如果你有一个混合的稳定或测试环境,这是非常方便的。例如,如果你同时启用了稳定和测试仓库,那么你可以轻松地从测试库找到应用程序列表,还可以升级测试库中的所有软件包。

默认情况下系统没有安装 apt-show-versions,你需要使用以下命令来安装它:

$ sudo apt-get install apt-show-versions

安装后,运行以下命令查找软件包的版本,例如 Vim:

$ apt-show-versions -a vim
vim:amd64 2:8.0.1453-1ubuntu1   bionic          archive.ubuntu.com
vim:amd64 2:8.0.1453-1ubuntu1.1 bionic-security security.ubuntu.com
vim:amd64 2:8.0.1453-1ubuntu1.1 bionic-updates  archive.ubuntu.com
vim:amd64 not installed

这里,-a 选项打印给定软件包的所有可用版本。

如果已经安装了给定的软件包,那么就不需要使用 -a 选项。在这种情况下,只需运行:

$ apt-show-versions vim

差不多完了。如果你还了解其他方法,在下面的评论中分享,我将检查并更新本指南。


via: https://www.ostechnix.com/how-to-check-linux-package-version-before-installing-it/

作者:sk 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

不要错过两周以来最大的开源头条新闻。

 title=

在本期开源新闻综述中,我们将介绍两种新的强大数据可视化工具、Nvidia 开源其 GPU 文档、激动人心的新工具、确保自动驾驶汽车的固件安全等等!

GNOME 和 KDE 在 Linux 桌面上达成合作伙伴

Linux 在桌面计算机上一直处于分裂状态。在最近的一篇公告中称,“两个主要的 Linux 桌面竞争对手,GNOME 基金会KDE 已经同意合作。”

这两个组织将成为今年 11 月在巴塞罗那举办的 Linux App Summit(LAS)2019 的赞助商。这一举措在某种程度上似乎是对桌面计算不再是争夺支配地位的最佳场所的回应。无论是什么原因,Linux 桌面的粉丝们都有新的理由希望未来出现一个标准化的 GUI 环境。

新的开源数据可视化工具

这个世界上很少有不是由数据驱动的。除非数据以人们可以互动的形式出现,否则它并不是很好使用。最近开源的两个数据可视化项目正在尝试使数据更有用。

第一个工具名为 Neuroglancer,由 Google 的研究团队创建。它“使神经科医生能够在交互式可视化中建立大脑神经通路的 3D 模型。”Neuroglancer 通过使用神经网络追踪大脑中的神经元路径并构建完整的可视化来实现这一点。科学家已经使用了 Neuroglancer(你可以从 GitHub 取得)通过扫描果蝇的大脑来建立一个交互式地图。

第二个工具来自一个不太能想到的的来源:澳大利亚信号理事会。这是该国家类似 NSA 的机构,它“开源了内部数据可视化和分析工具之一。”这个被称为 Constellation 的工具可以“识别复杂数据集中的趋势和模式,并且能够扩展到‘数十亿输入’。”该机构总干事迈克•伯吉斯表示,他希望“这一工具将有助于产生有利于所有澳大利亚人的科学和其他方面的突破。”鉴于它是开源的,它可以使整个世界受益。

Nvidia 开始发布 GPU 文档

多年来,图形处理单元(GPU)制造商 Nvidia 并没有做出什么让开源项目轻松开发其产品的驱动程序的努力。现在,该公司通过发布 GPU 硬件文档向这些项目迈出了一大步。

该公司根据 MIT 许可证发布的文档可在 GitHub 上获取。它涵盖了几个关键领域,如设备初始化、内存时钟/调整和电源状态。据硬件新闻网站 Phoronix 称,开发了 Nvidia GPU 的开源驱动程序的 Nouveau 项目将是率先使用该文档来推动其开发工作的项目之一。

用于保护固件的新工具

似乎每周都有的消息称,移动设备或连接互联网的小设备中出现新漏洞。通常,这些漏洞存在于控制设备的固件中。自动驾驶汽车服务 Cruise 发布了一个开源工具,用于在这些漏洞成为问题之前捕获这些漏洞。

该工具被称为 FwAnalzyer。它检查固件代码中是否存在许多潜在问题,包括“识别潜在危险的可执行文件”,并查明“任何错误遗留的调试代码”。Cruise 的工程师 Collin Mulliner 曾帮助开发该工具,他说通过在代码上运行 FwAnalyzer,固件开发人员“现在能够检测并防止各种安全问题。”

其它新闻

一如既往地感谢 Opensource.com 的工作人员和主持人本周的帮助。


via: https://opensource.com/article/19/8/news-august-17

作者:Scott Nesbitt 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

开源 SVG:墙上的魔法字。

新巴比伦的摄政王伯沙撒没有注意到他在盛宴期间神奇地书写在墙上的文字。但是,如果他在公元前 539 年有一台笔记本电脑和良好的互联网连接,他可能会通过在浏览器上阅读 SVG 来避开那些讨厌的波斯人。

出现在网页上的动画文本和对象是建立用户兴趣和参与度的好方法。有几种方法可以实现这一点,例如视频嵌入、动画 GIF 或幻灯片 —— 但你也可以使用可缩放矢量图形(SVG)

SVG 图像与 JPG 不同,因为它可以缩放而不会丢失其分辨率。矢量图像是由点而不是像素创建的,所以无论它放大到多大,它都不会失去分辨率或像素化。充分利用可缩放的静态图像的一个例子是网站的徽标。

动起来,动起来

你可以使用多种绘图程序创建 SVG 图像,包括开源的 Inkscape 和 Adobe Illustrator。让你的图像“能动起来”需要更多的努力。幸运的是,有一些开源解决方案甚至可以引起伯沙撒的注意。

MacSVG 是一款可以让你的图像动起来的工具。你可以在 GitHub 上找到源代码。

根据其官网说,MacSVG 由阿肯色州康威的 Douglas Ward 开发,是一个“用于设计 HTML5 SVG 艺术和动画的开源 Mac OS 应用程序”。

我想使用 MacSVG 来创建一个动画签名。我承认我发现这个过程有点令人困惑,并且在我第一次尝试创建一个实际的动画 SVG 图像时失败了。

重要的是首先要了解要展示的书法内容实际写的是什么。

动画文字背后的属性是 stroke-dasharray。将该术语分成三个单词有助于解释正在发生的事情:“stroke” 是指用笔(无论是物理的笔还是数字化笔)制作的线条或笔画。“dash” 意味着将笔划分解为一系列折线。“array” 意味着将整个东西生成为数组。这是一个简单的概述,但它可以帮助我理解应该发生什么以及为什么。

使用 MacSVG,你可以导入图形(.PNG)并使用钢笔工具描绘书写路径。我使用了草书来表示我的名字。然后,只需应用该属性来让书法动画起来、增加和减少笔划的粗细、改变其颜色等等。完成后,动画的书法将导出为 .SVG 文件,并可以在网络上使用。除书写外,MacSVG 还可用于许多不同类型的 SVG 动画。

在 WordPress 中书写

我准备在我的 WordPress 网站上传和分享我的 SVG 示例,但我发现 WordPress 不允许进行 SVG 媒体导入。幸运的是,我找到了一个方便的插件:Benbodhi 的 SVG 支持插件允许快速、轻松地导入我的 SVG,就像我将 JPG 导入媒体库一样。我能够在世界各地向巴比伦人展示我写在墙上的魔法字

我在 Brackets 中开源了 SVG 的源代码,结果如下:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="360px" style="zoom: 1;" cursor="default" id="svg_document" width="480px" baseProfile="full" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 480 360"><title id="svg_document_title">Path animation with stroke-dasharray</title><desc id="desc1">This example demonstrates the use of a path element, an animate element, and the stroke-dasharray attribute to simulate drawing.</desc><defs id="svg_document_defs"></defs><g id="main_group"></g><path stroke="#004d40" id="path2" stroke-width="9px" d="M86,75 C86,75 75,72 72,61 C69,50 66,37 71,34 C76,31 86,21 92,35 C98,49 95,73 94,82 C93,91 87,105 83,110 C79,115 70,124 71,113 C72,102 67,105 75,97 C83,89 111,74 111,74 C111,74 119,64 119,63 C119,62 110,57 109,58 C108,59 102,65 102,66 C102,67 101,75 107,79 C113,83 118,85 122,81 C126,77 133,78 136,64 C139,50 147,45 146,33 C145,21 136,15 132,24 C128,33 123,40 123,49 C123,58 135,87 135,96 C135,105 139,117 133,120 C127,123 116,127 120,116 C124,105 144,82 144,81 C144,80 158,66 159,58 C160,50 159,48 161,43 C163,38 172,23 166,22 C160,21 155,12 153,23 C151,34 161,68 160,78 C159,88 164,108 163,113 C162,118 165,126 157,128 C149,130 152,109 152,109 C152,109 185,64 185,64 " fill="none" transform=""><animate values="0,1739;1739,0;" attributeType="XML" begin="0; animate1.end+5s" id="animateSig1" repeatCount="indefinite" attributeName="stroke-dasharray" fill="freeze" dur="2"></animate></path></svg>

你会使用 MacSVG 做什么?


via: https://opensource.com/article/18/10/macsvg-open-source-tool-animation

作者:Jeff Macharyas 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最近发布的 Ubuntu 18.04.3 包括 Linux 5.0 内核中的几个新功能和改进,但默认情况下没有安装。本教程演示了如何在 Ubuntu 18.04 LTS 中获取 Linux 5 内核。

Ubuntu 18.04 的第三个“点发布版”已经发布,它带来了新的稳定版本的 GNOME 组件、livepatch 桌面集成和内核 5.0。

可是等等!什么是“ 小数点版本 point release ”?让我先解释一下。

Ubuntu LTS 小数点版本

Ubuntu 18.04 于 2018 年 4 月发布,由于它是一个长期支持 (LTS) 版本,它将一直支持到 2023 年。从那时起,已经有许多 bug 修复、安全更新和软件升级。如果你今天下载 Ubuntu 18.04,你需要在在安装 Ubuntu 后首先安装这些更新

当然,这不是一种理想情况。这就是 Ubuntu 提供这些“小数点版本”的原因。点发布版包含所有功能和安全更新以及自 LTS 版本首次发布以来添加的 bug 修复。如果你今天下载 Ubuntu,你会得到 Ubuntu 18.04.3 而不是 Ubuntu 18.04。这节省了在新安装的 Ubuntu 系统上下载和安装数百个更新的麻烦。

好了!现在你知道“小数点版本”的概念了。你如何升级到这些小数点版本?答案很简单。只需要像平时一样更新你的 Ubuntu 系统,这样你将在最新的小数点版本上了。

你可以查看 Ubuntu 版本来了解正在使用的版本。我检查了一下,因为我用的是 Ubuntu 18.04.3,我以为我的内核会是 5。当我查看 Linux 内核版本时,它仍然是基本内核 4.15。

Ubuntu Version And Linux Kernel Version Check

这是为什么?如果 Ubuntu 18.04.3 有 Linux 5.0 内核,为什么它仍然使用 Linux 4.15 内核?这是因为你必须通过选择 LTS 支持栈 Enablement Stack (通常称为 HWE)手动请求在 Ubuntu LTS 中安装新内核。

使用 HWE 在Ubuntu 18.04 中获取 Linux 5.0 内核

默认情况下,Ubuntu LTS 将保持在最初发布的 Linux 内核上。 硬件支持栈 hardware enablement stack (HWE)为现有的 Ubuntu LTS 版本提供了更新的内核和 xorg 支持。

最近发生了一些变化。如果你下载了 Ubuntu 18.04.2 或更新的桌面版本,那么就会为你启用 HWE,默认情况下你将获得新内核以及常规更新。

对于服务器版本以及下载了 18.04 和 18.04.1 的人员,你需要安装 HWE 内核。完成后,你将获得 Ubuntu 提供的更新的 LTS 版本内核。

要在 Ubuntu 桌面上安装 HWE 内核以及更新的 xorg,你可以在终端中使用此命令:

sudo apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04

如果你使用的是 Ubuntu 服务器版,那么就不会有 xorg 选项。所以只需在 Ubutnu 服务器版中安装 HWE 内核:

sudo apt-get install --install-recommends linux-generic-hwe-18.04

完成 HWE 内核的安装后,重启系统。现在你应该拥有更新的 Linux 内核了。

你在 Ubuntu 18.04 中获取 5.0 内核了么?

请注意,下载并安装了 Ubuntu 18.04.2 的用户已经启用了 HWE。所以这些用户将能轻松获取 5.0 内核。

在 Ubuntu 中启用 HWE 内核遇到困难了么?这完全取决于你。Linux 5.0 内核有几项性能改进和更好的硬件支持。你将从新内核获益。

你怎么看?你会安装 5.0 内核还是宁愿留在 4.15 内核上?


via: https://itsfoss.com/ubuntu-hwe-kernel/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当你打开系统电源时,你会等待制造商的徽标出现,屏幕上可能会显示一些消息(以非安全模式启动),然后是 Grub 屏幕、操作系统加载屏幕以及最后的登录屏。

你检查过这花费了多长时间么?也许没有。除非你真的需要知道,否则你不会在意开机时间。

但是如果你很想知道你的 Linux 系统需要很长时间才能启动完成呢?使用秒表是一种方法,但在 Linux 中,你有一种更好、更轻松地了解系统启动时间的方法。

在 Linux 中使用 systemd-analyze 检查启动时间

无论你是否喜欢,systemd 运行在大多数流行的 Linux 发行版中。systemd 有许多管理 Linux 系统的工具。其中一个就是 systemd-analyze

systemd-analyze 命令为你提供最近一次启动时运行的服务数量以及消耗时间的详细信息。

如果在终端中运行以下命令:

systemd-analyze

你将获得总启动时间以及固件、引导加载程序、内核和用户空间所消耗的时间:

Startup finished in 7.275s (firmware) + 13.136s (loader) + 2.803s (kernel) + 12.488s (userspace) = 35.704s

graphical.target reached after 12.408s in userspace

正如你在上面的输出中所看到的,我的系统花了大约 35 秒才进入可以输入密码的页面。我正在使用戴尔 XPS Ubuntu。它使用 SSD 存储,尽管如此,它还需要很长时间才能启动。

不是那么令人印象深刻,是吗?为什么不共享你们系统的启动时间?我们来比较吧。

你可以使用以下命令将启动时间进一步细分为每个单元:

systemd-analyze blame

这将生成大量输出,所有服务按所用时间的降序列出。

7.347s plymouth-quit-wait.service
6.198s NetworkManager-wait-online.service
3.602s plymouth-start.service
3.271s plymouth-read-write.service
2.120s apparmor.service
1.503s [email protected]
1.213s motd-news.service
 908ms snapd.service
 861ms keyboard-setup.service
 739ms fwupd.service
 702ms bolt.service
 672ms dev-nvme0n1p3.device
 608ms [email protected]:intel_backlight.service
 539ms snap-core-7270.mount
 504ms snap-midori-451.mount
 463ms snap-screencloud-1.mount
 446ms snapd.seeded.service
 440ms snap-gtk\x2dcommon\x2dthemes-1313.mount
 420ms snap-core18-1066.mount
 416ms snap-scrcpy-133.mount
 412ms snap-gnome\x2dcharacters-296.mount

额外提示:改善启动时间

如果查看此输出,你可以看到网络管理器和 plymouth 都消耗了大量的启动时间。

Plymouth 负责你在 Ubuntu 和其他发行版中在登录页面出现之前的引导页面。网络管理器负责互联网连接,可以关闭它来加快启动时间。不要担心,在你登录后,你可以正常使用 wifi。

sudo systemctl disable NetworkManager-wait-online.service

如果要还原更改,可以使用以下命令:

sudo systemctl enable NetworkManager-wait-online.service

请不要在不知道用途的情况下自行禁用各种服务。这可能会产生危险的后果。

现在你知道了如何检查 Linux 系统的启动时间,为什么不在评论栏分享你的系统的启动时间?


via: https://itsfoss.com/check-boot-time-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出