碎碎念

陪她去流浪 新建

这是不是所有头戴式耳机🎧的宿命?

是吧,是吧?即便是 ¥5001 块的爱国者(AKG)也这样?

一摸就掉一地的渣啊。但是这玩意儿除了就这坏了外,其它完好。你说气不气人。

2025-7-23 12:41:23

翻到了刚买时的图:

以及一张不错的背影,但不是此耳机:


  1. 也可能是 ¥250,不记得了。 ^

没有评论 页首

天杀的,苹果说刘亦菲是我朋友

哈哈,没有标题党。不仅是刘亦菲,还有刘诗诗,刘德华,刘备,刘涛……

可我还是得骂你,某个刘姓的名字我输了几百遍了,你都记不住……

李彦宏:中国人有时候喜欢拿隐私换取便利。

2条评论 页首

如果服务器声称的 Content-Length 比实际发送的数据大,客户端会直接不显示这不全的数据,而是报错误。有点儿意思,我排查了半天以为是我代码哪里写错了。(数据大小和实际数据分开存的,数据损坏了,所以出现了不一致。)

1
2
3
4
5
6
7
8
建立安全连接失败

加载页面时与 xxx 的连接中断。

    由于不能验证所收到的数据是否可信,无法显示您想要查看的页面。
    建议向此网站的管理员反馈这个问题。

详细了解…

以及:

1
2
$ curl xxx
curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)
没有评论 页首

视频压缩原来真的很慢很慢……

尝试把一个十年前的视频(47秒)用最慢的方式压缩了一下,耗时5️⃣0️⃣分钟!

从 46MB 压缩到 2.3MB,肉眼看起来质量不差。选用的格式仍然是我目前最爱的 AV1 编码,容器是 webm(第一次用)。

开了 64 个线程(随手写的,忘记系统是多少核了),内存占用仅 ~300MB,CPU 占用仅 ~250%.

1
2
3
4
5
6
$ time ffmpeg -i 1.mp4 -c:v libaom-av1 -crf 35 -preset veryslow -threads 64 1.webm
...

real 50m6.234s
user 130m41.780s
sys	 0m36.944s

过程真漫长啊!不得不想得十几年前为了把视频装进 MP4 的年代了,那时候看着“视频转换大师”那个进度条……实在不理解为什么会这么慢,当然,现在也不理解。我以为至少能跟上视频的速度的(1秒时间转换1秒视频进度[狗头])。

2025-4-19 20:06:36

看起来 Safari 对 .webm 的支持很差,放弃了,继续用 .mp4(但是编码方式仍然是 AV1)。

没有评论 页首

热知识,为什么有些 JPEG 图片的 宽x高 是反的?

就像下面这张图一样,一眼过去就知道:宽<高。

但是为什么用 exiftool 看的时候显示却怪怪的?

1
2
3
4
5
$ exiftool -json -ImageSize IMG_0695.avif
[{
  "SourceFile": "IMG_0695.avif",
  "ImageSize": "4032x3024"
}]

插曲:本来是准备拿当前页面上显示的图片为例子说明为什么图片显示正确/错误了。然后马上醒悟到:我马上就会改掉这个 bug/feature。这会导致文章不匹配。于是决定不写这段了。

结论:相机📷在为了拍照时更快速地存储图片,不管是横拍还是竖拍,都会以同样的数据存储。只是再加了一个 Orientation 元数据字段表示图片应该如何旋转后才能作为最终的展示图片。

结论2:经过一些转换工具转换后,可能会有一个 Rotation 元数据,意义和 Orientation 非常相似,也是表示“旋转”。

上面这张图的结果如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ exiftool -json -ImageSize -Orientation IMG_0695.avif
[{
  "SourceFile": "IMG_0695.avif",
  "ImageSize": "4032x3024",
  "Orientation": "Rotate 90 CW"
}]

$ exiftool -n -json -ImageSize -Orientation IMG_5912.heic
[{
  "SourceFile": "IMG_5912.heic",
  "ImageSize": "3213 5712",
  "Orientation": 1
}]

