有耐心,但做事要快

woman in black jacket sitting on chair

今年的年景不好,堂弟虽然学习了半年的前端,掌握了一些基本的前端开发能力,但依然找不到一个工作。这非常的合理,毕竟他之前没怎么学过研发,如果自学很快就能找到工作,让那些科班的同学们如何自处。

但作为求职的人来说,也必须明白,在当下这个环境下,要做到有耐心,但做事要快

有耐心,是指要明确在当前的这个大的背景下,求职并不容易,甚至可以说是非常难。环境不好的情况下,刚毕业的学生是最不容易找到工作的。毕竟作为企业,都希望招募到熟手来加快企业的节奏。在这样的大的背景下,找工作必定是一个漫长的事情。

做事要快,是指虽然在这个大的环境下,求职不容易,但我们需要明确我们做事的方法和手段,尽可能快的获取到反馈,帮助自己更快的识别问题、纠正问题,从而更早的抵达目的地。

这两者并不冲突,同时,也很难。

做让事发生的人

toddler looking at believe in yourself graffiti

在工作和生活中,我们可以选择成为「让事发生」的人,而不是「等事发生」的人。

举个例子来说,假设你需要建造一个猫窝,在资源充足的情况下,你可能马上就可以自己造一个猫窝(或者是买一个猫窝)。但现实情况下可能并不允许你马上就能造一个猫窝。

这个时候,你有两种选择:

  1. 让事发生:你可以选择先查询一下建造一个猫窝需要什么样的物料,并从现在开始,当手头的资源充足的时候,就先去购买对应的物料。直到你凑齐物料之后,再建造一个完整的猫窝。
  2. 等事发生:你可以选择先什么都不做,等待时机成熟之时,自然便有了资源来购买猫窝。

这两种选择最大的区别是「让事发生」的人投入了自己的精力和时间让事情有了发生的可能。而后者则是等待时机的成熟,被动地等待事情发生。但事情往往不能遂人愿,时机可能永远都等不到。

为了让你希望的事情发生,试着变成一个「让事发生」的人吧。

目标指引你成功

selective focus photography of an arrow

每一个人都需要一个目标,来帮助你抵达彼岸。不过可惜的是,我们的教育很少教育大家关于目标、关于理想、关于人生价值的内容。这可能是我们的教育的问题。

不过,如果你看到这篇文章,说明你至少不是一个那么普通的人 —— 这年头看独立博客的人已经不多了。

目标存在的意义并不是和很多人想象中那样的无用。每当我和别人提起,“你是否有理想?”、“你找到你的人生母题是什么了么”,大家常常会说:“我的理想就是不用上班”。

但这只是一阶回答,不上班只是表象。那么你不上班之后要做的事情,才是你的理想 —— 它可能是宅在家里打游戏(只要你能一直打下去)、也可能是周游列国,也可能是做你想做的事情。

它是什么并不重要,重要的是,你必须想清楚你的目标(至少是想清楚当下的目标),有了这个目标,你便可以在做出选择的时候,基于你的目标进行纠偏,从多个选择中,找到那个离你的目标更近的选项。

d2b5ca33bd970f64a6301fa75ae2eb22 3

有没有目标,你都有可能抵达/无法抵达终点。但有了目标,可以让你抵达终点的速度变得更快一些。

bundle audit 命令失效怎么办?

MacBook Pro on brown wooden table

我最近在使用 Github 来做 Rails 的 CI 自动检查时,发现 CI 自动检查时使用的 bundle audit 命令失效了,搜索后发现,是 Bundle 将 audit 拆为了单独的 gem ,而 CI 的模板并未更新,导致在调用的时候出现了错误。

d2b5ca33bd970f64a6301fa75ae2eb22 1

既然明确了问题,解决就变得简单了。只需要在 CI 的脚本当中,加入对应的 gem 安装命令,即可完成修复。

  - name: Install bundle audit
        run: gem install bundler-audit

通过 Code Snippet 提升效率

black flat screen computer monitor

