Unsung

RSS: https://unsung.aresluna.org/feed.xml
Unsung,关于软件工艺与质量的博客。

"他们完全没有对用户的责任概念。"

Unsung 摘录了计算机科学家 David Chisnall 在 Mastodon 上的一段长文。Chisnall 用 Vim 约 25 年,写了 5 本书、博士论文、几十篇论文和 150 多篇文章,Vim 的持久化撤销(persistent undo)对他来说已近本能——哪怕重启、关闭文件六个月后再打开,撤销历史都还在。 他提到 Raskin 第一定律:程序不应损坏用户数据,也不应因不作为让用户数据受损。但当他尝试 NeoVim 时,发现 NeoVim 在启动时检测到了 Vim 的持久化撤销文件,直接删除了它(里面是所有历史撤销数据),然后写入一个 Vim 也读不了的新格式文件。 他提了 issue,得到的回答是"持久化撤销格式不稳定,用户不应依赖一个叫持久化的功能来保存数据,它改过一次、以后大概率还会再改"。 这段回复直接终结了他对 NeoVim 的信任——"他们完全没有对用户的责任概念"。Unsung 评论说这段文字触及了几个要点:持久化撤销机制本身很惊人、软件丢失数据或 disrespect 用户时用户会记住、"改过一次以后还会再改"这种态度杀伤力极大,还顺势介绍了 Jef Raskin 2000 年《The Humane Interface》里的三条人机接口定律。
评论点赞收藏2 天前

被时间带走的键盘符号(第二部分):Mac 那一侧

作者梳理了 Mac 键盘上一些已被淘汰的键位符号,重点介绍 1990 年代末到 2000 年代初加拿大(CSA/ACNOR)键盘:布局跟随欧洲但符号完全不同,Ctrl、Alt、Tab、Caps Lock、Esc、方向键、回车键和数字键盘回车都有独特字形,可能是政府法规推动、Apple 妥协的产物,作者不确定覆盖整个加拿大还是仅法语区。 他还提到 2003 白色 Apple 键盘(美/欧/JIS 版)和 90 年代 Apple Design 键盘也有类似差异,Unicode 里收录了这些符号(⇬⇭⎆⎈⇱⇲⎗⎘)。 另一个亮点是日版 Control 键上的铅笔符号:属于 Apple 的 Kotoeri 系统,辅助日语多书写系统切换,2014 年前后从 Mac OS X 移除。 最后作者把 Kotoeri 的符号切换类比到今天 emoji 普及后所有人都在多输入系统间切换,并顺带吐槽 macOS 的 Fn/🌐 键。
评论点赞收藏10 天前

我们遗失的键盘符号,第一辑:PC篇

盘点PC键盘上那些被淘汰的独特符号:从IBM打字机和早期计算机的图标派设计,到 Print Screen、Insert 等按键的图形化表达,以及被 Unicode 保留下来的几个遗留符号。 文章从欧美"文字vs图标"的设计理念分歧说起,追溯了办公电脑最终放弃象形符号的历史原因。
评论点赞收藏16 天前

瑞士奶酪模型,第3部分

<p>之后更多在这个系列的帖子里,我想在一个更轻松、无关紧要的地方停留一下。</p><p>“这里有个有趣的东西你可以试试,”开口说道摘自《复古游戏机制解析》:</p><p>视频中描述的客厅魔术的前提有些复杂:</p><ul> <li>拿起你的任天堂娱乐系统,装上马里奥卡带,然后开机,</li> <li>不关机时,拿起卡带并换成网球卡带,</li> <li>开始游戏,等音乐停止,然后移动一会儿,</li> <li>拿<em>那</em>把弹匣取出来,把马里奥放回去,</li> <li>按A+开始键,你会看到你会从一个不存在的随机“无效”级别开始,这本不该发生。</li> </ul><p>我让你去看视频,里面有很好的解释,但我觉得这是瑞士奶酪模型的一个很好的例子:</p><ul> <li>A+Start是真正的功能,允许你从上一个完成的关卡继续新游戏(而不是总是进入1关的Start)。</li> <li>NES允许你在机器有电时取出卡带再装回去。</li> <li>马里奥的创作者决定让游戏在每次游戏结束时自动重置,并以特定方式区分冷启动和暖启动。</li> <li>网球启动时不会清除内存。</li> <li>网球恰好以一种非常特别的方式改变了记忆,结果意外地与马里奥“兼容”。</li> <li>马里奥游戏在入门时不会净化关卡编号,所以你可以从一个无效或损坏的关卡开始。</li> </ul><p>就像之前一样,只要没有一个瑞士奶酪孔,就能防止虫子发生。但这些孔完全对齐了。</p><p>我觉得整个过程挺有趣、很愉快的,我也理解了为什么马里奥的创作者每次重玩都要重置游戏(除了一个小例外)——这很残酷却很优雅,是我过去几十年参与各种项目时一直希望能更容易做到的。</p><p>当然,有人可能会认为这是一个高…</p>
评论点赞收藏29 天前

