Kevin Sonney 发布的文章

文件夹的用途是存储信息和任务。使用标签来帮助你更好地组织这些文件夹中的内容。

 title=

在前几年,这个年度系列报道了诸如 Notmuch 和 Syncthing 之类的开源的组织应用程序。今年,我们除了关注 2021 年的策略外,还将关注一体化解决方案。欢迎来到 2021 年 21 天生产力的第九天。

我用我的电子邮件、待办列表和笔记来做这件事,有一天我决定我要把这些“组织起来”,重新安排我保存东西的方式和位置。有时我发现了一个新的程序,我必须(再次)从头开始配置。有时,当前的方法已经花了很多时间,与我使用系统的时间相比,我花了更多的时间在保持存储顺序最新。我去年测试一些待办列表软件时,最后一个软件让我有了一个非常重要的认识。

 title=

所有事情都有存放的地方(Kevin Sonney, CC BY-SA 4.0)

让我打个比方。一个任务(或电子邮件或笔记)就像你在一次活动中收到的那件很酷的 T 恤。它是黑色的,有一个很棒的图案,后面有一个标签,上面写着尺寸,领口有一个标签,上面写着洗涤说明。到了该收起来的时候,它该放在哪里呢?是和黑色的 T 恤放在一起吗?是和类似主题的衬衫放在一起吗?是按尺码放吗?是按需要洗涤的方式?还是按材质?

一件 T 恤只能放在一个地方,即使它可以有多种特质。我们需要以同样的方式对待任务、电子邮件和笔记。大型电子邮件提供商已经允许我们把一个标签当作一个文件夹。一封邮件(或一个文档或一个任务)可以同时在两个文件夹中!或者三个!甚至 11 个!

 title=

它高达 11 个(Seth Kenlon, CC BY-SA 4.0)

我必须明智地决定不再这样做。文件夹不是标签,标签也不是文件夹。这让我找到了我目前整理待办事项清单(和笔记,以及电子邮件)的规则:

  1. 一个任务只应该在一个文件夹里。文件夹是以“大事”来命名的,比如一个地方或组织。我目前有三个文件夹来存放任务。“工作”、“家庭”和 “爱好”。当我专注于其中一个领域时,我知道我在看什么任务。
  2. 一个任务可以有任意个我需要的标签。我尽量保持在三个左右或更少。
  3. 一个任务应该有一个明确的意义。也许是你要写的程序的名字。也许是一些通用的东西,比如“要读的书”或“账单”。但如果你记不起 “4rg8sn5” 就是“要支付的账单”,这就对你没有帮助。

利用这些规则,如果我有一个“写第 9 天文章”的任务,它就会进入”爱好“文件夹,我给它打上 “OSDC”、“文章”、“2021” 的标签。如果我想在我的 Elementary Planner 中看到我所有的 2021 年的任务,我可以搜索这个标签。任务最终会出现在 “OSDC” 的搜索中,其中可能还包括一个对文章发表评论的待办事项,一个开始规划 2022 年系列的待办事项,还有一个跟进我认为有好文章想法的人。

我的“工作”文件夹里的东西通常是按项目标记的。“完成管理 CLI 文档”可能会被分为 “github”、“prod” 和 “admin”。“docs” 标签包含了“工作”和”爱好“文件夹中的项目,因为写文档是这两个文件夹都需要做的事情。

 title=

文件夹和标签(Kevin Sonney, CC BY-SA 4.0)

将“标签”和“文件夹”进行心理分离,帮助我将任务进行分组和分类,而不至于过度。这也意味着我可以更快地找到事情,花更少的时间去维护我的待办事项清单,而花更多的时间去做清单上的事情。


via: https://opensource.com/article/21/1/labels

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

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

KDE 很棒,但当你使用这个统一个人信息管理器 Kontact 时,它才真正发挥了作用。

在前几年,这个年度系列涵盖了单个的应用。今年,我们除了关注 2021 年的策略外,还将关注一体化解决方案。欢迎来到 2021 年 21 天生产力的第六天。

