召田最帅boy

代码块里多出来的那截底色是怎么来的

本站实践

换到流萤主题后,代码块里多出两种颜色:每行有字的地方垫着一块底色,折叠时底部渐隐和「展开全部」条偏蓝。原因都是组件底座写死了藏青色,而主题的代码底色换了。本文记录排查和修法:行内元素的背景为什么一行一画;想保留渐隐曲线只换颜色时用 color-mix,以及带 var() 的 color-mix 在旧浏览器里会整条失效、兜底必须写在后面的 @supports 里;用自写 PNG 解码逐像素比较,证明其它主题一个像素都没变;Playwright 定位器重新查询造成的假「点了没反应」;AI 助手黑夜里的同类问题。

零拷贝与 IO 模型等综合面试问答

面试

本篇面试指南围绕系统设计与实现展开,涵盖项目亮点、零拷贝原理、五大IO模型及NIO与多路复用区别、Future阻塞获取结果机制、ReentrantLock 与 synchronized 的实现与差异、AQS、乐观/悲观锁、Paxos 协议、B+树特性、TCP 拥塞控制、JVM 实践、数据库分库分表及其缺点、分布式事务(TCC)方案、RocketMQ 消息可靠性保证,以及常见算法题。通过概念阐释与实现细节,帮助读者系统复习面试热点。

小程序分享卡片被分享签名校验降级的排查

本站实践

在小程序里分享菜谱,发出方看到的卡片有标题有封面,接收方却只看到小程序名和一块灰色占位。排除了 onShareAppMessage、图片地址、临时文件和 promise、版本改动之后,发现原因是小程序后台开着「分享请求签名校验」:没带签名的分享会被平台降级成默认卡片。本文记录现象、排查过程、官方文档的要点,以及关闭校验和补齐签名两种解法。

小程序登录页切换输入框时键盘被收起的排查

本站实践

炊想登录页上,键盘弹着时从账号框点到密码框,键盘被强制收起。前四个版本都在猜(setData 抢焦点、自动填充栏、点击被当成点空白、两个原生输入框互相影响),都没修好;第五次先在真机上记事件日志,再用一张对照测试页并排测试,发现只有「文本键盘直接切到密码键盘」会丢焦点,问题在系统换键盘那一层。本文记录弯路、排查方法、补救办法(先收起、等系统缓过来再聚焦并自动重试)和取舍。

炊想小程序帮你把一道菜配成一桌饭

本站实践

「今天吃什么」最难答。炊想小程序输入一道菜名,就给出精确用量和分步做法,并搭配配菜、汤品、主食、饮品一整桌,附成品图;首页每天一道「今晚吃这个」,五十道常见家常菜已提前搭好,点开就看。不用注册,打开就能搭;请朋友来,双方各得 1 次。会员可以改一改这道菜、换一张成品图,按饮食目标和家里的厨具来搭,还能排一周菜单和请客菜单、合并买菜清单;月卡 ¥18、季卡 ¥45,订单和反馈回复在小程序里随时能看。微信扫码或搜索「炊想」即可使用。

这个博客三年多来的更新日志

日常

本文根据两个仓库共 809 条 Git 提交整理,记录这个博客从 2023 年 1 月第一次进入 Git 到 2026 年 10 月的完整演进:2023 年从零到可用;2024 年补齐七牛封面、登录封禁、评论审核与缓存;2025 年围绕评论系统深度重构;2026 年上半年引入 AI 问答与 AI 评论审核;7 月并入 total 聚合工程后,又经历了界面重做、自托管字体与图表、评论 AI 容错,9 月一轮集中的性能、可靠性治理和六套主题,以及 10 月接入炊想小程序的后台、重做后台界面、修掉一处存储型 XSS 并把前端重复实现合并成一份。

用代码拍一支 24 秒的美食短片

本站实践

给炊想做抖音宣传片,没有相机、剪辑软件和音效库,整条片子用代码生成:HTML 页面写成 render(t),无头 Chrome 逐帧截图,numpy 合成刀声和油锅滋啦,ffmpeg 合成 mp4。本文记录怎么让每一帧都能单独重画、静态图片怎么做出镜头感;一层全透明的蒸汽为什么让每帧多花 0.7 秒;带 backdrop-filter 又在缩放的元素,为什么同一帧会画出不同的像素;以及改了五版才明白的事:动效救不了素材。

手机上被撑破的搜索弹层

本站实践

给博客搜索弹层加了热门标签和最近文章,电脑上排得整齐,手机上却被撑出了弹层。记录三个坑:网格 auto 列不会比不换行的内容窄、两行截断时内边距漏出第三行半截、固定弹层在小屏上底边出屏,以及之后在多个尺寸下量越界的办法。

菜谱要写 90 秒时三道超时该怎么排

本站实践

炊想小程序上线第一天,点一道新菜连续两次收到 504。排查发现:一份菜谱约 1600 个 token,上游每秒十几个,要写 90 秒;非流式请求的读超时实际等于「整份必须多少秒内写完」,75 秒必断,重试又等 75 秒,而 nginx 120 秒就替后端回了 504。本文记录改成流式读取(读超时只管两段间隔、另设总时限)、按「越靠近上游越先放弃」重排后端、nginx、小程序三道超时、晚失败不重试,以及上线后的真实耗时和 9 个模型的实测对比。

Canvas分享海报

本站实践

博客文章页的分享海报重做了一遍:加上封面、分类、标签和头像,弹窗改成一屏放下。本文记录重做时量出来的几个问题:旧版逐字换行,全站 372 篇文章里有 288 篇的海报把英文单词拆开、把标点放在行首;canvas 画了跨域图片就会被污染、无法导出,七牛的图要服务器允许跨域、页面设置 crossOrigin 才能画,而 Chrome 还会为这类请求单独建连接;二维码先画成小图再放大,边缘有三成是灰色的过渡像素。以及对应的断行规则、图片加载策略和按屏幕尺寸计算海报大小的写法。