在开发应用的时候,我们常常会借助快速生成工具来帮助我们生成一些模板代码。

相比于 JS,Ruby 干脆让很多需要手动输入的地方可以不用输入,体验会更好。Rails 更是做到了极致,大量的约定。对于一些模板化的行为,你甚至可以不用写代码,框架帮你来解析。

常见的编辑器比如 VSCode、Sublime Text 都提供了大量基于插件的 Code Snippets,方便你可以快速生成一段模板代码。

不过在实际开发过程中,他们提供的模板代码可能并不太符合我们的需求,我们往往可能会有一些定制化的需求需要满足,这个时候,就比较依赖自定义模板了。

好在各种编辑器不止可以通过插件来定义 Code Snippet,你还可以自定义自己需要的 Code Snippet。

以 VSCode 为例,你可以参考其官方文档来定义自己需要的 Code Snippet,只需要简单的配置,就可以定义出你自己所需要的 Code Snippet。它可以是你自己写代码时的 Code Snippet,也可以是你在写博客时的 Code Snippet(比如写博客时自动生成前置的描述信息)。

不过,Code Snippet 的语法很多时候比较麻烦,需要一行一个字符串,对于较为复杂的 Code Snippet,构建这个 Code Snippet 本身就比较麻烦。好在有一些第三方工具,可以帮助简化这个过程。比如 Snippet Generator 就可以非常方便的帮助生成 VSCode 的语法,你只需要将需要生成模板的代码粘贴在左侧,并填写一些基本信息,就可以生成包括 VSCode、Sublime、Atom 的 Code snippet 代码,再将其粘贴到你的 VSCode 的配置中即可。

d2b5ca33bd970f64a6301fa75ae2eb22
Snippet Generator

你还可以将其中的一部分内容替换为对应编辑器所提供的占位符,就可以帮助你更加高效的利用这个 Snippet 来完成内容的快速撰写。

其他

如何用 SSH Config 来优化你的 SSH 连接?

text

在 Windows 的时候,我一度非常喜欢使用诸如 XShell 之类的软件,主要原因是我可以将不同的服务器信息保持在同一个软件当中,不用每次都手动保存(Putty往往就无法保存)。

而到了 macOS 之后,我不再使用 XShell 这样的软件来完成我的 SSH 工作流(事实上我也找不到类似 XShell 的软件,后来在 Setapp 软件包中发现了 Core Shell,但我已经有了下面的技巧了,就没再用)。

经过一番研究,我发现对于我的诉求来说,其实完全没必要使用一款第三方软件来完成,SSH 自带的功能即可完成。

再次 Review 一下我的诉求:

  1. 我希望不要输入 IP 地址,而是输入一个短语,或者是域名来连接我的服务器。
  2. 我希望能够支持自定义端口,因为我一般会把我的服务器端口从 22 改为一个随机的数字。
  3. 我希望可以指定密钥文件,因为我有多个密钥,不通的场景可能使用不同的密钥。

这些诉求如今我的新方法都可以实现。

SSH 支持自定义 Config 文件,而默认的 Config 文件位于 ~/.ssh/config 这个文件中,你可以在其中添加自己的配置来实现自定义 SSH。

比如这里用到的就是 SSH Config 中的 Host 定义,你可以以如下的规则来定义一个新的配置。

Host 主机名
    User 登录用的用户名
    HostName 登录用的主机名,可以是域名或者IP
    Port 登录用的端口号
    IdentityFile 需要使用的密钥文件

比如下图就是一个配置的例子

d2b5ca33bd970f64a6301fa75ae2eb22 3

通过在你的 Config 文件当中添加对应的定义,你就可以用 ssh 主机名 的方式来连接你的服务器了。

比如,我的树莓派的配置的主机名是 pi 那我就可以使用 ssh pi 的方式来连接到我的树莓派当中。

d2b5ca33bd970f64a6301fa75ae2eb22 5

稀缺、抗压与升职加薪

shallow focus photography of man in suit jacket's back

