博客
技术写作与笔记,主要发布在 Medium。
最新文章
合盖之后还能继续跑:MacBook 合盖不休眠怎么设
合盖休眠和空闲休眠是两条独立的路径,caffeinate 建的断言够不到合盖。要让 Mac 合着盖子继续跑,只能改 SleepDisabled:一个只有 root 能改、还会活过重启的设置。
阅读文章Mac 应用的站外分发:Developer ID、公证与 GitHub Release
在自己的渠道分发 Mac 应用:从证书到 GitHub Release,Developer ID 这条路上的签名、公证与装订,以及你一定会撞上的失败。
阅读文章
SEO 是产品的一部分,不是发布后的补救
SEO 属于产品本身。正确的顺序是:先让搜索引擎拿到正确的页面,再做基础文件、测试环境隔离、页面信号和关键词。
阅读文章
当 AI 便宜到用不完,我开始做小游戏
当尝试一次实验变得足够便宜,目标就不再是做出更多东西。AI 变便宜之后,一个开发者怎么转向更宽的搜索、更快的筛选,以及小游戏。
阅读文章
SwiftUI 的 View 生命周期,不是 macOS 窗口的生命周期
AppKit 从一个明确的窗口对象开始,SwiftUI 从声明式的 scene 开始。为什么 SwiftUI 的 view 生命周期不等于窗口生命周期,以及为什么大多数生命周期 bug 其实是所有权 bug。
阅读文章
我只是想换个地方工作
为什么我改变工作地点来改变工作方式:让「回去睡觉」这件事变难一点,以及咖啡店的网络让我想明白的另一件事。
阅读文章
从 WiFi Lens 到 ChartLens(下):做交互式 SwiftUI 图表
ChartLens 把交互式图表带进 SwiftUI。悬停、缩放、十字准星浮层,以及细节图与总览图同步,在一个真实的 macOS 应用里是怎么工作的。
阅读文章
从 WiFi Lens 到 ChartLens(上):抽出一个 SwiftUI 图表层
ChartLens 是从 WiFi Lens 里抽出来的可复用 SwiftUI 图表层。在一个 SwiftUI 应用里,怎么把图表渲染、坐标映射和交互分开。
阅读文章记录一次 Windows 下 CMake DLL 文件拷贝问题
CMake 不会自动把依赖 DLL 拷到可执行文件目录。用 add_custom_command + 生成器表达式按 Ninja / VS 区分目标目录,解决单元测试报找不到 xxx.dll 的问题。
阅读文章
Windows 下 IOCP 的简单使用
Windows IOCP(I/O Completion Ports)的基本用法:重叠 I/O、核心 API、接入线程与事件处理线程的完整流程,以及一份带勘误注明的示例代码。
阅读文章Arch 英特尔核显关闭垂直同步
在 Arch + Intel 核显上关闭垂直同步的修复记录:通过 ~/.drirc 设置 vblank_mode=0,解决 OBS 录屏与终端闪屏问题。
阅读文章
记录一次在 Manjaro 下折腾 SMB 服务的经历
在 Manjaro 上配置 Samba/SMB 的实操记录:三类共享需求、smb.conf、SMB 用户、目录权限,以及开机自动挂载磁盘的坑。
阅读文章