其中的 CW 我猜是 ClockWise(顺时针) 的缩写,意即最终需要顺时针旋转 90°.

那么问题来了,我这张照片肉眼来说不是“挺正”的吗?

可能的 Orientation 值

名称 说明 显示方向
1 Horizontal (normal) 正常方向,无需旋转 🔼 顶部朝上
2 Mirror horizontal 水平翻转 🔁 左右颠倒
3 Rotate 180 顺时针或逆时针旋转 180° 🔽 顶部变底部
4 Mirror vertical 垂直翻转 ↕️ 上下颠倒
5 Mirror horizontal and rotate 270 CW 水平翻转后顺时针旋转 270°(等于左旋90°+镜像) ↙️
6 Rotate 90 CW 顺时针旋转 90° ▶️
7 Mirror horizontal and rotate 90 CW 水平翻转后顺时针旋转 90° ↗️
8 Rotate 270 CW 顺时针旋转 270°(等于逆时针 90°) ◀️
2025-4-17 00:52:05

看起来 OrientationRotation 有点费解🫤:

1
2
3
4
5
6
$ exiftool -G -json -Orientation -Rotation 1.avif
[{
  "SourceFile": "1.avif",
  "EXIF:Orientation": "Rotate 90 CW",
  "QuickTime:Rotation": 270
}]

同一张图片一个是顺时针旋转90度,一个是顺时针旋转270度(逆时针旋转90度)。这两个不是上下颠倒了吗?

2025-4-17 01:27:03

吓尿了简直:

2025-4-17 01:41:29

尝试把设置 image-orientation: none1 后,图片向左旋转了 90°;所以大概可以暂时不管 Rotation 的值?🤔

2025-4-18 00:59:27

鉴于浏览器能正常渲染并设置尺寸的图片。说明 img.natureWidth2img.natureHeight 很可靠。那么,就让浏览器来帮这个忙了。 参考:/admin/statics/editor.js。但是要注意:这个单位是 CSS 像素。

没有评论 页首

我可太喜欢火狐的这个版本的外观了

超级喜欢,看起来非常扁平化、干净、紧凑。特别是全屏模式是,更加干净清爽。

这也是我第一次接受标签栏在侧边,竟然异常顺手。

没有评论 页首

周报(2025-04-15)

✍️ 给 Apple Notes 增加高级编辑功能

苹果手机和电脑均自带且自动同步的笔记应用 Notes,缺乏一些高级/现代的编辑功能,特别是 Markdown 支持。这里有个插件扩展了 Notes 的功能,增加了格式条、Markdown、斜线命令双向链接🔗等功能。

Apple Notes 居然还能支持插件,这么封闭的系统竟然如此“开放”?太让我意外了😯。

这款插件基础功能是免费的,但是未开源。隐私🔏问题可能需要考虑一下。

没有评论 页首

SMTP 被推荐使用 587 而不是 465 就很奇怪

465端口默认就强制 TLS,而587是选择性开启。我的观点:

  1. 对于现代社会来说,不支持 TLS 的客户端我觉得应该彻底抛弃。
  2. 选择性开启 TLS 显然增加了实现复杂度。
  3. 为了支持旧客户端,还不如继续使用早期的 25 号端口。
  4. 25 号端口可以发送垃圾邮件,其它端口就不行?
以下是 ChatGPT 的回答。

SMTP 的 465 和 587 端口都是用于发送邮件的,但它们的加密方式不同,适用场景也稍有差异:


🔒 465 端口(SMTPS)——"隐式 SSL/TLS"

  • 连接时就加密:一建立连接就是 TLS,加密是强制的。
  • 用的是旧的方式:最早由 Netscape 推出(非标准),后来被弃用又重新推荐。
  • 比较适合一些老的邮件客户端
  • 在配置里你会看到叫 smtps://SMTP over SSL