我只是仔细选了词

1990年代末,一位叫rs1n的玩家手动重写了一篇17000多字的《超级银河战士》攻略,逐字挑选让每一行都精确对齐右边界,全文无一处双空格。 用等宽字体做全文对齐是排版界的经典难题——右对齐要数空格,居中无法精确到半个字符,两端对齐会产生难看的宽间距,连连字符也会破坏复制粘贴。 rs1n的解法不是工具,而是重写:只选那些恰好凑齐行长的词。他在FAQ里轻描淡写了一句"没用任何程序,只是仔细挑词"。 这种逐字打磨的执念,和开发者反复调整UI字符串或tooltip让它塞进固定宽度的体验如出一辙。
评论点赞收藏30 天前

我们想让人困惑,也想让人开心

ArtfulType 是一款面向早期 Mac 的 Markdown 编辑器,引发全屏模式争议。John Gruber 认为 1984 年的 Mac 没有全屏模式,复古应用不应使用。 作者反驳:复古计算项目不必严格还原历史,可以融入现代功能。
评论点赞收藏31 天前

“An absolute bare minimum of interactivity”

I mentioned Atari’s Pong recently, a game often considered to be the first videogame ever. It wasn’t, and as a matter of fact, it was a clone of one of the games from the first home console Magnavox O...
评论点赞收藏32 天前

这样,界面就不会成为障碍

<p>Ilya Birman 在他的博客中讨论了那些不必要地拖慢人们速度的界面,这在两篇文章中展开。</p><p>在,标题为“让我点击”,Birman展示了几个地方,迫使用户绕行一系列点击,而不是走一条直线路线:</p><blockquote>在Aegea的评论设置中,有一个“发送邮件”的复选框,并配有一个电子邮件地址字段。如果未勾选该复选框,则该栏中没有填入点:地址无需用于其他任何内容。如果在地址为空白时勾选了复选框,系统无法发送任何信息,因为它不知道地址。简而言之,这些控制是相互关联的。逻辑上,如果复选框未勾选,完全可以禁用输入——填入也没意义。但这确实让人恼火。如果我想输入地址然后打开复选框怎么办?如果地址填写完后不让我关闭复选框,那就更糟了。我想关掉它——让我点击一下!</blockquote><p>在Birman谈到了播客应用Overcast的一个具体例子,该应用的创作者面临着棘手的系统性挑战:</p><blockquote>对于任何播客,你可以设置设备上要下载多少集。假设你把限制设为三集,然后停止定期听播客:接下来的三集会下载,之后就停止下载——为什么还要浪费空间呢? 但是,如果有人手动要求下载一集,而他们已经下载了三集怎么办?你不能马上删掉它来保持整洁。 最后,Marco的妻子Tiff提出了解决所有问题的方案:她说,只要不让用户下载更多剧集,并大致显示一条信息:“你的剧集限制是三集,但这将是第四集,拒绝了。”马尔科喜欢这个解决方案。我没说。当然,这解决了马可的问题,但解决…</blockquote>
评论点赞收藏36 天前

这能换来真正的江湖地位

1996年《雷神之锤》盗版圈的竞速故事。视频回顾90年代PC游戏盗版亚文化,涉及leetspeak、nfo文件、cracktros、ASCII艺术、BBS和IRC等细节,揭示了盗版群体内部竟存在某种"管理机构",且可能同样腐败。
评论点赞收藏37 天前