用发展的眼光看待自己的工作和生活当中,我提到,不少人总是在用静态的眼光看待自己。这些人不只使用静态的眼光看待自己,也一直在使用一个相对更加低阶的身份定位来锚定自己。

很多人没有意识到,你的薪资其实和两个部分有关:

  1. 你所掌握的技能在市场上的稀缺程度。
  2. 你所能承担的责任和担负的压力。

大部分秉承着「拿钱办事」心态的人,都在这两个点上做的不够好,一方面没有自己独特的技能点和生态位,导致在市场发生剧烈波动时,很容易因为没有任何特色而发生替换。另一方面,由于心态是「拿钱办事」,自然不愿意去承担更大的压力和责任。

而对于公司来说,一个极其标准化,没有任何稀缺性的产品,自然是不会给你升职加薪的;而这个产品如果也不愿意承担责任和压力,那我是真的想象不到有什么理由来为这样的一个产品支付更高的费用。

如果你发现自己很久没有升职加薪,不妨回过头来看看,自己是否满足了升职加薪的基本条件?

用发展的眼光看待自己的工作和生活

Several white arrows pointing upwards on a wooden wall

我在生活中遇到不少对于工作理解较为简单和质朴的人 —— 他们奉行工作就是给多少钱办多少事,不愿意去做分外之事。当然,严格意义来说,这样并没有错。毕竟,我们不应该鼓励他人去当卷王。

但我想说另外一个观点:工作当中,薪酬当然重要;但更重要的是你投入了你的时间和生命来为这件事付出。如果从这个视角来看,你应该从你所做的事情中收获更多的价值,这些价值不应该只是金钱。

尝试用发展的眼光去看待我们的工作和生活,你就会发现,工作不仅仅是你当下的价值,也同样代表着你未来的可能性。你可以通过工作来提升自己的技能,你可以通过工作来为自己拓展可能性。

你必须意识到,人的一生是一个无限游戏,在无限游戏中,你需要不断的闯关。并没有一个明确的关卡是你已经完成了所有的事情,生活也好,工作也罢,总是会有更多的问题和挑战来袭。你需要在这个无限游戏中不断的提升自己、不断的让自己变得更强,才能不断的坦然面对来自工作和生活的挑战。

大部分将工作看作「拿钱办事」的人,往往是秉承着「我就是一个静态的人」的心态来看,即使他内心并不这样看,但确实做着这样的选择。但生活并不是静态的,你面临的问题也不是静态的,你唯一要做和唯一能做的,便是用发展的眼光看待问题,正视自己在做的每一件事,并通过每一件事提升自己。

在油猴脚本中实现新增按钮和按钮的点击效果

text

在油猴脚本中,有些时候,我们需要在界面当中添加一个新的按钮。这个时候我们可以使用 document.getElementById("id").innerHTML=xxx 来指定某个元素中的内容是特定的 HTML,从而实现添加一个新的按钮。

但在这个按钮上绑定事件则不是通过简单的指定 button 的 onclick 来完成的。核心原因是默认情况下,你在油猴脚本中所写的函数只运行在油猴脚本中的 Scope ,而 button 则是运行在 Document 的 Scope 下。直接绑定事件在触发时会无法找到对应的函数。

一个好的办法是为你新增的 Button 带上 ID,并通过 ID 找到对应的 Element 并添加事件绑定来实现。

参考代码如下:

// ==UserScript==
// @name         示例代码
// @namespace    https://www.ixiqin.com
// @version      0.0.1
// @description  示例代码
// @author       bestony
// @license      MIT
// ==/UserScript==

(function () {
  'use strict';
  window.addEventListener('load', function () {
    function viewAuthor() {
      // button click event
    }

    var targetElement =document.getElementById("xxx")

    targetElement[0].innerHTML = targetElement[0].innerHTML + ` &nbsp;<a id="view-author">查看作者</a>`

    var link = document.getElementById("view-author");
    if (link) {
      link.addEventListener("click", viewAuthor, false);
    }
  }, false);
})();
Code language: JavaScript (javascript)

油猴脚本不支持 Modules Javascript 导致空白脚本报错