适合: 当你明确要用 SSL,并且客户端/服务器都支持 465。


🛡️ 587 端口(SMTP+STARTTLS)——"显式加密"

  • 默认是普通连接,之后通过 STARTTLS 升级为加密。
  • 是现在的 官方推荐端口,符合 RFC 6409
  • 几乎所有现代邮件服务(包括 Gmail、Outlook)都支持。
  • 更安全灵活,适合客户端发信用户认证发送

适合: 大多数情况,包括发邮件、登录邮箱账号等,推荐使用 587。


📌 对比总结:

特性 465 (SMTPS) 587 (SMTP+STARTTLS)
加密方式 隐式 TLS(连接时立即加密) 显式 TLS(用 STARTTLS)
标准性 非标准,曾被弃用 标准(RFC 6409)
兼容性 有些服务不支持 现代服务广泛支持
推荐程度 不再首选 ✅ 推荐用于客户端发信

如果你正在写代码或设置发信程序,推荐优先用 587 + STARTTLS
如果某些客户端或服务器只支持 465,那就用 465 + SSL。

没有评论 页首

我的建议是不要把小整数存为对象

我觉得整数就已经足够节约内存了,把整数存为对象肯定更占内存。建议 Python 的优化朝这方面发展。1

没有评论 页首

周报

任意域名解析:nip.io - wildcard DNS for any IP Address1

这个服务能把任何以 IP 地址为记录名的域名动态解析到对应的 IP 地址,不需要先添加记录。方便为任何 IP 地址设置域名。

内存结构展示2

8️⃣个字节的内存可以存放哪些类型的数据?下图是一些示例。对于刚接触计算机💻、正在了解内存的人来说非常有帮助。

Linux 二进制文件 ELF 格式介绍3

别的不说,我最讨厌 C 语言的一点就是:结构体成员名全部有相同的现在说来没任何用处的无聊前缀。

比如图中的:e_, p_, sh_。 C 语言以前确实是我的最喜欢的语言,后来喜欢 C++,现在是坚定的 Go 派。

域名 whois 查询服务

https://w.is/,网址很短,数据显示还不错。不过好像没有 API 服务。

存储设备及其延迟45

文章中用动画示例清晰地调解了常用读写设备及其延迟特性。

沁恒对于CH32V003升级的芯片CH570,带2.4G无线和蓝牙6

CH32V003是我玩过的第一款RISC-V芯片,之前做智能家居的时候用于替代STC51的。功能很现代,价格极其便宜。

本来还有点不舍51,用了CH32才发现那叫一个爽:比如,可以用上最先进的编译器,而不是51那各种又破又不规范的编译器套件。再也不想碰。甚至还写了一个CH32V003的模板项目

新上线的这个CH570拥有了2.4G无线🛜功能,要是早点出来就好了。我就不用给 nRF24L01/Ci24R1 写驱动程序了(尽管看起来写得非常漂亮🤩)。

原来,微信视频号不仅没有外链,还有加密🔐

之前在日记2024-03-09.md里面就发现微信的视频号无法外部分享,今天看到别人也提到了这个问题。

视频号很早之前是有链接的,后来为防搬运做了DRM,隐藏链接外加内容加密,隐藏链接经历了几次调整后现在不让用默认浏览器打开,抓包拿到的stodownload.mp4已加密没法播放,废掉了大部分下载器和嗅探工具。不过可能出于性能考虑,视频号只加密了文件头,不像C某TV丧心病狂对ts流做了帧加密78

听起来加密方式很简单,大概和以前的迅雷看看一样9

以及一个视频嗅探器:putyy/res-downloader: 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载!

没有评论 页首

心血来潮,仅用数百行代码实现了我日常高频使用的“RSS 订阅功能1”,用于替换用了近🔟年之久的 Feedly。我的使用习惯很简单:看完最新文章,随手就关闭。从不体验其它功能。

为什么要自己实现?为了管理/自定义方便。

