uBlock Origin 是一个高效率的网页元素拦截器,也可以作为广告拦截器存在。uBlock 是一个支持多浏览器的扩展程序,包括 Chrome、Firefox、Edge 和 Safari。
uBlock Origin 的主要功能是阻止网页上的广告,包括横幅广告、弹出广告和视频广告。它还可以阻止恶意软件、跟踪器和其他不受欢迎的内容。
与其他类似的广告拦截器不同,uBlock Origin 是一个开源项目,这意味着任何人都可以查看和审查其代码。这使得用户可以信任该扩展程序并确保其安全性。
uBlock Origin 还提供了一些高级功能,如过滤规则和自定义设置。用户可以根据自己的偏好来定制广告拦截器的行为,并选择是否启用某些过滤规则。
默认的情况下,uBlock Origin 内置了如下的屏蔽规则
需要注意的是如果在 Chrome WebStore 中搜索 ublock,那么会出来两个看起来非常相似的 uBlock 插件,请安装 uBlock Origin,并检查起插件介绍,是否指向 GitHub 开源仓库。
uBlock Origin 是一款开源的网页内容屏蔽工具,并不仅仅是一个 Ad Blockers,虽然用户可以导入屏蔽规则来屏蔽广告,但 uBlock 可以实现更多。
今天和朋友电话聊到英语口语,他说自己很长一段时间不说英语,前两天和一个印度人交流的时候虽然能听懂,但是却说不出来的那种痛苦的感觉。我一想到我现在正在学习日语 也有遇到相类似的问题,并且我也需要不时的去联系一下英语口语,于是就搜索了一下,因为之前就知道有一些网站提供真人的 1 对 1 口语聊天服务。但是现在 AI 这么流行,也诞生了和 AI 聊天的工具,之前尝试过一个叫做 Speak 的应用,但今天一搜索发现了另外一个在线和 AI 聊天的网站 —- Trancy。
在 OpenAI 没有推出 ChatGPT 之前,其实每个人的手机都有两个我非常推荐的聊天助手,OK Google 和 Hey Siri。过去我常常把这个语音助手的语言调整成我想学习的语言,比如英语,韩语。这样我就可以让语音识别来纠正我的发音,因为如果我发音不标准,那么识别出来的文字一般就是错误的,通过调整我自己的发音让语音识别 100% 识别出来,基本上在发音上就不存在什么大问题了。然后也可以通过简单的给这两个语音助手发出命令来熟悉这个语言,比如让语音助手设定闹钟,编写备忘录等等。
而本文的主角 Trancy,用官方的说法就是一个 AI 的口语私教,一个永远不会累,一个永远可以和你说话的 AI 老师。其实 Trancy 网站中提供的最重要的功能就是提供一个场景,然后用户可以在这个场景之中和 AI 一起完成对话。
Trancy 提供了两种对话的模式。
但选择完成对话的模式之后,就进入了聊天的界面。和 ChatGPT 不一样的是,在这里,你只能通过语音来和 AI 进行交互。
比如在这个在「免税店购物」 的场景中,AI 就作为你的导购,在上面的跟随模式中,你可以跟读,也可以选择自由对话模式,自己用口语和 AI 进行对话。只需要按空格开始录制,空格结束录制即可。
如果你不满足于内置的预设场景,那也可以通过自定义场景 来联系,在官方文档中可以看到你需要输入几个关键字,然后设定一下对话的次数,就可以很快让 AI 生成一个对话的场景用来自由联系。
出来语音对话之外,网站还提供了一个 AI 教师的功能,这个功能就是文字版的 AI 助手。
可以让 AI
等等。
Trancy 也提供了 Chrome 插件,可以让用户在看 YouTube/Netflix 流媒体的时候,进行沉浸式的学习。然后可以对视频的内容进行学习,比如说可以收藏句子,陌生的单词等等。
官方也推荐了一些可以语言学习的 YouTube Channel。
如果你看到这里觉得 Trancy 不错,可以点击我的邀请链接,你可以额外获得 10 天的高级会员。
不久之前看到 Obsidian 推出了一个官方的插件可以将 Evernote 的笔记导入到 Obsidian 中,于是就把「将 Evernote 笔记导入到 Obisidian」列为了一项我的待办事项,虽然已经很多年没有用 Evernote 了,但里面还有一些摘录,我一直认为笔记只有能被检索到才有价值,而 Obsidian 的检索速度也非常快,虽然没有 OCR,但纯文本的检索如果能被反复找到,那么可能那些笔记还有价值。
如果使用最新版本的 Evernote,那么登录的时候 Evernote 就会弹窗让你付费,或者试用 7 天,如果点击取消只能退出账户。所以这个时候可以下载一个老版本的,比如 7.10 版本的 Evernote。你可以从 MacUpldate 这个网站上下载到老版本的 Evernote。
登录 Evernote 之后等待同步下载笔记,
选中 All Notes,然后 Cmd + A 选中所有的笔记。然后右击,导出笔记,然后勾选「Include tags for each node」。接下来就是漫长的导出时间。
打开 Obsidian,然后在插件安装列表中搜索「Importer」,找到 Obsidian 官方出的插件,下载。之后在侧边栏会多出一个按钮,通过这个按钮调出导入的对话框。
在该对话框中设置刚刚导出的 .enex
文件,然后导出到的文件夹。点击 Import,之后就根据笔记的数量会有一段很长的时间等待。
导入完成之后就能在 Obsidian 的对应的文件夹中找到从 Evernote 中到处的笔记了。
今天在了解一个根据英语搜索日语的网站 —- hiki 的时候,发现这个网站是使用一个叫做 [[Preact]] 的非常轻量的框架写的,然后我就沿着 Preact 的线索去查了一下那些网站是用 Preact 实现的,然后就发现了本文的主人公 —- [[blaze]]。
blaze 是一个基于 P2P 技术的文件共享 Web 应用程序。它允许用户通过直接连接和共享文件,而无需通过云存储服务或中央服务器。使用 blaze,用户可以轻松地共享大型文件、照片、视频等,并与其他用户进行实时的 P2P 传输。该应用程序提供了一个简单直观的界面,使用户能够快速上传和下载文件。blaze 利用 WebRTC 技术实现点对点连接,并使用 WebTorrent 协议进行文件传输。这种去中心化的方法不仅提高了速度和效率,同时也增强了隐私和安全性。
我简单的试用了一下 blaze ,发现真的太神奇了,它是一个文件分享的网站,但是不需要任何的注册,验证,而只需要设备在同一个局域网中就可以相互分享文件。于是为了测试我在 macOS 上打开了 blaze,然后起一个昵称,之后会得到一个链接,然后我在 Android 平板上打开同样的链接,网站就自动找到了局域网中的设备,我测试直接从 macOS 上发送文件,在 Android 上立即就收到了发送的文件。
我测试发送一个大文件,虽然没有跑满全部的局域网带宽,但因为 WiFi 传输的原因,也能维持在 3+M/s 的速度,一个 600+M 的文件,传输的时间也在接受的范围内。
好奇这个网站是如何实现的,但好在这个网站是开源的,并且作者在 README 中也提到了网站使用的技术 —- [[WebTorrent]] 和 [[WebSocket]],文件分享通过 WebTorrent 建立点对点的连接(内部使用 WebRTC)这意味着文件的传输是不需要经过中间服务器的,直接在发送者传输到接受者。需要注意的是这个地方 WebTorrent 其中有一个 Torrent,如果看过我之前的 BitTorrent 协议 一文的读者应该会对这个协议比较了解,WebTorrent 是一个纯 Web 的实现,但是和 BitTorrent 协议一样 tracker 服务器不存储任何文件,只存储 metadata 和必要的文件描述,节点信息等。
Lossless Cut 一款跨平台的 [[FFmpeg]] 的 GUI,可以用来快速、无损地剪辑视频,音频。使用 Lossless Cut,用户可以轻松地选择视频或音频文件并进行剪辑操作。该工具支持各种常见的视频和音频格式,并且能够在不重新编码的情况下进行快速剪辑。
除了基本的剪辑功能之外,Lossless Cut 还提供了其他一些高级功能。例如,它允许用户选择特定的时间段进行裁剪,并且还支持批量处理多个文件。此外,它还提供了一些实用的工具,如帧精确切分、截图等。
Lossless Cut 的界面简洁易用,使得即使对于没有编码经验的用户也能够轻松上手。它还提供了一些预设选项,以便用户能够快速应用常见的剪辑设置。
我经常会有一些简单的视频剪辑需求,比如一个长视频中剪辑部分内容,或者从一个音频文件剪辑部分,之前我都是用 Adobe Premiere 去处理,但是 Adobe Premiere 一方面非常重,另一方面即使是简单地剪辑导出也非常慢,因为会需要进行编码。
功能:
Lossless Cut 的使用非常简单,可以直接将视频拖入应用,或者在应用中打开要处理的视频文件(Ctrl+o)。
点击下方的时间轴,然后 「,」和 「。」 可以对选择点进行微调。
找到剪切点,按下「i」选择开头,然后按下 「o」结束。然后使用右下方的 Export 即可到处视频,此时会发现 LosslessCut 的到处处理几乎是瞬间完成的,因为并不需要重新编码,所以磁盘读写的速度就是导出的速度。
对于音频文件,则是如下的样式。
Lossless Cut 还支持将多个视频文件合并成一个。只需将要合并的视频文件拖入应用中,然后点击左上角的「+」按钮来添加更多的视频文件。在选择完所有要合并的文件后,点击右上角的「Merge」按钮即可开始合并。
但需要注意的是 Lossless Cut 在合并视频时最好保证视频的编解码是一致的。
在视频下方的时间轴上能看到一些自动识别的竖线,这些线是 Lossless Cut 自动识别的关键帧,方便用户定位视频。
展开高级菜单,然后在倒数第二行的工具栏中的第三个图标就是自动显示视频的缩略图。
Space
暂停播放j/l
降低或加快播放速度</>
往前或往后 1 秒,/.
小幅度(帧)调整时间i
标记开始o
标记结束e
导出选取的区段c
导出快照多次想要学习一下 [[Kubernetes]] 但是多次照着搭建环境尝试失败,并且也没有找到合适的落地场景就「放弃」了,但是之前了解的时候看到了轻量级的 k8s 叫做 k3s,然后了解到了一个可以快速搭建 k3s 的项目 [[k3sup]],所以记录一下。
k3sup 是一个可以在任何 Linux 机器上安装并启动 [[k3s]] 的命令行工具,官方宣称可以在 60 秒内启动一个 k3s。k3sup 是一个可帮助快速轻松地在任何地方部署 Kubernetes 集群的工具。它使用 SSH 连接到远程主机并安装 k3s,然后提供一个可用于与集群交互的 kubeconfig 文件。
k3sup 发音为“ketchup”。相对于 k8s 来说,k3s 系统容器数量少,轻量级,并且默认使用 containerd 作为容器运行时,内部的 ingress 使用的是 go 语言开发的 traefik,集成了 SQLite 代替 Etcd,但在多个 master 节点中最好使用 Etcd 组件,来保证数据一致性,从而可以 HA。
k3sup 需要通过 SSH 连接到对应的服务器进行安装操作,所以配置 SSH 免密码登录是必需的。
ks3up join
将节点加入 k3s 集群K3S 部署 Kubernetes 集群,创建集群的 https 证书,Helm 部署 rancher,通过 [[Rancher]] 的 UI 界面手动导入 Kubernetes 集群,使用 Kubernetes 集群。
k3sup 使用 Go 编写,直接下载编译好的二进制文件就能使用。
参考官网:
curl -sLS https://get.k3sup.dev | sh
sudo install k3sup /usr/local/bin/
k3sup --help
在本地安装 k3s
k3sup install --local
# 指定用户
k3sup install --local --user=$USER --local-path ./kubeconfig
# 指定版本
k3sup install --local --user=$USER --local-path ./kubeconfig --k3s-version=v1.19.5+k3s1
运行 k3sup:
k3sup install --ip <your_ip> --user username
执行该语句之后,会在 IP 主机上安装 k3s 并启动,作为 master。
# Test your cluster with:
export KUBECONFIG=~/kubeconfig
kubectl config set-context default
kubectl get node -o wide
其他的常用参数
--local
无需通过 SSH,安装在本地--local-path string
本地路径,kubeconfig
文件的本地路径--merge
合并到 kubeconfig
文件--ssh-key string
用于远程登录的 SSH key 密钥--ssh-port int
如果使用非标准端口,可以使用该参数指定端口--user string
SSH 登录用户名注意这里的 agent_ip 为另一台机器,而 server_ip 为 master 节点:
k3sup join --ip <agent_ip> --server-ip <server_ip> --user username
其他常用参数
--server-ssh-port int
连接服务器的端口在 server 节点上:
/usr/local/bin/k3s-uninstall.sh
在 agent 节点上:
/usr/local/bin/k3s-agent-uninstall.sh
对于失效的节点可以通过如下的命令移除
kubectl delete node <node name>
kubectl 的自动补全可以在这里查看。
source <(kubectl completion zsh) # set up autocomplete in zsh into the current shell
echo '[[ $commands[kubectl] ]] && source <(kubectl completion zsh)' >> ~/.zshrc # add autocomplete permanently to your zsh shell
K3s 是一个轻量级的 Kubernetes 发行版,旨在简化和加速 Kubernetes 的部署和管理。它专注于提供一个更小、更快的 Kubernetes 版本,适用于边缘计算和资源有限的环境。K3s 具有更小的二进制文件大小、更低的内存和 CPU 占用,同时仍然提供了 Kubernetes 的核心功能。
[[Rancher]] 是一个开源的容器管理平台,用于部署和管理 Kubernetes 集群以及其他容器编排平台。Rancher 提供了一个易于使用的用户界面,用于集中管理和监控多个 Kubernetes 集群,并提供了诸如应用程序编排、存储和网络管理等高级功能。Rancher 可以与各种底层的容器编排平台集成,包括 Kubernetes、K3s、Docker Swarm 等。
也可以使用 kubectl get service -A
来查看使用的端口。
去年的时候有介绍过一款 Web3 下的协同文档 Skiff,虽然我自己没有在深入使用,但是一直都在观察它的发展,之前也简单的介绍过 Skiff 邮箱,但当时 Skiff 提供的域名邮箱只能够使用 @skiff.com
自己的邮箱后缀,自定义的域名邮箱需要付费。但是今年 Skiff 周年的时候,免费的用户也可以绑定一个域名,因为 Skiff 提供了不错的 Web 界面,并且还提供了不错的客户端,所以如果有朋友不想自己折腾,先尝试一下 Skiff 提供的邮箱也不错。
Skiff 本来是一个 Web3 下的协同文档工具,可以帮助用户在区块链上创建和共享文档。但是随着它业务的扩张,现在也提供了邮箱服务,感觉就是要对标 Web 3 下面的 Google 套件,目前 Skiff 不仅有协同文档,邮件,还有日历,同步云盘。
Skiff 的主要特点包括:
优点 :
缺点:
Skiff 邮箱可以使用传统的注册(用户名密码),也可以使用 Web 3 的 [[MetaMask]] 小狐狸来登录使用。
Skiff 目前提供了三档付费方案,ESSENTIAL,PRO,BUSINESS,另外 Skiff 也支持使用加密货币支付。
如果有人想要使用自定义域名邮箱,不妨试试购买 EV HOST 我在维护的服务,使用 EV_MAIL 可以享受 6 折优惠,最低 30 元一年,无限制域名,无限制别名,但不能恶意滥用,不能发送垃圾邮件,另外每个小时有 300 封邮件的发件限制。购买之后只需要进行简单地几条 DNS 设置就能立即开始使用。我过去也有写过很多关于电子邮件的文章,可以在博客中搜索到。调研的邮箱服务 ,中间还考虑过自建域名邮箱 Mailu, Mailcow 。
Obsidian 是我使用频率最高的笔记软件了,所以 Obsidian 的改造不能少。
插件
这是我利用新项目学习 [[Gatsby]] ,通过 WebStorm 提供的 AI Assistant 可以快速的对代码进行提问,以加快学习的速度和提高学习效果。
Cursor.so 是一款 AI 支持的编辑器,之前也有推荐过,在我主力的 IntelliJ IDEA 之外,有些时候看代码会打开 Cursor,边看代码边提问,最近在看 [[TypeScript]] 的项目,给我带来了非常大的帮助,我再没有打开用 Google 搜索过,并且我也不需要打开 TypeScript 的开发文档从头看到尾。
下面的演示是我查看一个使用 Ruby 编写的项目,其中有一段方法是对 XML 文件进行签名,我在找到对应代码的前提下,在 AI 对话的帮助下使用 Java 重新实现了一遍。
至此,占据我日常大部分时间的工具上都加上了 AI,还有之前提及的 Raycast AI,macOS 上好用的 ChatGPT 客户端,在命令行下使用 GitHub Copilot CLI。我发现最近是真的三句话离不开 AI 了。
我已经忘记了最初是因为什么原因把这一本书添加到了书单中了,但是看了一下同期加入书单的图书,还有 [[毫无意义的工作]],可能是不知道从哪边看了一篇关于工作生活的文章,里面可能提到了这一本书,就这个名字就像让人把它加入待看列表。最近在 Twitter 有一个关键词 [[Indie Hacker]] 又再一次被频繁提起,与之关联的 [[Digital Nomad]],独立开发者,[[Company of One 一人公司]]等等,都成为了最近的流行趋势。在 OpenAI,Bard,[[Claude]] 等等 AI 辅助工具的帮助情况下,个人可以找到方式将自己从朝九晚五的工作中解放出来。
无独有偶的是昨天晚上刚刚听到一个播客,这个播客是讲跨境电商的从业人员如何借助 OpenAI,[[Midjourney]] 的能力,将自己的效率提升了 4 倍,原来需要在一天时间内做的事情,可以很快在一个上午,几小时之内完成,之前一个礼拜的工作可以很快在一天时间内完成。而这也恰恰是本书作者 [[蒂莫西 费里斯]] 想要在书中所倡导的,「工作的关键是高效,而不是忙碌」。令我更惊讶的是,本书出版于 2012 年,但他所倡导的理念却在近 10 年之后才慢慢被人所接受。
作者 Timothy Ferriss(蒂莫西·费里斯) ,我虽然第一次看到这个名字,但是在读完简单的查询了之下之后,我就发现了另一个我经常见的名字 Tim Ferriss,有一档播客叫做 The Tim Ferriss Show,一下子就对这个作者熟悉来起来,也瞬间知道了为什么他能够这么早就能这样思考生活和工作的关系。
《每周工作 4 小时》是由蒂莫西·费里斯撰写的一本畅销励志书。在书中探讨了如何通过优化时间和工作流程,实现更高效的工作和更丰富的生活。作者提出了一种颠覆传统工作模式的思维方式 —- 每周工作 4 小时,鼓励读者追求自由、创造性和富足的生活。
Tim Ferriss 在书中所倡导的思想,和 FIRE 理念 所倡导的思想非常相似,Tim Ferriss 则更关注于时间管理和有效工作,倡导[[迷你退休]],将退休生活拆分到日常生活中。而 FIRE 运动的理念则更强调通过控制支出,增加收入,累积财富,给退休设定了一个「标准」。而这两种「思考」的方式殊途同归,我们的终极目标并不是放弃工作去旅行,去放纵,而是为自己争取一些自由的时间和空间,让我们可以在世界的任何地方都可以享受自我。这两种思想可以相互补充,他们即不矛盾,也不相互排斥。
大部分人,包括过去的我,总是试图尽力说服自己相信生活本就是如此。用朝九晚五的劳作去换取短暂的周末或极为短暂的假期,还要冒着随时可能被解雇的风险。
千万不要做的 9 件事情
11 个信条提高利润
虽然书中有一些具体的建议,如今来看已经过时,比如作者推荐的 Evernote,就刚刚出现被并购,并裁去了所有员工的新闻,但是作者想要表达的思想却是对的,那就是 Evernote 可以让我们可以在一个地方查询到所有的信息,不管是在网页上看到的,还是自己记录的,还是发表的内容,合同的内容,通过 OCR 识别,都可以被找到。虽然 Evernote 看起来不行了,但是还存在很多其他的工具可以让我们去使用。
作者在书中所倡导的工作方式,引发了对传统工作模式的反思,并且以个人案例和经验提供了实用建议和技巧,让读者更好地管理时间、提高工作效率,并追求更自由和富足的生活。
忙碌的人忙于任何事情,除了生活
作者通过思考工作和生活,提出了一个引人深思的问题,「我们必须要在每周的工作上花费 40 小时吗?」,显然答案是否定的,「先成为企业家,再成为雇员」囊括了作者核心思想。在过去的全球化发展过程中,尤其是互联网的发展将全世界拉到了一起,可以利用互联网将产品直接销售给客户,从而实现被动收入,通过创造的方式来建立自己的品牌和资产,通过自动化或外包的形式将不重要的或不想做的事情分包出去,从而提高自己的效率。而在具体的工作中,作者也提供了具体的细节行动,比如区分优先级,使用 80/20 法则选择客户来缩短工作时间。
Metabase 是一个开源的商业数据分析(Business Intelligence,缩写 BI)工具。Metabase 可以将数据库中的数据以各种图表的方式展示出来,分析师只需要通过简单的查询语句就可以通过 Dashboard 展示出来。Metabase 提供一个直观易用的用户界面,非技术人员也能够轻松地进行数据分析和可视化。它支持多种类型的数据库,包括 MySQL、PostgreSQL、Oracle 等,并提供了一些预定义的查询和报告模板,帮助用户快速开始分析工作。
BI 是 Business Intelligence 的缩写,代表的是一种通用商业分析的解决方案,即:用一系列技术手段对数据加工和分析,转化为知识进而支持商业决策的系统。
BI 的范围需要涵盖大量工具,包括数据源连接、数据准备、数据可视化、数据报表、数据输出等。常见的 BI 工具有:Microsoft Power BI、Tableau 等,国内有 阿里云 Quick BI、FineBI 等。开源方案,包括 [[Superset]]、Hue、[[Redash]]、以及本文介绍的重点 Metabase 等。
Metabase 的主要特点包括:
简单使用 Docker 安装
version: '3'
services:
metabase:
image: metabase/metabase:latest
container_name: metabase
restart: always
ports:
- ${PORT:-3000}:3000
environment:
- MB_JAVA_TIMEZONE=${MB_JAVA_TIMEZONE:-Asia/Shanghai}
通过 Docker 运行 Metabase,将其映射到本地 3000 端口。然后可以通过浏览器访问 http://localhost:3000 来打开 Metabase 的用户界面。
首次访问时,会要求设置管理员账号和密码。设置完成后,就可以开始使用 Metabase 了。Metabase 提供了一个直观的用户界面,首先需要关联数据源,然后就可以轻松地查询数据库中的数据,并将其以各种图表的方式展示出来。用户可以通过提问(Question)功能来创建查询,然后将查询结果保存为仪表盘(Dashboard)。
Metabase 的使用主要是分成如下步骤:
如果在初始化的时候没有设置自己的数据源,那么也可以在 Admin 页面中添加数据源。