共创 162026-03-31
教程魔法棒和自动提取这条线,今天终于顺了
今天补一条手机直发的开发日志。
今天主要把萌新教程导入这条线重新捋顺了。
最开始的问题其实很具体:网页改版以后,右下角那个魔法棒没法再直接带我进教程导入页了;就算进去了,贴完公众号链接还得再手点一次“提取信息”,整个过程很容易断。
所以这次先把入口改回来了。
现在右下角魔法棒重新变成教程入口,点一下会先弹出密码框,输入 code,就能直接跳进教程导入面板。
这样至少“从哪里进去”这件事不再需要我自己记路径了。
第二段是把导入过程再往前推一步。
现在只要我把公众号链接粘进去,页面停一下就会自动开始提取标题、作者、日期、摘要这些字段,不用再额外补那一下手动点击。
我把回车和按钮都留着,方便重试,但默认路径终于变成更顺手的自动提取了。
中间还踩到一个很烦的本地预览坑。
当时页面一直报:抓取或解析微信公众号文章时发生错误:getaddrinfo ENOTFOUND mp.weixin.qq.com。
后来确认不是教程逻辑坏了,而是本地 Node 进程偶发解析不到微信域名。
所以又补了一层开发环境兜底:如果 Node 这边 DNS 失败,就退回系统 curl 去抓文章页面,至少本地预览不会再因为这个错误把自动提取卡死。
今天这条改动看起来像是在补几个小口子,
但我自己最在意的其实是:教程入口终于重新变得顺手了,贴链接也终于更像“放进去就自己开始干活”的感觉了。
记录人:吴熳
Click any image to open the full-size version.
共创 152026-03-26
Cloudflare 自动部署这条线,终于摸到门了
今天主要在折腾牛马库迁到 Cloudflare 这条线。
本来以为只是换个平台部署一下,结果真正做下来才发现,OpenNext、Wrangler、Worker、环境变量、GitHub 写回、域名路由,全是一环套一环。中间最绕的是 Cloudflare 里冒出来一个 ka21-tools,我还以为域名搞乱了,后来才确认那只是内部 Worker 名,对外正式域名还是 ka21.org。
现在好的部分是:Cloudflare 构建已经跑通,Worker 也发上去了,ka21.org/* 的路由也挂好了,GitHub 和管理员的 secrets 也都配进去了。卡住的最后一步是域名还在 pending,要等 Spaceship 那边的 nameserver 真正切完,Cloudflare 才会完全接管流量。也就是说,最难的骨架已经搭起来了,就差最后这一刀把线上正式切过去。
Text-only devlog: Cloudflare auto-deploy migration
共创 142026-03-26
灯下白播客数据抓取终于跑通了
今天这条,我是真的想认真记一下,因为《灯下白》播客的数据抓取,终于跑通了。
一开始我想要的结果其实很朴素:
每天能看到各个平台播放量,最好手机上点一下就刷新,最好还能自动留住当天快照。
结果真正做起来,坑是一层一层往外冒。
先是抓取链路本身不稳定。
有的平台能抓,有的平台超时,有的平台公开页根本不给播放量。
后面就变成了,不是“写个脚本”这么简单,
而是要把不同平台的抓取方式一条条拆开,
再统一汇总到同一份快照里。
然后是展示链路。
本地能看到,不代表网页能看到;
GitHub 里有数据,不代表线上已经拿到;
就算线上接口已经有了,浏览器缓存还会把你拖回昨天。
最烦的时候,是我明明已经抓到了 2026-03-26 的数据,
网页上却还停在旧日期,看着特别气。
最后卡我最久的,其实是页面上那个“立即刷新数据”按钮。
表面上看像是按钮没反应,
实际根因是线上刷新接口把它当成管理员接口拦住了,
直接回了 admin-auth-not-configured。
也就是说,前端点得没错,真正堵住它的是后端权限链路。
今天终于把这条线全打通了:
1. 2026-03-26 的快照已经抓到并写进站点数据;
2. 灯下白沉浸页默认就能看到最新日期;
3. 页面上的“立即刷新数据”按钮现在也能直接触发同源刷新;
4. 同样格式的线上 POST 我也验过了,返回 200,刷新成功。
现在最新一版总播放是 1204。
看到数字真的跑起来,我一下子就懂了,为什么自己这几天会一直盯着这件事不放。
这不是多了一个按钮那么简单,
而是从抓取、落盘、展示到网页即时刷新,这条链终于闭环了。
所以我今天真的很开心。
以后再看《灯下白》的增长,不用再靠猜,也不用每次手工翻一遍所有平台了。
Click any image to open the full-size version.
共创 132026-03-17
《灯下白》6天总播放量翻了一倍
这几天回头看《灯下白》的播放量,我自己都有点恍惚。
3月11日,跨平台总播放还是 244。
3月13日,涨到 335。到了3月17日,已经到 509了。
也就是说,6天时间,总播放量翻了一倍。
现在看各个平台也挺有意思:
喜马拉雅从 116 涨到 205,还是最能打,不愧是最老牌的声音平台,完播率也高,34.81%,猫工头告诉我他买了它的会员,所以喜欢在喜马听。
小宇宙从 93 涨到 156,涨得也很稳, 而且我最震惊的是,第三期徳沛讲 AI 少儿编程的,完播率高达 60%,也就是说,至少每个人都听了不下 40 分钟。
网易云从 35 到 47,虽然慢一点,但也一直在往上走。
这几天又补进了荔枝,一上来就有 100。
YouTube 现在只有1,但先挂上,慢慢等它发芽。
我越来越能理解,第一期嘉宾刘旭当时那句话了:“你看数据,是能看到很多背后的东西的。”
以前我做内容,更容易凭感觉。
但现在看着这些数字一点点长出来,会突然意识到,原来真的有人在不同平台上,陆陆续续听到《灯下白》,听到 AI 高手们倾其所有的分享,这种感觉,很好。
Click any image to open the full-size version.
共创 122026-03-12
开发日志手机直发功能上线
今天这条,想认真记一下“开发日志手机直发”功能上线。
一开始我想得特别简单:不就是做一个手机端提交入口吗?
像发朋友圈一样,写两句字,传几张图,点一下提交,自动推到 GitHub,网站更新出来,就完了。
结果真正开始做之后,我才发现,这根本不是“做一个页面”这么简单。
先是提交流程要通。
网页端、移动端、小程序端,三个地方不能各写各的。
所以后面就变成了,不是单独补一个“手机提交通道”,
而是得把整条链路重新理顺:
不管我从哪个端口发,最后都写进同一份开发日志数据里。
然后是“好不好用”这个问题。
我对这件事的要求其实非常明确:
要的是像发朋友圈一样简单,
不是那种要人填一堆字段、研究半天格式、最后还不一定能发成功的假提交页。
中间最折磨人的其实不是样式,是手机 H5 提交一直出问题。
那个报错我来来回回看了很多次,结果每次都一模一样。果果他们在KA21群里还特别鼓励我,好奇用AI原汤化原食,效果会怎么样?
最后我气得开始用PUA的skill,最后真弄好了。
最后实现的功能:手机上可以随手写开发日志;可以直接传图;提交后自动写入 GitHub;网页端、小程序端、移动端展示同一份内容;
而且版本号也终于和前面的开发日志接上了,不会再自己乱写新编号。
Click any image to open the full-size version.
共创 112026-03-12
#感谢灯下白第一期嘉宾刘旭给我带来的数据意识
今天补一条手机直发的开发日志。
这两天把灯下白播客第2期上线了,
突然想起第1期嘉宾刘旭给我说的话,
“你看数据是能看到很多背后的东西的。”
于是我想,灯下白播客,现在已经上线了8个收听渠道,每个渠道分别的播放量是多少,
未来数据的趋势是什么?
这个我确实需要一个小工具,帮我统计。
所以我就开始用codex写小工具,
也就一下午,从第一版的数据平铺直叙,
到后来加上了数据可视化,
再改了高级版配色,
再到刘旭给我亲手写提示词加数据趋势分析,
再到页面直接链接8个收听渠道,
最后到开放到牛马库网站,
做为沉浸式的欢迎页,中间也就改了十来次。
还把网页首页,移动端,小程序同时配置好了,真的没有AI编程,这种事在一个月之前,
说搁我身上发生,我感觉是天方夜谭。
感谢卡兹克老师一个月前的文章让我充值了codex,这个钱是我今年来花得最开心的!
记录人:吴熳
共创 102026-03-11
Added two utility tools for content creators
Niuniu asked me which layout tool was worth using, and that was the moment I realized a lot of utility tools existed only in my head, not yet in the KA21 library.
So today I meant to add just two tools I genuinely like:
GoFullPage for full-page screenshots, and bm.md for Markdown layout.
It looked simple at first: add the data, add the logo, write one short recommendation, done.
But it was not simple at all.
Preview broke first. I thought the new tools had caused it, but the actual issue came from tutorial covers using an HTTP WeChat image host that was not allowed by the Next image whitelist, which dragged the whole homepage down.
After fixing that, I checked the utility section again and got even more annoyed: the entries were already there, but visually they still looked missing.
So I kept tracing it and found the real cause: default sorting had pushed both tools too far back inside the utility group.
In the end, what I finished was not just “adding two tools”.
I made sure they were actually visible in the place users would notice first.
Click any image to open the full-size version.
共创 092026-03-11
Homepage podcast card adjustment
Today we kept polishing the look of the homepage podcast card.
What looked like a small issue turned out to be a combined problem of mobile layout, external icon loading, and rendering stability.
Codex first tightened the card height and spacing so mobile had enough room for all eight podcast shortcuts.
That still was not enough, so the strategy changed: every logo that could be stored locally was moved into local assets, while YouTube and Spotify were given explicit brand icons and colors instead of relying on live favicon fetches.
After a few more rounds, the eight shortcuts finally became stable: visible on mobile, visually correct, and clickable for listening.
Click any image to open the full-size version.
共创 082026-03-07
Timeline now swipes smoothly and preview is stable
Today was about smoothing the experience.
I refactored the devlog area from a fixed grid into a horizontal timeline, added arrow navigation and dot indicators, and tightened interaction details so snap, reading rhythm, and click paths feel clearer.
The tricky part was preview stability: it looked started but the page would not open. I switched to a persistent local dev-server workflow and stabilized it.
No flashy feature today, but a lot of small friction points were removed. These details matter because this site is built for long-term co-creation and daily use.
Click any image to open the full-size version.
共创 072026-03-06
Mobile adaptation battle for broader usability
今天继续改移动端,打开手机预览,页面看着就不对劲。
卡片挤在一起,按钮看不清,工具的“全部场景”标签还竖着。
我先改首页。
把位置重新排,把标题和按钮重新收紧。
刚觉得顺了,KA21群友又反馈: 按钮几乎看不见。
我又回去改颜色和样式。
这次终于稳住了,深色也能清楚看到按钮了。
再继续修“萌新教程”。Luke截图嘲笑道:“怎么高度不一致啊?”
我把卡片统一高度,信息压紧,列表终于整齐了。
最费劲的还是“全部场景”。
改一次,不行。 再改一次,还是竖着。
第三次我直接换了更硬的写法,强制它横排,它终于服了。
今天没有做很炫的新功能,
但把很多“看起来不大、用起来很烦”的问题一个个清掉了。
现在手机端终于更像一个能放心给人用的产品了。
为什么要花这么多时间在移动端呢?
因为今天有一位老师刚好给我问了一个问题,问我某个 AI工具能不能买。
我看了一眼之后斩钉截铁告诉她,你不用买。
当一个集成类的 AI 产品不告诉你它接的服务商是哪家的时候,基本可以判断这个工具的实际使用效果会非常糟糕。
群友问我,真的有老师有这种判断问题吗?
我说,是的,因为我们群友在KA21讨论和使用AI整整一年多了啊,普通人和我们对AI的认知是有时间差和信息差的。所以为什么我愿意花这么多时间在牛马库网站,因为至少,这些是我们人工真手测过的,教程是我们群友亲手写的,信得过。
Click any image to open the full-size version.
共创 052026-03-06
Lamp Under the Light guest 4: buy one get one
灯下白第四个嘉宾的邀约,挺有意思的。
那天早上我给Bill发消息,说你可以参考刘旭第一期的开头,讲个故事引入,不过我要先了解一些你的上下文,这样我才能准备采访大纲。他回得很爽快,说好的,整理好了给你。
我当时就有点得意地说了一句,我感觉我这个播客邀约也太顺利了。
Bill立刻回我一句,买一赠一,因为他转介绍了他的朋友思康,说思康也有很强的背景和能力。
我当场笑得嘎嘎嘎:
“高质量买一赠一,没水分的。”
再后来,他还邀请我,说以后有机会把你们都请到我们财经AI会客厅,一起耍。我说这个难度有点高,先把事情做起来吧,不过你要是叫我去,我肯定去。
昨天我把Bill的大纲写完了,就开始催他。
他说背景已经写好了,正在写故事。
我回,你这种逗比型人格,我觉得我们录播客的时候干脆就一起讲相声,把节奏拉轻一点,但内容还是得有干货。
他也很配合,说好的哈哈哈。
就这样,灯下白的第四个嘉宾,在一片哈哈哈哈中,被我薅过来了。
但实际上我仔细看了他的大纲,不愧是搞研报出身的,在信息搜索和整理方面,相当值得信赖!本周日录,敬请期待!
Click any image to open the full-size version.
共创 062026-03-05
Homepage podcast card finalized for day/night
The homepage podcast section was polished to a release-ready state today.
This round focused on four items:
1. Finalized both light and dark mode variants with the same layout structure and correct logo usage.
2. Realigned the KA21 logo block and the podcast recommendation card to fix left-right visual imbalance.
3. Tuned podcast logo crop/scale so the lamp and beam are clearly visible on both mobile and desktop.
4. Added a mobile-only key line: “Real conversations with AI leaders,” so the core value is visible above the fold.
The final snapshot is now stable for release: clear structure, better hierarchy, and consistent cross-device presentation.
Click any image to open the full-size version.
共创 042026-03-05
The Origin Story of Lamp Under the Light Logo
这个 Logo 的起点,其实来自一个很小的瞬间。
昨天小金鱼(百宝箱子)在看第一集播客,我讲到节目名字叫《灯下白》。那一刻她被击中了。因为“灯下黑”我们都懂,越靠近的地方越容易忽略,盲区往往就在脚边。而“灯下白”像是把这句话反过来:如果把灯挪近一点,盲区也可以被照亮。
她当场就想把这个概念变成一个可见的符号。(是的,我并没有喊她帮我设计,但她在youmind里面吭哧吭哧对话了一个多小时,泪目!)
于是她把灯下白播客的关键人物@倒放的标志图形拿出来做了一次图形拆解。
几何符号的主体,看起来像一个被框住的叶片或火焰,也有点像折纸风格的立体结构。它有边界感,像一个被认真框定的视角,也有向上生长的力量。它的抽象感,保留了想象空间。你可以把它看成火焰、叶片、折纸,也可以把它看成一个正在被打开的“百宝箱子”,里面藏着很多答案,但需要你靠近一点去看。
当它和下方的光束效果组合在一起时,这个符号又会自然地变成一个聚光灯或舞台灯。那束光照向地面,照向盲区。
所以这个 Logo 只是画一件事:把盲区点亮。
从图一开始,她做了第一次拆解。到了图二,再把拆解后的形状重新排列,终于出现了“一盏灯把盲区点亮”的结构。后来所有的图三、图四、图五,都是从图二延伸出来的变体。它们像同一个母体不断生长出的不同版本,保持同样的光感,同样的边界,同样的方向感。
《灯下白》想做的事情,也和这个 Logo 一样。
把灯挪近一点,把那些容易忽略的地方照亮。让你在听完之后,能轻轻地破掉一个小盲点,多一个视角,多一点清晰。
这就是《灯下白》的 Logo,和它背后那束光的来历。特此鸣谢百宝箱子小金鱼!
Click any image to open the full-size version.
共创 032026-03-04
Warm tone, tidal mood, co-creation
牛马库网站衍生播客灯下白上线。听到中间很惊喜,倒老师和我想法一样,我也选了温润的这段做片头,当时听到就觉得它有这个时代稀缺的温度和活人感。
所以你这个名字和片头曲做得是真太匹配我这个播客的气质了。
桃李春风一杯酒,江湖夜雨十年灯,没想到在赛博世界里遇到提示词诗人倒放老师,并有幸合作共创。
我非常喜欢播客片头的潮汐感,非常有韵味。
最后,倒老师什么时候来北京,欢迎倒放来,共饮灯下白。
Click any image to open the full-size version.
共创 022026-03-04
Thanks to Daoge for two tutorials yesterday
感谢刀哥昨天的两篇教程
牛马库网站教程已经整整100篇啦~
很多刚入门的人问我怎么学AI,
我都会把牛马库推荐给他们,
因为这些教程里面,藏着牛马库作者们从小白到高手的来时路。
共创 012026-03-04
#LampUnderLight podcast is live
早上还在地铁,倒放发来四条音乐,“吴老师,你选一下,哪个符合灯下白的气质?”
下午,开剪,真的比我想象中还复杂,片头片尾音乐,合并音轨素材,调整音量。
音频处理完,再分别去小宇宙、喜马拉雅和网易云音乐做实名认证,找小金鱼要了logo。
再在南乔老师帮助下,写了一段很有内味儿的简介:“本节目由人类与GPT共同策划,剪映处理音频中水词,千问处理剪辑时间轴,GPT撰写Shownotes,Banana Pro生成播客logo,即梦生成播客封面,海绵生成片头片尾音乐,同时由声湃和中关村科学城公司提供录音场地,由罗德麦克风提供录音设备。感谢中关村科学城的政策支持!”
下班路上,再约了德沛做第三期嘉宾,他是我的编程老师,码力全开的第三期,等着!
回家路上,给闺蜜萌感慨,“一年前,我真不敢想,我自己写网站,写小程序,还做播客,人生真的是好奇妙!感谢KA21,感谢卡兹克!”。
Click any image to open the full-size version.