在很久很久以前,当编译内核还是获取 WiFi 驱动的唯一途径时,图形环境主要是用来运行网页浏览器和打开大量终端窗口。其外观和感觉是由程序作者选择使用的各种工具箱组成的大杂烩。然后,在 1996 年 Matthias Ettrich 提出并随后发布了第一个版本的 KDE。它是基于当时专有的 Qt) 工具箱(后来成为自由而开源的)。这个版本引发了 Linux 上的桌面革命,同一时期出现的还有使用当时的自由开源软件 GTK 工具包所创建的 GNOME 桌面 。不管是 KDE 还是 GNOME,Linux 从一个只有电脑操作人员使用的 Linux 操作系统变成了一个人人都能使用的强大桌面环境。

 title=

Fedora KDE 版的默认桌面 (Kevin Sonney, CC BY-SA 4.0)

KDE Plasma 5 是最新的 KDE 版本,它的功能非常丰富,可以提高你的工作效率。它包括了 Konqueror 网页浏览器、Dolphin 文件管理器和 Konsole 终端模拟器,所有这些都为这个桌面环境提供了一个很好的坚实基础,但是 KDE 真正提高生产力的方法是这个统一个人信息管理器:Kontact。

Kontact 为其他几个 KDE 程序提供了一个单一的界面,包括:KMail(电子邮件)、KOrganizer(日历、待办事项和日记)、KAddressBook(地址簿)、KNotes(笔记)、Akregator(RSS/ATOM 订阅阅读器)等。第一次启动时,Kontact 会引导你完成电子邮件提供商的设置,它支持本地和远程邮件配置。然后,Kontact 会进入一个仪表板,默认情况下,该仪表板会显示最近的电子邮件、日历事件、计划任务和最近的笔记。

 title=

Kontact 概览页面 (Kevin Sonney, CC BY-SA 4.0)

设置“流程”看起来有点奇怪,因为在内置的本地账户之外没有配置统一的单一账户。在 Kontact(通过 KMail)引导你完成邮件设置后,你就可以进入日历页面添加你的日历,这里也配置了待办事项和日记应用(对于某些提供商,还可以配置通讯录)。

邮件和日历组件非常简单明了,可以如你期望地正常工作。待办事项页面和日记是与日历绑定的,这对于一些不完全支持所有日历类型的日历提供商来说可能是个问题(Google,我说的是你)。如果你使用的是这些提供商中的一个,你将需要为日记和待办事项创建一个特定的本地日历。

 title=

Kontact Calendar (Kevin Sonney, CC BY-SA 4.0)

待办事项列表有很多功能。虽然它可以作为一个简单的任务清单与提醒,它也支持一些轻量级的项目管理功能。它有一个完成百分比的滑块,可以从主列表视图中更新,这样你就可以跟踪进度。它能够附加文件和分配 1-10 的优先级。最后,它可以像其他日历约会一样将用户添加到任务中。

创建一个日记条目本质上是在日历上给自己创建一个笔记。它是一段形式自由的文本,就像写在实体笔记本和计划手册的某一天上那样。如果你要记录工作,写下每天的日记,或只是需要个地方记录会议记录,这个功能是非常方便的(本系列后面有更多关于这个的内容)。

 title=

Kontact Journal (Kevin Sonney, CC BY-SA 4.0)

构成 Kontact 的这些程序非常强大,如果你愿意的话,也可以作为单独的应用运行。Kontact 通过给你提供一个集中的地方,在一个应用内找到你所有的信息,从而提升了它们的实用性。

大多数发行版都允许你在没有 KDE 的情况下安装 Kontact 和它所使用的组件,但当它作为 KDE 桌面的一部分使用时,它才会真正发挥其作用。KDE 在 Fedora KDE 版、KUbuntu、KDE Neon(基于 Ubuntu LTS)和其他几个发行版中都是默认桌面。


via: https://opensource.com/article/21/1/kde-kontact

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

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

记笔记很重要,而纯文本是一种简单、中性的方式。这里有三个工具,你可以在不失去纯文本的简易和便携性的前提下,给你的笔记加点东西。

 title=

在前几年,这个年度系列涵盖了单个的应用。今年,我们除了关注 2021 年的策略外,还将关注一体化解决方案。欢迎来到 2021 年 21 天生产力的第五天。