测试技巧:把键盘调快

调整键盘重复速率和延迟,能帮开发者测试界面按键重复行为是否正常。Mac 默认初始延迟 500ms、重复间隔 1000ms,可调范围分别为 250ms-2s 和 2000ms-33ms;Windows 11 最短间隔 405ms、初始延迟 1000ms。 建议测试时将两者调到最短,以便发现接口对重复按键的处理问题。
评论点赞收藏37 天前

搜一下就能找到步骤说明

汤姆·克鲁斯和导演麦克奎里2018年拍过一支反对"肥皂剧效应"的公益短片,核心观点是电视插帧让24帧电影变成60帧会破坏电影感。60帧确实在画面流畅度上有客观优势,但电影艺术的核心并不在于帧率高低。
评论点赞收藏37 天前

YouTube 的右键菜单接力

YouTube 页面右键一次弹出自己的菜单,再右键一次才显示浏览器原生菜单。这是受限于浏览器无法扩展原生右键菜单的渐进式增强方案,Chrome 原生菜单本身也存在冗余。
评论点赞收藏38 天前

电影评论:《通用魔法》

2018年纪录片《General Magic》讲述了一家由前苹果员工于1990年创办的公司,其掌上通信设备和Magic Cap操作系统在1994年上市后迅速失败。 多位校友后来在科技界取得巨大成功,该公司被称为"1990年代的仙童半导体"。影评人给出两颗星,认为影片剪辑精良、档案素材丰富,但整体令人失望。
评论点赞收藏39 天前

Gmail 新增 BCC 回复提醒功能

Gmail 新增 BCC 回复提醒功能,回复密送邮件时会弹出警告提示。不过执行细节有待改进:无法手势滑走提示、引号使用错误、提示位置不够直观。
评论点赞收藏40 天前

幽灵跑得飞快,而且不会变蓝

作者在街机游戏展上看到一台改装版吃豆人街机,游戏直接从255关开始,幽灵速度极快且无法通过吃能量豆反杀,通关后直接进入著名的256关kill screen。 这是作者第一次见到这种完整呈现吃豆人最终挑战的改装。
评论点赞收藏41 天前

瑞士奶酪模型(二):Google Docs 的一个诡异输入 Bug

Google Docs 表格输入 ".08" 后按退格键,文档突然异常,撤销和 Esc 都失效。 作者在整理 Windows 版本列表时踩到这个坑:在 Google Docs 里输入小数 ".08",按退格删掉前导零再重新输入时,文档进入诡异状态——⌘Z 撤销不了,Esc 也退不出来。 这是一个关于 Google Docs 输入框边界行为异常的踩坑记录。
评论点赞收藏42 天前

快捷键的"内容"与"位置"之争

<p>我前几天发现了这种快捷键模式。这是Photoshop里的效果:</p><p>这里是DevonThink上的文章:</p><p>这里用线性语言:</p><p>那些“序数”快捷键感觉井然有序,看起来也非常优雅。但要小心!一旦你想引入新选项,甚至重新排序已有的快捷方式,你就会陷入麻烦:要么你保留了用户的运动记忆,优雅的排序立刻就乱套了——要么你不得不把现有快捷方式改成新快捷方式,让用户感到沮丧。<br><br>也许最好是<em>真的</em>在尝试之前,要有信心你的选择会被永久锁定。</p><p>但线性中也有类似的处理方式:</p><p>或者在Raycast中(按住⌘时):</p><p>或者在Ghostty这里:</p><p>这三者看起来像是同一个想法,但我不太担心。</p><p>为什么?因为这些捷径更清楚地指向<em>职位</em>而不是一件东西。这里,用户界面的机制本身传达了人、命令或标签页会移动。当然,有些用户会习惯“1表示分配给Marcin”或“⌘3代表Unsung标签”——就像我们习惯“最近列表中的第二项”或“在第三个搜索结果页顶部”一样,如果他们开始重复这个模式——但至少我觉得这里的界面更诚实地表达了它能承诺的内容。</p><p>顺便说一句,我经常思考这个问题:不是界面当下传达的,而是它从长远来看所承诺的。</p><p> </p>
评论点赞收藏43 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。