<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>车东[Blog^2]</title>
      <link>https://www.chedong.com/blog/</link>
      <description>良好引用，良好结构，良好导航 Well referenced and well organized, with easy navigation</description>
      <language>zh-cn</language>
      <copyright>Copyright 2026</copyright>
      <lastBuildDate>Sun, 15 Feb 2026 15:20:58 +0800</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>openclaw配置飞书 channel 机器人通道 多账号</title>
         <description><![CDATA[<p>1. 创建飞书机器人：访问飞书开放平台 <a href="https://open.feishu.cn">https://open.feishu.cn</a><br />
  • 创建企业自建应用 创建版本号1.0.1<br />
  • 获取 App ID 和 App Secret<br />
<blockquote>    cli_##############<br />
    #####################</blockquote><br />
2. 配置 OpenClaw：添加飞书插件<br />
  • 在 OpenClaw 配置中添加飞书通道 通过<blockquote>openclaw channels add</blockquote> 完成，一个openclaw可以配置连接多个飞书账号：<br />
<blockquote> "feishu": {<br />
         // 全局默认设置（可被单账号覆盖）<br />
         "enabled": true,<br />
         "domain": "feishu", // 或 "lark"</p>

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

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

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

<p>Auth providers (OAuth + API keys):<br />
- google-gemini-cli:chedong@gmail.com (oauth)<br />
- google:default (api_key)<br />
- minimax:default (api_key)<br />
- qwen-portal:default (oauth)<br />
- moonshot:default (api_key)<br />
- minimax-portal:default (oauth)<br />
- minimax-cn:default (api_key)</p>]]></description>
         <link>http://www.chedong.com/blog/archives/001512.html</link>
         <guid>http://www.chedong.com/blog/archives/001512.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">应用安装|AppInstall</category>
        
        
         <pubDate>Sun, 15 Feb 2026 15:20:58 +0800</pubDate>
      </item>
            <item>
         <title>使用Opencore patcher升级老款Macbook: Hacintosh</title>
         <description><![CDATA[<p><a href="https://github.com/dortania/Opencore-Legacy-Patcher/releases">最新版本的Opencore Patcher下载</a>，目前用的是2.4.1 大约700M的安装包。</p>

<p>下载安装后：会有这样一个界面，按照安装OpenCore ==> 创建USB安装盘 ==> 安装后的驱动更新这几个步骤进行系统升级：<br />
<img src="https://dortania.github.io/OpenCore-Legacy-Patcher/assets/img/OCLP-GUI-Main-Menu.40fc1dad.png" style="width: 50%; height: 50%;"></p>

<p></p>

<p>安装主要以下几个步骤：</p>]]></description>
         <link>http://www.chedong.com/blog/archives/001511.html</link>
         <guid>http://www.chedong.com/blog/archives/001511.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">桌面应用|Desktop</category>
        
        
         <pubDate>Fri, 09 Jan 2026 15:52:55 +0800</pubDate>
      </item>
            <item>
         <title>迁移SF上的项目：从cvs到git  通过cvs-fast-export</title>
         <description><![CDATA[<p>根据SF官方文档的介绍：<br />
<a href="https://sourceforge.net/p/forge/documentation/CVS/">https://sourceforge.net/p/forge/documentation/CVS/</a><br />
把CVS项目转换到git需要用cvs2svn项目中的cvs2git，但实际上这个需要Python2 而自己的MacBook上已经都是python3了： <br />
会遇到错误信息：<br />
<blockquote>brew install cvs2svn<br />
Warning: No available formula with the name "cvs2svn".<br />
==> Searching for similarly named formulae and casks...<br />
Error: No formulae or casks found for cvs2svn.</blockquote></p>

<blockquote>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

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

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

</blockquote>
好在找到了<a href="https://gitlab.com/esr/cvs-fast-export">cvs-fast-export项目</a>，用Claude重新生成了迁移脚本：
]]></description>
         <link>http://www.chedong.com/blog/archives/001508.html</link>
         <guid>http://www.chedong.com/blog/archives/001508.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">虚拟主机|Web Hosting</category>
        
        
         <pubDate>Wed, 07 Jan 2026 14:19:58 +0800</pubDate>
      </item>
            <item>
         <title>Movable Type 3.3 字符集乱码故障修复记录：</title>
         <description><![CDATA[<h2>一、故障背景</h2>
<p>站点运行于 <strong>Movable Type 3.3</strong>，历史跨度较长（十年以上）。
在升级服务器环境（Perl 5.3 + 新版 MySQL / MariaDB）后，发现：</p>
<ul>
  <li>文章标题、分类、评论、TrackBack 出现乱码（如：å®‰è£…ç¬”è®°）</li>
  <li>数据库表字符集显示为 utf8 / utf8mb3，但内容明显异常</li>
  <li>后台管理界面：界面菜单正常，但博客各种内容部分都受中文乱码影响</li>
</ul>

<h2>二、问题本质分析（核心结论）</h2>
<p>这是一个<strong>经典的历史字符集问题</strong>：</p>
<ul>
  <li>早期 MT 3.x + MySQL 常以 <code>latin1</code> 方式写入数据</li>
  <li>实际内容是 UTF-8（甚至混有 GBK / GB2312）</li>
  <li>后期 MySQL / Perl 按 UTF-8 读取，导致“UTF-8 被当 latin1 再显示”</li>
</ul>
<p><strong>修复原则：</strong></p>
<ul>
  <li>不修改程序逻辑：尝试修改mt-config.cgi中配置增加<pre>DBIParams mysql_enable_utf8=0</pre>是没有用的，改用ObjectDriver DBI::MariaDB 但Movable Type 3.3根本不支持MariaDB驱动。
<pre>Got an error: Unsupported driver MT::ObjectDriver::DBI::MariaDB: Can't locate MT/ObjectDriver/DBI/MariaDB.pm in @INC (you may need to install the MT::ObjectDriver::DBI::MariaDB module) (@INC contains: /home/path/to/cgi-bin/mt/extlib lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at (eval 8) line 1. BEGIN failed--compilation aborted at (eval 8) line 1.
</pre>

<p></li><br />
  <li>不整体强制转换数据库字符集</li><br />
  <li>仅针对“人类可读字段”做字节级修复</li><br />
<li>修复前使用mysqldump或者phpmyadmin的工具备份数据库：mysqldump database_of_mt  > mt_entry.bak.sql</li></p>

</ul>

<p></p>

<h2>四、通用修复方案（核心 SQL 模式）</h2>
<p><strong>统一采用以下安全转换模式：</strong></p>
<pre>
CONVERT(
  CAST(CONVERT(column_name USING latin1) AS BINARY)
  USING utf8mb4
)
</pre>
<p>说明：</p>
<ul>
  <li>latin1：还原历史错误解码</li>
  <li>BINARY：保留原始字节</li>
  <li>utf8mb4：以现代 UTF-8 重新解释</li>
</ul>

<h2>五、各主要数据表修复脚本</h2>

<h3>1. mt_entry（文章）</h3>
<pre>
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);
</pre>

<h3>2. mt_comment（评论）</h3>
<pre>
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);
</pre>

<h3>3. mt_category （分类目录） / mt_tag （标签）</h3>
<pre>
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);