纯文本是最具弹性的文档格式。纯文本文档体积小,可以在机器之间快速传输,并且可以在任意设备上阅读。因此,在纯文本文档中做笔记是很有意义的。

然而,纯文本也仅是纯文本。我们生活在一个富文本世界中,我们仍然需要标题、列表以及区分一个章节和另一个章节的方法。幸运的是,我们有几种方法可以添加这些元素,而不需要在纯文本文档中添加复杂的标记。

Markdown

 title=

Markdown (Kevin Sonney, CC BY-SA 4.0)

由 Aaron Schwartz 和 John Gruber 创建的 Markdown,是我如今每天使用最多的格式。从读写 README 文件、文档、记笔记,甚至源代码注释,Markdown 让我可以在不牺牲轻松阅读文档的能力的情况下添加格式。

此外,Markdown 还有几个“扩展版本”,以允许那些不属于原始设计的项目。特别是,GitHub 风格的 Markdown 由于其在同名的源码控制网站中的使用而异常流行。

许多文件编辑器都支持 Markdown 高亮显示,不需要额外的附加组件或工作。

AsciiDoc

 title=

AsciiDoc (Kevin Sonney, CC BY-SA 4.0)

由 Stuart Rackham 创建的 AsciiDoc 是向纯文本文档添加富文本元素的另一种方式。AsciiDoc 有许多生成文档、书籍和论文的功能。然而,这并不意味着它不能被用来做笔记。有很多环境(特别是在教育和研究领域),能够快速将笔记转换为更“正式”的格式是很有帮助的。

AsciiDoc 也有很多工具可以将文本转换为其他格式进行协作。还有一些附加组件可以从不同的源导入数据,并将其放入最终的文档中,或者处理特殊的格式,如 MathML 或 LaTeX。

Org 模式

 title=

ORG-Mode (Kevin Sonney, CC BY-SA 4.0)

说到文本格式,我不能不提 Org 模式。它最初是为 GNU Emacs 设计的,现在已经成为笔记、待办事项、文档等常用的纯文本格式之一。Org 模式可以在包括 Vim 在内的众多文本编辑器中编写和使用。Org 模式简单、易学,是我最喜欢的笔记文本格式之一。

最后,选择 Markdown、AsciiDoc 或 Org 模式作为纯文本笔记,是确保它们可以在任何地方被阅读和更新的一种方式。如果你和我一样,你会发现自己在做纸质笔记的时候,也会使用同样的语法!


via: https://opensource.com/article/21/1/plain-text

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

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

电子邮件不是即时通讯。通过遵循这些规则来防止电子邮件不断地打断你的工作。

 title=

在前几年,这个年度系列涵盖了单个应用程序。今年,我们除了关注有助于 2021 年的策略外,还将关注一体化解决方案。欢迎来到“2021 年 21 天生产力”的第二天。

和许多人一样,我对电子邮件也是爱恨交加。电子邮件是早期互联网、企业局域网和拨号 BBS 生态系统中最早的通信手段之一。电子邮件过去是、现在仍然是电子通信的主要手段之一。它被用于商业通信、商务、通知、协作和一堆有用的东西。

 title=

Mutt 邮件客户端, CC BY-SA 4.0 by Kevin Sonney

很多人对电子邮件有着不正确的认识。电子邮件不是一个即时通讯平台。有时候,当一个人发送一条信息,几乎立刻就会出现在世界的另一端,然后在几分钟内就会有回应,这看起来就像是电子邮件是即时通讯。正因为如此,我们可能会陷入一种思维定势,即我们需要随时激活电子邮件程序,一旦有东西进来,我们需要马上看一下,然后马上回复。

电子邮件的设计原则是:一个人发送一条信息,收件人会在方便的时候回复。是的,有高优先级和紧急邮件的标志,我们的电子邮件程序也有通知来告诉我们新邮件何时到达,但它们真的不是为了给今天的许多人造成压力。

 title=

太!多!电子邮件了! CC BY-SA 4.0 by Kevin Sonney