text

最近在写一个油猴脚本时,因为懒得写 DOM 处理函数,我试图在油猴脚本当中引入 Zepto.js, 用于实现 DOM 操作。

d2b5ca33bd970f64a6301fa75ae2eb22

但在引入 Zepto 之后,发现即使是空白的脚本文件,在网页加载时依然会报错。经过排查发现,是我引入的 Zepto 文件导致的,进一步研究后发现,之所以有这个问题,是目前油猴脚本仍不支持 Modules ,因此,我引入 Zepto 就会报错。

想要解决这个问题倒是也简单,将 Zepto 替换为 JQuery 即可。本来想着用 Zepto 会轻量一点, 最后发现还是要上 JQuery。好在是目前 JQuery 提供了不含 Ajax 和 Effect 的 Slim 版本,倒是也不用担心引入的依赖文件特别的大。

拥抱湿货

灵光一闪

早年间我对于干货有着迷恋,总感觉自己需要干货来快速学习、快速成长。但随着时间的推移,我对于干货的需求越来越少,反而是愈加喜欢「湿货」。

回想自己当年,喜欢湿货大抵是因为时间不足,总想着用最短的时间,学习最多的知识,成为强者。所以能够短时间收获大量信息的「干货」就成为那个年纪的最爱。

但随着回到天津,生活节奏放缓,开始放过自己,不再追求成为强者。开始对于时间、节奏有了更多的容忍度。不再追求用最短的时间学习到最多的知识,也就对于「干货」没了那么强的诉求。

当然,更重要的是,我意识到,「干货」的好处是通过压缩信息量,让你可以最短时间获得到了最多的知识,但另外一个层面来看,也使得这些「干货」失去了执行的可能性,我们并不能直接从这些干货当中得到什么(嗯,这段话还有点追求得到的意味)。而湿货,虽然没有高度压缩的信息,但却提供了丰富的上下文,让我们可以知道一个道理、一个方法的适用场景、使用手段等一系列信息,帮助我们更好的改进我们的生活。

干货我们往往得到的是「我知道很多道理,却过不好这一生」,而湿货,却可以真真切切的指导我们的生活。

一个邮件转发服务 – Forward Email

email

我并没有自建一套邮件服务器(主要是懒得维护),但我又需要邮件转发服务,所以我选择了使用 ForwardEmai 的服务。

Forward Email 是一个开源的产品,并基于开源的版本提供了 SaaS 的产品,如果你懒得维护自己的服务器,则可以使用他们的 SaaS 产品。

在使用上颇为简单,添加域名、配置 MX 记录,设置 TXT 记录,就可以实现转发功能了,从而实现我之前提到过的 数字所有权 中的实现。对于没有技术背景的人来说,这可能是成本最低获得个人域名邮箱的方式方法了。

Github 开源地址:https://github.com/forwardemail/forwardemail.net

服务地址:https://forwardemail.net/

如何在 Gmail 当中设置使用自定义域发送邮件

email

我对外一共提供两个邮箱地址:

  • bestony@linux.com:Linux.com 后缀的邮箱;
  • hi@ixiqin.com:ixiqin.com 后缀的邮箱,可控,不失联。

不过,由于 Linux.com 仅提供了域名中转服务,所以我过去都是以 linux.com 域的邮箱作为收件邮件。最近在研究邮箱转发系统的时候,研究出了如何使用 linux.com 的域发邮件的方式。

效果

设置完成后,在 Gmail 展示效果完美。

d2b5ca33bd970f64a6301fa75ae2eb22 9
Gmail 收件效果

但在 QQ 邮箱中展示效果比较惨。如果你的通信人主要是 QQ 邮箱,还是不要用这个发信地址来发信了。

d2b5ca33bd970f64a6301fa75ae2eb22 10
QQ邮箱展示效果

配置说明