只需要像下面这样在 Markdown 里面一行一个添加订阅源即可自动渲染:

1
2
3
4
```rss
https://blog.twofei.com/rss
https://blog.mac.twofei.com/rss
```

“已读/未读”使用浏览器都有的 a:visited {} 来实现,且自动跨平台同步

所以,我有时候纳闷,像 feedly 这种替代 Google Reader 的产品如何盈利,护城河在哪里?

一个错误的想法:由于博客现在支持用户系统了,于是想把订阅的每个网站的文章在我的系统内自动创建一篇对应的文章,对于实现来说,是一件非常简单又取巧的事。后来一想,这也太不尊重版权保护2了,遂放弃。

Feedly有哪些不好?

至少目前是我觉得我用得不太爽的地方:

  1. 代码不能滚动,被强制折行。 作为一个程序员,肯定关注了很多技术博客,难免会有代码在文章中,自动折行的代码看起来非常难受,更别说是小屏幕上了。
  2. 表格也没有边框,不能滚动。 复杂内容的表格显示简直一团糟。

用CSS很简单就能控制的设置,但是就是没有自定义。

没有评论 页首

放弃使用霞鹜文楷字体了

因为看起来特别舒服的原因使用了霞鹜文楷一年多?但是最近决定放弃,几个原因:

  1. 粗体显示很普通,不明显;
  2. 和英文字体显示起来不匀称;
  3. 字体太大,加载慢。
没有评论 页首

周报

Maple Mono 字体

新发布的一款看起来很漂亮的等宽字体,中英文严格 2:1. 其它特性:无限字重、智能连字等。

可惜我不怎么用斜体,它的斜体还是很好看的。

🔨 HammerSpoon

一款可以用 Lua 来编写的脚本引擎,用于控制 MacOS。

没有评论 页首

回到深圳了,看了下时光机,发现已经离开了近半年……

截屏2025-03-18 20.21.35.avif

没有评论 页首

以前上班时觉得 #GraphViz 好复杂、好麻烦,不想学。但是没想到被人编译成 #WASM 后,我 50 行代码1就集成到博客程序中了,看起来有必要学一下了。另外:#WASI 真是超级好的东西!

1
2
3
4
5
6
```dot
digraph {
  rankdir=LR;
  GraphViz -> 陪她去流浪;
}
```
GraphViz GraphViz 陪她去流浪 陪她去流浪 GraphViz->陪她去流浪
没有评论 页首

一直搞不清楚 “Restart” 和 “Reboot” 有什么区别,反正我就是 sudo reboot 一把梭:

┌─────────────────┤ Pending kernel upgrade ├──────────────────┐
│                                                             │
│ Newer kernel available                                      │
│                                                             │
│ The currently running kernel version is 5.15.0-89-generic   │
│ which is not the expected kernel version 5.15.0-134-generic.│
│                                                             │
│ Restarting the system to load the new kernel will not be    │
│ handled automatically, so you should consider rebooting.    │
│                                                             │
│                            <Ok>                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘
┌──────────────┤ Outdated processor microcode ├───────────────┐
│                                                             │
│ Processor microcode update                                  │
│                                                             │
│ The currently running processor microcode revision is       │
│ 0x00f8 which is not the expected microcode revision 0x00fe. │
│                                                             │
│ Restarting the system to load the new processor microcode   │
│ will not be handled automatically, so you should consider   │
│ rebooting.                                                  │
│                                                             │
│                           <Ok>                              │
│                                                             │
└─────────────────────────────────────────────────────────────┘
没有评论 页首

所以 JS 全称的标准写法应该是:JavaScript ? [狗头]

截屏2025-03-15 03.26.03.avif

没有评论 页首

零星几行代码给博客增加了 #Pikchr 绘图支持1。我是从 SQLite 的官方网站知道它的,觉得画得很漂亮。于是就增加了支持,不到 80 行代码。

