Herald Yu

Herald Yu

448 posts published

GitHub

把 Github Wiki 克隆到本地

原来 Github 项目的 Wiki 并不是只能在网页上编辑,它是可以作为一个独立的 Git 项目被克隆到本地的。 比如我想把 marktext 的 wiki 克隆到本地,只需把它仓库 URL 的 .git 改成 .wiki.git 即可: git clone https://github.com/marktext/marktext.wiki.git 然后,在本地可以使用 gollum 对 Wiki 进行可视化的编辑。 Reference https://www.yangzhiping.com/tech/gollum.html

PostgreSQL

PostgreSQL 启用 SSL

PostgreSQL 提供多种通信安全机制,SSL 是其中一种,类似于网站启用 https。可以配置服务端单向验证,也可以配置服务端和客户端双向验证。 这里记录单向验证的证书配置方法,作用主要是通过加密通道传输数据,防止被中间人抓包窃取。 生成证书 openssl req -new -text -passout pass:abcd -subj /CN=localhost -out server.req -keyout privkey.pem openssl rsa -in privkey.pem -passin pass:abcd -out server.key openssl req -x509 -in server.req -text -key server.key -out

Stories

探究事物本源的第一性原理

了解一个原理的方法有很多中,先举几个反例: 这件事某人之前是这样做的,所以我们也这样做; 这个东西成本高,所以这个东西未来的成本也很高; 媒体发文章都是长篇大论事无巨细的,所以我们写文章也应该码更多字; 因为系统就是如此,所以我们要接受这个系统; ... 可举的例子应该很多,每个人应该都可以顺藤摸瓜的发现类似的样本。 今天无意中刷到 Elon Musk 接受采访时分享的“第一性原理”,引发我内心强烈的共鸣。 最近经常碰到画蛇添足的、抓无意义细节的人和事,很让人头疼。 完美主义的事无巨细并无过错,但在资源有限的情况下,人更应该把宝贵的时间和注意力放在关键的事情上。当然,一定有人会反驳: 你怎么知道这些细枝末节不关键? 你怎么知道不把句号换成感叹号会引起什么样的不良体验? 你怎么知道... 我总觉得进化是一个循序渐进的过程,先要解决有没有的问题,然后才是好不好的问题。

OMV

OMV5 安装 nvidia 显卡

本来想把亮机卡给 Jellyfin 用做硬件加速的,结果发现 GT1030 不支持 NVENC,而 Jellyfin 又不支持 CUDA 加速,所以就只是单纯的记录一下在 OMV 5(Debian 10)上安装 nvidia 显卡驱动的过程。 检测显卡型号 $ lspci -nn | egrep -i "3d|display|vga" 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP108 [10de:1d01] (rev a1) 也可以安装 nvidia-detect,检测显卡型号: $ nvidia-detect Detected NVIDIA

可用性

N个9可用性,SLA啥意思?

N个9是云计算领域常用的衡量服务可用性的指标,它衡量的是服务在一年中平均无故障时间,比如,99.99% 的可用性,代表该服务在一年中 99.99% 的时间都是可用的,即 0.01%(1-99.99%)是服务可能无法使用的时间,计算到分钟的话就是: (1-99.99%) * 365天 * 24小时 * 60分钟 ≈ 52.56 分钟 如果一个服务的 SLA 是 99.99%,则表明它的全年可能的故障时间是 52.56 分钟。 如果一个服务的 SLA 是 5 个 9,即 99.999%,则全年可能故障时间为 5.256 分钟。

asciinema 把终端操作录制成 gif 动画

asciinema 是一个开源工具,可以把终端上的操作录制下来转换成 git 动画,也可以进一步使用 ffmpeg 将动画图片转换成 mp4 视频。 安装 macOS brew install asciinema Ubuntu/Debian sudo apt install asciinema 使用 录制 asciinema rec demo.cast 使用 ctrl + d 或 exit 停止录制 回放 asciinema play demo.cast 生成 gif 动画 按照 asciinema 项目的使用建议,录制好的配置文件可以上传到官网,然后使用官方的脚本和连接嵌入到自己的网页。如果需要离线使用,可以通过 asciinema2gif 生成动图。

Music

认真地老去