总体来说,配置需要以下几步:

  1. 生成应用专属密码:专属密码的好处是可以和你自己的密码不冲突,即使出现泄漏也可以快速止损。在任何非 OAuth 但需要输入密码的场景,都推荐你使用应用专属密码。
  2. 配置发件地址并验证:在 Gmail 的系统当中录入你的发信地址,这样 Gmail 就知道应该使用哪个地址作为发信地址了。你填写了基本信息以后,Gmail 需要验证你是否是对应的域名的持有人,只有是持有人的情况下,才会给你提供以对应的地址发信息的能力。
  3. 设置对应域名为默认发信地址(非必要):当你设置完成后,你即可以对应的邮箱地址来发信,但默认情况下还是使用 Gmail 为发信地址,如果你需要的话,可以自行设置新域名为默认发信地址。

具体步骤

1. 生成应用专属密码

Google 为用户提供了应用专属密码的能力,你只需要访问对应的应用专属密码页面,设置这个密码的对应使用场景(这个场景是为了方便你日后需要止损时,快速找到生成的密码,可以根据具体的使用场景、日期等方式来设定)。

d2b5ca33bd970f64a6301fa75ae2eb22 12

生成完成后,你会获得一个 16 位的密码。复制这个密码,并保存下来,稍后我们将使用它作为配置过程中的密码。

2. 配置发信邮件

打开 Gmail 的账户配置页面(设置-账号与导入-使用这个地址发送邮件),点击「添加其他电子邮件」。

在弹出的窗口当中填入邮箱名称和要绑定的邮件地址,并点击下一步。

d2b5ca33bd970f64a6301fa75ae2eb22 13

在新页面配置服务器时,填写服务器地址为 smtp.gmail.com,设置端口为 587。并在用户名当中输入你的邮箱的前缀(比如你的邮箱是 hi@gmail.com,这里就填写 hi)和上一步生成的应用专属密码;下方的加密方式选择「使用 TLS 的安全连接」,并点击下一步。

d2b5ca33bd970f64a6301fa75ae2eb22 14

点击完成后,系统会自动验证是否可以登录到对应的系统。验证完成后,会自动给你的邮箱地址发送一个邮件,其中包含了验证码。

d2b5ca33bd970f64a6301fa75ae2eb22 15

接下来在这个页面填写验证码并点击验证,或点击邮件中的链接,即可实现账号的确认。

d2b5ca33bd970f64a6301fa75ae2eb22 16

3. 设置默认发信邮件

当你绑定完成后,回到 Gmail 的账户配置页面,会看到多个域名,找到你打算作为发信域名的邮箱地址,并点击其后的「设置为默认发信地址」,即可完成配置。

d2b5ca33bd970f64a6301fa75ae2eb22 17

总结

在我测试这个方法的时候,我还是挺激动的。但看到 QQ 邮箱的提示以后,我还是选择了继续使用 gmail 地址作为我的发信地址(但还是使用 linux.com 的邮箱作为收信地址)。一方面我的虚荣让我继续使用 linux.com 的域作为邮箱。但同时,我也不希望收到我邮件的朋友为此感到困惑,那就这样吧。

数字所有权

white and green remote control

前日我的一个朋友突然加我微信,我正好奇,明明记得加了这个朋友,怎么突然又加我。

简单闲聊后得知,因为触犯了微信的规定,他的微信被永久性封禁了。不得不重新注册一个微信账号,然后一个个的重新添加好友。

在整个封禁的过程中,毫无疑问,微信本身是有一些问题的,比如广受诟病的:微信被封禁后,在你的好友那里,你的状态如常。别人依然可以发信息给你,好像你仍然在线。然而因为被封禁,你其实完全无法响应他人的消息。如果你未能及时通知到他人,甚至可能会以为你故意不回消息。

不过,误解还是小事,更大的事情是你失去了你的所有关系。

在当前这个我们习惯于用微信来承载我们的社会关系的时代,当一个人的微信被封禁之后,就失去了所有的社会关系,微信也未曾给你一个导出数据的可能性。

在当下这个时刻,到底什么才是一个人能掌控的、绝对属于你的联系方式?它是一个以你个人所持有的域名为后缀的域名邮箱。

