Schemescape

RSS: https://log.schemescape.com/feed.xml
Schemescape 个人开发博客。

破解 SimCity 2000 的存档

作者回忆童年用 Packard Bell 386SX 玩 SimCity 2000 的经历:通过把存档文件中的金钱数值用十六进制编辑器(Norton DiskEdit)改成 FFFF、FFFFFF,绕过游戏限制;之后父亲用 C 写了个十进制转十六进制小工具,作者还发现可搜索内存的 Game Wizard 来修改血量等数值。 文章还提到该存档实际是 run-length 编码、金钱为 32 位有符号整数的细节,以及在 DosBox-X 中复现的方法。整体是一篇关于早期 DOS 游戏作弊、十六进制与字节概念的怀旧技术随笔。
评论点赞收藏1 天前

Commodore 64: the first computer I ever used

I'm starting a self-indulgent series about my own personal history with computers, back when computers were whimsical, exciting, and empowering. To begin, this is the story of me and the first compute...
评论点赞收藏37 天前

Uncommon but useful static site generator features

Roughly 25 years ago, I released my first static site generator. Compared to back then, we now live in a world of embarrassing SSG abundance, where there seems to be a handful of quality SSGs for ever...
评论点赞收藏40 天前

为文本模式浏览器优化网站

作者 Schemescape 做了一件另类但有趣的事:优先把自己的个人网站适配好 w3m/Lynx 等文本模式浏览器,结果意外让网站在 IE6 甚至 30 年前的 NCSA Mosaic 上都能正常渲染。 他详细记录了旧版在文本浏览器中的痛点——标签列表挡住正文、 文章列表太占空间、日期不醒目,以及解决方案:把品牌元素移到 HTML 尾部(靠 CSS 放回顶部),文章按年份分组并让日期对齐,用 和 标签实现跨浏览器的语法高亮。 暗色模式只用了一行 color-mix 加浏览器默认样式,省掉了手动配色的折磨。 当然也有妥协,比如用管道符分隔标签牺牲了语义化。 作者坦言为罕见浏览器优化未必划算,但个人网站的意义就在于做这种疯狂实验。 全文充满真实的一手经验、具体的代码细节和独立的审美判断,对前端极简设计、 复古计算和独立博客文化感兴趣的读者会很有共鸣。
评论点赞收藏118 天前

个人 Web 应用部署方案(上)

作者计划分享选择个人 Web 应用基础设施的思考。标题看起来是一个系列的开端,但当前摘录只有一句话声明,缺乏具体内容。对自建个人网站的开发者可能有参考潜力,但本文片段信息量严重不足。
评论点赞收藏182 天前

为博客寻找新的托管方案

作者正在调研替代 GitHub Pages 的博客托管方案,从自身的实际需求出发对比各平台优劣,分享探索过程中的选型思路与初步方向。
评论点赞收藏194 天前

在象棋中赢自己:零准备硬写一个象棋 AI

作者分享了自己零基础、零准备硬写象棋 AI 的折腾经历。标题自嘲式地说是"在象棋中赢自己",透露出个人项目的手工感与探索精神。 对有编程兴趣的读者来说,这种"边做边学"的实战记录很有参考价值和讨论入口。
评论点赞收藏275 天前

一个基于 Markdown 和 Lua、仅有 450KB 的静态网站生成器

一位独立开发者出于对"极简"的执念,用 C + Lua 打造了仅 450KB、可在 28 年前 Pentium 166MHz 笔记本上运行、零运行时依赖的静态网站生成器 luasmith。 文章详细记录了从 TypeScript/Deno 转向 C+Lua 的技术决策历程:为何放弃现代生态选择"最低公分母"C 语言、如何用 md4c 和 Scintillua 等成熟库拼装出完整功能(语法高亮覆盖约 150 种语言、支持内部链接检查)、实测构建约 140 页站点仅需 300 毫秒。 作者坦陈了 C 语言的安全风险与 Lua 脚本的安全模型缺陷,还展望了为纯文本浏览器优化、用 Cosmopolitan libc 实现跨平台分发、在更古老的系统上编译等后续探索。 全文有明确立场、一手性能数据、真实踩坑记录,语言风趣("对副项目来说,我宁愿做活在过去里的傻瓜"),不是常见的 SSG 介绍通稿,而是充满个人趣味与深入思考的工程手记。
评论点赞收藏315 天前

最小的可嵌入式脚本语言探索(上)