《认真地老去》张希、曹方忘了什么时候开始 到清晨才能入睡 也忘了什么叫做结尾 又有谁在乎呢 凌晨三点的窗前 播放着那段时光 有一个骄傲的少年 隐藏他的青春 不如让我忘了自己 你觉得怎么样呢 在每个向往的地方 释然一个遗憾 躺在我怀里的吉他 好像厌倦了我 重复最熟悉的段落 好像无话可说 这生命正值春光 别装作刀枪不入的模样 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真的年轻过 就认真的老去 又一次和你擦肩而过 一毫米的距离 让我再次抱起吉他 为你唱那一首歌 重复最熟悉的段落 就当明天不在 没有永远的年轻 没有唱不完的歌 当所有人都离去 我也将要离去 这生命正值春光 别装作刀枪不入的模样 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真的年轻过 就认真地老去 又一次和你擦肩而过 一毫米的距离 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀

Windows

在 Windows 11 上读取 ext4 文件系统

Windows 10 或 11 上读取 ext4 可以借助 WSL 实现,首先参考安装 WSL。 然后参考 WSL 2 挂载 Linux 磁盘 执行命令查看磁盘列表: PS C:\Users\herald> GET-CimInstance -query "SELECT * from Win32_DiskDrive" DeviceID Caption Partitions Size Model -------- ------- ---------- ---- ----- \\.\PHYSICALDRIVE0 SAMSUNG MZVLB256HAHQ-00000 3 256052966400 SAMSUNG MZVLB256HAHQ-00000 \\.\PHYSICALDRIVE1 HIKSEMI

Backup

家庭数据备份方案

自从大二装国产 Linux 误删了硬盘中积累了多年的照片,我对数据的存储和备份有了敬畏之心,这可能也是我后来投身存储领域的潜在动因吧。 于我们家庭而言,照片视频是最宝贵的数字资产。从 2005 年至今,我们一直会比较认真的归档每个月的照片,目前累计 800GB 左右。 昨天下午江苏盐城海域发生了 5.0 级地震,上海有很明显的震感,虽然的确如网上所说,大家都觉得是自己疲劳过度导致的眩晕,但地震过后,我不时的会联想到地震毁掉了 NAS,就是那个存有 800GB 数据的服务器。 其实家庭相册并不是只有 NAS 里这一份,我和老婆真的很担心它发生意外,所以在很久很久以前,老婆用 USB2.0 的移动硬盘做过离线备份,硬盘放在苏州我父母的家里。我还额外用一个 1TB 的硬盘对它做了另外一个离线备份,会定期的接到 NAS 上同步最新的数据。但这个 1TB 的盘也放在上海家里,它只是 NAS 的一个灾备。保险起见,

React

Docusaurus v2 获取当前页面超链接