一般说来,一个人每受到一次干扰,至少需要 15 分钟的时间让他们的思维过程重新集中到被打断的任务上。在工作场所(以及在家里!),电子邮件成为了这些中断之一已经是一种普遍现象。它不需要这样,也不是设计成这样的。我采用了一些规则来防止电子邮件成为让我无法完成任务的干扰。

规则 1:电子邮件不是一个警报平台。在技术领域,人们通常会配置监控和警报平台,将所有的通知发送到电子邮件。在过去的 15 年里,我几乎在每一个工作场所都遇到过这种情况,我会先花了几个月的时间来改变它。有很多好的平台和服务来管理警报。电子邮件不是其中之一。

规则 2:至少不要指望在 24 小时内得到答复。我们有多少人接到过电话,问我们是否收到电子邮件,并问我们是否有任何问题?我就遇到过。尽量在工作场所或与你经常发邮件的人设定一个期望值,回复有时会很快,有时不会。如果事情真的很紧急,他们应该使用其他的沟通方式。

规则 3:每隔几个小时检查一次电子邮件,而不是不断地检查。我承认这一条很难,但它能给我带来最安心的感觉。当我在工作或试图专注于写作等事情时,我会关闭我的电子邮件程序(或浏览器标签),并忽略它,直到我完成。没有通知,没有 20 条新邮件正在等待的指示,没有干扰。当我开始这样做的时候,我花了一些努力来克服我的 FOMO(害怕错过),但随着时间的推移,这已经变得容易了。我发现,当我再次打开我的电子邮件时,我可以专注于它,而不是担心我可以做什么,或应该做什么来代替。

希望这三条规则能像帮助我一样帮助你。在接下来的日子里,我会有更多可以帮助我处理电子邮件的方法分享给你。


via: https://opensource.com/article/21/1/email-rules

作者:Kevin Sonney 选题:lujun9972 译者:wxy 校对:wxy

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

ElementaryOS 提供了一个快速、轻量、高效的桌面,让你在新的一年里保持工作效率。

在前几年,这个年度系列报道了各个应用程序。今年,我们将在 2021 年寻求帮助的策略之外,还将关注一站式解决方案。欢迎来到 2021 年 21 天生产力的第一天。

当寻求提高生产率的工具时,很容易将几乎能用但不能完全很好地发挥作用的应用集合在一起。在过去的几年里,我们已经谈到了单个的电子邮件应用、日历应用、记事本应用等等。不过,总会有些麻烦。要么需要自定义脚本,要么需要复杂的导出/导入步骤才能使一个工具工作。

ElementaryOS 是一个完整的桌面,具有美观、实用、高效的环境。

ElementaryOS 桌面 (Kevin Sonney, CC BY-SA 4.0)

ElementaryOS 是一个基于流行的 Ubuntu Linux 发行版的“按需付费”开源项目。对于过去安装过 Ubuntu 的人来说,初始设置和安装会非常熟悉。然而,一旦登录,体验就会很不一样。

ElementaryOS 使用 Gala 窗口管理器和 Pantheon shell。这两个都是专门为 Elementary 开发的。安装后,桌面非常精简,它只提供了少量的轻量级应用。这些应用包括 Web 浏览器、终端、邮件客户端和日历客户端。它还有一个应用中心,允许你安装 Elementary 团队策划的免费和商业应用。

ElementaryOS 的邮件和日历应用(Kevin Sonney, CC BY-SA 4.0)

邮件和日历这两个应用看起来很熟悉,因为这两个应用已经被其他发行版使用了一段时间。邮件是作为 Geary 的复刻分支开始的,而日历在其他地方则被称为 Maya。两者的设置非常简单。两款应用默认仅使用用户名/密码认证,所以需要双因素认证的用户需要一些额外的步骤。两者的界面都异常轻巧快速。

应用中心(Kevin Sonney,CC BY-SA 4.0)

ElementaryOS 默认不包含待办事项或记事本应用。这时,应用中心就可以发挥作用了。在应用中心中,有大量的应用可以填补空白。其中有两款应用真的很出色。第一个是 Planner,一款简洁、轻量级的待办事项管理器。它支持多个列表、计划和重复性任务、项目和子项目。它还可以与流行的在线应用 Todoist 同步,但这不是必需的。