作者以"讨厌臃肿软件"的个人立场出发,系统性地寻找最适合嵌入小型项目的脚本语言。通过构建对比表格,从代码体积、功能完备性和上手舒适度三个维度,实测了 Lua、JavaScript、MicroPython、Tcl、多种 Scheme 方言、Janet、Wren、zForth、Lox、Berry、Jim、Pawn 等十余种语言实现。 核心发现:zForth 仅 25KB 最小但学习曲线陡峭;Lox 仅 40KB 但无标准库;TinyScheme 75KB 生态近乎空白;Wren 160KB 比 Lua 还小但类型系统偏严格;Janet 850KB 虽大却内置了语法宏、不可变数据结构、网络和事件循环等全套功能。 作者坦诚 Lua 的性价比难以被击败,仍计划后续深入体验 Wren、TinyScheme 和 Janet。附有社区补充语言清单和 Lobsters 讨论链接,适合嵌入式脚本选型场景参考。
评论点赞收藏424 天前

原来我的爱好是「自行车棚式」钻牛角尖?

一位独立开发者自嘲式反思:回顾自己过去折腾过的各种项目——自己造静态站点生成器轮子而不直接用 Hugo、纠结 50 毫秒的重建速度不够快、硬抗 Emscripten 工具链、从 NPM 生态逃到 Deno、为了省几美元月费重写全部代码、在树莓派 1B 上搞开发……突然意识到这些全都是在"自行车棚"(bikeshedding,即纠结无关紧要的技术细节)。 虽然当时以"优化资源、尊重用户"自我说服,但回头看来,可能是因为这些优化任务目标最清晰、最省脑子。现在学 Common Lisp 又开始纠结:到底是真的有实用价值,还是又在抠细枝末节? 全文幽默坦诚,充满程序员熟悉的自我怀疑与反思,结尾抛出开放问题,极易引发读者共鸣和讨论。
评论点赞收藏443 天前

面向未来的编程语言选择

一位个人开发者分享他挑选"未来可长期使用"编程语言的真实思考过程。他给出了自己的硬性标准:开源编译器、多平台支持、无破坏性变更、无需多GB下载、跨编译方便等。 然后从 Stack Overflow 热门语言榜单出发,逐一淘汰——PHP/Kotlin/Dart 等平台绑定语言先出局,Java/Perl 因臃肿被弃,Ruby/Haskell/Lua 因个人经验或替代品更优而落选。 最终进入候选的有 TypeScript、C#、C++、C、Python、Go、Rust、Lisp/Clojure、Zig,每门语言他都给出了基于亲身踩坑的简评(比如 Rust 在 Windows 上初次配置不顺利)。 文章不是"十大最佳语言"式通稿,而是一个有真实困惑、有具体项目背景、有个人取舍标准的开发者日记,结尾也坦诚"还没定论,下一步继续试",这种未完成感和真实人味是最大看点。
评论点赞收藏443 天前

用 Python 从零搭建极简 IRC 服务器

作者觉得 Discord 就像聊天界的 Electron——功能齐全但旧机器完全跑不动,于是动手从零写了一个极简 IRC 服务器 pirc。整个服务端只有约 350 行纯 Python,零第三方依赖,实测可连接 HexChat/Irssi/WeeChat。 文中分享了具体踩坑:Python socketserver 无法感知客户端掉线、textwrap.wrap('') 的诡异返回值、IRC 协议只有 motd 命令用小写等。 作者还吐槽了 IRC 默认广播主机名、离线收不到消息等痛点,但坦言自己做的版本也砍掉了加密、用户系统、历史消息——反正只是玩玩。 有个人观点、有技术细节、有幽默感,是典型的独立开发者实验记录。
评论点赞收藏525 天前

告别上网本

一位程序员与自己服役十几年的 Dell Inspiron Mini 1018 上网本告别。这台 1.66GHz Atom、1GB RAM 的上网本经历了从 Windows 7 Starter 勉强可用、到升级 Win10 后卡到无法使用、最终在 2023 年被翻出来安装 Alpine Linux 重获新生的完整历程。 作者用它搭建了纯终端 C 语言开发环境,在 Emacs 中编写了大量 Common Lisp 代码,体验了 REPL 驱动编程。最终因内存插槽故障和键盘排线松动而退役。 文章充满个人回忆与技术细节,还透露家里藏着另一台 Asus EeeBook 准备继续折腾,适合对老旧硬件、轻量 Linux 和个人技术故事感兴趣的读者。
评论点赞收藏569 天前

Python 就是新时代的 BASIC

一位长期回避 Python 的程序员最终"投降",用 Python 写了个人工具——这个亲身经历引出了一个值得讨论的观点:Python 就是新时代的 BASIC。 作者回顾了自己从 Commodore 64 到 QBasic 的编程启蒙,对比 BASIC 的辉煌历史,分析了 Python 如何凭借无处不在的普及度、开箱即用的标准库和足够简单的上手门槛,像当年的 BASIC 一样统治了编程世界。 文章有个人故事、有历史背景、有明确立场,适合激发程序员社区的讨论与共鸣。
评论点赞收藏626 天前

登录芦苇

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