这个域名需要是由 ICANN 管理通用顶级域(这意味着这个域名不会因为某个国家的原因而被封禁。比如你的域名如果是 .us,你放置了一些与美国国家政治体制无关的内容,则可能导致你的域名因国家政策而遭到封禁),并且邮箱地址指向一个你自己可控的邮箱服务器。

这样的域名因为 ICANN 的中立性,不至于从互联网上消失;而可控的邮箱服务器(或者是一个转发服务器),可以保证无论你的日常邮箱被如何管控,你都可以通过自己所属的邮箱地址来收到邮件。

欢迎通过邮箱联系我,我的邮箱地址是: hi@ixiqin.com

使用飞书妙记,提升你的学习效率

person writing on brown wooden table near white ceramic mug

在知识爆炸的时代,如果你可以比别人学的更快,那你就能在相同的时间内获取到更多的信息,并将这些信息转化成知识,来帮助自己的进一步形成智慧。通过一些工具,来提升自己的学习效率,是一个值得投入的事情。

而作为一个飞书的深度用户来说,飞书妙记,就是我的高效率学习工具,有了飞书妙记,学习效率,可以提升 2 倍不止。

为什么飞书妙记可以提升两倍学习效率?

飞书妙记作为一个会议记录工具,大部分时候都是服务于企业内部的会议场景。但如果抽象来看,可以把飞书妙记看作一个处理器,我们可以将其简单的分为包含输入、输出、处理器的工具。这个工具的输入是一个音频或视频文件,经过飞书妙记的处理,我们获得了一套文字稿和一个视频文件。

输入和输出

如果我们聚焦到飞书妙记本身,则可以看到,飞书妙记帮我们处理了音频转文字、文字翻译和音频对齐时间轴。

飞书妙记的内部实现

而我们聚焦到文字稿,则又可以看到,在文字稿当中,也有不同的用途。

文字稿的用途

在视频方面,飞书妙记提供的不多,只有倍速功能和跳转到文字对应位置的能力。

视频的用途

现在,你就看到了整个飞书妙记所提供的各种各样的功能了,现在我们看一看飞书妙记提供的功能的完整图景。

n85py

现在,我们可以说,飞书妙记在学习上,为我们提供了一套将英文/日文/中文视频,转换成包含了文字稿、时间轴和视频倍速播放的内容方案,并且我们还可以根据自己的需要,通过文字稿或视频时间轴来切换进度,并在对应内容上进行评论,分享,还可以将整个妙记分享给其他人

因为这些功能,我们可以实现:

  1. 将视频课程的录屏上传到飞书妙记当中,并将自己不清楚的部分通过评论指出。分享自己的妙记给其他同学,与其他同学共同交流。
  2. 将视频课程的录屏上传到飞书妙记当中,使用倍速播放,快速回溯课堂上老师所讲的内容。
  3. 将视频课程中的录屏上传到飞书妙记当中,选择自己不懂的部分,生成分享片段,分享给老师,向老师提问。
  4. 将 Youtube 上的英文公开课下载下来,并上传到飞书妙记当中,借助飞书妙记的翻译功能,生成中文的文稿,快速跳转学习其中的内容,还可以将其中不懂的部分通过评论指出,和其他同学一同学习。

上面的这些,都不过是飞书妙记提供的各种能力的有机组合,你可以根据自己的需要,组合出一套适合你自己的工作流。

实践:用飞书妙记看 Kindle 新闻

最近 Kindle 虽然退出了中国,但在海外还推出了新版的 Kindle Scribe,我在 Youtube 上找到了一个视频。

在 Youtube 上看视频

不过,这个视频的时长还挺长,我希望能够快速的获取到其中的关键信息,于是便使用我的 Downie 将这个视频下载到本地。

使用 Downie 下载 Youtube 视频

并在飞书当中找到飞书妙记的上传入口,

在飞书客户端中找到上传入口

在上传时选择对应的视频的语言(目前支持普通话、英语和日语,你也可以不选择,让他自动识别语言)。

