• Article cover

    一根上流滚动条的诞生

    花了两天,做了一个有点复杂的小玩意:本站右侧的那根滚动条,觉得这是一个很上流的玩意,于是把它生出这玩意的四十八小时脑子里面都在想什么全都呕吐出来 c⌒っ.ω.)っ。

    世人苦滚动条久矣,有一个看似统一的标准,但是 Blink 先森和它的前妻又有一套爆炸复杂的 CSS 规则,它复杂到我几乎没有动自己手写规则的念头,清一色都在用在线生成器做一个凑合。

    你想要让所有平台都有稳定的用户体验,这事情几乎是不可能的,移动端有移动端的脾气,各个浏览器引擎有自己的审美。而且也有一些很现实的事情,滚动条作为一个 Native 组件几乎不会允许你过分自由地修改它的样式。煮个栗子,直到 2025 年 5 月,你没什么原生跨平台的方法让一个半透明的拖拽条覆盖到网页内容上。

  • Article cover

    博客模板更新史 · 希尔维特卷其二 · 第四章

    非常舒服的春天来了,晚上八点多,天还透亮着,每天像是凭空多出来一个多小时的日光,睡觉时间就这么被压缩了,开心得要死,但也觉得有点睡眠不足,有些疲劳。

    自从上次更新博客系统依赖,我陆陆续续又做了一大堆更新,一直到昨天为止,一批新的内容组织架构基本已经全都完成,是时候再写一篇博客更新日志了,于是就有了本文。这篇里面会同时包含一些内容思考、设计想法和技术细节,希望你能喜欢。

    对了,我不是那种只折腾模板不写内容的博主喔,今年一年已经输出了十四篇长篇正文、十二篇短篇笔记,合计二十六篇,不说是独立博客更新频率顶标,也有一个胸部水平了 c⌒っ.ω.)っ

  • Article cover

    从「小帮手」到「废纸篓」:LLM 对话管理的用户体验研究

    编注:这篇是上学期的期末作业报告,关于大语言模型聊天工具的一次用户体验小研究。觉得挺好玩的,于是决定拿出来分享一下。实验是去年年末做的,有 4 个月的不应期,有些信息可能略显过时。此外,全文的风格非常的数据流派和学术风格,读起来会有一定困难,请各位谅解 c⌒っ.ω.)っ。

    自 ChatGPT 公开发布以来,市面上基于大语言模型的聊天应用层出不穷。模型能力随着每一代迭代不断提升,但与之交互的界面设计却几乎原地踏步:左侧是按时间排序的历史侧栏,右侧是当前对话窗口,这套布局从最早期延续至今几乎没有发生实质改变。

  • Article cover

    Jamovi 用户体验研究报告

    上学期一个在 Google 工作的女士担任了我们研究方法课程的讲师,她让我们自己选择感兴趣的产品,并且带着我们跑了一整个用户体验研究的流程,从开始到结尾一共花了三个月。我非常享受整个研究的过程,并在这门平均分八十多的课上拿了个闪闪亮亮的满分。考虑到具有科班风味的用户体验研究在国内并不多见,所以觉着可以写一篇文章好好的记录一下。

    我在这门课上选的是 Jamovi 这款统计软件,一方面我个人对数据分析的确是有着高涨的热情,另外一方面,我自己有开源社区参与者的身份认同,而在这个领域用户体验研究确实是稀少的,如果我能为这个社区做一些什么,那将是一件极好的事情。

  • Article cover

    向死而生:我的三十二岁生日和一个小小的磁带机

    今年是我自己决定生日日期的第二年。

    我政府文件上的生日登记的是阴历,那是父母在登记户口的时候搞错的。阴历生日很麻烦,每年要重新换算,而且我对那个日子也没什么好印象。小时候每年都要被教育这是母难日。我天生就是一个非常讨厌被说教的人,每年被这么 trigger 一次,自然对其毫无兴致。

  • Article cover

    可口的社交魔芋:Tomodachi Life 简评

    Tomodachi Life,一个任天堂旗下的老牌 IP,在 Switch 初代的生命周期里面一直被冻在冰箱里面没被动过。任天堂不动不代表社群当中没有期待,当任天堂宣布新版时,整个玩家社区立刻就炸锅了。哪怕试用版只允许你创建三个人物,人们依然想尽办法绕过机制,想要在正式版发布之前多玩一会,可见大家为这条新闻有多疯狂。

    我是这类「哆啦 A 梦」式游戏的重度喜爱者,自然是想也不想地手刀下单。提前两周在亚马逊下单预订,亚马逊很靠谱的在发售日前一天就发货了,确保十六号当天能准时送到我家。

    下单之前我早就有心理预期:这个游戏绝对会把我吃得死死的,但是真正玩起来才发现真的被吃得不是一般的死。我昨天下午收到卡带,玩到了半夜,今天早上起床之后接着玩了一整天,要不是我的 switch 没电了,必须要充电,我可能会继续沉迷在这个小世界里。

  • Article cover

    React 带来的生死疲劳

    很长时间没写 React 了,最近因为期末大作业需要做一个报告,我搞得稍微花哨了一点,用 React 做了个 PPT。动画嘛,再配上 Canvas,纯拿 React 写大概率是要吃瘪的,特别是好久不碰手有点生了。于是就想着写个笔记给自己看,也给有需要的朋友留一份的资料。

    当然,在这里我要叠个甲,我知道你们前端圈有圣战的传统。尽管本文看起来像是在咬赛博打火机,但实际上我没有要参战的意思,我就是个老老实实写代码的人。你觉得我哪里说得不对,以你为准,我是傻逼,傻逼不在乎,不要在我的地盘上闹。

  • Article cover

    教育的下一步 · 其二

    这篇文章是「教育的下一步」的续作,也是对它的一次深化。如果你还没有读过前作,我鼓励你先去读完再回来。

    我在上一篇文章里讨论了教育的螺旋结构,那篇文章的核心论点是:学习这件事情没有仅仅停留在知识的堆积的层面,它同时在发展一种更底层的认知技能:一种解决问题的基本能力。知识积累和认知能力的发展以双螺旋的方式相互促进。

    但上一篇文章没有回答的问题是:具体是什么样的能力?它从哪里来?在 AI 普及之后,我们要怎么有意识地培养它?

    这篇文章尝试斗胆回答这些问题。

  • Article cover

    我们的博客被腾讯爬了,一遍一遍又一遍

    2026 年 3 月下半旬,我在博客上部署了一套私有的统计系统。动机很简单:我在用的广告拦截器会把我正在用的那套分析系统 GoatCounter 拦截掉,导致我没有办法在手机上方便地看到博客的流量信息。为了应付这事情,我就自己稍稍改了一个开源版本的统计系统,部署到了 Cloudflare 上,方便我每天睡前躺在床上看一看博客的流量构成。

    部署上去的当天晚上,或者是第二天,我立刻就看到了一个非常诡异的流量尖峰。这个流量尖峰会把我博客上面所有的文章全都爬一遍,就跟和尚念经一样,准时准点,从头到尾。而且是一个基于 Chrome 的,能跑 JavaScript 的自动化脚本。

  • Article cover

    Agent Experience 导论

    随着 LLM 技术应用的不断发展,Agent Experience(简称 AX),成为了显学,来开始在工程圈流通。Netlify 联合创始人兼 CEO Mathias Biilmann 于 2025 年 1 月在其博客发表 Introducing AX: Why Agent Experience Matters 一文,正式引入这一概念。他将 AX 定位为继 UX(1993 年 Don Norman 在 Apple 任职时提出)与 DX(2011 年 Jeremiah Lee 在 UX Magazine 文章中系统阐述并普及的框架)之后的下一个核心设计维度。AX 专门探讨如何设计产品形态,使 AI Agent 能够可靠地「理解」、自主操作并高效集成到现有的界面和操作系统中。