Lightroom 缺少 HEIF 编码器的问题用了一种曲线的方式解决了
- 经过文件夹比较,最后定位到一个 DLL 文件差异
- 从旧系统
C:\Users\Paul\AppData\Local\Adobe\CameraRaw\Support\libde265-1-0-8-900772c3.dll复制一份到新系统相同路径下 - 或者直接装正版应该也可以解决
- 我猜大概率是因为破解版做了限制,不会自动联网下载安装,也有可能是国内网络环境导致
下午和老妈去了香山湖公园散步,我又带上了小手办练习拍照
- 这玩意因为比例问题,有时候和现实格格不入,比如显得植物非常巨大什么的
- 主要还是多尝试构图、自然光影的运用什么的吧
- 有时候还是挺佩服我妈的社交能力的,她能和公园里面钓鱼的小伙正常聊天
- 于是家里又来了两只小罗非鱼,就是鱼缸空间小确实很紧凑
晚上有位亲戚给我妈打了一通电话,在询问我是否会程序开发
- 说是他有个朋友打算做 AI 电商领域,在寻找会技术的人才
- 我就二话不说自报家门了,做前端开发的
- 对面似乎也不太懂技术,但表示我可以发个简历过去给他朋友看
- 于是我又花时间微调整了一下简历,但其实我能感觉还是有那么一些难度的
- 毕竟“AI 电商”这个词其实太广义了,简单点可能是做官网对外销售产品,复杂点可能就涉及到电商平台、物流对接相关的东西,偏后端了,这方面说实话我还是挺陌生的
解决 Lightroom HEIF 问题 / 散步拍照 / 亲戚介绍工作





Memento 项目细节优化与功能迭代 / 服务器安全自查
Memento 项目细节持续优化
- 移除原先对话的软删除逻辑
- 需求整理,AI 同步文档记录
- 新增密码保护访问对话功能
- 拆分详情页组件模块到多个文件
- 菜单增加对话链接分享功能
修复生产环境打开私密对话抛出“Unexpected Server Error”错误
- 解决方法是用
throw new Response("Not found", { status: 404 })这种方式
- 解决方法是用
优化输入框增加
autoComplete="off"属性确保不会出现奇怪的自动填充- 关于 autoComplete 的 MDN 文档说明
刷到一篇小红书:国内网络保护太好的普通人,根本不配出海
- 主要提示的是没技术就 Vibe Coding 做出海产品的人会遇到多大的安全事故
- 于是我紧急去看了看自己服务器的配置,最核心的 SSH 应该是没问题,都是必须走密钥
- 不过端口号方面倒是没太注意,需要再确认一下,确保暴露出来的只有必要 Web 服务
Lightroom 不能打开 HEIF 格式的问题依旧没解决
- 摄影群友 @奏 提示我试试原厂的软件 Imaging Edge
- 用它打开 HEIF 图还提示需要提供相机编号激活,指定有点说法的
- 其实它还是和 LR 自身毫无关系,并没有解决这个编码器缺失的问题
- 他还提出可以试试 Capture One
- 可问题在于我现在资产和半成品全在 LR 上,这才是最恶心人的

Memento 项目细节持续优化,新增暗夜模式、排序切换及永久删除功能
Memento 项目细节持续优化
- 新建菜单增加从备份上传入口
- 优化首页、Markdown 渲染等部分样式细节问题
- 新增排序方式切换,「最后更新/最后创建」两种模式
- 改善部分登录态切换导致的近期对话状态不更新问题
- 新增 UI Playground 页面,方便对设计语言的实时验证和后续优化
- 基础 UI 组件新增过渡动画效果
- 新增暗夜模式配色及对应切换组件
- 新增永久删除对话和附件功能