应用中心的第二款应用是 Notes-Up,这是一款使用 Markdown 写富文本格式的笔记应用。它允许用户在多个笔记本中创建多个笔记,并且有“查看”和“编辑”选项,这样你就可以预览最终文档的样子。同样,这款应用快速、轻量而且非常简约,与 ElementaryOS 的整体外观和感觉保持一致。

Planner 和 Notes-up (Kevin Sonney,CC BY-SA 4.0)

如果你不喜欢默认应用,Elementary 基于 Ubuntu LTS,因此如果你需要使用其他应用,整个 Ubuntu 应用生态系统都可以使用。不过总的来说,ElementaryOS 默认提供了一个快速、轻量、高效的桌面,让你在新的一年里保持高效。


via: https://opensource.com/article/21/1/elementary-linux

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

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

用这些简化了 WebSockets 的开源支持工具来控制你的流媒体。

OBS 是现在视频直播的主流之一。它是直播流媒体到 Twitch 的首选软件,Twitch 是近来最受欢迎的视频直播网站之一。有一些非常好的附加组件,可以让流媒体人从他们的手机或另一个屏幕上进行控制,而不影响正在运行的视频。事实证明,使用 Node-RED 和 obs-websockets 插件来构建自己的控制面板真的很容易。

 title=

我的 OBS 控制仪表盘

我知道你们很多人在想什么 —— “他在同一句话中提到了 WebSockets 和简单?”很多人在设置和使用 WebSockets 时遇到了困难,WebSockets 允许通过 Web 服务器的单一连接进行双向通信。Node-RED 内置了对 WebSockets 的支持,是让这一切变得简单的原因之一,至少与编写自己的客户端/服务器相比是如此。

在开始之前,请确保你已经安装和配置了 OBS。首先下载并安装最新稳定版的 obs-websockets插件。对于本文来说,默认的设置就可以了,但我强烈建议你之后按照说明来保护 obs-websockets 的安全。

接下来,下载并安装 Node-RED,可以在同一个系统上,也可以在不同的系统上(比如树莓派)。同样,默认的安装对我们这篇文章来说是够了,但最好按照他们网站上的指示进行安全安装。