box box (with rounded corners) circle ellipse oval (tall & thin) oval cylinder file dot lines arrows splines Examples Of Pikchr Objects box box (with rounded corners) circle ellipse oval (tall & thin) oval cylinder file dot lines arrows splines Examples Of Pikchr Objects
2025-3-19 00:16:06
没有评论 页首

一年两箱油终于准备出门了

远程启动记录

为了防止启动小电瓶亏电,不定期启动一下1

title: 给车充电
dates:
  start: 2025-04-14
remind:
  every: [1w]

但是该车并不能看到电瓶的当前电量/电压🔋,只能看到动力电池⚡️电量。所以,只能盲目开个10分钟/20分钟空调,以期待其能给小电瓶充充电。

注意

前面有两次充电记录没记录。

注意

五月到七月之间爸爸回过家,手动充过电,暂时没记录。

📅日期动力电池电量🔋剩余续航里程🧭
2025-04-1492%388km
2025-04-2291%369km
2025-05-0188%372km
2025-05-1587%356km
2025-07-0297%407km
2025-07-0797%398km
2025-07-1494%395km
2025-08-0486%365km
2025-08-1185%357km
2025-08-2579%333km
2025-09-0177%325km
2025-09-1276%319km
2025-09-2374%310km
2025-10-1369%278km
2025-10-2765%274km
2025-11-0364%264km
2025-11-1160%254km
2025-11-1757%240km
2025-11-2454%227km
2025-12-0151%213km
2025-12-0848%201km
2025-12-1544%186km
2025-12-2239%163km
2026-01-0433%121km
2026-01-1327%113km
2026-01-2120%84km
2026-01-2613%55km

2026-02-01 找亲戚把电充满了。


  1. 讨厌😠比亚迪没有开放 API,要是能像特斯拉那样开放、然后有个 TeslaMate 多好,我就不用手动再整理、记录📝这些玩意儿了。再给我一次机会,我一定买特斯拉而不是比亚迪。 ^

没有评论 页首

摄影器材➕2,拍出好作品了嘛?还没有呢……

2025-4-26 08:49:06

开箱视频:

2条评论 页首

Cloudflare 果然是活菩萨,出口带宽完全免费🆓!

真零出口费用!这要放在国内,厂家要死光吧?

前 10GB 存储免费!

马上就动手用起来!

相关链接

2025-4-25 13:16:00

这玩意儿可用性也太低了😅😅😅,一会儿 500,一会儿 502. 还好不是主力。

1条评论 页首

爆改了一晚上代码,把博客的文章资源文件系统用 SQLite3 数据库实现了(即把原来在磁盘的文件丢进数据库里面了),几千个文件,数据库最终几百兆。没有缓存,感觉速度还行(并发读,极少写)。

虽然其它数据库几乎都不推荐把太大的内容丢字段里面,会比较严重地影响性能。但是 SQLite 从多方了解到是可以的且是官方比较推荐的做法(有很多相关的 API 可用,并且官方说一些基准测试下使用 SQLite 读写文件比直接操作文件系统还快 30%+,离谱)。

所以,我就动手重构了……

另外一个优点是,现在博客正常运行只需要3️⃣个文件了:

  1. 配置文件 内容极少,大部分可有可无
  2. 文章数据库 保存文章、评论、用户系统等主要内容
  3. 文件数据库 用于保存文章/评论的附件,比如图片等

这样一来维护和备份就更加方便了。

上线体验了几分钟,感觉没有明显的速度变化。

继续观察👀。

没有评论 页首

一年一度的大爷大妈热爱的环节又到了[doge]

IMG_0058.avif

没有评论 页首

显然,我的手机还是熬不到今年新品发布会。

为了去迎接 npy 的到来,太开心,换干净的裤子👖,结果手机从裤兜倒出来砸在地上,一股子玻璃破碎的声音,可惜了我才换4️⃣个月的屏幕💔:

屏幕下面一部分几乎无法正常使用了,上面倒是完全无问题。这我倒是很佩服苹果手机的质量,坏成这样了还能使用。

