[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"list-\u002Farticles":3},{"items":4,"total":134},[5,23,35,46,55,67,79,91,99,108,117,126],{"id":6,"type":7,"slug":8,"title":9,"date":10,"category":11,"tags":12,"body_markdown":17,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},142,"article","ai-robot-boom-human-society-2026","与AI对谈系列：AI和机器人大爆发会给人类社会带来什么深刻变化","2026-08-04 00:00:00","tech",[13,14,15,16],"AI","机器人","生产力","未来","\n## 前言\n\n昨天和朋友聊天，大家都看到了AI已经给很多行业带来了深刻变化，忍不住聊到，当这些变化持续发生，未来会有什么深刻的变化。\n\n我的判断是：生产力大幅提升，人类工作的必要性逐步减少，最终人的主要功能——生产——消失，机器人干活，人类享受成果。\n\n回家路上又想起来这个话题还可以延伸，好像刚好契合马斯克最近的言论，即货币重要性会下降。于是回来和AI讨论了一会，整个逻辑和我的推演非常一致，因此整理一下以作记录和分享。\n\n这个话题非常具有前瞻性，因此也非常推荐同样具有前瞻性的一本书《未来简史》。这本书已经准确预言了很多事，例如逆全球化和战争的必然发生以及AI的成熟。下文讨论的问题有相当大一部分都包含在这本书中，但作者并没有下文这么乐观，推荐一看。\n\n此外，与AI讨论问题是一件很有趣的事情，后续我也许也会再发更多的话题，和大家分享。\n\n\u003C!-- more -->\n\n## 正文\n\n### 1. AI和机器人高速发展后，生产力会不会大爆发？\n\n会，而且爆发的潜力比以往任何技术革命都更大。\n\n简单说，以前的机器主要替代人的体力（比如蒸汽机、流水线），计算机主要辅助脑力。现在的AI能处理分析、写作、设计、决策等认知工作，机器人又能灵活完成各种体力任务。两者结合，相当于同时把“脑力和体力”都交给机器。结果是：同样的时间、同样的资源，能生产出远超今天的商品和服务，单位成本大幅下降。很多专家认为，这可能带来远高于过去几十年的生产力增长速度。\n\n### 2. 这会导致人类必要劳动力明显减少吗？\n\n会。\n\n当机器能以更低成本、更高效率完成大部分工作时，企业对人类劳动力的需求自然下降。工厂、物流、客服、基础办公、数据分析，甚至部分创意和专业服务，都可能被大幅自动化。很多人可能不再需要每周工作40小时才能维持生活。但这不等于“所有人都永久失业”，而是“必要劳动”减少，工作从“为了生存必须做”逐渐变成“可以选择做”。\n\n### 3. 物质生活条件反而会极大丰富吗？\n\n有很大可能。\n\n生产力大爆发意味着供给大幅增加、成本持续下降。食品、能源、交通、基础住房、医疗检测、教育内容等，都可能变得极其便宜甚至接近免费。就像今天手机里的地图、搜索、音乐几乎不花钱一样，未来很多物质需求也可能进入“不用精打细算”的状态。普通人即使工作减少，物质生活水平仍可能明显高于现在。\n\n### 4. 历史上每一次生产力大爆发都会导致大量失业，但之后会有新职业出现填补空缺。这一次有何不同？\n\n这是最关键的区别之一。\n\n过去确实如此：农业机械化让大量农民失业，但工厂出现了；工厂自动化让工人减少，但服务业和办公室工作增加；计算机普及淘汰了一些文书岗位，但又创造了程序员、网络工程师、数据分析师等新职业。整体就业最终回升，生活水平提高。\n\n这一次可能不同，原因主要有四点：\n\n覆盖面更广：以前技术主要冲击某一类工作（体力或简单脑力），这次同时冲击体力和复杂认知工作，连很多高学历、高技能岗位都可能被替代。\n\n速度可能更快：AI可以快速复制和学习，机器人一旦成熟也能规模化生产，转型时间可能比过去几十年压缩得更短。\n\n机器能自我改进：AI可以参与设计更好的AI和机器人，形成加速循环，而不是像过去那样主要靠人类发明。\n\n新工作可能更难大规模出现：如果机器几乎能做所有“有经济价值”的任务，那么“专门留给人类”的新职业空间会变窄。即使出现新工作，也可能很快再次被AI学会。\n\n因此，这一次更有可能出现“长期必要劳动需求下降”，而不是简单重复“失业→新职业填补”的旧循环。当然，人类仍可能在情感陪伴、高端创意、伦理决策、人际信任等领域保持优势，但这些岗位数量未必能完全消化被替代的劳动力。\n\n### 5. 货币重要性下降的核心逻辑是什么？\n\n货币的本质是“稀缺资源的分配工具”。在资源有限时，人们用货币来交换、计价和储蓄，确保东西不会被随意浪费。\n\n当AI和机器人让绝大多数商品和服务变得极其丰富、成本极低时，很多东西不再需要通过货币来“争夺”。基础生活需求可以近乎免费或极低成本满足，货币就从“活下去的必需品”变成“在丰裕基础上表达偏好的工具”。简单类比：今天的空气和自来水几乎不需要花钱考虑，未来很多商品也可能进入类似状态。\n\n### 6. 从“靠劳动赚钱才能活”到丰裕，具体怎么转变？\n\n现在大多数人必须先工作挣钱，再用钱买生活所需。机器接管生产后，社会创造的财富（盈余）可以更多通过以下方式直接分配给每个人：\n\n1. 全民基本收入或全民高收入；\n2. 让普通人持有AI和机器人相关资产的股份；\n3. 大幅扩张免费或低成本的公共服务（能源、交通、住房、医疗、教育）。\n\n这样，个人生活水平不再主要取决于“你个人挣多少钱”，而是更多取决于整个社会如何分享机器带来的巨大产出。\n\n### 7. 价格和货币会完全消失吗？\n\n不会。\n\n货币和价格体系仍然是高效的信息与激励工具。它们会继续存在，但使用场景会变化：基础物质需求变得很便宜，货币更多用于真正稀缺或个性化的东西，比如独特位置的房子、稀有艺术品、顶级旅行体验、纯人类提供的情感或创意服务等。人们不会再为柴米油盐发愁，但会为“更特别的东西”付钱。\n\n### 8. 哪些东西会继续保持稀缺？\n\n即使物质极大丰富，以下东西仍可能稀缺：\n\n1. 人的注意力和时间；\n2. 独特的地理位置和土地；\n3. 真正原创的人类创意与情感连接；\n4. 某些关键自然资源；\n5. 地位性、炫耀性的商品和服务。\n\n这些领域货币仍会发挥重要作用。\n\n### 9. 实现这种丰裕的主要风险和约束是什么？\n\n技术本身不能自动带来人人共享的好结果。主要风险包括：\n\n分配不均：如果机器创造的财富主要集中在少数资本所有者手中，普通人可能失去工作收入又分不到红利，导致严重不平等。\n\n过渡期阵痛：大规模岗位消失可能带来失业、技能错配和社会动荡，需要强有力的社会保障和再培训。\n\n物理限制：能源、关键矿物、环境承载力等仍会制约“无限生产”。\n\n制度滞后：教育、法律、福利体系如果跟不上技术速度，问题会被放大。\n\n### 10. 最终结果主要由什么决定？\n\n不取决于AI和机器人“会不会出现”，而取决于我们如何使用它们。关键在于：所有权如何分配、是否建立有效的再分配机制、社会如何帮助人们适应、以及我们是否能在物质丰裕后重新找到生活的意义和价值。技术提供了可能性，制度和选择决定最终是“共享的丰裕时代”，还是“少数人更富、多数人更焦虑”的分化社会。\n",null,0,"2026-08-28 04:37:17","published","",{"id":24,"type":7,"slug":25,"title":26,"date":27,"category":28,"tags":29,"body_markdown":34,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},102,"essence-of-life-2026","与AI对谈系列：看透生活的本质，依然热爱生活","2026-07-30 10:00","life",[30,31,32,33],"生活","哲学","本质","意义","\n我们在与人对话的时候常常会听到：这个东西的本质是XX，例如人类的本质是复读机，大语言模型的本质是概率。\n\n我们也常常追问：爱情的本质是什么？工作的本质是什么？人生的本质又是什么？\n\n每一次追问，似乎都能向上找到更\"根本\"的层级——从现象到机制，从机制到物理定律，再到存在本身。例如：爱情的本质是荷尔蒙，而荷尔蒙的本质是进化机制。\n\n这些答案固然正确，但总会觉得有很强的悲观色彩，似乎一切事物最终的本质都走向两件事：一是哲学上的虚无，产生无意义感；二是物理学\u002F宇宙学上的极限，任何事物最终都会消亡，无论是时间尺度还是空间尺度上都微不足道。\n\n既然一切都没有意义，人应该如何活着？\n\n我思考这个问题思考了很多年，最近已经有了比较明确的答案，但因为缺少哲学背景，有些语言不知如何表达。借助AI，可以帮我把这些答案用语言梳理得更清晰，因此诞生此文。文字均为手敲，部分表述取自AI辅助。\n\n\u003C!-- more -->\n\n## 追问本质的作用与误区\n\n在我接触的人群中，很多人都喜欢追问事物的本质。\n\n在社交平台上，也经常会出现一种情况：一个人兴致勃勃地发了一篇内容，下面就会有人评论：这玩意不就是XXX么？\n\n在旅游时，我们会吃到各种地方的当地美食，如果团队中有一个扫兴的人，也会立刻跳出来说：这不就是我们那的XXX么？\n\n我不确定这是否与人种有关，是否欧美等西方文化也有这样的习惯。或者也许是因为我们从小接受的教育，让我们必须为事物找到一种可关联或可分类的依据，才有安全感。总之很多人是不屑于直接认可一件事物的，不可以说\"它就是有意思，它就是好玩\"，而必须说\"它就是我所熟知的XX，也就那样\"。\n\n这种追问是人类的深刻本能，它非常有助于我们的认知学习，但却也容易带来困扰：当我们层层剥开生活的洋葱，是否会把爱情、人生、生活乃至艺术本身的意义也一同消解？\n\n这正是追问本质很容易带来的误区。既然上班的本质是为资本家出卖劳动力，那它毫无意义；既然爱情的本质是激素驱动的，那它毫无意义。\n\n## 本质追问的多层结构\n\n但真正的答案并非如此。本质并非单一一层，而是层层嵌套的。\n\n以爱情为例：底层是荷尔蒙与进化机制，中间层是情感联结与依恋模式，高层则是超越自我的共鸣与成长。人生同样如此——生物层是生存与死亡，心理社会层是关系与成就，存在层则是自我创造的意义。\n\n当你收获一段美好的关系时，你不觉得不枉此生吗？当你获得一些成绩，得到家人朋友的肯定甚至羡慕的时候，你也会有人生如此美好的感叹。这些不是生死的事，却也同样真实。\n\n追问可以无限向上，直到\"存在本身\"\"道\"，这个过程本身没有问题。而如果我们只把某一层当作唯一的真实，这才是问题。\n\n如果只停在底层，生活容易显得机械而虚无；如果拥抱多层共存，理解机制反而能让我们更珍惜高层体验。\n\n真正的智慧在于承认多层共存，然后选择清醒地、全心投入地生活。\n\n## 追问本质会消解意义吗？\n\n再回到开题的问题。短期看，可能会有\"幻灭\"感。知道爱情是化学反应、人生终将归零，浪漫似乎不再纯粹。\n\n但深入看，本质追问并不必然消解意义。意义不是被\"发现\"的预设物，而是我们在过程中赋予和涌现出来的。存在主义告诉我们\"存在先于本质\"，我们有权在有限中创造价值。\n\n关键在于区分\"理解层\"与\"参与层\"：头脑可以冷静分析，生活却需要全身心投入。这不是自欺，而是成熟的平衡。\n\n正如罗曼·罗兰所说：\"世界上只有一种真正的英雄主义，那就是在认清生活的真相后依然热爱生活。\"这正是我们探讨的核心态度。\n\n## 有关生活的实践\n\n要避免陷入\"一切毫无意义\"，需要把抽象认识转化为具体行动。\n\n**核心原则**：\n\n- 行动优先于过度思考。\n- 多层共存，不用底层否定高层。\n- 有限所以珍贵，无常所以认真。\n\n**每日实践**：\n\n- **早晨**：深呼吸，问自己\"今天想在哪件事上好好参与？\"\n- **工作中**：专注流动，提醒自己，做好事情就是当下的价值。\n- **关系中**：少问本质，多问\"如何更好地爱\"，多体会和感受。\n- **独处时**：允许虚无感出现，然后切换到感官体验，与周边的事物产生连接。\n- **晚上**：简短回顾，今天什么让我感到\"值得\"\"高兴\"\"伤心\"\"愤怒\"。\n- **虚无来袭时**：命名它、动起来、缩小范围、连接他人。\n\n每一件事情，全身心投入去参与，当你完成它的时候，再回头去看它的意义，一定有所不同。即使它不一定显得那么有意义，全力参与的过程本身就是一种意义。\n\n## 结语\n\n生活像一颗多层的洋葱。层层剥开可能让人泪流，却也带来丰富的味道。我们不需要找到终极本质才能好好生活，只需要选择参与，并在参与中赋予意义。\n\n看透生活的本质，却依然热爱生活——这或许就是最勇敢、也最值得的人生态度。\n\n你，准备好今天就投入了吗？\n",{"id":36,"type":7,"slug":37,"title":38,"date":39,"category":11,"tags":40,"body_markdown":45,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},141,"ai-media-content-automation-2026","记录2026年上半年的AI视频生成实践","2026-07-20 00:00:00",[13,41,42,43,44],"WorkBuddy","FFmpeg","video","automation","\n今年三四月份，我参加了一个实习项目，主题是用AI做自动化媒体内容生成。目标是搭建一条全自动的内容生产线——从选题策划、脚本撰写，到图像生成、视频合成，再到最后的发布上线。\n\n两个月下来，产出了两部成语故事动画短片《田忌赛马》和《守株待兔》，总共在YouTube上发布了三个版本。（见\u003Chttps:\u002F\u002Fwww.youtube.com\u002F@vivimemo>）\n\n\u003C!-- more -->\n\n## 流程概览\n\n最终沉淀的视频生产流程包含八个环节：\n\n1. 故事脚本撰写\n2. 角色图像生成\n3. 场景图像生成（可选）\n4. 分镜图像生成\n5. 旁白音频合成\n6. 视频片段生成\n7. 图像片段或视频片段合成\n8. 字幕叠加\n9. 成品输出\n\n每个环节都有多种工具可选，例如：\n\n- 脚本撰写：ChatGPT、Claude、豆包、WorkBuddy等\n- 图像生成：WorkBuddy（混元）、火山引擎文生图API、Seedream模型等\n- 视频生成：Seedance 2.0、可灵等\n- 语音合成：EdgeTTS、macOS系统语音等\n\n最终选择的组合是：\n\n- 基于静态图像的视频生成：火山引擎文生图API（图像）、EdgeTTS（语音）、FFmpeg（视频合成），由WorkBuddy负责统一调度。\n- 基于动态视频片段的视频生成：小云雀短剧一站式生成。\n\n## 图像生成\n\n使用火山引擎文生图API，模型为 `high_aes_general_v30l_zt2i`，分辨率固定为 1344×768（16:9），响应格式为 base64。\n\n提示词采用结构化模板：`风格前缀 + 场景 + 角色 + 动作 + 镜头 + 氛围`。\n\n## 语音合成\n\n使用 EdgeTTS，语音模型为 `zh-CN-XiaoxiaoNeural`（中文女声）。每段旁白独立生成 MP3，然后用 FFmpeg concat 分离器无损拼接：\n\n```bash\nffmpeg -f concat -safe 0 -i audio_list.txt -c copy output.mp3\n```\n\n每段音频的精确时长用 `ffprobe` 获取，用于后续视频片段的时长对齐。\n\n> 也是通过这个项目让我了解了 EdgeTTS，它原本是微软 Edge 浏览器的语音合成引擎，后来被逆向出来，成为一个很多人都在用的语音生成工具。整体来说，它的语音质量还是比较好的。\n\n## Ken Burns 动画\n\n对静态图像施加缓慢缩放效果，模拟摄像机运动。奇数片段放大，偶数片段缩小，交替进行：\n\n```\n奇数帧：zoompan=z='min(zoom+0.0008,1.08)':d=FRAMES:s=1280x720\n偶数帧：zoompan=z='max(zoom-0.0008,1.0)':d=FRAMES:s=1280x720\n```\n\n参数说明：每帧缩放 0.0008 倍，持续 FRAMES 帧后缩放 0.08 倍，输出分辨率 1280×720。\n\n## 字幕叠加\n\n字幕用 FFmpeg drawtext 滤镜实现。顺序问题：必须在所有视频处理完成后再叠加字幕。如果在 Ken Burns 动画之前添加字幕，字幕会随画面缩放变形，出现重影。\n\n中文字体需显式指定系统字体路径：\n\n```\nfontfile=\u002FSystem\u002FLibrary\u002FFonts\u002FSTHeiti Medium.ttc\n```\n\n默认字体不支持中文，会显示为方框。\n\n## 视频合成与发布\n\n视频片段用 FFmpeg concat 合并：\n\n```bash\nffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4\n```\n\n`-c copy` 启用无损流复制，不需要重新编码。\n\nYouTube 发布通过 WorkBuddy 的 `youtube-publisher` Skill 实现。需要在 Google Cloud Platform 创建应用获取 YouTube Data API v3 凭证，OAuth 2.0 桌面应用认证，Token 自动续期。\n\n## 视频生成方案迭代\n\n第一部《田忌赛马》采用上述方案——静态图像 + Ken Burns 动画。画面动态性有限，类似定格动画效果。\n\n第二部《守株待兔》改用字节跳动小云雀短剧 Agent 的 Seedance 2.0 模型，直接从文本生成动态视频片段。角色一致性更好，动作自然，但无 API 接口，需在平台界面手动操作。\n\n两种方案的适用场景不同：简单叙事适合前者，成本低、可控性强；需要视觉表现力则用后者。\n\n## 三层架构\n\n将整个流程封装为三层：\n\n| 层 | 组件 | 职责 |\n|---|---|---|\n| **Agent 层** | WorkBuddy | 统一任务调度与编排 |\n| **工具层** | 火山引擎、EdgeTTS、FFmpeg | 各环节专用工具 |\n| **人工层** | 人工审核节点 | 分镜、图像、成片三处质量把控 |\n\n## 遗留问题\n\n- 跨场景角色形象仍有细微差异\n- 背景音乐筛选依赖人工，难以完全自动化\n- 小云雀无 API，批量生产效率受限\n",{"id":47,"type":7,"slug":48,"title":49,"date":50,"category":11,"tags":51,"body_markdown":54,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},146,"there-was-no-path-2026","世上本没有路，走的人多了也便有了路","2026-07-18 15:00",[13,52,53],"编程","思考","\n大概十来年前，在知乎上看过一个讨论得非常热烈的问题：自然语言编程能否实现？\n\n我记得当时自己的观点是：不能。\n\n核心观点如下：\n\n1. 编程语言的语法掌握是很容易的事，这不是什么门槛\n2. 但编程是一个不断分解细化问题的过程，自然语言对问题的描述是很不清晰的，很难转换为确定性的代码\n\n\u003C!-- more -->\n\n## 未来已来\n\n十来年前讨论这个问题多少还有些科幻色彩，但在今天，AI 已经几乎可以完全自主完成各种编程任务了。有些人只用一句话就生成了整个软件，其中的交互细节、视觉风格、Edge Case 处理，AI 全都做了决定，而且结果看起来还不错。\n\n回顾人类生产软件的流程，细化问题并逐一回答是很重要的一步。一句话的需求背后有漫长的研发过程——需求定义、评审、技术评审、开发、测试——每一步都在把未回答的问题收敛为确定的细节。\n\n这让我重新思考当年的问题：自然语言明明是很不清晰的语言，AI 又跳过了这个需求分解细化的过程，直接按它自己的理解执行，理论上给最终结果带来了不确定性。但为什么实际上又能转换为确定性的代码？\n\n## 现在这条路是怎么走出来的\n\n如果我们仔细拆解 AI 做得很好的那些场景，会发现一个共同点，即它们都是**常见的模式**。\n\n我以前会举一个例子：当我们说“做一个搜索框”，背后实际上有很多细节需要处理：输入框的样式、placeholder 的文案、输入时的交互、防抖、搜索结果的展示、loading 状态、空状态、超时提示等等。\n\n但是，“做一个搜索框”这个模式在 GitHub 上出现了成千上万次，Stack Overflow 上有无数讨论，各种各样的实现、各种 Edge Case（debounce 设多少毫秒、空状态怎么展示、loading 状态如何处理、超时怎么提示），早就被社区反复讨论并形成了共识方案。\n\n当一片空地，被无数人以同样的路径反复走过无数次之后，空地上就形成了一条路。当无数人做过搜索框之后，社区就形成了一个共识：搜索框应该是这样的。\n\n现代大语言模型的训练数据覆盖了海量代码仓库、技术文档、设计规范，因此它学习到了一个典型的搜索框应该长什么样。当你说“做一个搜索框”时，模型并不是在重新思考“防抖应该设多少毫秒”，而是直接拿出了最典型的那一个方案——300ms。\n\n所谓的“细节决策”，对模型来说其实是“预测一个最多人用的可能性”。也就是说，AI 的成功不是因为它真的在推理，而是因为它记住了人类的决策结果是什么样的。\n\n## 世上本没有路\n\n“编程是一个不断分解细化问题的过程”——这句话在今天依然正确。但也必须承认，这样的说法忽略了另一面：绝大多数编程工作并没有什么开创性，而是在重复前人已经走过的路。当一个模式被走了足够多次之后，AI 也可以获取这些共识，直接给出经过验证的结果。\n\n鲁迅说：世上本没有路，走的人多了，也便成了路。\n\n十多年前我关注的是前半句——世上本没有路，所以需要人去不断做决策，去开路。十多年后，我发现后半句同样重要——走的人多了，也便成了路。AI 是那个已有路的人，它最擅长的就是沿着已有的路走下去。\n\n而在未知领域不断去开新路这件事，仍然是我们人类的事，这大概就是人类的价值所在吧。\n",{"id":56,"type":7,"slug":57,"title":58,"date":59,"category":11,"tags":60,"body_markdown":65,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":66},143,"new-nas-black-synology","新入一台黑群晖NAS","2026-06-20 18:00",[61,62,63,64],"NAS","群晖","数据存储","家庭服务器","\n5月底，正值暑假之前，我们全家出去旅游了一阵。回来之后一打开家门，就听到了群晖报警的声音。赶紧进入web界面看了一下，显示硬盘出现了问题，存储池已降级。\n\n![群晖报警截图](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F01.png)\n\n我的第一台群晖NAS是2019年买的DS218+，2024年坏掉之后买了二手的DS218j顶着用。这次出问题的正是这台二手的DS218j。\n\n## 到底是硬盘还是NAS的问题？\n\n一开始，我是相信群晖系统给出的信息的，认为是硬盘坏了。但这块硬盘是我在2025年7月才换上去的新硬盘，才用了不到一年，坏得这么快实在有点不可思议。\n\n于是我尝试将两块硬盘调换位置，看看问题是否会解决。结果调掉之后一开机，发生了更离谱的事：机器检测不到任何硬盘！然后我将“坏掉”的硬盘拿掉，将好的硬盘单独放在机器里，结果无论放哪个盘位，都依然无法检测到硬盘。\n\n\u003C!-- more -->\n\n![检测不到硬盘](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F02.png)\n\n到这里，问题就更复杂了，是NAS坏了还是硬盘坏了？如果是硬盘坏了的话，那单独放置好的硬盘也应该能被检测到才对。\n\n## 群晖也不是非用不可\n\n如果是NAS机器坏掉的话，那到此为止，我已经坏了两台群晖设备了。再加上群晖一贯超低的性价比，我也不想再继续投入了。于是我开始考虑其它方案。\n\n### 方案一：mac mini + 双盘位硬盘盒\n\n首先考虑的是使用现成的mac mini + 双盘位硬盘盒的方案。毕竟我已经有一台mac mini了，它的功率也很小，计算能力更是完全不用担心。\n\n但最终没有选择这个方案的原因是：mac系统的文件系统不一样，它完全不识别Linux系统使用的Ext4文件系统。因此如果要换的话还要重新格式化硬盘，在此之前我需要备份所有的数据，而我手头上没有足够大的存储设备。\n\n除此之外，硬盘盒也需要单独购买，虽然价格不贵，但也是一笔支出。\n\n### 方案二：小主机 + 双盘位硬盘盒\n\n既然mac不行，那如果买一台能使用Linux系统的小主机呢？于是又查了一下各种小主机。\n\n有一些小主机还是让人心动的，但是价格也比较贵，需要上千元的预算才能买到一台性能不错的主机了。如果要图便宜的话，也得三五百才能买到一个能用的主机了。\n\n硬盘盒依然需要单独购买。\n\n### 方案三：成品NAS设备\n\n既然预算都到三五百了，要不再看看有没有成品NAS设备呢？使用成品NAS还能省掉单独购买硬盘盒的钱。此外内置硬盘位的连接稳定性也往往大于外置硬盘盒。\n\n于是就发现了早些年非常流行的一台黑群晖NAS，叫“星际蜗牛”。价格也不贵，300元以内搞定，带内存和系统盘。其实很早就关注到这么一批机器，但早些年没有实际需求，因此也没有入手。\n\n这次正好可以下手，入了一台“星际蜗牛”黑群晖NAS（D款）。\n\n![星际蜗牛](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F03.jpeg)\n\n(图片来自网络)\n\n## 黑群晖的初始化\n\n机器到手之后，把原来DS218j中使用的两块硬盘都装进去，然后开机。此时群晖会自动检测到硬盘，且知道硬盘中原来有系统。但因为硬件型号不一样，需要重新安装系统。\n\n![黑群晖初始化截图](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F04.jpg)\n\n有一个点要特别小心：因为黑群晖有比较复杂的引导过程，所以安装的系统要和机器引导系统的大版本保持一致。比如我买的这台机器引导系统是DSM 7.2的，那么安装的系统也必须是DSM 7.2的，否则就可能出现安装完系统之后无法正常引导启动的问题。\n\n![黑群晖初始化截图](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F05.jpg)\n\n![黑群晖初始化截图](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F06.jpg)\n\n为保险起见，我选择了去官网下载小版本完全一样的系统来安装。然后选择手动安装系统，将下载好的系统镜像上传到安装界面，安装完成之后就可以正常使用了。\n\n![黑群晖初始化截图](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F07.jpg)\n\n进入系统之后，第一件事就是检查硬盘的状态，系统仍然报告有一个硬盘出现了问题，但这个状态可能是之前的坏盘状态遗留下来的。因此我先将坏盘从存储池中移除，然后花了大半天做了一个SMART自检，显示硬盘没有问题。重启系统后，就看到了一块未使用的硬盘，说明之前的坏盘状态已经被清除了。然后通过“修复”功能将这块硬盘重新加入存储池，修复完成之后就恢复正常了。\n\n至此，新的黑群晖NAS就成功运行起来了，完整替代掉了之前DS218j。\n\n## 公网访问\n\n使用群晖自己的NAS设备（白群晖）时，可以直接使用群晖提供的QuickConnect服务来实现公网访问。但黑群晖没有这个功能，所以需要自己设置。我选择使用Cloudflare Tunnel来实现公网访问。\n\n设置过程并不复杂，主要是需要在Cloudflare上创建一个Tunnel并绑定域名，最后在群晖上（或局域网内其它设备上）安装Cloudflare Tunnel的客户端，并将Tunnel运行起来即可。此时就可以通过绑定的域名来从公网访问群晖了。\n\n不过公网访问并没有解决所有的问题，我们还需要解决一个问题：如何让客户端软件（例如Synology Photos）正确地找到群晖的地址。\n\n如果直接使用Cloudflare Tunnel提供的地址，则无论在什么网络下使用都会经过Cloudflare的服务器转发，导致在内网访问时速度也比较慢。而我希望客户端软件在内网访问时直接访问群晖的局域网地址，在外网访问时才通过Cloudflare Tunnel访问。\n\n要实现这个功能，最主流的思路就是DNS解析分流：同一个域名，在内网访问时解析到局域网地址，在外网访问时解析到Cloudflare Tunnel绑定的地址。\n\n实现这个功能需要依赖局域网网络相关的配置，例如在路由器上设置DNS解析规则。恰好我的路由器支持在局域网内设置DNS解析规则，所以我就设置了一个规则，让访问特定域名的请求在局域网内解析到群晖的局域网地址，这样就实现了内外网访问的无缝切换。\n\n## HTTPS证书\n\n除了设置DNS解析规则之外，还有一个需要注意的点是HTTPS证书的问题。因为Cloudflare Tunnel提供的地址是HTTPS的，所以在外网访问时是没有问题的。但在内网访问时，如果群晖不能提供一个有效的HTTPS证书，客户端软件就会提示安全警告。因此我们还需要在群晖上设置一个证书，来保证在内网访问时也能正常使用HTTPS。\n\n这里我使用了[Certimate](https:\u002F\u002Fdocs.certimate.me\u002F)这个工具。在群晖的套件中心可以直接下载Certimate套件，安装完成之后建立一个工作流，申请域名的HTTPS证书，然后在部署这一步选择群晖DSM。\n\n![Certimate工作流截图](\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F08.png)\n\n很神奇的是，Certimate集成了群晖DSM的部署功能，只要提供群晖的管理员账号和密码，就可以直接将申请到的证书部署到群晖上了。部署完证书之后，在内网访问时就不会再有安全警告了。\n\n## 关于安全\n\n严格来说，上述方案有安全风险：\n\n1. 将NAS直接暴露在公网，可能会被攻击者扫描到并尝试攻击，如果NAS的软件或者底层的操作系统存在漏洞，安全风险就会比较大\n2. 将账号密码暴露给第三方工具（例如Certimate）也存在安全风险，如果这个工具的安全性不好，或者被攻击者入侵了，那么账号密码就可能被泄露\n\n因此在使用上述方案之前，最好先评估一下自己的安全需求和风险承受能力。如果对安全要求比较高，或者不想冒太大的风险，那么可能需要考虑一些更安全的方案，例如使用VPN来访问NAS。\n\n## 结语\n\n买新的“星际蜗牛”算是赌对了，最终证明硬盘并没有问题，真正的问题大概是出现在之前的DS218j上了。\n\n新的设备从功能上来说，完全不输之前的DS218j，甚至因为硬件配置稍好一些，整体性能比DS218+都更好一些。\n\n要说有不足之处的话，可能就是这个设备的功耗肯定是高一些，发热量也比较大，因此我将它从客厅的封闭电视柜中移出来了，放到了书房的钢琴上。不过好在这不算大问题，不影响使用。\n","https:\u002F\u002Fassets.toobug.net\u002Fassets\u002Ftech\u002F2026\u002Fnew-nas-black-synology\u002F01.png",{"id":68,"type":7,"slug":69,"title":70,"date":71,"category":11,"tags":72,"body_markdown":77,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":78},144,"onedrop-in-three-hours","Onedrop：三小时内构建的临时文件传输工具","2026-06-15 00:00:00",[73,74,75,76],"onedrop","file-transfer","cloudflare","ai","\n\n![Onedrop 分享页面展示了一个包含文件列表的简洁界面](\u002Fassets\u002Ftech\u002F2026\u002Fonedrop-in-three-hours\u002Fonedrop-interface-share.png)\n\n体验地址：\u003Chttps:\u002F\u002F0x1.one>\n\n> 本文由AI辅助生成，经过人工编辑润色。\n\n我开发了 Onedrop，为了解决一个不断重复出现的文件传输难题。\n\n“文件现在就得传过去。但没有在同一个 Wi-Fi 下，也没有安装局域网传输工具，设备品牌不同无法使用 AirDrop，两端也没有共同的社交软件。”\n\n“手机传到电脑。安卓传到 iPhone。访客传到会议室公用电脑。”\n\n“文件本身很简单，但传输过程却很麻烦。”\n\n\u003C!-- more -->\n\n## 促使改变发生的阻力\n\n我一次又一次地遭遇同样的事情，虽然市面上有一些工具，但环境往往是使用这些工具的阻碍。\n\n大多数临时分享工具使用又长又复杂的 URL。如果你能直接点击链接，它们确实好用；但如果你必须在另一台设备上手动输入地址，过程就会变得异常痛苦。在那一刻，每一个多出来的字符都显得代价高昂。\n\n![典型文件分享工具的长 URL 截图，展示了在不同设备上手动输入的难度。](\u002Fassets\u002Ftech\u002F2026\u002Fonedrop-in-three-hours\u002Ftypical-sharing-tool.png)\n\nOnedrop 的出发点只有一个：让接收者无需任何配置就能快速加入。\n\n- **快速**：无需登录或注册账号。\n- **简短**：6 位取件码，易于记忆和输入。\n- **临时**：默认 3 小时有效，最长不超过 24 小时。\n\n没有繁文缛节，只有高效传输。\n\n## 设计：漂亮而实用\n\n界面设计非常干净，因为使用场景通常很紧迫。人们在分享文件时，往往处于移动中、交谈中，或者正在切换设备。界面应该减少用户的思考负担。\n\n我们选择了一种极简、实用驱动的美学。锐利的线条、高对比度的边框和结构化的留白取代了装饰性的模糊或圆角。它给人的感觉像是一个趁手的工具，而不是一个玩具。\n\n- 每个步骤只保留一个核心操作。\n- 取件码和状态在视觉层级中占据首位。\n- 措辞直接，无装饰性文案。\n- 取件码和时间戳这类严谨的数据使用 IBM Plex Mono 字体。\n\n每一个元素都带有明确的意图。极简并非更少，而是恰到好处的帮助。\n\n![Onedrop 简洁明快的界面截图，展示了专注于实用性的取件码输入页面。](\u002Fassets\u002Ftech\u002F2026\u002Fonedrop-in-three-hours\u002Fonedrop-interface-home.png)\n\n## 三小时完工\n\n在 AI 的辅助下，Onedrop 从一个想法变为可用的产品仅用了大约三小时。价值不仅在于速度，更在于快速迭代的能力。我们可以在一个短周期内完成测试、调整和再次测试，而不是把问题拖上好几个月。\n\n这改变了我们构建小工具的方式。如果一个问题是真实存在的，它就应该能够被立即解决。\n\n## 技术\n\n架构简单且可靠。我们使用 Cloudflare R2 进行文件存储和元数据管理。有效期由后端强制执行，并通过定时清理任务自动移除过期的空间和文件。\n\n当“立即发送”是核心任务时，基础设施的质量也是体验的一部分。全球边缘分发保证了极低的响应延迟，这对于设计上就是短时效的传输窗口来说至关重要。\n\nOnedrop 只解决一个问题：在不同类型的设备之间快速发送文件。它专注于临时传输、简单步骤和可靠的速度。\n","https:\u002F\u002Fassets.toobug.net\u002Fassets\u002Ftech\u002F2026\u002Fonedrop-in-three-hours\u002Fonedrop-interface-share.png",{"id":80,"type":7,"slug":81,"title":82,"date":83,"category":11,"tags":84,"body_markdown":90,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},145,"password-manager-i-am-using","我的密码管理方案","2026-01-23 00:00:00",[85,86,87,88,89],"password","manager","1password","bitwarden","lastpass","\n我已经不记得第一次使用密码管理软件是什么时候了，但肯定已经超过10年了。最近我又换了个密码管理软件，刚好也有朋友在咨询这件事情，就想起来整理一下。\n\n## 一些关于密码和管理软件的科普\n\n聊到密码管理，就必须得提一下关于密码安全的一些常识，以及密码管理软件的一些基本功能。有相关知识储备的朋友可以直接跳过这一大段。\n\n### 密码的本质\n\n如果用专业名词来说的话，其实“密码”这个词是错误的，我们常说的密码，其实是一种口令。\n\n三国演义中有一个关于口令的故事广为人知：\n\n> 曹操与刘备在汉中交战，双方相持不下。曹操的军队被困在斜谷，进退两难。\n>\n> 一天晚上，曹操正在吃晚饭，厨师端上来一碗鸡汤。曹操看着汤中的鸡肋骨，若有所思。这时，大将夏侯惇进来请示当晚的口令，曹操看着碗中的鸡肋，随口说：\"鸡肋。\"\n>\n> 主簿杨修听到这个口令后，立刻开始收拾行装准备撤退。夏侯惇不解，问杨修为什么。杨修解释说：\n>\n> \"鸡肋这种东西，食之无味，弃之可惜。现在我们进不能胜，退又怕人笑话，正如鸡肋。丞相已经决定撤军了，所以我在准备行装。\"\n>\n> 果然，第二天曹操就下令撤军了。\n\n\u003C!-- more -->\n\n因此，本质上密码就是一种约定：天知地知，你知我知。也就是只有自己（用户）和系统（网站\u002FAPP）知道密码，没有其他人知道。而如果因为某种原因，有第三个人知道了密码，那你的身份就会被盗用。\n\n### 密码泄露的手段\n\n密码泄露的手段有很多种，而且这里面的问题可能出现在自己（用户）身上，也可能出现在系统那一边，甚至有可能谁也没出问题，但密码被人猜到了。\n\n具体而言，大致分为如下几种：\n\n1. 用户自己泄露：例如将密码写在纸上、写在不安全的地方（如微信聊天记录）或者被人偷窥\n2. 系统泄露：即系统（网站\u002FAPP）中的密码数据被人窃取了\n3. 密码过于简单，被猜到或者被试出来了\n\n其中，系统泄露数据泄露并不一定会直接导致用户密码被盗窃，最终结果取决于系统是否为用户密码采取了合适的加密措施，这里不深入展开。\n\n### 如何提升安全性\n\n与上述密码泄露的手段一一对应，我们可以采取如下措施来提升安全性：\n\n1. 不要将密码记录在不安全的地方\n   1. 你可以不记录密码，只使用自己的大脑来存储，但这样容易忘记密码，也非常容易在不同的系统使用相同的密码\n   2. 将密码记录到密码管理软件中，这是一个比较好的选择\n2. 减少系统泄露数据带来的影响：作为用户无法干预数据被泄露的过程，但可以减少对自己的影响\n   1. 为不同的系统使用不同的密码，而不是使用相同的密码，但一般来说这需要密码管理软件的支持\n   2. 添加双因子2FA\u002F多因子认证MFA等手段，避免使用单一密码登录认证\n3. 使用复杂密码\n   1. 位数越多越好、包含字母、数字、特殊字符等\n   2. 避免使用与自己相关的信息作为密码，例如姓名、出生日期、手机号等\n\n这里提到了多因子认证，它的含义是在登录时除了密码之外，还需要提供其他的认证信息，例如短信验证码、邮箱验证码、TOTP认证器、通行密钥Passkey等。这样即使坏人获取到了密码，也无法登录系统，因为他们并不知道其他的认证信息。\n\n另外在这些提升安全性的措施中，我们也可以一窥密码管理软件的核心作用了：\n\n- 帮我们记录密码，避免忘记密码，也可以帮助我们为不同的系统使用不同的密码\n- 帮我们生成足够复杂的密码，避免使用简单密码\n- 帮我们管理多因子认证信息（例如TOTP认证器和通行密钥Passkey）\n\n除此之外，因为我们不再使用人脑来记忆密码，因此当需要填写密码时，密码管理软件会自动填充已经记录的密码，这也是实际操作中能够顺畅使用的核心功能。\n\n## 我的密码管理软件历程\n\n好了，回归正题。记录一下我之前用过的密码管理软件，以及几次换软件的主要原因。\n\n### LastPass\n\n> 因已多年未用，部分信息可能不准确。\n\n我用的第一个密码管理软件是LastPass，这个名字也非常有意思：The last password you need to remember（你需要记住的最后一个密码）。\n\n我刚开始用的时候将所有密码都记录到LastPass中。但因为之前已经累积了非常多的账号密码，因此基本没有使用过随机密码生成，大部分还是使用固定密码。\n\n这个阶段，可以说我还没有那么依赖密码管理软件，很多时候LastPass能帮我填充密码，但我自己也能记得住密码。\n\nLastPass当年只有浏览器插件，它的核心流程打磨得非常顺畅，尤其是在密码的记录和更新提示上。这一点我在切换到其它软件后，才深刻体会到：\n\n1. 注册账号的时候会提示生成一个密码，但并不会立刻要求将这个账号密码保存起来，而是等到表单提交成功后才会提示保存。\n2. 同理，当更新密码的时候，更新成功后才会提示保存。\n\n而1Password在这一点上就处理得不够好。例如在注册表单中，当你采纳它生成的建议密码时，会立刻要你保存一个登录信息，但此时我们的注册还没成功。\n\n同样在重设密码中，更是会出现“密码还没重置完，密码软件中的密码已经被更新了”的情况，有严重的不安全感。此时如果密码重置失败，就会导致密码软件中的密码与实际密码不一致。\n\nLastPass的缺点：\n\n1. 有一段时间短时间内出现过多起数据泄露问题（密码加密存储，可能未造成实际损失）\n2. 有了客户端以后，收费策略比较激进：免费用户不能同时使用桌面端（含浏览器）和移动端，只能二选一\n\n此外当时LastPass也没有记录2FA验证码的功能，还需要单独使用一个Google Authenticator之类的应用来记录2FA验证码。\n\n## 1Password\n\n我接触到1Password好像是因为Setapp，当时买了Setapp的会员，就顺便也用了一个1Password。但后来我停掉了Setapp的会员，1Password似乎也没有继续在Setapp中提供服务，因此只能独立付费使用了。\n\n首先必须要说，1Password的界面做得非常漂亮，相比之下LastPass和Bitwarden的界面都要差很多。\n\n切换到1Password的时机正好是社工库和撞库问题频发的时期。1Password提供了安全分析功能，可以看到哪些密码存在于已经泄露的密码库中（撞库），也可以分析自己的密码库中有哪些项目是重复使用的相同密码。也是借助这个功能，我在迁移到1Password之后，将所有的密码全部重置成了随机密码。\n\n至此以后，我就再也不可能记得自己的密码了，因此必须高度依赖1Password来管理所有的密码。随着使用的深入，我也开始将其它的密钥信息（如API密钥、数据库密码、SSH密钥等）也记录到1Password中，实现了几乎所有密钥的统一管理。\n\n整体上来说，1Password的体验还是比较好的，但它也有几个明显的问题：\n\n1. 核心流程不够好，如上所述，注册\u002F重置密码的体验不够好\n2. 移动端尤其是安卓端的体验非常差\n3. 收费贵，接近40刀一年\n\n关于安卓端，特别想记录一下：\n\n我很早就给家里人（小米手机）推荐安装了1Password，但一直被反馈不好用。因为我自己曾经主力机是iPhone，并没有发觉有很严重的问题，因此也没有认真去看这个问题。直到去年我的主力机也换成了小米手机，我开始注意这个问题，结果发现1Password在小米手机上的体验非常差。\n\n具体而言，有如下三个问题：\n\n1. 自动密码填充的出现时机非常不稳定，有时候会提示，有时候没有提示，有时候在反复聚焦输入框后才出现提示\n2. 软件界面经常白屏，无论是从桌面进去还是通过自动填充界面进去，经常碰到不显示密码条目，也无法搜索到密码的情况\n3. 完全不能使用Passkey功能\n\n其中第3条经搜索是小米系统的问题，截止2026年1月（澎湃OS3），目前所有的第三方密码管理软件都无法在小米系统中使用Passkey功能。\n\n而前两条，我一度也以为是小米的问题，直到我换了Bitwarden以后才确认，它更可能是1Password自己的问题。这让我非常不解，一个收费如此昂贵的软件，居然在一个使用量这么大的平台上，有这么低级的稳定性问题，可见质量保障这一块缺失非常之多。\n\n> 最近1Password还出现了引发很多人关注一个问题：1Password的浏览器扩展打包了一个自己的代码高亮插件，但并未妥善处理与页面内容的冲突，导致很多技术相关的网页上的代码无法正常高亮显示。这也可以算是一种微弱的草台班子的证明。\n\n## Bitwarden + VaultWarden\n\n因为1Password在小米小机上的问题非常严重，促使我决定试一试Bitwarden，顺道也决定使用VaultWarden来自托管后端。\n\nBitwarden是一个开源的密码管理软件，所有的客户端都是开源的，它自己在官网上也提供密码托管服务（即客户端对应的后端，存储密码的地方），而且可以免费使用，只有高级特性需要付费。\n\n而VaultWarden是一个自托管的Bitwarden后端，它不是Bitwarden官方提供的服务，而是一个社区维护的项目。使用VaultWarden，你可以将Bitwarden的密码托管服务部署在自己的服务器上，自己管理自己的密码数据。\n\n我在自己的服务器上部署了VaultWarden，然后使用Bitwarden的客户端连接到我的服务器上来使用。\n\n在试用了一段时间后，结果非常意外：Bitwarden在小米手机上运行非常稳定顺畅，所有的填充场景都能稳定触发（除了Passkey功能）。我完全没有想到一个开源软件能够提供比商业收费软件更好更完善的体验。\n\n当然，缺点也是有的，比如界面不如1Password那么漂亮，在密码类型的支持上不如1Password完善。但这些都不算是大问题，总体上来说瑕不掩瑜，Bitwarden的体验还是非常好的。\n\n## 总结\n\n随着个人在互联网上使用的服务越来越多，账户安全所面对的挑战也在日益增加。\n\n苹果、小米、微软（包含在edge中）等厂商也在推广自己的密码管理软件，整个业界也在不断完善密码管理和认证方案，例如MFA已经成为一种普遍使用的认证方式，Passkey也正处于快速发展推广的阶段。\n\n总而言之，账户安全和其中涉及到的密码管理始终是个很严肃的事情，我也建议大家有机会的话，不妨尝试一下使用这类管理软件，非常有用。\n",{"id":92,"type":7,"slug":93,"title":94,"date":95,"category":28,"tags":96,"body_markdown":98,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},99,"the-pace-of-life-is-always-me","生活的节奏总是我——2025年终总结","2025-12-31 13:00",[97,30],"年终总结","\n以前每到年末的时候，总是忘记要写小结，因为总是缺少一些年末的氛围。但今年似乎不太一样，12月初我就看到有人在总结一年的收获，当时心想：这是不是也太早了点？\n\n及至现在，已经到了几乎每个APP都在推送年末总结的时候了。不知道是不是错觉，总觉得今年做年度总结的APP特别多，似乎以前没有这么多的。\n\n但无论它们出于什么样的出发点来做的年末总结，做得好或不好，都没关系。总之，我每打开一次手机，就像在被提醒一遍：一年过去了，来总结一下吧。\n\n\u003C!-- more -->\n\n## 一些寻找鼓点的尝试\n\n听音乐的时候，我们会自然而然地在心里产生一个与音乐同步的节奏。这就像是通常意义上的社会生活，你不需要有很强的主观意愿，周围的一切会推着你往前走。\n\n然而我的情况却有点不一样。自去年离职之后，一直在忙装修的事，今年总算是闲下来了。问题接踵而至：我应该干点什么？几点干活，几点休息，几点去运动，几点去睡觉？\n\n上半年，我们最早尝试的方案是上午工作2个半小时，下午工作1个半小时，每周三和周六休息。这个方案的bug很快出现：小朋友需要有人陪。于是第二版方案出炉：上午妈妈陪，下午爸爸陪。\n\n这个方案实践下来也有不少问题：\n\n1. 小朋友午睡的时间不可控，经常一觉醒来天都要黑了，妈妈没有时间学习工作\n2. 我的工作内容经常会“拖堂”，占用妈妈的学习工作时间\n3. 小朋友很难理解，为什么一会不要找爸爸，一会不要找妈妈\n\n随着时间流逝，这些方案也逐渐变形，休息时间的安排上也有一些问题，例如和朋友们休息时间对不上，很难约局等等。\n\n到了下半年，小朋友上学了，我们也对应调整了节奏。目前的作息和上班差不太多，周一到周五到办公室办公，唯一不同的是下午会早点回家接小朋友放学。\n\n这有点像在听一首很自由的音乐，反复尝试后才终于抓到鼓点，找到节奏。\n\n## 注册一家公司\n\n年初，我开始了解公司注册的事情，刚好这边一些部门有孵化器的场地，于是一拍即合。但实际落地的时候，这个场地有一些手续有所耽误，接近年中的时候才开始注册。\n\n注册的过程中，多少有些波折，比如碰到了市监要求实际审查，然后跑来跑去弄了一堆手续，比如碰到税局的风险限制，无法顺利开出发票等等。好在最终结果是好的，顺利注册下来了。\n\n在注册这家公司的过程中，自然也少不了与各种各样的人打交道。一个我感到意外的变化是：我感觉我挺喜欢与人打交道了，我也很乐意回味与人相处过程中的一些小故事。\n\n在招商银行开户的过程中，我受到了极其热情的对待：那天我是早上第一个客户，3个窗口同时开放。我盯着3个窗口，犹豫了1秒钟，然后看到了2号窗口写的“小微企业开户专窗”，于是径直走了过去。然后我听到了3号窗口以一种很不可思议的语气在说：我都做好了欢迎的手势了，结果他直接过去2号了。\n\n在后面与孵化器的工作人员打交道的过程中，我也觉得大家非常热情和尽责，并没有刻板印象中这些服务人员是冷冰冰的样子。2025年的最后一天，我又来到了办公室，同时也给工作人员带了奶茶。\n\n## 学习期权和量化交易\n\n年初和朋友交流了一下期权的交易。我在早年间有过衍生品巨额亏损的经历，好多年都没有再碰过类似产品。\n\n在和朋友交流完之后，我觉得应该重新审视一下这个交易品类，刚好也开始有一些时间，于是开始做一些相对低风险的交易策略。\n\n一年过去了，整体来说还不错，略有收获。虽然从年化收入来说比较低，而且中间也有过大幅回撤的时候，但总体上算是重新认知了这个交易品类。\n\n下半年，刚好托同事的信任，有机会参加了一些量化交易产品的开发。本来量化交易也在我的后续学习清单中，只是还没排上日程。但机会到门口了，就不妨一试吧。\n\n事实上，开发图表的过程还是很煎熬的，最终的结果也只能说刚好能用，相比专业的交易产品来说还是有差距。但这个过程中也刚好学习了挺多量化交易相关的概念和基本框架。\n\n虽然这个项目目前暂停了，但我相信这一块在后续依然会继续生长开花，直到结果。\n\n这一年，也和一些其他的朋友或多或少有一些沟通和交流，也逐渐发现一个难以避免的现象：大家在进入中年的倦怠期之后，都会开始涉足交易。\n\n我并不太清楚这件事情有多普遍，但也在重新思考，也许交易也是生活的一部分呢？\n\n## 产品：邮箱还在做的\n\n熟悉我的朋友都知道，我在做一款邮箱产品TinkMail（https:\u002F\u002Ftinkmail.me）。今年我翻了一下代码，最早的代码是在2021年就写下了。大概是在2023年左右，我和一位朋友也大概讲过规划：把这款产品做到商业化。\n\n现在是2025年末了，邮箱依然还没有商业化，但这一年的时间内却花了非常多的时间在做它的产品迭代。相比去年，现在它有了：\n\n- 可以自定义域名的商业版本\n- 更多的功能，例如通讯录、文件夹管理、邮件标签等\n- 更好更稳定的IMAP协议实现和邮件收发策略\n- 更好的反垃圾基础\n- 更全面的账户安全措施\n- 更漂亮的网站表现和邮箱界面\n\n关于它的商业目标，目前也并不是特别明确。我在之前[聊一聊与邮件协议IMAP的一段经历](\u002Farticle\u002Ftech\u002F2025\u002Fa-frustrating-experience-with-imap.html)中有写过：\n\n> 我认为这里值得做出一些改变。先让改变发生，进而产生价值，最后收获成果，道阻且长。\n\n按目前的进展，我认为2026年应该可以正式开启商业化，完成3年前制定的小目标。\n\n至于其它的产品，这一年在脑子中做了非常非常多的构想。得益于AI Coding能力的快速增强，我也翻出了很多之前做了一半的产品，重新做了整理和修剪。也写了一些之前想写但没有空写的产品。\n\n我第一次感觉到，我有可能借助AI的能力，把想做的产品都做一遍。接下来，我仍然会做很多尝试，然后让时间来沉淀真正值得长期投入的产品。\n\n## AI产业的又一年\n\n2022年末，ChatGPT发布，随后开始席卷全世界，到今年，AI已经发展了3年了。刚好也记录一下当下时间点的一些现状：\n\n- Meta刚以数十亿美元的价值收购Manus\n- 美国AI产业股票又涨了一年，而且开始互相投资\n- Google、OpenAI竞争激烈，Claude以及国产的DeepSeek等也不甘落后\n- 国内几大互联网公司都确立了AI战略，正在激进地推进产品落地\n- AI编码领域遍地开花，正在替代程序员\n\n我一直是一个不喜欢凑热闹的人，因此AI产业也没有第一时间参与进去。在过去的两年中，AI行业在快速发展，其中既包括模型自身能力的不断进步，也包括五花八门的应用创新。但有一个故事在其中反复上演：\n\n模型能力一更新，上层就有一堆应用变得可有可无。\n\n这也是我一直在徘徊的原因，在最前端去试错，很有可能会成为下一次模型更新之后的炮灰。而一个人的力量是非常有限的，多来几次就会被彻底击垮。\n\n但时间来到2025年，事情开始有些不一样了。各方面的模型能力开始成熟，不需要仔细微调也可堪大用。Agent概念和方法论的成熟，真正赋予了AI模型自主决策和成事的能力。\n\n未来这个行业会变得怎么样很难说，但无疑这已经是一件非常有想象力的事情了。\n\n我想我会在2026年开始在产品中使用一些AI能力了。\n\n哦对了，最后记录一个西游记系列歌曲，所有的作品都由AI作词作曲配画面，我最喜欢的是唐三藏的《无岸》。\n\n\u003Chttps:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Nn1yB2EHQ>\n\n> 2025年AI很厉害，但更厉害的始终是人。\n\n## AI编程的又一年\n\n我已经找不到第一次使用AI编码的时间了，但是能确认不晚于2020年，年中的时候发过一条：\n\n> 前几天梳理了一下，我的自我介绍可以加一个“5年AI编程经验”，一点没夸张。\n\n最早使用的是TabNine，一个基于StackOverflow的问答数据训练的编程辅助AI。\n\n第一次被它惊艳的时候，我正在写一个返回指定范围随机整数的方法。我刚写完方法名，它就直接补全了所有的代码逻辑。虽然这个方法只有一行，但涉及到随机数放大取整，还有一些边界处理的问题，但它一次写对了。\n\n后面当GitHub Copilot出来之后，我就第一时间使用了，一直从免费用到收费。到近两年，我也尝试了Cursor、Windsurf、Trae、ClaudeCode等很多工具，但最常用的还是Copilot。\n\n以月为单位来看的话，AI编程工具进步神速。我随便翻了一下，回顾了一些年初碰到的和看到的问题：\n\n- 代码语法错误\n- 重复创建相同的公共代码\n- 因为版本不匹配而生成错误的API调用代码\n- 大文件处理能力不足\n- 多次聊天\u002F交互之后偏离初始目标\n\n在年初到年中的时候，AI生成的代码仍然需要很多手工调整，并且需要严格review才能采用。\n\n但在2025年末这个时间点，随着GPT-5 Codex系列、Gemini 3 Pro、Claude Opus 4.5系列模型的发布，以及AI编程工具的进一步进化，上面这些问题已经基本不存在了。AI写出的代码大部分也能经得起review，需要改动的部分不多。\n\n我现在的工作流程：\n\n- AI编写文档，包括需求描述和技术方案\n- 和AI一起review和修订文档\n- 让AI按文档编码\n- 简单测试后提交代码\n- 合并分支前统一review当前版本的所有改动\n\n可以看到，这里面已经几乎没有手工编码的过程了。\n\n虽然，在review的时候仍然能发现一些问题，有时候甚至是非常严重的安全问题。但整体来讲，程序员的核心工作——编码已经被AI替代了。\n\n这也使我反复在思考：我算是主动结束了自己的编码生涯，但这种主动结束，与当下这个时间点的被动结束，似乎结果并没有太大差异。\n\n于我而言，并不是一件坏事，反而我可以在相同的时间内产出更多的产品。但对于业界这么多程序员来说，将面临一个形式严峻的转型周期。\n\n> 做点AI相关的东西吧，无论它在产业链上的哪个位置，要入局。程序员真的做不久了。\n\n这是我前几天和朋友说的话，与大家共勉。\n\n## 关于生活\n\n写到这，我往回翻了一下，似乎缺少了一部分，叫生活。在往年的总结中，无论它叫什么标题，多少都会涉及一些，但今年，我完全没有想起来这个标题。\n\n这一年的经历，我也见到了更多真实世界的人和事，就像是从象牙塔中出来的感受一样。\n\n刚开始来办公室办公的时候，我发现WiFi有问题，但是电脑用的有线网络是正常的，于是自己搭了一个小路由出来。但我在做这一切的时候，一直在担心一个问题：这个网络不会有准入认证吧？后面证实，是我多虑了。\n\n我后面还写过一件在外面碰到的事：\n\n> 在霸王茶姬坐了会，一个有趣的观察： 柜台外卖出餐区有根充电线，有外卖员等餐的时候充一会；有外卖员直接仓库去取纸巾，打开来补充到盒子里给负责打包的小姐姐用。人和人的连接是如此自然又广泛，对比之下，大厂里的各司其职好无趣。\n\n这些事情我也经常会回味：也许我身上确实有一些“不食人间烟火”？尽管我会极力避免，但有时候仍然免不了以一种之前养成的固定思维去思考周围的一切。\n\n而关于生活本身，好像也并不需要专门剥离开来单独讲。\n\n想起之前看过的一句话：好像离职之后，就不需要旅游了。\n\n以前上班的时候，我也非常向往旅游，去年也勉强算是自驾了半个中国。但今年我却确实没有想出门去外地的冲动了。\n\n也许我的感受和上面这句话是类似的，只是有不同的表述。我现在的生活是自己选择的，每一个部分都由我自己主导，至于它是叫公司、上班、创业、在家、生活、娱乐、读书、体验，并不是那么重要了。\n\n> 标题来自彩虹合唱团《我歌唱的理由有很多》其中一句歌词：我歌唱的理由总是我。顺便纪念2025年终于听到了彩虹合唱团的现场演出。\n",{"id":100,"type":7,"slug":101,"title":102,"date":103,"category":28,"tags":104,"body_markdown":107,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},98,"a-long-planned-resignation-a-review-of-my-career-part1","一个蓄谋已久的离职——我的职业生涯回顾（上）","2025-12-30 15:00",[105,106],"离职","职业生涯","\n从上家公司离职已经接近两年了，但这两年的时间里，时不时会有朋友询问：你到底为啥要离职的？\n\n我一直想写一写，但十几年的职业生涯，加上反复思考好几年才做出的决定，个中细节千丝万缕，实在难以尽数，因此迟迟未能动笔。\n\n临近2025年的年末了，在过完这一段时间之后，我也真的要走上一段新的旅程，因此总结一下之前的职业生涯也是个合适的时间了。于我自己而言，也算是对一段经历的交代。\n\n\u003C!-- more -->\n\n## 你要我 我就一定来\n\n大四上学期的某一天，我不记得具体是9月还是10月了，总之月亮非常圆。我拿着相机在学校的一个角落里拍月亮。\n\n在此之前的几天，每天都在紧张地进行校招，不是跑宣讲会就是在面试。\n\n我记得迅雷为发了校招Offer的同学举办了一场宴会，在候场的时候我碰到了另一位同学，他当时很自信地说“年薪低于10万我根本都不会考虑的”。而我当时想的是：年薪10万吗？这么高吗？能给我个差不多的Offer就行了吧……\n\n在拍到了上面这张月亮不久，我就接到了一个来自腾讯的电话：我们这边是腾讯CDC，你的学姐推荐了你，想问一下如果发Offer给你，你是否会来？我记得我回复得非常肯定：如果你们要我，我一定来。\n\n后来我还拿到了一些其它的Offer，并且去了阿里总部参加他们的校招生活动。说实话那个活动给我的印象挺好的，也见到了一些业界大牛。但当时我也明确地告诉了负责人：尽管你们的薪酬最高，但我只是来参加活动，不会入职的。\n\n当年的12月，我推掉了其它所有的Offer，来到了腾讯。这便是职业生涯的开始。\n\n## 优化下这个执行6秒的SQL吧\n\n入职的第一个项目是PHP的，项目已经写完第一个web版本了，准备一两周内上线。我和另外2个实习生一起进来做上线前的修复和优化。\n\n我印象最深的是当时碰到了一个问题，页面上一个筛选框返回结果非常慢，需要6秒以上，我需要把它优化得更快。当我打开代码看到SQL的时候，我看到了一个10几行的，带各种联表和子查询的复杂SQL。\n\n然而我从来没有写过PHP，也没有写过多于2行的SQL。\n\n好在腾讯的宵夜很给力，每天不要钱狠狠吃，完了晚上还每个楼层发面包和可乐。吃饱喝足就可以猛猛加班。\n\n也就一两天的时间，这俩不太会的东西都解决掉了。我记得那个接口当时是优化到了1.2s左右。\n\n后来这个系统也就做顺手了，上线之后我们立马着手又改了一个大版本。可以说在腾讯的生涯都与这个系统脱不了关系。中间也产生了非常多有意思的事情。\n\n## 有专业的后端小伙伴了\n\n我不记得为什么，好像有一些断断续续的时光中，有些系统或者模块只有我自己在维护了，经常需要自己写完前端然后再去写后端，然后自己和自己联调解决接口的问题。\n\n直到后来又入职了一位专业后端，事情开始变得顺利起来。我第一次发现前后端接口约定非常轻松，而且在碰到问题的时候只需要发一条消息或者喊一声，大家就能快速解决问题。\n\n这是我第一次感受到专业的力量，也逐步让我形成了一些面向问题的协作习惯：即有问题的时候首先思考如何能快速解决，并不是任何时候都需要先纠结这是谁的问题，如何重新设计一下更合理。\n\n当然，这位后端的小伙伴后来也成了多少年的好朋友，也是在他的促成下才开始了富途的工作经历，这是后话。\n\n## 对外要解决问题 情绪问题自己解决\n\n我自己都差点忘了，2010年代iPhone和iPad是很火的，做用户体验的很多人都在研究这个新家伙的交互应该怎么做，能玩出什么样的新花样。\n\n我也小小地参与了一下，当时做了一款使用iPad联机签到的应用。iPad + 离线 Web App + 触控操作，在当时也算是技术非常先进的了。这套系统后来在一个用户体验的行业大会中进行了试用，效果也非常好，于是更多的会场开始使用它。\n\n我记得某天突然接到了一个电话，是一位高管的助手打过来的，说我们的系统在现场使用时有问题。\n\n你听过那个段子吗？当你怀疑程序员的代码有bug的时候，程序员会说“不可能吧，我这里是好的啊，你那边用得有问题吧？”\n\n这其实并不止是段子，我当时的反应也差不多。后面这通电话逐步进入无效对话的状态，而我则越说越激动。\n\n我记得这件事最后是我的一位导师出来帮忙平息的，具体对对方是道歉还是安抚什么的有些不记得了，只记得最后对我说的：对方是用户，你需要解决对方的问题，即使是对方使用的问题，也不应该对对方发脾气。\n\n我在此后的很多年，都经常回忆起这件事情，每次都会觉得汗颜。\n\n## 我可以不在工位工作吗？\n\n在腾讯的最后一年，我基本上处于“单机工作”的状态。也就是我的工作不需要对接上游，也没有下游，也没有同一项目协作的小伙伴。如果要打个比方，多少有点像如今的独立开发者。\n\n我需要自己去收集反馈，确认需求，然后自己去实现和上线。但事实上如果我不这么做，也并不会有人批评我。\n\n我时常在翻产品的反馈，有一天我拿出了之前有人反馈的一个比较大的问题，感觉我需要重新梳理工作场景，才能真的明白它背后的实质。\n\n于是那天我小心翼翼地给领导发了一条消息：我明天想去另一栋办公楼调研一下用户，可能不来这边办公室了，可以吗？\n\n第二天我如愿去做了这个调研，当面观看了用户是如何使用我们的产品了，也明白了之前反馈的内容到底是在说什么。\n\n这件事情我也一直记着，我清楚的记得当时的使用场景，但它的意义却并不是因为产品本身。我第一次感觉到，我可以自己对自己的工作负责。我不需要向公司或者领导证明我在工作，也不需要等待别人的安排，更不需要向别人汇报成果。\n\n为职责而工作是比为职位而工作更心安的方式。\n\n## 我要拯救我的职业理想\n\n这个标题是我曾经对猎头说过的话（这个猎头后来也成了朋友）。从腾讯离职之前，我手上已经没有什么正经项目在做了。当时身边的小伙伴也都在转型，大家也在各个项目之间调来调去的。\n\n这是一种非常好摸鱼的状态，但不是我当时想要的。我还是希望能碰到更多的实践机会，能学习更多的知识技能。\n\n于是就这么走了。\n\n我记得当时和一些人聊过，我并没有想好要去哪，只是想好了我要走。当时面试了支付宝，我感觉面试的表现是很好的，但可惜他们没有继续推进，直到1个月以后才接到下一通电话，彼此我已经在新公司入职了。\n\n很多人也知道，新公司就是富途，也是前面提过的这位后端朋友（第二次出场）介绍的。关于在富途的工作感受，我在那一年的小结中写过这么一段：\n\n> 忙\n>\n> 在北京瞎晃了一个星期之后，7月7日，正式来到现在的公司。虽然已经有心理准备，但工作强度仍然非常大。入职大半年，一直保持非常忙碌的状态，而且预计这种状态还将持续很长时间。\n\n年末的时候，那位猎头朋友问了我一次：你觉得在富途拯救了你的职业理想了吗？\n\n我的回答是：是的，非常好。虽然非常非常忙，几乎每天加班，而且是大小周，但是我之前所储备的知识都找到了用武之地，我所接触到的团队协作在这里有了实际体会。\n\n到这里，故事就进到了第二篇，关于富途的工作经历。\n",{"id":109,"type":7,"slug":110,"title":111,"date":112,"category":11,"tags":113,"body_markdown":116,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},139,"a-frustrating-experience-with-imap","聊一聊与邮件协议IMAP的一段经历","2025-11-04 11:45:00",[114,115],"IMAP","邮件协议","\n> 这不是一篇枯燥的技术文档，应该可以读得下去。\n\n## 引子\n\n很久没更新内容了，一直觉得自己没有资格写太多东西来“教育”大家，因此经常开天窗。\n\n最近见了一些朋友，也读了一些朋友的文字，也开始有了一些新的思考。也许我不需要像写技术文档一样来写文章，也许更随意的一些表达会更真诚，也许我只需要记录一些自己想法和感受就好。\n\n刚好最近花了两三个月的时候折腾完了IMAP协议，好像一块压在胸口几个月的石头终于被搬开了，确实也想写点东西，就当和朋友们聊聊天。\n\n\u003C!-- more -->\n\n## 一个非常古怪的工具：邮箱\n\n是的，之所以会涉及到IMAP协议，是因为我在做一个邮箱产品，如果从代码库中第一次提交算起的话，已经做了快5年了。对，我们要聊一个很重要的问题：为什么是邮箱？\n\n放在2025年来看，邮箱是一个非常古怪的工具。\n\n首先，它是为数不多还在使用分布式架构的应用之一。你可以选择任意一个邮箱服务商，来与全世界任意一个邮箱账号通信，而不必拘泥于某一个服务商。\n\n其次，邮件相关的通信协议非常古老，甚至可以看到远古互联网的影子。假设一下，你想要通过网络发送一封邮件给朋友，你会怎样来通信？\n\n- 你好，我是TooBug，我想给我的朋友发送一封邮件（ELHO TooBug）\n- 好的，TooBug，请告诉我你的邮箱地址（250 ok）\n- 我的邮箱地址是toobug@tinkmail.me（MAIL FROM：\\\u003Ctoobug@tinkmail.me\\>）\n- 好的，请继续（250 ok）\n- 我朋友的邮箱地址是support@tinkmail.me（RCPT TO：\\\u003Csupport@tinkmail.me\\>）\n- 好的，请告诉我邮件的内容（250 ok）\n- 邮件内容是“你好，朋友！”（DATA ......）\n- 好的，TooBug，我已经帮你把邮件发送出去了 （250 ok）\n- 谢谢，再见（QUIT）\n- 再见（221 bye）\n\n这就是发送邮件用的SMTP协议。它可以用人类语言来描述，几乎没有什么技术门槛，四十多年前，人们就是这样发送电子邮件的。\n\n一个如此古老且几乎没怎么升级过的应用层协议，即使有很多潜在的问题，但直到今天仍然在被广泛使用，这实在是令人惊讶。\n\n最后一点很古怪的是，过去二十年，几乎所有的互联网应用的形态都发生了巨大的变化，但唯独邮箱是个例外。\n\n我看到\n\n- 社交产品从BBS、Blog、微博、SNS网络一路演变到微信之类的超级应用\n- 内容消费产品从门户网站、RSS阅读器一路演变到今日的短视频、短剧平台\n- 协作办公产品也从单纯的即时通讯一路演变到今日的会议、文档一体化协作平台\n\n唯独邮箱应用的形态几乎没有什么变化。我们依然在使用Outlook、Thunderbird之类的邮箱客户端，而所有的Web邮箱也几乎都长得和这些客户端一模一样。\n\n你说说，是不是很古怪？\n## 邮箱产品的机会和挑战\n\n如果你读到了这里，应该会微微点头：确实，邮箱好多年没有变化了，那邮箱产品到底有什么机会呢？\n\n稍微思考一下就能发现很多普遍但不合理的事情：\n\n- 钓鱼和欺诈邮件如此普遍，但邮箱服务商却几乎没有为用户提供有价值的辅助判断工具，甚至有很多问题正是由于邮件展示的形态所导致的\n- 邮件几乎没有任何协作和任务管理功能，哪怕是标注稍后处理这样简单的功能也没有\n- 邮件的回复和转发链条如此混乱，阅读体验如此之差，但邮箱服务商却几乎没有提供任何工具来改善\n\n这里面能列出来的点还有非常多，每一项都意味着机会。\n\n但是，世上的事哪有这么容易的呢？几十年没有变化，有可能是有人忽略了一些事情，但也有可能是背后隐藏着很多死路。\n\n以我的能力，尚不足以靠推演来判断这些机会和陷阱到底在哪里。我只能说，看到了有人在尝试改进这些产品形态，也获得了一些成果。\n\n而最重要的是，我认为这里值得做出一些改变。先让改变发生，进而产生价值，最后收获成果，道阻且长。\n\n## 关于IMAP\n\n聊回IMAP。这是一个客户端用来收取邮件的协议，它也是一个基于文本的协议，但是复杂度却要高非常多。要完整实现所有的能力，需要先读58个RFC技术文档，然后一一用代码实现它们。\n\n我在2023年基于开源的wildduck模块实现了一版IMAP协议，只包含了最基本的能力。今年，我的邮箱产品有了一些来自海外的用户，并开始反馈IMAP的问题，于是我决定暂停一下，先把IMAP好好修一下，再继续其它特性的迭代。\n\n我从8月份开始啃IMAP协议的文档和实现，过程无比艰辛，几乎用上了我之前工作中所用到的全部的调试手段：\n\n- 打日志、打断点\n- 用WireShark抓包\n- 搭MITM代理抓包\n-  用Nginx搭建TCP代理来抓包\n- 自定义DNS服务器来调试移动端\n- 使用纯TCP协议来搭建mock服务器确认问题\n- 使用AI协助分析代码实现和数据包\n\n总之，过程非常艰辛，很多时候我认为完全没有问题的地方，客户端就会罢工。因此也时常会陷入自我怀疑的情绪中：是不是我不应该选择邮件这么难的一个领域？是不是我真的很不擅长协议调试？是不是我其实掌握不了这么复杂的协议？\n\n你知道，人一旦陷入自我怀疑的情绪中，就会带动方方面面的状态都变得很差：脾气不好，没有耐心，身体状态很差等等。\n\n这并不是我所期待的生活状态或者工作状态，因此一边被这种情绪所控制，一边又得不停安慰自己：没事的，多给自己一些时间，没有bug是修不好的。就像以前上班的时候，也经常碰到让人很绝望的bug，但最终每一次都会修好，这次也不例外。\n\n这个过程中也碰到过非常无语的事情，比如QQ邮箱的客户端，自己没有遵守规范，在请求时使用了小写的`uid`，却在碰到服务端返回的小写`uid`时直接罢工。大有一副“我这么做可以，但你这么做就是你的不对了”的面孔。以至于我一怒之下专门写了一个帖子罗列QQ邮箱在协议实现上的种种问题。\n\n好在，最终我找到了这些兼容问题，完善了这个协议的实现，最终让主流邮件客户端都能兼容。那天是10月29日，我发了一条推文：\n\n> 继续磕IMAP协议，又一个月过去了，终于可以告一段落了。 抓包和调试协议这个事情让我沮丧和自我怀疑了几个月，好在一点一点扒出来了。 现在请叫我IMAP协议专家，没有任何AI可以在IMAP协议实现上挑战我的地位！\n\n是的，这修的不是IMAP协议，而是生活呀。不急不躁，慢慢过，都会好的。\n",{"id":118,"type":7,"slug":119,"title":120,"date":121,"category":28,"tags":122,"body_markdown":124,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":125},21,"q1-drama-movie-report","2025 Q1影视报告","2025-03-31 13:00",[123],"影视","\n2025年第一个季度已经过完，记录一下这几个月看的影视剧。\n\n> 注：文艺作品的观后感难免主观，行文时也不会像论文一样字斟句酌，如有不适跳过即可。\n\n\u003C!-- more -->\n\n## 纪录片《行星》和《太阳系》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F01.jpg)\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F02.jpg)\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F03.jpg)\n\n两部都是关于太阳系的纪录片，其中《太阳系》是今年新出的。两部都出自BBC，由布莱恩·考克斯教授主讲。\n\n没有特意去关注评分，按我的感受来推测，评分应该是不错的。两部记录片侧重点有所不同，前者按离太阳距离的远近依次介绍了八大行星，当然还穿插了小行星带和柯伯伊带，后者则是以自然现象（火山、风暴、雷暴、磁场、极光等）为线索，穿插介绍各个星球。\n\n一些感受：\n\n1. 因为实拍画面非常少，大部分画面应该是电脑动画，画面做得非常精美，让人真的身临其境。看的时候有一种失重了的漂浮感，同时有一种因远离了熟悉的地球带来的恐慌感。\n2. 我对太空的了解真的太有限了，基本上只知道有八大行星（学的时候是九大行星），别的一概不知道。看了这两部片才知道原来有这么多的知识。比如水和冰的分布极广，连离太阳最近的水星上都有冰；比如小行星带居然有这么多形状怪异的天体；比如火星原来已经停止喷发了，通俗地讲就是“死了”，而它早期和地球的环境几乎一模一样；比如行星周围还有那么多卫星，甚至有一些可能有液态水……\n3. 人类对太阳系的了解也才刚刚开始，像水星、金星都只有一个探测器到达过，而天王星之类的行星甚至只有过几个小时的观测时间，但即使是如此有限的观测，也已经有了非常非常多令人意外的发现，那么假以时日，再过二三十年甚至一百年，一定会有更多科学发现。\n\n最后，和所有的太空活动一样，一旦把尺度放到大星系乃至宇宙这个级别，就会觉得人类实在是微不足道。所以我感觉仰望星空实在是一种很好的抒解心情的渠道。\n\n## TVB港剧《香港爱情故事》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F04.jpg)\n\n\n这部剧是在电视上翻列表翻到的，看评分挺高的，就看了下，觉得还挺不错的。\n这部剧的背景设定是一个香港普通家庭：经常吵架的老两口，一个为婚房发愁的哥哥，一个离家出走独来独往的大妹，一个还在上大学的小妹。场景比较真实，豆瓣很多评论说这就是普通香港人的日常。\n\n比较吸引我的一些点：\n\n1. 整体比较朴实，无论是人物还是情节，都没有刻意去夸张。在表达上自然有故意设定的巧合之处，但整体情节还算自然。\n2. 温情，无论人物在经历怎样的苦难，还是时时刻刻在体现人与人之间的温情。即便是传统剧情中的坏人，也有真实温情的一面。尽管他们并不会做出感人至深的事情，但细节出体现的是人的修养。\n3. 有自己独立事业的人，尤其是女性，真的是浑身发着光的。\n\n探讨的内容还是挺多的，香港的高房价以及高房价下老百姓的生活状态，人对幸福的定义，家人如何相处，如何建立恋爱关系，事业和梦想，亲密关系的处置，人在家庭中的角色和责任感等等。\n\n## 迪士尼动画电影《冰雪奇缘》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F05.jpg)\n\n一直没有完整看过《冰雪奇缘》，前几天在家陪娃才一起看了一遍。\n\n从故事上来说，还是属于比较经典的童话类型的：一些快速的背景设定，比较直线条的剧情，最终落脚到爱可以解决一切问题。成年人看起来会觉得有些简单和无聊，但是正因为简单，小朋友可以比较好地理解。娃自己从头看到尾，也大概看懂了。\n\n让我印象比较深的还是节奏的安排，还是一如既往的“迪士尼”风格。冰雪是一个很容易产生浪漫感的东西，它本身晶莹透亮，它反光时绚烂夺目，又可以配合滑雪、跳跃等动作产生快速流畅的镜头画面。我在看的时候忍不住感慨：迪士尼的动画真流畅啊。这些场景和安排和镜头的设计真的可以弥补日常生活的无趣。\n\n## 电影《孤注一掷》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F06.jpg)\n\n当年很有影响力的一部片，据说是这部影片揭开了缅北电诈园的真相，然后促成了后续的一锅端。实际情况可能会更复杂，我相信不太可能靠一部影片来完成反诈。\n\n这部电影在院线下映后，有长达一年多的时间在线上平台无法观看，肯定是有一些敏感了，最近才重新在线上上架，据说是修改了涉及海外真实地点的地方，将具体的地点架空了。\n\n说回电影本身，我觉得还不错，故事是完整的，情节也不拖沓。但实际上我看完之后还是会感觉这部电影太过美化电诈罪犯了。\n\n首先诈骗主角（王传君饰）在影片中并没有被塑造得特别可恨，尽管在电影中枪杀了一个人，但并未过多折磨。在形象塑造上，还是让他显得有一些文雅，有一些爱（对孩子），甚至对女主角最恶心的折磨也未能得逞。事实上这些人视人命如草芥，而为了杀鸡儆猴，在惩罚人的时候一定是极尽折磨，让人受尽痛苦的。\n\n其次是片中的帮凶梁安娜（金晨饰），也就是女主角，在影片中被塑造成一个纯纯的受害者，去骗别人只是为了让自己脱身，甚至在和受骗对象聊天的时候暗示自己被绑架。我觉得这也是在弱化诈骗对人性的摧残。\n\n一边是高额的利益（钱），一边是各种生理和心理的折磨，普通人必然是很难假装顺服而保持内心清醒的。实际上这种情况下一定会激发人性中恶的一面，人会首先变成恶魔，在犯罪发生的时候很难说这完全是因为外界原因导致的。\n\n最后是被骗者的选择和编排。影片选择了一个富二代，而他被骗的方式是赌博。\n\n这样的安排也会进一步削弱诈骗的残酷性。如果你让一个底层百姓，被一群人通过弱智的话术乖乖把养老钱看病钱转给诈骗者，那观众一定会恨得牙痒痒。而如果让一个富二代把钱赌输了，那多少会有一些“活该”的感受，作为观众，共鸣感远远不够。\n\n作为一部影片，它需要考虑和平衡的方面很多，包括很现实的审查尺度。因此能整理影片在表达上的克制。但从观感上来讲，总体还是平淡了一些，略微有一些失望。\n\n最后不可否认的是主角们的突破，张艺兴和金晨都在角色的丰富性上有所延伸，而且演得还不错。\n\n## 《唐朝诡事录之西行》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F07.jpg)\n\n接着说剧。最近看的拉的周期最长的剧应该是《唐朝诡事录之西行》，也就是唐诡系列第二部。因为有些画面不适合小孩子看，所以断断续续看了半年才看完。\n\n从前往后一路看下来，在我心里的评分也是一路下降，到最后已经看不下去了。\n\n好的地方就不说了，就说说不好的地方。\n\n首先是双主角的设定，并没有带来实质的正面影响，反而需要处心积虑地安排，每一段剧情谁应该下线，怎么下线。这种安排也模糊了人物的设定，比如卢凌风本来就是个武将，现在也要一边当武将，一边当神探，有些为难。\n\n其次是很多故事结尾很草率，浪费了前面的铺排，比如摩家店，本来是个很精巧的密室案，前面铺排也很不错，结果最后一顿混战留下一地鸡毛。\n\n还有剧情上的奇怪，说不上来，好像到最后在疯狂上价值，探讨人性 感情 生死 价值观等等，实在没有必要。\n\n演技上，几位主要一如既往地演技差，然而一查履历，竟然大多还是科班出身，实在失望。\n\n另外这一季几位主角已经几乎没有分离的场景，那么这个团里的分工就显得更加模糊，尤其是两位女性，差不多就是花瓶了。\n\n## 年代剧《小巷人家》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F08.jpg)\n\n看这部片是因为它的评分很高。通过一部分影片细节来看，年代还原做得还是比较到位的，几位主演的演技也非常在线。\n\n但这部片我没有看完，给我的感觉是“在说他们的故事，好像和我没什么关系”。我仔细思考了一下这种感受的来源，也在脑海中对比了其他的一些年代戏，例如《平凡的世界》《大江大河》《鸡毛飞上天》等等，问题可能还是出在了两个方面：\n\n1. 对年代背景的交代不足，导致观众不能很好地感知人物的动机。例如为什么对高考如此重视，为什么买电视机这么重要等等。\n2. 对冲突的描述不够深入，这部剧没有抽象出主要的冲突情节，从而导致整体观感非常像故事切片。很多情节都是几十分钟就从头到尾交代完了，特别像小学生作文写“今天我扶老奶奶过马路了，非常难忘”。\n\n## 《无所畏惧之永不放弃》\n\n![](\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F09.jpg)\n\n最后写一部电视剧《无所畏惧之永不放弃》，也就是《无所畏惧》第二部。\n\n这部剧我得给很多的正面评价：\n\n首先是剧情上下了一些功夫了，开篇就是两位女主角从律所离职，在架构上打开了编剧的空间。因此主角们得以在第二部有更丰富的剧情上演。并且第二部从头到尾有一条埋伏的主线，通过其他的案子旁敲侧击，一步一步揭开这条线，剧情的安排上挺不错的。\n\n其次是演员的演技，尤其是啜妮，张驰有度，表现自然，非常棒。\n\n最后，我觉得比较有意思的是演员们碎嘴的画面。这部剧有非常多对手戏，有同行的，有同伙的，有情侣的，很多时候能明显感觉台词说着说着就放飞自我了，挺有意思的。事后也了解到，在拍摄的时候的确有很多词是演员们即兴加上的。\n\n当然，这部剧也有它的问题，比如主光环过于突出，显得有些不真实。而且和其它的职业剧有一样的问题，即主角是什么职业，这个职业就是无所不能且最有道德最有情怀的。\n\n总体上我还是挺喜欢这一部的。\n","https:\u002F\u002Fassets.toobug.net\u002Fassets\u002Fbmm\u002F2025\u002Fq1-drama-movie-report\u002F01.jpg",{"id":127,"type":7,"slug":128,"title":129,"date":130,"category":28,"tags":131,"body_markdown":133,"permalink":18,"excerpt_src":18,"media_type":18,"media_title":18,"media_author":18,"media_url":18,"rating":18,"layout":18,"pv":19,"admin_only":19,"created_at":20,"updated_at":20,"deleted_at":18,"status":21,"cover":22},100,"three-big-things-in-2024","2024年的三件大事","2025-02-15 18:00",[132],"年度总结","\n2024年的总结落笔比较晚，但是其实在心里期待这一刻很久了，因为这一年的总结非常好写，用三件大事来概括即可：\n\n1. 离职\n2. 装修打柜子\n3. 深圳-新疆自驾往返\n\n其中打柜子和自驾游这两件事之前都发过文章，多少有过一些介绍。而离职我现在还不想写，也许在未来某个时间点会再认真写一写这件事。\n\n因此好像也没有更多的文字可以写，那就这样，喜提最短年度总结。\n",190]