Memento 项目发布准备 / 完成备份功能 / 部署与修复
主要是为 Memento 项目的第一次发布做准备,发布前有一个非常重要的问题,就是我本地的测试数据有些是真实的应用需求,于是就让 AI 设计了一套备份导入导出的功能。
导出可能相对简单,只需要查一次表就行,然后包装成一个压缩包放包括聊天时的头像/附件等。导入这里面最麻烦的逻辑主要是数据改写,比如原先的 ID 在一个新的数据库表里避免重复和异常,需要生成一个新的再替换进去,AI 在这块有很充分的理解,甚至我根本没有刻意和它说,它自己就推理了出来并且良好的实现了。
上线到服务器时甚至服务器根本没有装 NodeJS,于是也花了点时间简单配置必要环境,依旧是参考自己 从零开始部署 Ubuntu 服务器环境 这篇老文(其实也更新过),到了最后的关键时刻,PM2 运行失败了!
pm2 log memento-web
vim /var/log/memento/web.error.log
2026-08-16 13:36:19 +00:00: /root/memento/apps/web/node_modules/.bin/react-router-serve:2
2026-08-16 13:36:19 +00:00: basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
2026-08-16 13:36:19 +00:00: ^^^^^^^
2026-08-16 13:36:19 +00:00:
2026-08-16 13:36:19 +00:00: SyntaxError: missing ) after argument list
2026-08-16 13:36:19 +00:00: at wrapSafe (node:internal/modules/cjs/loader:1804:18)
2026-08-16 13:36:19 +00:00: at Module._compile (node:internal/modules/cjs/loader:1846:20)
2026-08-16 13:36:19 +00:00: at Object..js (node:internal/modules/cjs/loader:2003:10)
2026-08-16 13:36:19 +00:00: at Module.load (node:internal/modules/cjs/loader:1594:32)
2026-08-16 13:36:19 +00:00: at Module._load (node:internal/modules/cjs/loader:1396:12)
2026-08-16 13:36:19 +00:00: at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
2026-08-16 13:36:19 +00:00: at loadCJSModuleWithModuleLoad (node:internal/modules/esm/translators:372:15)
2026-08-16 13:36:19 +00:00: at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:244:9)
2026-08-16 13:36:19 +00:00: at ModuleJob.run (node:internal/modules/esm/module_job:439:25)
2026-08-16 13:36:19 +00:00: at process.processTicksAndRejections (node:internal/process/task_queues:104:5)pm2 log memento-backend
vim /var/log/memento/backend.error.log
2026-08-16 13:36:19 +00:00: Error: Cannot find module 'express'
2026-08-16 13:36:19 +00:00: Require stack:
2026-08-16 13:36:19 +00:00: - /root/memento/apps/backend/dist/main.js
2026-08-16 13:36:19 +00:00: at Module._resolveFilename (node:internal/modules/cjs/loader:1517:15)
2026-08-16 13:36:19 +00:00: at wrapResolveFilename (node:internal/modules/cjs/loader:1071:27)
2026-08-16 13:36:19 +00:00: at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1095:10)
2026-08-16 13:36:19 +00:00: at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1122:12)
2026-08-16 13:36:19 +00:00: at Module._load (node:internal/modules/cjs/loader:1294:5)
2026-08-16 13:36:19 +00:00: at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
2026-08-16 13:36:19 +00:00: at Module.require (node:internal/modules/cjs/loader:1617:12)
2026-08-16 13:36:19 +00:00: at require (node:internal/modules/helpers:153:16)
2026-08-16 13:36:19 +00:00: at Object.<anonymous> (/root/memento/apps/backend/src/main.ts:10:1)
2026-08-16 13:36:19 +00:00: at Module._compile (node:internal/modules/cjs/loader:1872:14) {
2026-08-16 13:36:19 +00:00: code: 'MODULE_NOT_FOUND',
2026-08-16 13:36:19 +00:00: requireStack: [ '/root/memento/apps/backend/dist/main.js' ]
2026-08-16 13:36:19 +00:00: }依旧是 AI 分析,前者是 pm2 配置问题,把 react-router-serve 可执行文件当作 JS 解析了,后者是因为 express 没有显式写入到 Dependency 里面导致直接运行 JS 时找不到依赖。
{
name: "memento-web",
- script: "node_modules/.bin/react-router-serve",
+ script: "node_modules/@react-router/serve/bin.cjs",
}其实我总感觉 PM2 的启动方式挺奇怪的,但是又说不上原因。既不是完全安装依赖+构建后执行 nest start,又不能不装依赖直接使用生成好的 JS 文件。
流萤手办摄影 / Memento 更新 / 沟通事故复盘与日志发布
- 逛了一下 P 站,看到一张铃兰的插画还不错,用 AI 扩了一下图改成手机壁纸了
收货了流萤的“春日手信”手办,并使用黑色衣服简单搭建了一个“摄影棚”
- 只需要两盏灯就可以拍得非常立体了,原片直出
- 这件价值不到 300 的手办精度还是挺不错的
- 相较于不断涨价的 GSC 黏土人,反而更有一些性价比,就是不可换配件和改变表情
为什么二次元这么好骗钱,我也好想搞二次元骗骗别人的钱啊
Memento 项目的消息渲染类型不根据对话类型做强行区分
- 原先设计 AI 对话统一用 Markdown 渲染,聊天记录只能用纯文本
- 目前“摊平”差异了,可以自由切换和选择消息的渲染方式了
发现昨天的一次讨论无意间变成了一件比较大的沟通事故
- 对面把我单删了,我把这件事情总结给了 AI 复盘,人与人之间的关系怎么就这么难维持呢
- 这次 AI 给我上的课让我收获了不少,做事还是得学会“圆滑”处理的能力
- 确实对于我这种程序员特质,挺缺乏这个的
- 当然有时候不要多管闲事更好,毕竟“好奇害死猫”啊
- 具体聊天记录在了 Memento 系统,明天考虑一下发布问题吧
- 更新:系统已发布,传送门 在此