Docusaurus 是基于 React 的文档生成器,也可以说是在 NextJS 的基础上改进而来的程序。 当需要获取当前页面超链接时,可以使用 JS 的 windows 全局变量,例如: console.log(window.location.href) 但直接在组建中使用 window 会导致 build 报错,程序会建议使用 useEffect,即 React 的 Hook。 使用示例: import React, { useState, useEffect } from 'react'; const [pageurl, setPageurl] = useState('') useEffect(() => { setPageurl(window.location.href) }) console.log(

markdown

Markdown 页内跳转 ToC

对于内容较多的 Markdown 文档,通常会在页头创建一个 ToC 导航,以各个段落标题为锚点。在手动创建时一般需要注意以下几点: 1.纯英文标题时 所有单词改为小写,空格使用 - 替换。例如:[My Title](#this-is-my-title) 当标题中有 / 等符号时,也使用 - 替换。例如:[ That/s My box](#that--s-my-box) 2.中英文混合时 所有单词改为小写,空格使用 - 替换。例如:[这是 Tom 的书包](#这是-tom-的书包)

Rancher

Rancher 忘记密码如何重置?

对于安装在 Docker 上的 Rancher,可以在宿主机执行以下命令重置管理界面的密码,例如: $ sudo docker exec trusting_buck reset-password New password for default admin user (user-ssggz): tkk0z67Tdoh8GpQzB4UI 其中,trusting_buck 是 Rancher 所在的容器名。重置后的用户名和密码如下: 用户名:admin 密码:tkk0z67Tdoh8GpQzB4UI References https://github.com/rancher/rancher/issues/12697#issuecomment-383651948

前端

Gatsby 3.13 + Strapi 3.6 + React-markdown 故障排查

美好的十一国庆节假期,陪孩子、睡懒觉、看各种前端资料。儿子5岁了,再也不用像之前那样寸步不离,他会找自己喜欢玩的东西。就算是缠着我下楼玩,也不用我时时刻刻的当他的拐棍,特别是他最近社交技能提升,玩秋千会排队、会交涉,也会抢,为父甚是欣慰。 言归正传,这几天以 Strapi 为数据源,分别试用了 Next.js 和 Gatsby 两款开源的前端框架。首先说 Strapi,真乃神器!本质上他是一个内容管理器 CMS,但与传统的 CMS 不同在于它不直接提供前端界面,只按照需求对外暴漏 API,它的逻辑非常灵活,你可以用预置的各种字段去组装需要的内容类型。可以很轻松的创建各种单页面、文章博客或是产品列表,然后直接在 Strapi 上面管理相应的内容,它通过 API 对外提供各种内容类型的数据,使用 react 或 vue 等前端框架从 API

SSH

SSH 通过跳板机访问内网主机

SSH 通过 -J 指定跳板机,所谓跳板机就是我们可以通过外部访问的内网主机,通过跳板机作为通信代理,就可以访问跳板机所在的内网中其他的主机。 跳板机:root@pve.local 内网目标主机:almalinux@192.168.1.61 连接方法: $ ssh almalinux@192.168.1.61 -J root@pve.local 转发内网主机端口到本地 进一步的,比如要将内网目标主机上的 cockpit 界面映射到本地访问,可以这样设置: $ ssh -L 9090:192.168.1.61:9090 almalinux@192.168.1.61 -J root@pve.

几个事儿
Stories

几个事儿

一 有关孩子教育的问题,我总是心虚,因为我自己还没看明白这个世界,这些里里外外的事情我怎么才能跟儿子说清楚呢,显然是说不清的。小的时候还好忽悠,长大可能就会恍然意识到原来爸爸在忽悠他。 二 朋友有很多种,我想交往的是能参加我葬礼的。 当然,我可能没有葬礼。 三 人不能和心智作对。 高露洁之于牙膏,耐克之于运动鞋,雀巢之于咖啡,例子不胜枚举。 设想一下,如果高露洁要做洗发水,耐克要做电视,雀巢要做耳机,如果你是推销员,说服人们购买这些产品该是多大的挑战。谁愿意用牙膏洗头呢? 你我也是如此,你给人留下第一印象非常重要。 四 昨晚做梦哭醒了,我梦见自己找不到妈妈了。

rclone

rclone: 文件备份到腾讯云 COS 深度归档存储

rclone 是我目前用过操作对象存储功能最完整、使用最简易的工具。 家里现在使用 Nextcloud 网盘作为统一的文件管理界面供每个成员使用,使用外部存储插件去访问本地的 minio 对象存储。minio 通过策略定义实现每个用户独享的和共享的 bucket。 本地的 minio 是 4 盘位 EC:2 结构,可以保证任意 2 块硬盘上的某个文件对象同时损坏,数据不会丢失且可自愈。家庭环境来说,这个保护级别已经足够了,但是把握起见,还是决定做一个异地备份。 minio 上的数据通过 rclone 定期手动备份到腾讯云 COS 深度归档存储,目前总数据量不足 1TB,资源包只要 120 元左右一年,存储成本非常低。 深度归档存储的特点是存储单价非常低,不过一旦需要恢复数据时,需要付出高昂的费用代价。所以我把深度归档存储纯粹当做一份保险,数据灾难时的最后一丝希望,没有意外不会请求解冻。 腾讯云 COS 深度归档存储 在

Manjaro

Manjaro KDE 安装微信

参照 ArchLinux Wiki 中提供的几种安装微信的方法,实际使用下来,感觉 com.qq.weixin.spark 是最理想的,这是 deepin 社区封装的一个版本,基本与微信版本保持同步。 安装 $ yay -S com.qq.weixin.spark 使用 直接在菜单中找微信运行,第一次运行需要在 Wine 中执行初始安装,全部保持默认选项。安装完毕就和在 Windows 系统中一样了,扫码认证登录。 输入框中文乱码 我的系统版本是 Manjaro KDE 21.0.7,运行微信之后,界面正常显示中文,但输入框里面中文会显示成黑色方块。参照 这篇文章 成功解决乱码问题。解决步骤大致如下: 下载 Windows 的 simsun.