上传文件并选择语言

上传完成后,稍等片刻,我就会收到会议助手发给你的消息通知,告诉我视频已经完成了转化,此时,就可以开始进行快速的信息获取了。

转换完成后的提醒

点击顶部菜单栏中的语言切换,将内容切换成中文,就可以快速浏览所有内容。

切换为中文

如果我对其中的部分内容比较感兴趣,还可以选中对应的内容,并在其上评论,和其他要看这个视频的朋友一起讨论视频当中的内容。

在原文中讨论

如果我看完了整体的视频,希望将其中的部分视频作为我后续的内容素材,为了方便使用,可以选择需要使用的片段,并将对应的片段生成一个新的妙记文件,这样下次使用的时候,我可以直接查看对应的片段,而不需要去看完整的所有的视频了。

分享片段
生成的片段

缺陷

这么好的方法自然有他的缺陷,这个权限便是空间大小和时间长度的限制。飞书妙记目前免费版默认会赠送 100GB 的额度,如果你看的视频不够多,那么这 100GB 的额度肯定是够的。但如果你是一个深度的学习爱好者,那么这些空间大概率是不够的。

赠送的免费额度

此外,飞书妙记目前还不支持 4 小时以上的视频,如果你要看的课程时长已经超过了 4 个小时,可能需要先自己使用其他的软件对视频做一下切割,才能上传到飞书妙记当中。

不支持 4 小时以上的视频

总结

飞书妙记从产品功能上来讲,并没有什么新东西,但它将各种学习过程中用的上的功能帮我们集成起来,让我们可以更简单的享受科技带来的成果。只要你理解了它的不同能力可以实现什么功能,再将其有机的组合起来,就可以实现你想想要的结果了。

使用飞书妙记,提升你的学习效率

opened book

在知识爆炸的时代,如果你可以比别人学的更快,那你就能在相同的时间内获取到更多的信息,并将这些信息转化成知识,来帮助自己的进一步形成智慧。通过一些工具,来提升自己的学习效率,是一个值得投入的事情。

而作为一个飞书的深度用户来说,飞书妙记,就是我的高效率学习工具,有了飞书妙记,学习效率,可以提升 2 倍不止。

为什么飞书妙记可以提升两倍学习效率?

飞书妙记作为一个会议记录工具,大部分时候都是服务于企业内部的会议场景。但如果抽象来看,可以把飞书妙记看作一个处理器,我们可以将其简单的分为包含输入、输出、处理器的工具。这个工具的输入是一个音频或视频文件,经过飞书妙记的处理,我们获得了一套文字稿和一个视频文件。

输入和输出

如果我们聚焦到飞书妙记本身,则可以看到,飞书妙记帮我们处理了音频转文字、文字翻译和音频对齐时间轴。

飞书妙记的内部实现

而我们聚焦到文字稿,则又可以看到,在文字稿当中,也有不同的用途。

文字稿的用途

在视频方面,飞书妙记提供的不多,只有倍速功能和跳转到文字对应位置的能力。

视频的用途

现在,你就看到了整个飞书妙记所提供的各种各样的功能了,现在我们看一看飞书妙记提供的功能的完整图景。

n85py

现在,我们可以说,飞书妙记在学习上,为我们提供了一套将英文/日文/中文视频,转换成包含了文字稿、时间轴和视频倍速播放的内容方案,并且我们还可以根据自己的需要,通过文字稿或视频时间轴来切换进度,并在对应内容上进行评论,分享,还可以将整个妙记分享给其他人

因为这些功能,我们可以实现:

  1. 将视频课程的录屏上传到飞书妙记当中,并将自己不清楚的部分通过评论指出。分享自己的妙记给其他同学,与其他同学共同交流。
  2. 将视频课程的录屏上传到飞书妙记当中,使用倍速播放,快速回溯课堂上老师所讲的内容。
  3. 将视频课程中的录屏上传到飞书妙记当中,选择自己不懂的部分,生成分享片段,分享给老师,向老师提问。
  4. 将 Youtube 上的英文公开课下载下来,并上传到飞书妙记当中,借助飞书妙记的翻译功能,生成中文的文稿,快速跳转学习其中的内容,还可以将其中不懂的部分通过评论指出,和其他同学一同学习。

