一个没有常识、活在自己世界中的中二病人(话痨)的自留地。
该频道不专注于 Daily 或 News,而是一个记录我当前关注和思考内容的地方。
1. 随机事项:每月为自己安排一些有趣的活动。(大概率🐦🤣)
2. 同步内容:我会收集在其他平台上发布的内容。
3. 私人笔记:没经大脑的学习笔记以及一些个人随想。
4. ACG 内容:浓度高的部份还是挪到 另外一个频道 @tomoko_acg。
5. 内容转发:在这个频道上转发的内容并不必然代表我个人的立场。
该频道不专注于 Daily 或 News,而是一个记录我当前关注和思考内容的地方。
1. 随机事项:每月为自己安排一些有趣的活动。(大概率🐦🤣)
2. 同步内容:我会收集在其他平台上发布的内容。
3. 私人笔记:没经大脑的学习笔记以及一些个人随想。
4. ACG 内容:浓度高的部份还是挪到 另外一个频道 @tomoko_acg。
5. 内容转发:在这个频道上转发的内容并不必然代表我个人的立场。
音乐文件元数据速记
核心标识
- Title/TIT2/title: 歌名。
- Artist/TPE1/artist: 主表演者。
- Album/TALB/album: 所属专辑名称。
- Album Artist/TPE2/albumartist: 专辑署名艺人(合辑、合作时用)。
- Composer/TCOM/composer: 作曲者。
- Genre/TCON/genre: 风格标签(流派,通常是文本)。
---
曲序 / 碟序
- Track number/TRCK/tracknumber: 当前曲目的序号。常见格式 5 或 5/12。
- Disc number/TPOS/discnumber: 多碟专辑的碟号。常见格式 2 或 2/3。
- Track total/Disc total: 总曲数/总碟数,有些播放器才显示。
---
时间与发行
- Date/TDRC/date: 发行日期,常用 YYYY-MM-DD 或 YYYY。
- Year/TYER(旧 ID3v2.3): 仅年份。
- Publisher/COMM/comment: 发行方或备注,常用自定义文本存放公司信息。
---
封面与媒体信息
- APIC(ID3)/METADATA_BLOCK_PICTURE(FLAC): 内嵌封面。封面类型 3 表示 front cover。
- 嵌图常用 JPEG/PNG,分辨率适中可兼顾体积和兼容性。
---
歌词相关
- USLT/lyrics: 未同步歌词(纯文本)。
- SYLT: 同步歌词(带时间轴,兼容性较差)。
- 自定义标签可放翻译歌词,例如 TXXX:LYRIC_TRANSLATION(ID3)或 lyrics-translation(FLAC Vorbis Comment)。
---
别名与多语言
- TXXX:ALIAS(自定义文本)或 alias(FLAC): 歌名/艺人别名、中文名等。
- 多语言通常通过多个独立 frame(ID3)或多个同名 tag(Vorbis)实现。
---
格式差异速览
- MP3:ID3v2.3/2.4 常见;帧如 TIT2、TPE1、APIC。
- FLAC:Vorbis Comment 是键值文本(如 title=...),封面单独存 METADATA_BLOCK_PICTURE。
- MP4/M4A:使用 atom,如 ©nam(title)、©ART(artist)、trkn(track)、disk(disc)、covr(cover)。
---
整理命名的小贴士
- 单碟:文件名可用 Track - Title。
- 多碟:用 Disc-Track Title(如 2-03 Song.flac),并确保 Disc number/Track number 与文件名一致。
- 统一日期格式、封面大小,避免播放器解析差异。
#TIL
核心标识
- Title/TIT2/title: 歌名。
- Artist/TPE1/artist: 主表演者。
- Album/TALB/album: 所属专辑名称。
- Album Artist/TPE2/albumartist: 专辑署名艺人(合辑、合作时用)。
- Composer/TCOM/composer: 作曲者。
- Genre/TCON/genre: 风格标签(流派,通常是文本)。
---
曲序 / 碟序
- Track number/TRCK/tracknumber: 当前曲目的序号。常见格式 5 或 5/12。
- Disc number/TPOS/discnumber: 多碟专辑的碟号。常见格式 2 或 2/3。
- Track total/Disc total: 总曲数/总碟数,有些播放器才显示。
---
时间与发行
- Date/TDRC/date: 发行日期,常用 YYYY-MM-DD 或 YYYY。
- Year/TYER(旧 ID3v2.3): 仅年份。
- Publisher/COMM/comment: 发行方或备注,常用自定义文本存放公司信息。
---
封面与媒体信息
- APIC(ID3)/METADATA_BLOCK_PICTURE(FLAC): 内嵌封面。封面类型 3 表示 front cover。
- 嵌图常用 JPEG/PNG,分辨率适中可兼顾体积和兼容性。
---
歌词相关
- USLT/lyrics: 未同步歌词(纯文本)。
- SYLT: 同步歌词(带时间轴,兼容性较差)。
- 自定义标签可放翻译歌词,例如 TXXX:LYRIC_TRANSLATION(ID3)或 lyrics-translation(FLAC Vorbis Comment)。
---
别名与多语言
- TXXX:ALIAS(自定义文本)或 alias(FLAC): 歌名/艺人别名、中文名等。
- 多语言通常通过多个独立 frame(ID3)或多个同名 tag(Vorbis)实现。
---
格式差异速览
- MP3:ID3v2.3/2.4 常见;帧如 TIT2、TPE1、APIC。
- FLAC:Vorbis Comment 是键值文本(如 title=...),封面单独存 METADATA_BLOCK_PICTURE。
- MP4/M4A:使用 atom,如 ©nam(title)、©ART(artist)、trkn(track)、disk(disc)、covr(cover)。
---
整理命名的小贴士
- 单碟:文件名可用 Track - Title。
- 多碟:用 Disc-Track Title(如 2-03 Song.flac),并确保 Disc number/Track number 与文件名一致。
- 统一日期格式、封面大小,避免播放器解析差异。
#TIL
🔖 美国施加超预期关税,会影响到中国游戏产业吗? - 触乐 #pinboard #game #til
https://www.chuapp.com/article/290562.html
在多边贸易体制下,关于数字产品的关税适用有一项重要的国际共识,即世界贸易组织(WTO)的《电子商务暂停令》(E-commerce Moratorium)。自1998年起,WTO成员国一致同意暂时不对数字贸易(或称“电子传输”)加收关税。所谓“电子传输”并无严格定义,但实质上指通过互联网跨境进行的商业交易,包括软件、数字电影、音乐、电子游戏等各种数字化商品和服务。当时,数字贸易刚刚起步,根据这一制度,各国禁止对跨境发生的数字产品交易征收进口关税。此后在每2年一次的历届部长级会议上,WTO成员都同意延续该暂缓令。
https://www.chuapp.com/article/290562.html
从零开始使用 Hugo 在 Cloudflare Pages 上搭建 TIL 博客
https://til.niracler.com/post/2025-03-13-build-til-blog-by-hugo/
#touch_fish #blog #til
OpenWrt 最初是为嵌入式设备开发的路由器系统,而不是为 x86 平台设计。这导致它采用了与传统 x86 系统完全不同的分发方式:
- 没有安装程序(installer),只能通过直接写入镜像(dd image)的方式安装。
- 默认只有约 120MB 的根分区大小,需要用户根据四种镜像的情况进行扩容。
https://forum.openwrt.org/t/howto-resizing-root-partition-on-x86-march-2023-edition/153398
#TIL #WTF
- 没有安装程序(installer),只能通过直接写入镜像(dd image)的方式安装。
- 默认只有约 120MB 的根分区大小,需要用户根据四种镜像的情况进行扩容。
虽然这种设计对新用户不够友好,但它反映了 OpenWrt 的嵌入式系统本质和注重安全性的设计理念。
https://forum.openwrt.org/t/howto-resizing-root-partition-on-x86-march-2023-edition/153398
#TIL #WTF
Node.js 纪录片感想(小抄)
1.
Ryan Dahl 创建 Node.js
当时流行的 Web 框架(如 Ruby on Rails)在处理高并发时效率不够高,特别是在处理 I/O 密集型任务时性能显得不足。虽然这些框架也支持异步 I/O,但用起来很别扭。
他也尝试过其他语言(如 Python、Lua、Haskell),但发现这些语言的运行时已经沉淀了多年,深受传统同步编程模型的限制,很难进行根本性的变革。
于是 Boy Meet Girl,算是终于让他看见了 Javascript 这个本身就在浏览器中天天需要处理异步场景的语言。(JavaScript 本身就依赖事件循环和异步操作来处理用户交互与网络请求。)
关键点是 easily build optimal server 以及 forcing them to only use async IO。也是 Node.js 的核心优势。
2.
Isaac Schlueter 加入 & npm 的诞生
这点倒是没什么好说的,pip 比它要早一点,08年 vs 10年。
想起我大二那年,被 pacman 什么都能下载给震撼住了。真的是,生在这种什么都有的年代真是被惯坏了。不过即使我在那个年代,也不会造出这样的轮子吧
3.
Joyent 买下 Node.js
这一阶段就是真的让 Node.js 成为一个企业级产品了,毕竟有公司去资助一批工程师去全职开发。
也是在这个阶段支持了 Windows,让用户量大大增加了。(通过实现 LibUV 库来处理 Windows 特有的 I/O 操作和事件循环,兼容了 linux 和 win 的操作)
4.
Ryan 退出 & 社区分裂
Ryan 在 Windows 版本出来之后就腻了,看来是那种喜欢写新功能而不想全天在修 BUG 的人?于是负责人从 Ryan -> Issac -> TJ Fontaine。
至于创始人离开之后,社区的贡献者自然就觉得给 Joyent 打白工非常无趣,于是就去 fork 了 io.js(确实,虽然 MySQL 是开源的,但谁会乐意无偿贡献代码给 Oracle 呢?)
5.
基金会成立
最后是双方妥协,Joyent 将 Node.js 的管理权交给了基金会, io.js 和 Node.js 最终合并。可喜可贺,可喜可贺。
不过这也是社区力量占主导才能强迫公司妥协,不然就变成现在的 MariaDB 了?
---
(仅仅是笔记,不一定对,需要勘误)
https://www.youtube.com/watch?v=LB8KwiiUGy0
#TIL #nodejs
1.
Ryan Dahl 创建 Node.js
当时流行的 Web 框架(如 Ruby on Rails)在处理高并发时效率不够高,特别是在处理 I/O 密集型任务时性能显得不足。虽然这些框架也支持异步 I/O,但用起来很别扭。
他也尝试过其他语言(如 Python、Lua、Haskell),但发现这些语言的运行时已经沉淀了多年,深受传统同步编程模型的限制,很难进行根本性的变革。
于是 Boy Meet Girl,算是终于让他看见了 Javascript 这个本身就在浏览器中天天需要处理异步场景的语言。(JavaScript 本身就依赖事件循环和异步操作来处理用户交互与网络请求。)
关键点是 easily build optimal server 以及 forcing them to only use async IO。也是 Node.js 的核心优势。
2.
Isaac Schlueter 加入 & npm 的诞生
这点倒是没什么好说的,pip 比它要早一点,08年 vs 10年。
想起我大二那年,被 pacman 什么都能下载给震撼住了。真的是,生在这种什么都有的年代真是被惯坏了。不过即使我在那个年代,也不会造出这样的轮子吧
3.
Joyent 买下 Node.js
这一阶段就是真的让 Node.js 成为一个企业级产品了,毕竟有公司去资助一批工程师去全职开发。
也是在这个阶段支持了 Windows,让用户量大大增加了。(通过实现 LibUV 库来处理 Windows 特有的 I/O 操作和事件循环,兼容了 linux 和 win 的操作)
4.
Ryan 退出 & 社区分裂
Ryan 在 Windows 版本出来之后就腻了,看来是那种喜欢写新功能而不想全天在修 BUG 的人?于是负责人从 Ryan -> Issac -> TJ Fontaine。
至于创始人离开之后,社区的贡献者自然就觉得给 Joyent 打白工非常无趣,于是就去 fork 了 io.js(确实,虽然 MySQL 是开源的,但谁会乐意无偿贡献代码给 Oracle 呢?)
5.
基金会成立
最后是双方妥协,Joyent 将 Node.js 的管理权交给了基金会, io.js 和 Node.js 最终合并。可喜可贺,可喜可贺。
不过这也是社区力量占主导才能强迫公司妥协,不然就变成现在的 MariaDB 了?
---
(仅仅是笔记,不一定对,需要勘误)
https://www.youtube.com/watch?v=LB8KwiiUGy0
#TIL #nodejs
这几天被 JS 的测试毒打了,几个 testcase 就能写一天,一开始是不知道如何 mock 对象的方法,后面是卡在了不知道如何用 vscode 来运行测试代码以及打断点。例如:
- 使用 sinon.stub 将对象的指定方法替换为自定义的函数。在运行时修改对象的方法指向,从而控制其行为
- vscode 的 launch 配置
此前开发主打一个狂野和粗暴。vscode 仅作编辑器、测试 API 用 curl 、dev 环境是 1:1 的线上环境、断点全靠自己 print 等等…… 而对于工作上的用到的技术,都是看简中圈子的 N 手资料。对于大而全的官方文档,总是巴不得能逃避就逃避,完全没有那种静下心来通读一遍的那种闲情。
这些官方文档粗略看一遍,很多很蠢的问题都能得到解答了。并且常常会有意想不到的惊喜,一些日常很难考虑到,但别人作为专家,方案可能就直接摆在这里了。
现在学还不晚吧? 要开始收集各种终极文档了。不过我也不敢说我能在这个周目解决这个问题。
#城市化进程 #TIL #Nodejs
- 使用 sinon.stub 将对象的指定方法替换为自定义的函数。在运行时修改对象的方法指向,从而控制其行为
- vscode 的 launch 配置
此前开发主打一个狂野和粗暴。vscode 仅作编辑器、测试 API 用 curl 、dev 环境是 1:1 的线上环境、断点全靠自己 print 等等…… 而对于工作上的用到的技术,都是看简中圈子的 N 手资料。对于大而全的官方文档,总是巴不得能逃避就逃避,完全没有那种静下心来通读一遍的那种闲情。
这些官方文档粗略看一遍,很多很蠢的问题都能得到解答了。并且常常会有意想不到的惊喜,一些日常很难考虑到,但别人作为专家,方案可能就直接摆在这里了。
现在学还不晚吧? 要开始收集各种终极文档了。不过我也不敢说我能在这个周目解决这个问题。
#城市化进程 #TIL #Nodejs
Parameters and Arguments
Parameters 和 Arguments 这两个单词翻译过来都是参数,我一直都挺疑惑他们之间有什么区别。细看了一下,原来就是形参和实参,函数定义处的参数为形参,而函数被调用的地方叫实参。
还是多看看英文文档,有些不必要的疑惑就能更早的消除了。不然也不会到今天才将这两组词语关联起来。
Difference Between Parameters and Arguments - GeeksforGeeks
#til
Parameters 和 Arguments 这两个单词翻译过来都是参数,我一直都挺疑惑他们之间有什么区别。细看了一下,原来就是形参和实参,函数定义处的参数为形参,而函数被调用的地方叫实参。
# Function definition with parameters
def add(x, y): # x and y are parameters
return x + y
# Calling the function with arguments
result = add(5, 3) # 5 and 3 are arguments
# Display the result
print(f"Result of adding 5 and 3 is: {result}")还是多看看英文文档,有些不必要的疑惑就能更早的消除了。不然也不会到今天才将这两组词语关联起来。
Difference Between Parameters and Arguments - GeeksforGeeks
#til
Expire Data from Collections by Setting TTL - MongoDB Manual v7.0
type Pick<T, K extends keyof T> = {
[P in K]: T[P];
};
还是太嫩了,补课补课
from #TIL #typescript
🔖 在 HTTPS 端口使用 SSH - GitHub 文档 #pinboard #ssh #github #TIL
之前使用 clash 以及 surge 的增强模式时,git 总是推不上去。这才知道原来是梯子厂商限制了 22 端口的问题,要用 SSH over HTTPS
https://docs.github.com/zh/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
之前使用 clash 以及 surge 的增强模式时,git 总是推不上去。这才知道原来是梯子厂商限制了 22 端口的问题,要用 SSH over HTTPS
https://docs.github.com/zh/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
批量将文件夹中的 webp 文件转换为 jpg 文件
#one_command #til
ls | while read item; do name="${item%.webp}"; magick "$name.webp" "$name.jpg" && rm "$name.webp" ; done
#one_command #til
视频文件包括多条流,特别是两条字幕流(简日双语和繁日双语)。因为剪映可能无法识别这两条字幕流中的所有内容。特别是ASS格式(高级字幕格式)可能包含一些格式控制信息。
解法:
ffmpeg -i input.mkv -map 0:2 output_subtitles.ass
0:2 是要提取的字幕流,可以通过 ffmpeg -i input.mkv 看到
#TIL #one_command
屏幕保护程序
原来屏保一直在动,最初是有它的需求的,而且真的是在保护屏幕。我从最开始就单纯以为只有观赏功能。🐶
🔗 Screensaver - Wikipedia | #TIL
屏幕保护程序是一种电脑软件,旨在在用户不活动时保护显示屏幕,同时也起到个性化和娱乐的作用。最初,它们是为了防止旧式 CRT 显示器长时间显示相同图像而产生磷光残留(即“烧入”效应)。现代显示器已大大减少了烧入问题,因此屏幕保护程序更多地用于隐私保护和个性化。
原来屏保一直在动,最初是有它的需求的,而且真的是在保护屏幕。我从最开始就单纯以为只有观赏功能。🐶
🔗 Screensaver - Wikipedia | #TIL
频道定位(重写了一份,⭕️ 重新转起来)
不专注于 Daily 或 News,而是一个记录我当前关注和思考内容的地方。
1. 随机事项:为了避免无聊,每月为自己安排一些有趣的活动。通过 GitHub Action,在每月的 1 号随机选择当月的活动(20 小时)。这些活动旨在带来乐趣,而非压力,不强求完成。
2. 同步内容:我会收集在其他平台上发布的内容,包括但不限于 #blog #pinboard
3. 私人笔记:没经大脑的学习笔记以及一些个人随想。可以是学习笔记、大胆的理论、或者是日常的碎念。 #TIL #manga #anime #game #暴论 #thinking
4. ACG 内容:浓度高的部份还是挪到 另外一个频道 @tomoko_acg ,偶尔会转发到这里。
5. 内容转发:在这个频道上转发的内容并不必然代表我个人的立场。我转发这些内容的目的是为了激发思考和促进讨论,而非争辩事实,所以不必过分认真对待我的转发。
不专注于 Daily 或 News,而是一个记录我当前关注和思考内容的地方。
1. 随机事项:为了避免无聊,每月为自己安排一些有趣的活动。通过 GitHub Action,在每月的 1 号随机选择当月的活动(20 小时)。这些活动旨在带来乐趣,而非压力,不强求完成。
2. 同步内容:我会收集在其他平台上发布的内容,包括但不限于 #blog #pinboard
3. 私人笔记:没经大脑的学习笔记以及一些个人随想。可以是学习笔记、大胆的理论、或者是日常的碎念。 #TIL #manga #anime #game #暴论 #thinking
4. ACG 内容:浓度高的部份还是挪到 另外一个频道 @tomoko_acg ,偶尔会转发到这里。
5. 内容转发:在这个频道上转发的内容并不必然代表我个人的立场。我转发这些内容的目的是为了激发思考和促进讨论,而非争辩事实,所以不必过分认真对待我的转发。
#TIL 你可以通过 443 端口使用 GitHub 的 SSH 服务
https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port