<p>UPDATE mt_tag SET<br />
  tag_name = CONVERT(CAST(CONVERT(tag_name USING latin1) AS BINARY) USING utf8mb4);<br />
</pre></p>

<h3>4. mt_template（模板）</h3>
<pre>
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);
</pre>

<h3>5. mt_tbping（TrackBack ping）</h3>
<pre>
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);
</pre>

<h3>6. mt_blog（博客信息）</h3>
<pre>
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);
</pre>

<h3>7. mt_author（作者）</h3>
<p><strong>仅修以下字段，严禁修改密码 / token 字段：</strong></p>
<pre>
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);
</pre>

<h2>六、验证与验收</h2>
<h3>1. 乱码扫描</h3>
<pre>
SELECT entry_id FROM mt_entry
WHERE entry_title REGEXP '[åæçéï]';
</pre>
<p>返回 0 行表示修复完成。</p>

<h3>2. 随机抽样</h3>
<pre>
SELECT entry_id, entry_title FROM mt_entry
ORDER BY RAND() LIMIT 10;
</pre>]]></description>
         <link>http://www.chedong.com/blog/archives/001507.html</link>
         <guid>http://www.chedong.com/blog/archives/001507.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">MovableType|MT</category>
        
        
         <pubDate>Tue, 16 Dec 2025 11:59:14 +0800</pubDate>
      </item>
            <item>
         <title>几种Wiki文档系统比较：Teambition thoughts 语雀 Notion GitHubWiki Confluence</title>
         <description><![CDATA[<p><a href="https://www.atlassian.com/zh/software/confluence">Confluence</a>已经不是一个非常好的wiki文档模式了，多个人同时写一篇wiki已然是非常容易产生冲突。而<a href="https://thoughts.teambition.com/site/case">Teambition thoughts</a>这样的工具又和石墨没什么区别，而且最重要的文档和文档之间很容易变成孤岛。</p>

<p>相对来说： <a href="https://www.yuque.com/yuque/help/cpeo0y">语雀</a>的效果就不错：结合目录管理和协同的文档，表格管理等，而且还支持从confluence备份整体导入。 </p>

<p><a href="https://www.notion.so/work">Notion</a> 估计是商业组合软件里面模板做得最好的。</p>]]></description>
         <link>http://www.chedong.com/blog/archives/001502.html</link>
         <guid>http://www.chedong.com/blog/archives/001502.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">桌面应用|Desktop</category>
        
        
         <pubDate>Sun, 08 Mar 2020 23:35:23 +0800</pubDate>
      </item>
      
   </channel>
</rss>
