## 界面设计中缺失的一致性 作者怀念起成长时期的桌面软件,如Windows 95-7,感叹如今网络应用设计一致性的丧失。那时,“设计惯例”——例如复选框或标准菜单结构等普遍理解的界面元素——使软件直观且可预测。知道Command+C代表“复制”在*任何地方*都适用。 现在,互联网提供的是一种碎片化的体验。像选择日期或输入信用卡详细信息这样简单的任务,处理方式千差万别,迫使用户不断重新学习界面。这与桌面时代由操作系统标准驱动的同质性形成了鲜明对比。 这种转变源于适应触摸屏以及对移动和桌面体验的需求,以及快节奏的前端开发文化,优先考虑创新而非既定模式。虽然现代框架功能强大,但它们常常绕过标准HTML元素,破坏了传统的浏览器行为。 然而,像苹果这样的公司展示了强制设计系统的力量,创造了一种无缝的“即刻可用”体验。作者提倡优先考虑既定的HTML/CSS惯例、内部一致性以及清晰度,而非纯粹的美学选择,希望未来常见的网页元素最终能收敛到最佳实践设计上。
## 终端中的DOOM:一个基于cURL的移植
这个项目使用cURL和bash将DOOM游戏流式传输到终端,无需其他依赖。它通过将DOOM帧渲染为ANSI半块字符并通过HTTP传输来运行。
有两种玩法:一种是通过`curl | bash`下载的简单脚本,另一种是“自虐式”的纯cURL方法,需要手动配置终端(`stty`)以获取原始输入。后者在请求体中发送按键,并在响应中接收ANSI帧,利用单个TCP连接。
服务器使用Node.js构建,管理DOOM会话,将640x400的帧缓冲缩小到终端尺寸。它通过仅发送颜色变化来优化带宽。会话在不活动后超时。
主要功能包括可配置的终端大小、帧速率(默认15fps)和WAD文件选择。该项目利用`doomgeneric`作为自定义渲染后端,并依赖`doom1.wad`(共享软件剧集)进行游戏。它被设计用于*托管*游戏,而不是在服务器上直接运行。