作者归档:白宦成

关于白宦成

独立开发者, 自由职业者, 写作者

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)
text

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

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

d2b5ca33bd970f64a6301fa75ae2eb22

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

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

灵光一闪

拥抱湿货

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

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

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

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

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

email

一个邮件转发服务 – Forward Email

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

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

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

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

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

email

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

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

  • 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 小时以上的视频

总结

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

9c1385517cbc8860981a2e72e3ad310f

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

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

d2b5ca33bd970f64a6301fa75ae2eb22 7

具体实现思路:

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

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

d2b5ca33bd970f64a6301fa75ae2eb22 8