续费十年域名 / 升级服务器 Gitea / 优化 Memento 项目
游玩《异环》
- 主要还是通过新活动刷完都市活力
- 成功喜提了游戏当前版本最贵的价值 8 KW 方斯的豪宅
续费手上的两个 com 域名
- paugram.com:个人博客都快有 10 年历史了
- binkic.com:团队的更是已经 11 年了
- 它们真的是见证了互联网从兴起到衰落
升级服务器的 Gitea 到 1.27.0 版本
- 阿里云安全警告提示旧版有漏洞,于是就去处理了
- 其实这台国内机器因为是 Windows,挺多运维的坑都没搞
- 又有点想换腾讯云,据说更便宜,现在没工作没收入,但开支还是这么多哎
持续调整优化 Memento 项目的设置面板与账户安全交互(AI 总结)
新增设置面板,登录后可以从首页或对话详情侧栏的用户菜单打开设置面板
- 采用响应式布局,桌面端左侧是菜单,右侧是固定标题栏和独立滚动的内容区域
- 用户设置暂时只读展示当前用户名,不扩展个人资料字段或多用户数据存储
- 用户设置目前只有修改密码功能,接入了现有后端接口
- 系统设置仅在当前用户为管理员时展示,接入现有数据库配置接口,覆盖站点、对话、媒体和 AI 四类
- 调整侧边栏搜索面板,整合“搜索”和“目录”功能,方便快速定位消息
- 优化 AI API Key 的存储方式,数据库加密存储,前端默认不展示
- 晚上没有去骑车,和老爸训练了几轮单杠就回家了
游玩《原神》7.0 至冬新版本
- 这个版本上线了很多新玩法,比如主角居然能持枪械战斗,有点过于现代了
- 新出的列车系统有点意思,算是有一定弥补枫丹寻轨船的不足了吧,铁路迷狂喜了属于是
- 和此前版本一样大版本都会领到一个新 4 星角色,这次是一位名为阿罗夏的蓝孩子


升级硬盘、清灰主机、重装系统
大前天下单的 SN7100 于今日上午收到,午饭休息过后下午开始拆机。这台主机从 23 年组装完毕到现在风扇都没有彻底大清扫过,我主要用布轻擦灰尘使其脱落,再使用小米的随手吸尘器统一清除。光是安装硬盘+清灰就已经花费了 1-2 小时了,况且我那巨无霸显卡拆一次也非常头疼,上螺丝固定也非常麻烦。
安装系统反而是最简单的,因为是固态硬盘,装系统都挺快的,没有无线网卡驱动的时候我拿之前的路由器做无线中继连接到主机上实现上网(因为搬到客厅又是大工程),激活主要是用了 MAS 这个项目完成,本以为之前用类似工具激活过重装系统也能用,实际验证并不能,不像我之前用华硕笔记本自带了一个家庭版的授权,怎么重装(只要是家庭版)都是能自动激活的。
软件方面,主要是按照之前 Code Style 上的来,这篇网站的内容在 AI 时代下其实都没多大价值了,因为个人风格的代码格式什么的,实际并没有什么提效作用,现在都是 AI 写了不是么。
数据迁移方面其实简单罗列一下大多数都无关紧要或者是有云同步了,就是 ZeroOmega 插件的配置、Clash 的订阅、SSH 的密钥信息、Hosts 配置,这几个相对比较重要,需要手动操作一下。