上面的这些,都不过是飞书妙记提供的各种能力的有机组合,你可以根据自己的需要,组合出一套适合你自己的工作流。

实践:用飞书妙记看 Kindle 新闻

最近 Kindle 虽然退出了中国,但在海外还推出了新版的 Kindle Scribe,我在 Youtube 上找到了一个视频。

在 Youtube 上看视频

不过,这个视频的时长还挺长,我希望能够快速的获取到其中的关键信息,于是便使用我的 Downie 将这个视频下载到本地。

使用 Downie 下载 Youtube 视频

并在飞书当中找到飞书妙记的上传入口,

在飞书客户端中找到上传入口

在上传时选择对应的视频的语言(目前支持普通话、英语和日语,你也可以不选择,让他自动识别语言)。

上传文件并选择语言

上传完成后,稍等片刻,我就会收到会议助手发给你的消息通知,告诉我视频已经完成了转化,此时,就可以开始进行快速的信息获取了。

转换完成后的提醒

点击顶部菜单栏中的语言切换,将内容切换成中文,就可以快速浏览所有内容。

切换为中文

如果我对其中的部分内容比较感兴趣,还可以选中对应的内容,并在其上评论,和其他要看这个视频的朋友一起讨论视频当中的内容。

在原文中讨论

如果我看完了整体的视频,希望将其中的部分视频作为我后续的内容素材,为了方便使用,可以选择需要使用的片段,并将对应的片段生成一个新的妙记文件,这样下次使用的时候,我可以直接查看对应的片段,而不需要去看完整的所有的视频了。

分享片段
生成的片段

缺陷

这么好的方法自然有他的缺陷,这个权限便是空间大小和时间长度的限制。飞书妙记目前免费版默认会赠送 100GB 的额度,如果你看的视频不够多,那么这 100GB 的额度肯定是够的。但如果你是一个深度的学习爱好者,那么这些空间大概率是不够的。

赠送的免费额度

此外,飞书妙记目前还不支持 4 小时以上的视频,如果你要看的课程时长已经超过了 4 个小时,可能需要先自己使用其他的软件对视频做一下切割,才能上传到飞书妙记当中。

不支持 4 小时以上的视频

总结

飞书妙记从产品功能上来讲,并没有什么新东西,但它将各种学习过程中用的上的功能帮我们集成起来,让我们可以更简单的享受科技带来的成果。只要你理解了它的不同能力可以实现什么功能,再将其有机的组合起来,就可以实现你想想要的结果了。

Keyboard maestro 当中,如何实现获取当前选中文字?

9c1385517cbc8860981a2e72e3ad310f

在使用 Keyboard maestro 的过程中,可能你需要实现对选中文字进行特定的操作,这个时候你可以选择配置如下的宏

d2b5ca33bd970f64a6301fa75ae2eb22 7

具体实现思路:

  1. 执行 Ctrl + C 执行复制(将选中内容放在剪贴板里)
  2. 执行 Delete 执行删除(将选中内容删除)
  3. 插入新的文本(并将系统剪贴板的内容作为变量放在里面)。

论坛当中还看到另外一个解法,感兴趣的可以试试看

d2b5ca33bd970f64a6301fa75ae2eb22 8

Keyboard Maestro 如何配置只在某个应用程序中生效的宏

9c1385517cbc8860981a2e72e3ad310f
d2b5ca33bd970f64a6301fa75ae2eb22 6

在 Keyboard Maestro 的配置过程中,你可能希望某些命令只在特定的程序内生效,这个时候你可以选择将这些宏放置在一个特定的 Groups 里,并编辑这个 Group,设定 Group 为 Available in these applications:,并在其中选择你要生效的应用程序,就可以实现某些特定的宏只在对应的应用程序中生效,避免你定义的宏和其他应用程序冲突。