现在是有趣的部分。启动 Node-RED,打开网页界面(默认在 http://localhost:1880),你有了一个空白的画布。打开右边的“汉堡”菜单,选择“ruby管理口味rtManagePalate/rt/ruby”。然后点击“安装”标签,搜索 node-red-contrib-dashboard 和 node-red-contrib-rbe 模块。

安装好这些模块后,点击右侧列表,将以下模块拖拽到画布上。

  • 1 Websocket Out
  • 1 Websocket In
  • 1 Debug
  • 1 Inject
  • 1 Switch
  • 1 Change
  • 2 JSON
  • 1 Catch

以下列顺序连接它们:

Inject->Button->Change->JSON->Websocket Out

Websocket In->JSON->Switch->RBE->Debug

Catch->Debug

 title=

基本流程

当 “Button” 被按下时(或 “Inject” 节点发送一个时间戳),有效载荷通过 “change” 节点发送,从 JSON 对象转换为字符串,然后发送到 “WebSocket Out” 节点。当 “WebSocket In” 节点收到消息后,会将其转换为 JSON 对象,如果不是重复的,则发送到 “Debug” 节点进行输出。而 “Catch” 节点会捕捉到任何错误,并将其放入 “Debug” 面板中。

那有效载荷里有什么呢?让我们设置好一切,一探究竟。

首先,双击 “Button” 打开设置对话框。先使用下拉菜单将有效载荷改为 “JSON”。在该字段中,添加以下内容:

{"request-type":"GetVersion"}

启用 “If msg arrives on input, emulate a button click” 复选框,然后点击 “Done” 关闭 “Button” 配置。当消息从 “Inject” 节点传来时,或者 UI 中的 “Button” 被按下,它将把 JSON 有效载荷发送到下一个节点。

 title=

设置 “Button”

现在打开 “Change” 节点。我们要将 msg.payload.message-id 设置为 msg._msgid,方法是将第一个字段从 payload改为 payload.message-id,然后使用第二个字段的下拉菜单将类型从 String 改为 msg.,然后我们将 _msgid 放入该字段。这样就会把唯一的消息 ID 复制到 JSON 对象的有效载荷中,这样每个请求就有一个唯一的 ID 进行跟踪。

然后将其发送到 “JSON” 节点,以便将 JSON 对象转换为字符串,然后传递给 “Websocket Out” 节点。打开 “Websocket Out” 节点,配置到 OBS 的连接。首先,将 Type 更改为 Connect to,然后单击铅笔图标以创建新的连接 URL。将其设置为 ws://OBSMachine:4444/,然后关闭对话框进行保存。OBSMachine 是 OBS 和 obs-websocket 运行的机器名称。例如,如果 Node-RED 运行在同一台机器上,则为 ws://localhost:4444,如果是在名为 luxuria.local 的机器上,则为 ws://luxuria.local:4444。关闭并更新 “Websocket Out” 节点。这将向 OBS 中的 WebSocket 发送有效载荷文本字符串。

 title=

“Websocket Out” 节点配置

进入 “WebSocket In” 流程!打开 “WebSocket In” 节点,并对其设置 Type 为 Connect to 和我们之前定义的连接的 URL(应自动填充)。接下来是第二个 “JSON” 节点,我们可以不用管它。它接受 OBS 的输出,并将其转换为有效载荷对象。

接下来,我们将从中过滤出常规的心跳和状态更新。打开 “Switch”,将 Property 值设置为 payload["update-type"]。现在从它下面的下拉菜单中选择 Is Not Null。点击 + 添加第二个选项,并从下拉菜单中选择 otherwise。

 title=

“Switch” 节点配置

将 “Switch” 上的新输出直接连接到 “Debug” 节点的输入。

RBE 节点将过滤掉重复的内容,需要告诉它要观察什么字段。由于它应该连接到 “Switch” 的输出,而它只发送状态更新,所以这一点很重要,因为 obs-websocket 每隔几秒钟就会发送更新。默认情况下,RBE 会比较整个有效载荷对象,它将不断变化。打开 RBE 节点,将 Property 从 payload 改为 payload.streaming。如果 payload 的 streaming值发生了变化,那么就把消息传递过去,否则就丢弃。

最后一步是将 “Debug” 节点的输出从 msg.payload 改为完整的 msg 对象。这使我们能够看到整个对象,有时在 payload 之外还有有用的信息。

现在,单击 “Deploy” 以激活更改。希望 WebSocket 节点下面会有绿色的 Connected 消息。如果它们是红色或黄色的,则连接 URL 可能不正确,需要更新,或者连接被阻止。请确保远程机器上的 4444 端口是开放的、可用的,并且 OBS 正在运行!

如果没有 RBE 节点对 streaming 值的过滤,调试面板(点击画布右侧的“虫子”图标)大约现在就会被心跳消息填满。点击 “Inject” 节点左边的按钮,发送一个模拟按钮点击的信号。如果一切顺利,你应该会看到一个对象到达,它有一个 obs-websocket 可以做的所有事情的列表。

 title=

对 “GetVersion” 的回应

现在在另一个标签或窗口中打开 http://localhost:1880/ui。它应该显示一个单一的按钮。按下它! 调试面板应该会显示和之前一样的信息。

恭喜你!你已经发送了你的第一个(希望不是最后一个)WebSocket 消息!

这只是使用 obs-websockets 和 Node-RED 可以做的事情的起步。支持的完整文档记录在 obs-websockets 的 GitHub 仓库的 protocol.md 文件中。通过一点点的实验,你可以创建一个功能齐全的控制面板来启动和停止流媒体、改变场景,以及更多。如果你和我一样,在意识到之前,你就可以设置好各种控件了。

 title=

如此多的能力让我有点疯


via: https://opensource.com/article/20/6/obs-websockets-streaming

作者:Kevin Sonney 选题:lujun9972 译者:wxy 校对:wxy

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