nenufm.com

留声

写 AI、软件开发和日常折腾的工具,记录遇到的问题、踩过的坑和解决过程,也聊互联网见闻,以及工作之外的生活。

开发工具
从 1080p 到 2K、4K:博客高分辨率屏幕适配记录
记录博客参考 Shadcn 的分层布局方式适配宽屏:导航、卡片列表和文章外层在超宽视口使用一致的容器档位,列表从三列增加到五列;文章页保持 1080p 布局不变,并在 2K、4K 下同步放大正文与目录横向结构,让不同分辨率截图保持相同的内容边界和对齐关系。
WebTailwind CSSShadcn响应式布局查看正文
开发工具
把 Monorepo 里的几个项目拆出去,我是怎么保留 Git 历史的
记录我把客户端、服务端和设计资料从一个 Monorepo 拆到独立仓库的过程。重点不是 git-filter-repo 命令本身,而是怎样确认 202 个文件和 89 条提交没有丢,怎样保留 .env、日志和编辑器配置,以及什么时候才能放心删除旧目录。
GitMonorepo仓库拆分历史迁移查看正文
AI与大模型
Codex 使用 Luna 子代理的配置记录
按 Reddit 原帖记录 Codex 的 Sol 主代理和 Luna 子代理配置,包括 config.toml、模型目录、六个智能体文件与 AGENTS.md;用中文说明 default、explorer、worker、luna-low、deep、deep-read 的用途,并补充对话框里的 @智能体入口。
Codex子代理GPT-5.6 Luna多代理查看正文
开发工具
Taro 小程序弹窗抽屉的返回手势适配
记录 Taro 小程序半屏抽屉的两个交互问题:图标看得见却难以点中,系统返回又会直接离开页面。文章使用 44px 触控热区与 PageContainer 假页容器,让右滑返回、安卓物理返回键和代码返回优先关闭抽屉,并说明嵌套弹窗、遮罩动画与真机验证时容易踩到的边界。
Taro微信小程序PageContainer交互适配查看正文
开发工具
一次绕路:用 Hono 静态文件更新小程序里的 Markdown
记录一次将小程序协议 Markdown 从源码内置改为运行时加载的开发过程:最初绕到对象存储、版本清单和 JSON 包装,最后收敛为启动 config 下发路径、Hono/Bun serveStatic 直接提供文件。文章也说明 MIME 类型、Docker 复制和旧客户端兼容这些容易漏掉的细节。
开发工具
前台分页接口为什么要拆开列表与总数
一次 Taro 前台分页改造记录:从用单页条数猜测是否还有下一页,到发现列表接口每次返回 total 会重复执行 COUNT,最后将列表与总数拆成两个接口,并按筛选条件缓存总数,减少空页请求和翻页开销,同时说明排序、搜索、缓存键和新旧客户端的发布顺序。
部署与运维
Docker Compose 跨 Stack 复用 Bridge 网络
记录同一台 Docker 主机上的多个 Compose Stack 如何复用用户自定义 bridge 网络,说明 external 网络、项目网络命名和容器 DNS,并结合 Caddy 502 排查解释一个共享网络为何仍会产生多条 veth 虚拟网卡。
系统与网络
WSL2 的 VHDX 为什么只增不减
记录 WSL2 的 ext4.vhdx 随使用不断增长、删除 Linux 文件后却不自动收缩的问题,并说明如何找到默认发行版藏在 AppData 下的虚拟磁盘。文章给出我使用 C 盘 app 目录作为自定义安装位置的做法,以及通过 DiskPart 压缩 VHDX、把空闲空间还给 Windows 的完整命令。
系统与网络
WSL2 优化与管理
记录我在 Windows 上长期使用 WSL2 时保留下来的常用命令,包括发行版安装、导出与导入、systemd 和互操作配置,以及 zram 压缩交换。正文只保留实际使用过的配置、适用前提和容易踩错的操作,适合已经把 WSL2 作为日常开发环境的 Windows 用户。
系统与网络
WSL与Docker管理
记录我在 WSL2 的 Ubuntu 中安装 Docker Engine,并通过 PowerShell profile.ps1 把 docker 命令转发到 WSL。内容包括 USTC 软件源、Compose 与 Buildx、用户组权限、systemd 服务和常用验证命令,不依赖 Docker Desktop。
部署与运维
FNOS 开启 SSH 后的服务器初始化
记录 FNOS 开启 SSH 后作为 Linux 服务器使用的初始化和日常维护方法,包括公钥登录、Swap 与 ZRAM、数据目录软链接、备份恢复、网络检查和 Docker 权限配置;需要运行虚拟机、GPU 容器或数据库时,再按实际硬件配置 Intel IOMMU、NVIDIA CUDA 与 PostgreSQL。
FNOSSSH服务器初始化CUDA查看正文
AI与大模型
Codex Windows 沙箱中 curl 报 SEC_E_NO_CREDENTIALS 的排查记录
记录 Windows 系统 curl 在 Codex 沙箱中访问 HTTPS 时返回 SEC_E_NO_CREDENTIALS 的排查过程,通过对比 PowerShell、Node.js 与沙箱外请求,确认故障位于 Schannel 和受限执行环境之间,并给出当前可用的规避方法。
开发工具
Taro 微信小程序图片提前加载问题排查
记录 Taro 微信小程序中两类容易忽略的图片请求:弹窗只用透明度隐藏时 Image 仍会加载,Swiper 一次挂载全部子项时也会批量请求。文章给出条件渲染、相邻图片窗口、全屏预览 URL 复用、视频延迟挂载及微信开发者工具网络面板验证方法,适合排查页面未操作却产生流量的问题。
开发工具
博主对SEO搜索引擎优化的个人探索
记录个人博客从 WordPress 迁移到 Next.js 后的一次 SEO 整理:检查 75 篇公开文章的摘要、标题层级、旧链接和薄内容,并通过 Google Search Console 区分“已收录”与“能被搜到”。也记录关于页误设 noindex、站点介绍过时和中文大标题影响阅读的问题。
开发工具
Node.js 服务打包遗漏 bcrypt、Swagger UI 与 worker 的排查记录
排查 Fastify 服务使用 Bun 与 ncc 打包后遗漏 bcrypt 原生二进制、Swagger UI 静态目录和 worker 的问题。文章区分已打包的 JavaScript 依赖与仍需复制的运行时文件,比较两种打包器的差异,并给出 Windows x64、Node.js 环境的产物检查方法。
部署与运维
用 imagor 为 RustFS 对象存储接入按需缩略图
记录 RustFS 接入 imagor 的完整方案:应用服务生成签名 URL,Caddy 提供 HTTPS,Result Storage 缓存处理结果;在方形缩略图之外增加展示图和高保真图形规格,并说明原图保留、外部图片跳过转换、频繁变更资源不缓存及密钥轮换边界。
开发工具
Node.js 环境与包管理工作流
整理 Node.js 包管理工作流,涵盖使用 NVM 切换版本、查看和修改 npm、Yarn registry、调整全局安装目录与缓存,以及把 npm 12 降回 Node.js 24 自带版本。文章给出 where、npm config 和缓存检查命令,用于排查版本错位、镜像残留与 PATH 命中错误。
部署与运维
Next.js standalone Docker 镜像分层优化
分析 Next.js standalone Docker 镜像只改少量代码仍需推送几十 MB 的原因,说明静态生成与 standalone 产物如何让应用层失效。文章通过拆分运行时依赖和应用文件改善层复用,并给出 docker history、构建日志与推送输出的验证方法。
开发工具
Codex App 中 MCP 进程重复启动与无法回收问题排查
排查 Codex App 在没有调用工具时仍重复启动 STDIO MCP、任务结束后 Node.js 子进程没有回收的问题。文章结合 Windows 任务管理器、Codex thread 事件和本地配置解释一个可见对话为何出现多套 MCP,给出禁用闲置服务、缩小启用范围、重启应用及继续验证进程生命周期的可行方法。
生活与职业
生日快乐
新的一岁不用急着成为更好的人,先接住已经走到今天的自己。
开发工具
在 Codex 中接入 Chrome DevTools MCP:连接现有 Chrome、移动设备模拟与排错
介绍 Windows 下在 Codex 中配置 Chrome DevTools MCP,并连接现有 Chrome 调试端口检查页面。文章覆盖浏览器会话、移动设备模拟、控制台和网络请求读取、截图路径限制,以及配置未重载、只看到 about:blank、工具读不到 DevTools 模拟状态等问题的诊断方法。
开发工具
排查 Windows 动态端口与保留端口冲突
排查 Windows 服务监听端口时报 EACCES、但 netstat 看不到进程占用的问题,重点检查 TCP 动态端口范围、excludedportrange 和 MaxUserPort。文章给出 netsh 查询、恢复默认范围及重启验证步骤,适合 Node.js 等开发服务无法绑定固定端口时参考。
部署与运维
Docker 常用命令速查
整理 Ubuntu 上 Docker Engine 与 Compose v2 的常用命令,覆盖官方仓库安装、免 sudo、镜像和容器管理、日志监控、网络、数据卷、清理及代理配置。示例同时提醒删除镜像、容器和未使用资源的风险,适合作为日常运维速查。
AI与大模型
Codex CLI 使用笔记
记录 Codex CLI 从安装、登录到日常使用的完整流程,涵盖 Windows Shell 选择、非交互命令、沙箱和审批配置、上下文统计、MCP 与 Skill 管理、CodeGraph 和 Context7 使用边界,以及常见进程、终端和文档来源问题的排查方法。
开发工具
在 Codex 中接入 Cocos Creator MCP:安装、场景操作与验证边界
介绍 Windows 下安装 Cocos CLI、启动 Cocos Creator MCP 并在 Codex 中连接编辑器的流程,涵盖依赖构建、npm 12 原生依赖报错、9527 与 9230 端口、配置重载和场景操作。文章同时说明工具调用、场景保存与实际游戏运行验证之间的边界。
Cocos CreatorCocos CLIMCPCodex查看正文
开发工具
清理 Hyper-V 中无法删除的虚拟机残留
排查 Hyper-V 管理器仍显示旧虚拟机、但 Get-VM 与 Remove-VM 都提示找不到对象的残留注册问题。文章先确认管理员权限和 vmms 服务,再区分正常虚拟机对象、底层注册文件与独立虚拟磁盘,给出安全定位和清理思路,避免直接删除未知目录或误删仍被其他虚拟机使用的 VHDX。
开发工具
Python 环境与包管理工作流
整理 Python 解释器、虚拟环境和包管理工具的关系,给出 uv、venv、pip 与 conda 的选择原则。文章从确认 python、pip 路径开始,覆盖安装 Python、固定项目版本、创建环境、管理依赖和清理缓存,也说明 requirements.txt 与 CUDA 场景怎样处理。
Pythonuvpipvenv查看正文
开发工具
我为什么把 TypeScript 的 NodeNext 改成 Bundler
从 TypeScript 源码为何用 .js 后缀导入 .ts 文件说起,比较 NodeNext 与 Bundler 的模块解析目标,解释 Node 原生 ESM、rewriteRelativeImportExtensions 和构建器改写后缀的关系,并说明 Next.js、Bun 项目选择 Bundler 的理由。
TypeScriptNode.jsESMBundler查看正文
生活与职业
能够感受到幸福,是一种能力
幸福有时已经来到身边,只是人需要慢慢学会看见、投入,也允许一段好日子并不完美。
AI与大模型
Windows 下 Codex 的 Shell 使用优化
整理 Windows 下使用 Codex 时的 Shell 优化方法:升级到 PowerShell 7,按需补充 GNU Coreutils,并通过明确的提示词说明命令、管道、路径和环境变量规则,同时记录 WinGet 安装、PATH 刷新以及 Bash 语法误用等常见问题。
AI与大模型
使用 llama.cpp、Claude Code 和 Codex 搭建本地 Agent 编码环境
记录在 Debian 与 RTX 4090 环境中从源码编译 llama.cpp、下载并部署 Qwen GGUF 模型,再通过 OpenAI/Anthropic 兼容接口接入 Claude Code 与 Codex 的完整过程,包含长上下文、KV Cache、Jinja 工具调用、API Key、常见报错与验证命令。
llama.cppClaude CodeCodexAgent查看正文
生活与职业
交换机上的2.5G灯,为什么总是一秒闪一下
从交换机上节奏固定的2.5G指示灯说起,记录一次关于网口灯如何表示网络活动的小好奇。
生活观察交换机网络查看正文
AI与大模型
我常用的 Agent Skill
整理我在 Codex 等代码 Agent 中实际使用的 Skill,按开发流程、技术文档查询、界面设计、中文润色、浏览器验证、性能排查和文档处理分类说明用途。文章同时记录 Superpowers、Context7、Chrome DevTools 等工具适合解决什么问题,以及为什么应当按任务加载而不是全部常驻。
部署与运维
Docker Hub 与 GHCR 国内镜像加速整理
整理国内拉取 Docker Hub 与 GitHub Container Registry(GHCR)镜像时可用的加速方式,给出 Docker、Compose 中镜像域名替换示例,并说明固定版本、私有镜像认证、第三方代理、限流、缓存和源站回退等使用风险。
Docker镜像加速容器镜像查看正文
开发工具
修复 VS Code Remote SSH 提示远程主机禁用 TCP 端口转发
排查 VS Code Remote SSH 提示远程主机禁用 TCP 端口转发的问题,说明 Linux、fnOS 与 Windows OpenSSH Server 中 AllowTcpForwarding、DisableForwarding、Match 和 authorized_keys 的检查、配置与验证方法。
VS CodeRemote SSHOpenSSHsshd查看正文
AI与大模型
Codex App 使用 GPT-5.3 Codex Spark 报 reasoning.summary 不支持
排查 Codex App 调用 GPT-5.3 Codex Spark 时出现 Unsupported parameter: reasoning.summary 的原因,核对本地配置、模型缓存与上游 issue,并给出改用 CLI 或 VS Code、切换模型和临时修正缓存的处理方案及风险。
Codex AppGPT-5.3 Codex Spark故障排查reasoning.summary查看正文
开发工具
Linux 常用命令与工具速查
按文件目录、文本搜索、磁盘占用、进程资源、网络端口、HTTP、压缩解压、权限和系统诊断分类整理 Linux 高频命令,覆盖 find、rg、du、ps、ss、curl、tar、chmod 等常见工具。每组示例同时标注递归删除、权限修改和进程处理风险,适合作为服务器排障与日常运维的命令速查入口。
Linux命令行系统管理速查查看正文
开发工具
Java Maven 代理与镜像配置
记录 Java 项目通过 .m2/settings.xml 配置 Maven HTTP 代理和阿里云镜像的方法,给出 proxies、mirrors 及两者同时启用时的写法。适合排查 Maven Central 下载缓慢、公司网络需要本机代理或 mirrorOf 范围不正确等问题,并说明用户级配置的生效边界。
JavaMaven代理镜像查看正文
开发工具
Electron 工作区恢复要验证完整恢复链路
说明 Electron 应用恢复上次工作区时,为什么不能只验证配置文件已经写入,而要检查用户选择、持久化存储、下次启动读取、session partition、页面 origin 与前端状态应用的完整链路。文章总结 profile 目录不能充当业务接口的原因,并给出定位重启后工作区没有真正恢复的分层排查方法。
ElectronlocalStorage工作区排错查看正文
开发工具
Electron 离线授权与打包加固的技术边界
梳理 Electron 离线授权与发布包加固的真实边界,分别说明 ASAR、源码裁剪、Electron fuses、safeStorage、公钥签名验签和主进程能力校验能防什么、不能防什么。文章给出授权令牌签发与验证链路、设备绑定和错误处理原则,避免把压缩打包误当成防破解,也避免在 renderer 中暴露关键能力。
Electron离线授权electron-builder安全加固查看正文
开发工具
Git 外部仓库集成与维护:Submodule、Subtree 和历史归档
说明把外部 Git 仓库接入现有项目时如何在 Submodule、Subtree 和完整历史归档之间选择,并给出添加、克隆初始化、更新、删除子模块以及把仓库导入子目录的命令。文章重点区分继续独立演进与统一检出的需求,帮助避免丢失提交历史、残留 .gitmodules 配置或错误合并目录。
GitSubmoduleSubtree仓库归档查看正文
开发工具
Android 开发环境与 Gradle 镜像配置
记录 Windows 上配置 Android SDK 与 Gradle 依赖下载环境的做法,包括 SDK 路径、HTTP 代理、全局 init.gradle 和阿里云 Maven 镜像。文章给出仓库替换与排查顺序,用于处理 Android Studio 等待依赖、Google Maven 或插件仓库连接失败等问题。
生活与职业
ArchLinux 旧记录归档
归档过去使用 ArchLinux 时留下的实操记录,包括裸机安装、GNOME 桌面、ArchLinuxCN、Yay 与包清单、Zsh、Docker、Samba、GRUB、WPS、OneDrive、Python 环境及服务器初始化命令,作为旧环境迁移和查找历史配置的索引。
开发工具
现代 Web 体验优化
记录现代 Web 站点在 Next.js 中优化明暗主题、首屏闪烁、移动浏览器 theme-color、分页入口、Link 预取和不可用控件语义的实现方案。文章说明 next-themes 的服务端与客户端边界、系统主题跟随方式、预取带来的请求成本,以及按钮、链接和 aria 属性如何共同保证移动端体验与可访问性。
开发工具
Electron 桌面端的 Win32 浏览器辅助自动化边界
记录 Electron 桌面端通过 koffi 调用 Win32 API 辅助控制第三方浏览器的实现边界,涵盖窗口查找与激活、键鼠输入、剪贴板、本地配置和 FFI 隔离。文章比较桌面自动化与 DOM 控制、UI Automation 的差异,并说明 main、preload、renderer 各层应承担的能力。
ElectronTauriWin32Windows API查看正文
生活与职业
当年写 C 字符串搜索片段
留一段年轻时写 C 字符串搜索练习的旧代码,技术含量有限,纪念意义更大。
C语言旧代码学习记录查看正文
部署与运维
Bashrc 非交互 Shell 跳过 PATH 配置导致命令找不到
排查 bun 已安装、交互终端可以运行,但脚本、自动化工具或 bash -c 中提示命令找不到的问题。文章解释 .bashrc 在非交互 Shell 中提前 return 导致后续 PATH 配置被跳过,并给出移动环境变量位置、验证加载链路和避免重复配置的方法。
AI与大模型
Agent 协作中的提交与测试边界
面向使用 Codex、Claude Code 等代码 Agent 的开发协作,总结怎样把一次修改切成可审查、可回滚的 Git 工作单元,何时允许代理提交,以及哪些测试值得长期保留。文章还说明提交身份、显式授权、临时验证与回归测试的边界,帮助团队减少混乱提交和仓库噪音,并提高代码审查效率。
AgentGit测试提交边界查看正文
开发工具
Next standalone Turbopack trace 源码复制修复记录
排查 Next.js standalone 构建中 Turbopack trace 复制 TypeScript 源码的问题,解释追踪根目录、包含清单与 workspace 包如何影响产物,并给出收窄 content 文件、检查 standalone 目录和 Docker 复制边界的方法。
部署与运维
Linux 用户登录时间与高占用后台进程处理
记录 Linux 服务器上处理其他用户高占用后台进程的安全流程:先定位资源消耗,再检查最近登录和当前在线状态,确认进程是否由 user systemd 托管,最后停止服务并关闭自启,避免在用户仍在线时直接强杀任务、破坏运行数据和服务状态等问题。
开发工具
SEO 搜索引擎优化之 a 标签 rel 属性
探究 a 标签rel属性 nofollow,external,noopener,noreferrer 在浏览器安全,防止网站钓鱼攻击。以及SEO搜索引擎优化,反垃圾链接,节约蜘蛛资源等方面的作用。补充 rel、robots.txt、sitemap、canonical、Open Graph 与结构化数据的边界。
系统与网络
Caddy 反向代理 HTTP/3 排查记录
排查 Caddy 反向代理已经返回 Alt-Svc、浏览器却仍使用 HTTP/2 的问题。文章区分服务端启用 HTTP/3 与客户端真正建立 QUIC 连接两件事,通过配置、响应头和公网端口验证,最终定位为 UDP 443 未放通,并给出修复检查方法。
部署与运维
OpenNext Cloudflare 本地开发中的环境变量边界
排查 OpenNext Cloudflare 本地开发出现 Auth.js MissingSecret 的问题,说明 Wrangler 读到 .dev.vars 不代表变量已进入 next dev。文章梳理 Wrangler、Next.js 的环境变量边界,并给出检查 process.env、加载密钥和验证配置的方法。
OpenNextCloudflareNext.jsAuth.js查看正文
系统与网络
中兴 G7615V2 Hairpin NAT 排查记录
排查中兴 G7615V2 光猫端口映射外网可访问、同一局域网却无法通过公网域名访问的问题。文章通过运行时规则与设备数据库确认 Hairpin NAT 缺失,说明端口范围、DMZ 的常见误区,并给出内网 DNS 覆写和临时转发等替代处理方法。
光猫NATHairpin NAT端口映射查看正文
开发工具
Gradle镜像配置
提供 Gradle 全局使用阿里云 Maven 镜像的 init.gradle 配置,将 Maven Central、Google 和插件仓库补充为国内镜像。适合解决 Android、Java 项目首次构建时依赖下载缓慢或插件仓库连接失败的问题,并说明配置文件位置与作用范围。
开发工具
Android SDK环境变量
整理 Windows 下 Android SDK 环境变量配置,说明 ANDROID_HOME 以及 Path 中 platform-tools、emulator、cmdline-tools 等目录的作用。适合在 adb、sdkmanager 或模拟器命令无法识别时核对安装路径,完成 Android 命令行环境初始化。
开发工具
Ctrl + Shift + F 快捷键占用问题
排查 VS Code 等开发工具中的 Ctrl + Shift + F 全局搜索快捷键突然失效的问题,最终定位到 Windows 输入法把同一组合键用于简体与繁体中文切换。文章说明如何区分编辑器键位冲突和系统级热键占用,并给出关闭输入法快捷键或重新分配按键的处理思路。
快捷键Windows输入法查看正文
AI与大模型
探索人工智能辅助交流:我与ChatGPT 4的对话体验
本文记录了与ChatGPT 4的互动体验,深入探索了其在人工智能辅助交流中的角色。文章不仅展示了ChatGPT的先进技术特点和丰富知识库,还诚实地揭示了在专业知识准确性和深度理解方面的局限。通过个人视角,这篇文章为理解AI在日常沟通中的应用提供了独特洞见。
ChatGPTAI人工智能辅助交流查看正文
开发工具
探索.NET 8中的ASP.NET Core Blazor:全堆栈Web应用的新特性
体验.NET 8新发布的ASP.NET Core Blazor全堆栈Web应用。探索静态呈现、交互式WebAssembly呈现和服务器交互式呈现,强调'rendermode'的简便切换功能。详细分析了通过ASP.NET Core Razor页面实现的静态呈现对SEO的影响,以及流式渲染的创新优化方法。
.netBlazorASP.NET CoreWeb查看正文
部署与运维
Docker Nginx 官方包源启用 Brotli 压缩算法
使用Nginx官方仓库提供的Dockerfile代码指定ENABLED_MODULES编译参数可构建brotli,geoip,geoip2,lua,ndk,rtmp,image-filter等编译构建第三方模块。主要演示brotli模块并替换清华镜像源在nginx.conf中引入使用。