在地图上随便找了一家县城的手机维修店,店主向供货商咨询了两分钟后给我开了两个价:

  1. 有 100/200 多的非官方屏
  2. 也有 400 多的官方拆解屏

为了保持手感,最终选择了官方拆解屏,虽然对于一个用了近7️⃣年的手机来说略贵,但还是忍痛换下了。不过,效果很好,旧屏很新,手感几乎无异。

心想,要是再坏,我就换 100 块的屏幕了,到时候坏了随便换。

没有评论 页首

关于日历、生日和纪念日的几个问题

如果今天是1月31号,约定一个月后的今天为期。那么一个月的今天该是几号呢?

狗屁通的回答:

如果今天是 1 月 31 号,一个月后的“今天”通常指 同一天的下一个月,但如果下个月没有这一天,就取该月的最后一天。
	•	2 月通常只有 28 天(闰年 29 天),所以 2 月没有 31 号。
	•	因此,一个月后的今天应该是 2 月的最后一天:
	•	平年(28 天)→ 2 月 28 日
	•	闰年(29 天)→ 2 月 29 日

例如:
	•	2025 年 1 月 31 日 → 2025 年 2 月 28 日(平年)
	•	2024 年 1 月 31 日 → 2024 年 2 月 29 日(闰年)

如果你是按照 30 天计算一个月,那会是 3 月 2 日,但通常自然语言的“一个月后”是按日历月计算。

如果某人生日是 2.29,他如何过生日?

狗屁通的回答:

如果某人的生日是 2 月 29 日,但遇到 平年(没有 2 月 29 日) 时,他通常有以下几种过生日的方式:

1. 2 月 28 日过生日(最常见)
	•	逻辑:2 月 29 日的“前一天”是 2 月 28 日,因此许多人选择在 2 月 28 日庆祝。
	•	例如:2001、2005、2023 年等平年,很多 2.29 的人会在 2.28 庆祝。

2. 3 月 1 日过生日
	•	逻辑:2 月 29 日的“次日”是 3 月 1 日,因此有些人选择这天庆祝。
	•	例如:如果出生证明上写的是“满 X 岁”,那通常到 3 月 1 日才真正“满年”。

3. 只有闰年才正式庆祝(4 年一次)
	•	逻辑:严格按照 2 月 29 日,只在闰年庆祝大生日,平年时就象征性地选一天或者干脆不办。
	•	例如:有人会在 2024 年大办生日,之后等到 2028 年再正式庆祝一次。

4. 根据心情选择
	•	一些人会根据情况随意选择 2.28 或 3.1,甚至直接“生日周”庆祝。
没有评论 页首

以前用的充电桩都是非常粗的那种,今天用的理想很细、但竟然也可以达到 60kW 的功率。看起来理想技术还是不错的。

2条评论 页首

一年半,4 万公里,多不多?

没有评论 页首

逗狗咬,讨人嫌!

没有评论 页首

#越南 买当地电话卡的时候,被告知其 SIM 卡不支持“个人热点(Hot Spot)”功能。似信非信买了一张,果然在 iPhone 上无法开启 #个人热点(表现为:根本没有这个功能/选项)。

我一度非常疑惑,从我了解的技术上来说,运营商提供的 SIM 卡没有任何能限制个人热点无法使用的可能,因为这个功能是纯手机网络栈(软件层面)提供的能力,与网络硬件、甚至是接入层(SIM)无任何关联。

我更愿意认为这是运营商的垄断行为迫使 iPhone 遵守合规而不允许使用,也即:纯政策行为。

查了一下 iPhone 官方的运营商网络支持情况,越南电信(Viettel)是支持个人热点的,只是“使用个人热点和解锁功能可能会产生额外费用或需要满足额外要求。请联系运营商以了解更多信息。”。

神奇的现象:我发现我自己没插越南手机卡的 iPhone 手机上也无法开启热点(无此选项)。

所以有没有大佬了解相关知识?


相关问题:

2条评论 页首