车东 Che, Dong

[随笔|心得|Blog2] [学习笔记CVS Unicode Lucene...] [站点地图|Site Map] [日志统计|AWStats] [My FlickR]

Sat 14 February, 2026

23:20 openclaw配置飞书 channel 机器人通道 多账号 » 车东[Blog^2]

1. 创建飞书机器人:访问飞书开放平台 https://open.feishu.cn
• 创建企业自建应用 创建版本号1.0.1
• 获取 App ID 和 App Secret

cli_##############
#####################

2. 配置 OpenClaw:添加飞书插件
• 在 OpenClaw 配置中添加飞书通道 通过
openclaw channels add
完成,一个openclaw可以配置连接多个飞书账号:
"feishu": {
// 全局默认设置(可被单账号覆盖)
"enabled": true,
"domain": "feishu", // 或 "lark"

"accounts": {
// 第一个机器人(主账号)
"main": {
"appId": "cli_a1b2c3d4",
"appSecret": "wkEb...123",
"botName": "主助手",
"groupPolicy": "open"
},
// 第二个机器人(例如用于特定测试或部门)
"test_bot": {
"appId": "cli_x9y8z7w6",
"appSecret": "abCd...456",
"botName": "测试号",
"dmPolicy": "allowlist", // 不同的权限策略
"allowFrom": ["ou_..."]
}

然后用openclaw channels list命令:
? OpenClaw 2026.2.14 (c1feda1) — I'm not magic—I'm just extremely persistent with retries and coping strategies.

03:36:47 [plugins] feishu_doc: Registered feishu_doc, feishu_app_scopes
03:36:47 [plugins] feishu_wiki: Registered feishu_wiki tool
03:36:47 [plugins] feishu_drive: Registered feishu_drive tool
Chat channels:
- Telegram default: configured, token=config, enabled
- Feishu test_bot: configured, enabled
- Feishu main: configured, enabled

Auth providers (OAuth + API keys):
- google-gemini-cli:chedong@gmail.com (oauth)
- google:default (api_key)
- minimax:default (api_key)
- qwen-portal:default (oauth)
- moonshot:default (api_key)
- minimax-portal:default (oauth)
- minimax-cn:default (api_key)

Thu 08 January, 2026

23:52 使用Opencore patcher升级老款Macbook: Hacintosh » 车东[Blog^2]

最新版本的Opencore Patcher下载,目前用的是2.4.1 大约700M的安装包。

下载安装后:会有这样一个界面,按照安装OpenCore ==> 创建USB安装盘 ==> 安装后的驱动更新这几个步骤进行系统升级:

安装主要以下几个步骤:

Tue 06 January, 2026

22:19 迁移SF上的项目:从cvs到git 通过cvs-fast-export » 车东[Blog^2]

根据SF官方文档的介绍:
https://sourceforge.net/p/forge/documentation/CVS/
把CVS项目转换到git需要用cvs2svn项目中的cvs2git,但实际上这个需要Python2 而自己的MacBook上已经都是python3了:
会遇到错误信息:

brew install cvs2svn
Warning: No available formula with the name "cvs2svn".
==> Searching for similarly named formulae and casks...
Error: No formulae or casks found for cvs2svn.

install cvs2svn Defaulting to user installation because normal site-packages is not writeable ERROR: Could not find a version that satisfies the requirement cvs2svn (from versions: none) ERROR: No matching distribution found for cvs2svn


错误: cvs2git 无法运行
请检查 Python 3 是否已安装: python3 --version

ERROR: cvs2git requires Python 2, version 2.4 or later; it does not
work with Python 3. You are currently using version 3.14.2.
Please restart cvs2git using a different version of the Python
interpreter. Visit http://www.python.org or consult your local system
administrator if you need help.

好在找到了cvs-fast-export项目,用Claude重新生成了迁移脚本:

Mon 15 December, 2025

19:59 Movable Type 3.3 字符集乱码故障修复记录: » 车东[Blog^2]

一、故障背景

站点运行于 Movable Type 3.3,历史跨度较长(十年以上)。 在升级服务器环境(Perl 5.3 + 新版 MySQL / MariaDB)后,发现:

二、问题本质分析(核心结论)

这是一个经典的历史字符集问题

修复原则:

四、通用修复方案(核心 SQL 模式)

统一采用以下安全转换模式:

CONVERT(
  CAST(CONVERT(column_name USING latin1) AS BINARY)
  USING utf8mb4
)

说明:

五、各主要数据表修复脚本

1. mt_entry(文章)

UPDATE mt_entry SET
  entry_title = CONVERT(CAST(CONVERT(entry_title USING latin1) AS BINARY) USING utf8mb4),
  entry_text = CONVERT(CAST(CONVERT(entry_text USING latin1) AS BINARY) USING utf8mb4),
  entry_text_more = CONVERT(CAST(CONVERT(entry_text_more USING latin1) AS BINARY) USING utf8mb4),
  entry_excerpt = CONVERT(CAST(CONVERT(entry_excerpt USING latin1) AS BINARY) USING utf8mb4),
  entry_keywords = CONVERT(CAST(CONVERT(entry_keywords USING latin1) AS BINARY) USING utf8mb4);

2. mt_comment(评论)

UPDATE mt_comment SET
  comment_author = CONVERT(CAST(CONVERT(comment_author USING latin1) AS BINARY) USING utf8mb4),
  comment_text = CONVERT(CAST(CONVERT(comment_text USING latin1) AS BINARY) USING utf8mb4);

3. mt_category (分类目录) / mt_tag (标签)

UPDATE mt_category SET
  category_label = CONVERT(CAST(CONVERT(category_label USING latin1) AS BINARY) USING utf8mb4),
  category_description = CONVERT(CAST(CONVERT(category_description USING latin1) AS BINARY) USING utf8mb4);

UPDATE mt_tag SET
tag_name = CONVERT(CAST(CONVERT(tag_name USING latin1) AS BINARY) USING utf8mb4);

4. mt_template(模板)

UPDATE mt_template SET
  template_name = CONVERT(CAST(CONVERT(template_name USING latin1) AS BINARY) USING utf8mb4),
  template_text = CONVERT(CAST(CONVERT(template_text USING latin1) AS BINARY) USING utf8mb4);

5. mt_tbping(TrackBack ping)

UPDATE mt_tbping SET
  tbping_blog_name = CONVERT(CAST(CONVERT(tbping_blog_name USING latin1) AS BINARY) USING utf8mb4),
  tbping_title = CONVERT(CAST(CONVERT(tbping_title USING latin1) AS BINARY) USING utf8mb4),
  tbping_excerpt = CONVERT(CAST(CONVERT(tbping_excerpt USING latin1) AS BINARY) USING utf8mb4),
  tbping_junk_log = CONVERT(CAST(CONVERT(tbping_junk_log USING latin1) AS BINARY) USING utf8mb4);

6. mt_blog(博客信息)

UPDATE mt_blog SET
  blog_name = CONVERT(CAST(CONVERT(blog_name USING latin1) AS BINARY) USING utf8mb4),
  blog_description = CONVERT(CAST(CONVERT(blog_description USING latin1) AS BINARY) USING utf8mb4),
  blog_welcome_msg = CONVERT(CAST(CONVERT(blog_welcome_msg USING latin1) AS BINARY) USING utf8mb4);

7. mt_author(作者)

仅修以下字段,严禁修改密码 / token 字段:

UPDATE mt_author SET
  author_name = CONVERT(CAST(CONVERT(author_name USING latin1) AS BINARY) USING utf8mb4),
  author_nickname = CONVERT(CAST(CONVERT(author_nickname USING latin1) AS BINARY) USING utf8mb4),
  author_hint = CONVERT(CAST(CONVERT(author_hint USING latin1) AS BINARY) USING utf8mb4);

六、验证与验收

1. 乱码扫描

SELECT entry_id FROM mt_entry
WHERE entry_title REGEXP '[åæçéï]';

返回 0 行表示修复完成。

2. 随机抽样

SELECT entry_id, entry_title FROM mt_entry
ORDER BY RAND() LIMIT 10;
Search at chedong.com


[友情链接|Links]


[业余爱好|Hobbies]

本网站使用:
死链检查工具
进行死链检查。

知识共享许可协议
本网站作品采用知识共享署名方式共享 4.0 本地化版本许可协议进行许可。

My LinkedIn profile
2026-06-15 07:35