# 2024-05

![](https://p.ipic.vip/0bhil1.jpg) ![](https://p.ipic.vip/0bhil1.jpg)

每天给你推荐一个新奇，好玩，高品质的开源库，好文，观点或言论等。

> 项目主页维护当前月份的内容，想看往期内容，可以翻到下方历史汇总部分，然后选择自己感兴趣的月份点进去即可。

## 2024-05

### 2024-05-31\[好文]

一般我们会将自己的网络服务托管到第三方。他们一般会负责保护你的服务不受攻击，或者收到攻击的时候能够及时恢复。

但是如果你是自托管，那么很多问题都需要自己考虑，其中最重要的就是安全问题。包括但不限于数据安全，病毒攻击，DDOS 攻击等。

![](https://p.ipic.vip/t6bbzs.png)

via: <https://sspai.com/post/89837>

### 2024-05-29\[好文]

上次给大家介绍了一个下载 bilibili 视频的工具，今天给大家介绍另外一个工具 cobalt，不仅可以下载 bilibili 视频，还可以下载很多其他视频网站的视频，比如 youtube。使用方式基本一样，只需要输入视频的地址，然后就可以下载了。 代码是开源的，仓库地址：<https://github.com/imputnet/cobalt>

![](https://p.ipic.vip/fm51j6.png)

via: <https://cobalt.tools/>

### 2024-05-28\[好文]

一个利用 AI 给视频自动添加字幕的工具，这个工具可以帮助你快速给视频添加字幕。我自己试了一个视频，不知道为什么视频后半段是没有字幕的，前半段效果还不错。

这个工具免费版的话只能是 720 P 并且不能去水印，如果想要更高清的视频，或者去水印，需要付费。

使用方法很简单，你只需要上传一个视频，然后它就会自动给你生成字幕，你可以选择字幕的样式，然后就可以下载了。

![](https://p.ipic.vip/9a3ard.png)

via: <https://www.kzzimu.com>

### 2024-05-27\[好文]

看完《2024 年开始使用的 10 个现代 Node.js 运行时功能》 我越来越觉得 nodejs 像 deno 靠拢了。其也加入了 native lib 和 权限控制等。

via: <https://snyk.io/blog/10-modern-node-js-runtime-features/>

### 2024-05-24\[好文]

github 有一个漏洞，使得一些人利用这个漏洞钓鱼。这个漏洞是这样的，当你在 github 上传一个附件，那么这个附件就属于这个仓库。因此攻击者可以去一些权威仓库，比如 react 下面上传一个恶意附件，然后将生成的地址发给别人。别人一看地址来自 react，就会认为是安全的，然后下载这个附件，这样就会被攻击者利用。

via: <https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/>

### 2024-05-23\[网站]

一个教你在网络这个黑暗森林里保护自己隐私的网站，里面有很多关于网络安全的知识，比如如何保护自己的隐私，如何防止网络钓鱼等。

对我来说学到的点包括：

* 如何检测蓝牙追踪器
* tor 浏览器 和 whatsapp 的安全性
* metadata 以及 metadata 是如何暴露你的隐私的
* 。。。

另外这个网站提供了一些隐私保护的工具，包括但不限于浏览器，dns，云服务，vpn，密码管理器等。<https://www.privacytools.io/>

via: <https://ssd.eff.org/>

### 2024-05-22\[好文]

一个非常好看的美化 json 的工具。如果你有“在网页中展示 JSON 数据”的需求，那就可以考虑使用。使用方式非常简单，支持所有主流浏览器。

![](https://p.ipic.vip/w5qplu.png)

via: <https://github.com/williamtroup/JsonTree.js>

### 2024-05-16\[好文]

一个 OBS 的插件，可以在直播的时候显示你的键盘输入，这样观众就可以看到你的键盘输入了。这个插件支持 windows 和 linux。除了键盘输入显示，它还支持鼠标输入显示，手柄输入显示。

![](https://p.ipic.vip/1n04cf.png)

via: <https://github.com/univrsal/input-overlay>

### 2024-05-15\[技巧]

网络钓鱼危害非常大，你的隐私，你的资金都会因为网络钓鱼而受到威胁。

然而对待网络钓鱼实际上并没有很有效的方法，因为网络钓鱼的手段非常多样，而且很难被检测出来。

U2F物理加密密钥是一个很好的解决方案，它可以防止网络钓鱼。而做到这一点需要：

1. 一个支持 U2F 的网站，比如 Google
2. 一个 U2F 物理密钥，比如 yubikey

它的原理大概是这样的：当你登录一个支持 U2F 的网站时，网站会要求你插入你的 U2F 密钥，然后你按一下 U2F 密钥上的按钮，这样网站就可以确认你是真的拥有这个密钥。你首次 U2F 登录的时候它也会将你的账号和物理秘钥进行绑定，后面就算钓鱼者通过某种方式获取到你的密码，也无法登录你的账号，因此它没有你的物理密钥，认证不通过。

### 2024-05-14\[好文]

如果你有辅导孩子的需求，那么你可以将数学题截图上传到这个网站，然后它会自动给你解答，底层基于 chatgpt4，而且是免费的。你也可以直接输入题目描述进入代替上传图片。

![](https://p.ipic.vip/6hu85w.png)

via: <https://math.bot/>

### 2024-05-13\[好文]

上次向大家推荐了一个下载 bilibili 视频的网站。这次是一个下载 bilibili 视频**桌面客户端**，使用 flutter 编写，支持 macos 和 windows。

![](https://p.ipic.vip/5b685j.png)

via: <https://github.com/kangpeiqin/bilivideo\\_down>

### 2024-05-12\[好文]

和使用草料等工具生成二维码（qrcode）类似，我们也可以使用一些工具生成条形码（barcode）。这个**在线工具**就可以帮助你生成带有任意信息的条形码。

via: <https://www.1txm.com/barcode>

### 2024-05-08\[好文]

你从网上下载了一个文件，但是你如何确定这个文件是不是被篡改过呢？一般来说，文件作者可以提供一个签名文件，作者用自己的私钥对文件进行签名，然后你可以用作者的公钥来验证文件的签名。这样你就可以确定文件是否被篡改过。

而 GPG 就是一个非常好的工具，可以用来签名文件，验证文件的完整性，以及加密文件。这个视频介绍了如何使用 GPG 签名文件或者验证文件的签名。

MACOS 可以用 gpg Suite，windows 可以用 gpg4win。

via: <https://www.youtube.com/watch?v=MaZ8\\_V-iveQ>

### 2024-05-07\[知识]

node 22 中的新功能 register，register 方法可用于注册导出一组钩子的模块。钩子是 Node.js 调用的函数，用于自定义模块解析和加载过程。导出的函数必须具有特定的名称和签名，并且必须作为命名导出导出。

```js
// hooks.js
export async function initialize({ number, port }) {
  // Receives data from `register`.
}

export async function resolve(specifier, context, nextResolve) {
  // Take an `import` or `require` specifier and resolve it to a URL.
}

export async function load(url, context, nextLoad) {
  // Take a resolved URL and return the source code to be evaluated.
} 
```

如上代码，hooks.js 导出了三个函数，initialize，resolve 和 load。这三个函数分别用于初始化，解析和加载模块。当模块被初始化，解析，加载的时候就可以执行这三个函数。

为了让所有模块都可以被作用到，注册功能越早越好，尤其是入口文件也要被注册到。那我们就可以使用 node 的 import 指令来完成。

```bash
node --import ./register-hooks.js ./my-app.js 
```

import 会在加载入口文件之前，先加载 register-hooks.js，这样就可以保证所有模块都可以被注册到。

更多用法参考：<https://nodejs.cn/api/module.html#customization-hooks>

基于这个功能，node 就可以很容易地实现 web 中的 HMR 效果了，比如 <https://github.com/julien-R44/hot-hook> 就利用 node 的 register 功能实现了 HMR。

### 2024-05-06\[好文]

通过红外线 led 灯来躲避夜市摄像头的监控，这个想法真的很有意思。

via: <https://www.macpierce.com/the-camera-shy-hoodie>

### 2024-05-05\[好文]

jq 是一个非常好用的 json 处理工具，但是它只能在命令行中使用，如果你想在 nodejs 中使用 jq，那么可以使用 node-jq 这个工具。node-jq 就是基于 jq 封装的一个库。

```js
const jq = require('node-jq')

const filter = '.abilities[].moves'
const jsonPath = '/path/to/bulbasaur.json'
const options = {}

jq.run(filter, jsonPath, options)
  .then((output) => {
    console.log(output)
    /*
      {
        "name": "heartgold-soulsilver",
        "power": "10"
      },
      {
        "name": "platinum",
        "power": "50"
      },
      {
        "name": "diamond-pearl",
        "power": "99"
      }
    */
  })
  .catch((err) => {
    console.error(err)
    // Something went wrong...
  })
```

如上代码，我们可以使用 node-jq 来过滤 json 文件。

via: <https://github.com/sanack/node-jq>

### 2024-05-04\[工具]

一个在线的免费在线转换文字为语音的工具，你可以将文字转换为语音，然后下载到本地，支持多种语言。

一次限制 2000 个字，实际上基本够用。

![](https://p.ipic.vip/18dlf0.png)

via: <https://texttospeech.im/zh-CN>

### 2024-05-03\[工具]

一个将 ai 生成的回答“润色”，使其更加自然的工具。

via: <https://humanize.im/zh-CN>

### 2024-05-02\[工具]

只需要一行命名就可以将 sqllite 数据库文件变成可通过 web 访问的网站。

```bash
sqlite_web /path/to/database.db
```

其中 db 文件可通过工具导出。

![](https://p.ipic.vip/htn5hf.png)

via: <https://github.com/coleifer/sqlite-web>

### 2024-05-01\[好文]

《【剧透】电影《怪物》时间线完整还原和三视角叙事结构分析》这篇电影解析写的太好了，简直教科书级别。

作者从多个视角，多个时间线分析了这部电影，让我有种玩 RPG 游戏的感觉。同时也增加了多对电影里很多细节的理解。非常棒，希望我以后也能写出这样的电影解析。

via: <https://www.douban.com/note/858206686/?\\_i=5016320fbwsPHb,5016539fbwsPHb>

## 关注我

我重新整理了下自己的公众号，并且我还给它换了一个名字`脑洞前端`，它是一个帮助你打开大前端新世界大门的钥匙 🔑，在这里你可以听到新奇的观点，看到一些技术尝新，还会收到系统性总结和思考。

在这里我会尽量通过图的形式来阐述一些概念和逻辑，帮助大家快速理解，图解是我的目标。

之后我的文章会同步到微信公众号 `脑洞前端` ，你可以关注获取最新的文章，并和我进行交流。

另外你可以回复大前端进大前端微信交流群， 回复 leetcode 拉你进 leetcode 微信群，如果想加入 qq 群，请回复 qq。

![](https://p.ipic.vip/bp35i7.jpg)
