折腾记录、工具清单、随笔与总结。写下来是为了想清楚——顺便给搜索引擎一个来我家的理由。RSS 订阅。
2026 · 56 篇
年历页刚上线那天,365 个格子里只有两个亮着。一年将尽的今晚再看,那片墙已经连成了星空——不密集,但连贯,像一条从八月末蜿蜒到年尾的小路。这篇是给这条路拍的年终照。
2018 年底我给"当年的自己"写过一封信,劝我开始写博客。那封信在草稿箱躺了三年才生效。这次换个方向——不回望,往前寄。2029 年的你,收信愉快。
如果只允许用一句话总结 2026 年,我会选:把"想做"变成了"在做"。据点从八月末的两格微光,长成了年末连成一片的星河。这篇盘点它的第一年。
首页变成控制台三个月了。当初的判断是"诚实的叙事最有说服力",三个月的数据和体感回来,是时候中审一次:哪些立住了,哪些开始越界。
好的会议纪要不记录过程,只记录"世界因此发生了什么变化"。这个模板我用了五年,改动不超过五行。它长得意外地朴素:
迭代到今天,文章页上已经挤了五种导航元素:顶部阅读进度条、开头可折叠目录、文末上下篇、相关阅读卡片、以及读到底才浮出来的推荐卡。功能是好的,全堆在一起就是灾难。这篇记录我给它们排座次的思路。
有人读完文章想说话,但目前唯一的通道是给我发邮件。静态站要不要留言功能?要。但要得体——不能为了几条评论把整站拖回动态架构。我把候选方案摆了一遍。
上次实战十分钟的记录发出后,有读者留言问"自动关机脚本怎么写的"。这周把它补完,顺便把 UPS 相关的零散配置整理成了一个体系——从"有一个应急电源"升级为"有一套断电应对流程"。
常有朋友问"你的文章是怎么写出来的",答案比想象中流水线得多。这篇文章拆解一篇典型文章的五个阶段——顺便一提,你现在读到的这篇,本身就是用这套流程的样本。
监控面板圈有个隐形的攀比:图越多越专业,颜色越炫越高级。我反着做——本站面板全程只有一种主色、零告警色块、数字之外全是留白。这篇解释为什么"无聊"是监控面板的最高设计目标。
帮同学装系统是很多技术爱好者的共同记忆:一张 Ghost 光盘、一句"半小时就好"、以及无数次"装完发现桌面图标全变了"的微妙负罪感。这篇记录那段时光,以及它留下的两条 permanently 有用的原则。
这个站两天里换了三副面孔:第一版是暖纸白配系统字体,第二版上了自托管字体和噪点纹理,第三版干脆推翻重做,变成纯黑双光束的控制台。每次都以为"这次到位了",每次睡一觉又发现不对劲。把过程记下来,供下一次迭代对照。
设计稿写了三个月,这次真的把断电事件接上了首页日志流。实现比设计简单得多——软件方案的核心是"用两次开机时间反推断电窗口",全部逻辑十行以内。
首页控制台的实时日志流目前只有四类事件:部署、备份、SSH 失败登录、证书检查。这篇记录第五类的设计——断电事件上墙,以及为什么它值得单独一个条目。
静音舱实验的第二回,场地换成了图书馆自习区——和静音舱相比,这里"不那么安静":翻书声、脚步声、远处偶尔的咳嗽。原以为专注度会下降,数据却打脸了:两小时的产出字数反而多了 15%。
博客长到二十多篇的时候,我自己都开始找不到旧文。市面上现成的搜索服务要挂第三方脚本,搜索引擎的站点内搜索又慢半拍——干脆用纯 JS 手搓一个。本文是它的架构笔记。
这台服务器上有三个 cron 都不需要写的地方:证书续期、站点统计、每日备份,全部由 systemd timer 驱动。这篇把我配置它们时的笔记整理出来——尤其是那些官方文档里写了但我一开始没看懂的部分。
《第一次实战》那篇的结尾许过愿:电池剩余接入监控。这次兑现。完整链路三步:读取状态 → 定时聚合 → 面板展示,每一步都比想象中简单,也比想象中讲究。
博客首页最近多了一个"本周最多人读"榜单。功能只有一行字,决策过程却推翻了三版方案。把否决理由记下来——否定清单往往比功能清单更有参考价值。
大多数个人网站的首页是一张自我介绍:头像、简介、社交链接,礼貌而静态。我把它换成了一个控制台——流量图表、日志流、配置面板,看起来像个 SaaS 产品的落地页。有朋友问:你一个个人网站,装什么企业级?
每年都会有人问我"想写博客该怎么开始"。这一年我把自己的答案整理成了五个起手式——每一条都来自真实的踩坑,供想开始的人参考。
给站点做了一个"据点的一年"页面:365 个小方格铺成一面墙,一格是一天,访客多颜色就亮。上线的时候整面墙几乎全黑,只有右下角两格微微发亮——129 次、291 次。但我知道,这个页面最动人的地方恰恰是那些没亮的格子。
上一篇算完钱,有读者(就是我自己的另一个脑内人格)追问:那是不是所有任务都适合带出门?连续两周的对照实验给出了否定答案——任务类型和环境必须匹配,否则两边的效率一起完蛋。
在托管平台上放了几年页面,一直相安无事,直到某天想改一段 404 文案,发现要先本地构建、再推仓库、再等流水线——我只想改一句话。那一刻决定:把据点搬回自己的服务器。
运维教程总把 access.log 说成"待分析的数据",我更愿意把它当成一沓明信片。每一行都是一个瞬间:谁、从哪来、看了什么、停留多久。读多了会发现,日志里全是故事。
家里那盆从 2020 年活到现在的绿萝终于爆盆了——根从盆底钻出来打转,再不换盆就要"自我窒息"。换盆这件事,本质上就是一次生产环境迁移:有停机窗口,有回滚风险,有数据(根须)损坏的可能。流程七步,零死亡。
给朋友远程指导装服务器,他问我:"第一件事装宝塔还是装 Docker?"都不是。开箱前 30 分钟不属于建站,属于加固。这份清单按分钟排,照着做即可。
咖啡馆实验的续篇来了。这次预约到了共享办公空间的静音舱——两小时一个舱位,隔音、单人、无窗。带着一个悬置已久的问题进去:专注力到底有没有天花板?
晚上八点十七分,小区突然跳闸。灯灭了,冰箱停了,但我书房里那台小服务器没有停——它顶在一台不到两百块的 UPS 上,撑过了整整十分钟的停电。这是我买 UPS 以来第一次"实战",值得记录。
学弟托我帮忙配一台"能撑过大学四年"的台式机。预算有限、需求模糊、还要考虑毕业转手——这份清单可以抄作业,也把每个选择背后的理由写明白。
清理药箱时翻出三板过期感冒药和一支开口半年的烫伤膏——它们安静地躺在急救时最顺手的位置。药箱是全家唯一"平时不用、急时人命关天"的角落,值得一个固定的巡检日。
做个小实验:现在回忆三天前刷到的一条内容,任何一条。多数人想不起来。再回忆一周前认真读过的一篇文章——很多人能想起它的核心观点。噪声的特征是量大且即时遗忘,信号的特征是量小且可复述。推送系统优化的方向,恰好和记忆的方向相反。
双屏工作是效率圈的老话题,支持与反对都有大把人。我用了两年双屏,又退回单屏三个月,再重新回到双屏——来回折腾之后,终于能说清楚第二块屏幕到底在什么条件下值得。
夏天的天空太好了,好到连着一个月每天追着日落按快门。一百张里留下九张。这篇不是摄影教程,是九张背后的一百次取舍笔记——毕竟摄影的第一课不是拍什么,是不拍什么。
博客写久了都会遇到同一个窘境:新文章越写越多,旧文章沉底越来越深。明明两个月前那篇才是理解今天这篇的前提,读者却从中间乱入。这个月的主题就是把旧内容"捞"上来,四种玩法亲测有效。
书桌是最容易堆杂物的地方,因为每一件杂物在被放下时都有充分理由:"常用的"、"回头要用"、"扔了可惜"。上周末做了次彻底清理,判定标准简单到残忍:过去两周碰过的留,其余全部撤离桌面。
用 Markdown 的第十年,我终于承认自己是"语法洁癖患者":看到别人用 <b> 加粗会坐立难安,列表前不空行会浑身难受。这份清单半是规范半是病历,供同病相怜者对照。
通知栏是手机的门铃。现在的问题是:推销员、快递员、邻居、骗子,全都在按同一个门铃,而且按个不停。上周我给手机做了一次"通知瘦身",一天的通知从 99+ 降到 3 条左右。方法记下来。
你按下回车到页面开始加载之间,藏着一段几乎没人注意的等待:域名解析。好的时候十几毫秒,坏的时候一两秒——这一百毫秒的差距,就是"网站感觉快"和"感觉卡"的分水岭。
首页控制台改了六版,删掉的数据比留下的多。期间总结出一套"最小可行面板"的筛选标准——任何想上墙的数字,必须连续通过四问,否则就没有资格占据访客的视线。
事情从一句很 innocuous 的需求开始:"把首页那个按钮的文字改一下。"我估了十分钟,实际花了两个小时——因为那一行文案背后,串出了硬编码、重复定义和一层写死的跳转逻辑。把这场小型考古记下来。
"等有值得写的东西再写"——这句话害我断更过两个博客。今年换了策略:不管有没有"值得写的",每周固定产出一篇。三个月下来,累积了十几篇,质量反而比憋出来的旧作稳定。把方法拆开讲。
书签是最容易堆垃圾的地方:每次"这个教程以后要看"都是一个新收藏的理由。某天我的书签栏突破 200 条,干脆做了一次彻底断舍离,最后留下 30 条、七个文件夹。
自托管网页字体不是把文件丢进服务器就完事。本站的字体加载经历了三个阶段的演进,每个阶段解决一个不同的痛点,记录下来供后来者对照。
法餐后厨有个词叫 mise en place:开火之前,一切就位——食材切配好、调料分装好、锅碗按出场顺序排开。我以前觉得这是职业选手的仪式感,直到某个深夜炒糊第二锅菜才发现:我缺的不是厨艺,是流程。
实验规则简单粗暴:一周之内,手机只保留 14 个 App(原 35 个),社交类只留一个。谁离开谁回来,由"一周内是否真的需要过"投票决定。以下是判决书。
在家工作的人都有过这种挣扎:效率低的时候想出门换个环境,又觉得"花钱买座位"不太理智。于是我连续四周记录了每次咖啡馆工作的开销与产出,把这笔账算清楚。
记录情绪这件事,用 App 太重,用纸笔太懒。我的方案是终端里的一条命令:mood 7——顺带把天气也看了。这篇分享这套极简系统的搭法。
每年七月做一次工具箱年中审计,判据只有一条:"90 天测试"——过去 90 天里真正打开过的留下,其余一律移出。今年的结果:留下 9 件,送走 12 件。留下来的都值得记录一句它们凭什么活着。
绿萝号称"最好养的植物",我第一季就把它养到只剩三片叶子。这篇日志记录它从濒死到抽新芽的三个月,以及我从中提炼出的、适用于一切养护事情的教训:勤快,是养护的头号杀手。
先说结论:我现在严格执行 3-2-1——三份副本、两种介质、一份异地。而故事的开头,是我在完全懂这套理论的情况下,丢掉了一份写了三个月的服务器配置。
某天早上被默认闹铃声惊醒,心跳快得像刚跑完八百米,我忽然意识到:一天的第一件事不该是应激反应。于是做了这个月的小实验——把刺耳的铃声换成一段 90 秒渐强的钢琴曲,看看会发生什么。
自从绿萝烂根事件之后(详见上一篇日志的教训),我把家里所有植物按"需水频率"重新编组。结果令人震惊:窗台那一排多肉植物,全年浇水三次,状态反而是全家最好的。
管理一台 2 核 4G 的小服务器,最不需要的就是重型工具。这份清单的原则只有一条:每个工具都必须比它替代的原生命令省力三倍以上,否则立刻淘汰。
这本书跟了我不短的时间——不是难读,是每读完一章都想停下来干点自己的活。它讲的是几家游戏工作室如何做出一款游戏,但几乎没有谈"创意的魔法",谈的全是Deadline、砍功能、和一遍遍推翻重来的迭代。
起因很小:在书房打一局游戏,客厅有人刷视频,延迟直接起飞。看了一眼光猫下挂着一串杂牌路由器组成的"链式组网",我意识到问题不在带宽,在架构。于是下单了一台二手企业级交换机和一块四口小主机,周末开工。
2025 · 5 篇
年初给自己定的关键词是"扩张":更多项目、更多订阅、更多产出。年底盘点时发现,这一年真正让生活变好的决定,全部是删掉什么。所以这份复盘是一份减法清单。
咖啡因的半衰期大约是 5-6 小时,也就是说下午三点那杯美式,到晚上九点还有一半在你血管里站岗。道理都懂,但"下午不喝会不会猝死"这件事,不试一下心里没数。于是有了这个样本量为 1 的单盲实验——盲的是自己。
第四次数 Vim 入门失败后,我终于承认问题不在记忆,在反馈。背键位表是填鸭,填鸭对付不了手指。真正起作用的是把练习变成有即时得分的小游戏。以下是我这一周亲测有效的三招。
远程给父母修电脑的第五年,我悟出一个道理:最好的维护是我不用出场。每一次"儿子你看看电脑怎么黑屏了",都是某个月前偷懒欠下的债。这篇是还债方案的正经版本。
第五次搬家结束,纸箱陆续拆完,我发现了一个规律:打包的优先级,就是一个人生活重心的暴露现场。室友先封的是书和衣服,我第一个装箱的是路由器、工具箱和一整盒线缆。
2024 · 4 篇
404 是全站挫败感密度最高的一页:访客带着一个具体的目的来,扑了个空。大多数网站的回应是一行冰冷的"404 Not Found"加一张苦脸插画。这次给我的站重做 404,把思考过程记下来。
去年今天,我决定把图形界面里能搬进终端的都搬进去。一年过去,盘点一下这个决定的账单:效率确实涨了,但更值钱的收获是一些"手感"——文件不再是图标,而是一行行有名字、有权限、有年龄的文字。
给网站取域名的过程,像给猫取名:一开始想要个气势磅礴的,最后留下来的都是最顺口的那个。woshale 的灵感是一次朋友的自嘲——项目延期被问"慌不慌",他回了句"我怕啥了"。拼音连写:woshale。全场笑完,我默默打开了域名查询。
地址栏的小锁挂了这么多年,多数人说不清它锁的是什么。这篇用一个比喻把 TLS 握手拆开:浏览器和服务器是两个初次见面的陌生人,要在满是窃听者的房间里商量出一把只有他俩知道的钥匙。
2023 · 3 篇
写这篇的时候,我的第三台云服务器刚满一年。前两台的结局分别是:一台配置严重过剩变成了"最贵的 README",一台因为退款政策没看清白白损失一个月租金。这篇是把"够用"两个字拆开讲讲。
笔记系统崩坏的常见剧本:第一天建了八百个文件夹,第三周找不到上周的灵感,第三个月整库放弃。我先后经历过三次这样的循环,直到把 CPU 的缓存结构套在笔记上,才稳定运行到今天。
凌晨两点,一个本地跑得好好的项目在服务器上编译失败,报错指向第 217 行的类型不匹配。我盯着那行代码看了四十分钟,它无辜得像刚洗过的白衬衫。
2022 · 2 篇
某个周日的下午,我刷了四小时手机,事后却想不起任何一条看过的内容。当晚做了个实验:把手机屏幕使用时间统计调出来,"内容消费"栏目的数字大到我不好意思写在这里。第二天,我把信息入口全部换成了 RSS 阅读器——这个听起来像上个时代文物的工具。
用的开源工具里一直有个小刺:命令行输出的中文翻译缺了一角,界面语言切过来后有两个按钮还是英文。忍了半年,某天终于点进仓库的 issue 区,发现居然还没有人报——于是有了我的第一个 pull request。
2021 · 1 篇
决定认真建站的这一晚,我翻出了旧硬盘,在某个叫"网站备份_最终版_2"的文件夹里,考古了我在互联网上留下的十年脚印。把年表写在年末,权当是给正式出发前的自己做个交底。
2020 · 5 篇
这一年我给云笔记行业贡献了不少订阅费:四家产品轮着用,每家的评价都从"真香"开始,以"导出"结束。最后一次搬迁时,导出的专有格式连它自家的旧版本都打不开了。当晚我把全部笔记降级成一堆 .txt,如释重负。
那个月我数了数:三十场视频会议,平均每场 42 分钟,其中真正"需要我在场"的时长加起来不到一场。远程会议的问题从来不是技术,是它把"开会"这个动作的成本变得太低,低到被滥用。
那年春天,全世界的办公室突然变成一个 14 寸的窗口。我跟着大部队仓皇远程,本来以为最大的挑战是网速,90 天后复盘,网速排不进前三。
疫情期间居家,把搁置多年的家庭老照片翻了出来:三箱、约六百张,最早的一张拍于上世纪七十年代。相纸在潮,人在变老,这件事不能再拖了。四周周末战役,全程记录。
为了一个"科学上网之外"的朴素愿望——给老路由器加上客户端流量统计,我给它刷了第三方固件。进度条走到 97% 卡住,然后路由器的灯全灭了。此刻客厅的电视正在播放会员专属广告,而它连不上网。
2019 · 3 篇
年底整理书架,数出 41 本技术书,完整读完的 11 本,翻开超过三分之一的 17 本。要是搁几年前,我会为这个"完成率"羞愧。现在我把这套数学摆上台面:技术书本来就不是用来"读完"的,它是用来"查"和"撞"的。
我学正则走过最大的弯路是背符号表。背完就忘,忘了再背,循环往复。真正的转折是三个顿悟时刻——每一个都不复杂,但它们把零散的符号串成了一个系统。
35 美元、信用卡大小、跑着一整个 Linux——2019 年收到树莓派的那一刻,我理解的不是产品,是"计算机教育"这四个字为什么被写在它的使命里。它便宜到可以随便折腾,而这个"可以随便"才是最贵的教育资源。
2018 · 1 篇
这篇有点特别:它写在 2018 年的最后一晚,收信人是当年的我。那时候我刚在某个技术社区写完第一篇被很多人看到的回答,私信里有人说"你可以开个博客"。我在草稿箱里存了标题,然后,就没有然后了。这封信迟到了很久,现在是补上的。
2017 · 2 篇
注册域名之后的头一件事,很多人急着建站,我的建议却是先搭一个自己域名的邮箱。me@woshale.com 和 woshale2024@freemail.com 的差别,不在功能,在主权——前者是你名下的地址,后者是平台借你的门牌。
那年春天,又一家轻博客平台宣布收缩业务。我的账号里有断断续续两年多的收藏与短文,官方给的信是"请尽快导出数据"。导出按钮倒是给了,导出来的格式却奇形怪状——他们给了你离开的自由,只是想让离开变得困难。
2016 · 1 篇
2016 年夏天,我在虚拟机里第一次启动了一个 Linux 桌面。开机的滚动日志让当年的我以为"这就是黑客了"。一年过去,把这一年的磨合写下来——写给同样站在虚拟机门口犹豫的人。
2015 · 1 篇
2015 年的今天,我人生中第一个网站倒下了。倒下的方式毫无戏剧性:虚拟主机忘续费,倒计时邮件躺在垃圾箱里,30 天宽限期过完,数据清零。更荒诞的是,同一天我发现自己的常用域名在过期拍卖列表里——因为注册邮箱就是那个死掉的邮箱。
2014 · 1 篇
第一次自己装机的经历,以"按开机键毫无反应"开场,以主板说明书翻到卷边收场。六个零件、三个小时的排查,最后发现是风扇电源插错了针位——但按下开机键、风扇转动、屏幕亮起的那一秒,之前所有挫败都清零了。
2013 · 1 篇
收拾旧物时翻出一张软盘,标签上是褪色的字迹:"C 语言 作业2 备份"。那是大学机房时代的遗物,也是我和代码缘分的起点。当年排队两小时上机 45 分钟,error 要抄在纸上回宿舍慢慢想——效率低到可笑,但那种专注此后再难复制。
2012 · 4 篇
大学机房的晚场,九点以后人会走掉一半。留下的人各自对着屏幕,机房安静到只剩两种声音:键盘的敲击,和空调的嗡鸣。那是我的大学里最专注的场所之一——比图书馆安静,比宿舍有氛围。
那年月的宿舍娱乐是自给自足的:一台笔记本跑着 FTP 服务,存着全宿舍集资下载的电影,楼里任何人敲 ftp://192.168.x.x 都能来拷一份。某个周五晚上,我第一次给这个"服务"加了访问统计——那大概是我对"流量分析"最早的兴趣。
买第一双跑鞋之前,我用帆布鞋跑了半年。脚踝的隐痛、磨破的脚趾、越跑越重的腿——都在提醒一件事:工具不对,坚持就是受罪。后来咬牙入了一双正经跑鞋,第一感受不是快,是"原来落地可以这么软"。
大二那年,专业课老师随口说了句"课程资料放公共盘太乱了"。我自告奋勇说给她做个课程网站——这是我第一次"接单",虽然报酬只是期末平时分和一顿饭。但它的完整程度不输给任何正式项目:有需求、有验收、有 deadline,还有一个会提新需求的甲方。
2011 · 1 篇
硬盘深处躺着一份 2011 年的 HTML 文件,四百多字节,用记事本写的。居中的"欢迎光临",一张跳舞的 GIF 小人,一行滚动的 <marquee> 公告。它是我的第一个网页,也是这一切的起点。
2010 · 4 篇
整理旧邮箱,翻出一封 2004 年的邀请函——"我可以给你一个 Gmail 邀请"。那个年代,一个 G 字开头的邮箱要老用户邀请才能注册,1GB 容量听起来像天文数字。这封邀请函是一个时代的注脚,也是一堂免费的产品经理课。
每个人的第一个网名都值得被原谅。我的第一个是"追风少年",配上 QQ 秀里的风衣造型,自认为帅出了天际。后来陆续用过"孤★狼"、"℉antasy"——每个都当时的自己真心觉得酷。这篇考古笔记,献给那些不好意思承认的过去。
大二下学期,靠家教攒的钱加上奖学金,我从二手市场抱回了一台十四寸的旧笔记本。单核 CPU、2GB 内存、电池只能撑二十分钟——但它是我的,而且是可以带着走的。这两件事加在一起,意义远超参数。
第一单网购是一本二手的《C 程序设计语言》,12 块钱,卖家是个考研上岸的学长。下单之后的三天里,我平均每天查六次物流——那种"钱付了、东西在天上飞"的感觉,第一次网购的人都懂。
2009 · 4 篇
在所有笔记都住进云端之前,我们人手一本纸质笔记本。它不能搜索、不能同步、不能插图片,但它有数字笔记至今学不会的三样本事。这篇是给纸质时代写的情书,也是一份"向纸张学习"的清单。
高考前一夜,我失眠了。索性回学校,发现教室里竟然还有灯——另一个同样失眠的同学在里面看书。我们谁都没说话,各自看书到十一点。那晚学到的东西没记住多少,但"有人在和你一起紧张"的安慰感,记到了今天。
大三那年,我们在宿舍楼天台搞了个“公共厨房”:电磁炉、电饭煲、一套锅具,设备按宿舍众筹,使用按排班表。实验维持了一个学期,最终因为“没人愿意洗碗”而结束。复盘这段经历,比成功案例更有价值。
教室后墙的倒计时牌翻到"100"的那天,班主任让我们每人写一句"冲刺宣言"贴在课桌上。我写的是"把每一天过成一样的"——被同桌嘲笑了没文采。但十年后回看,这句没文采的话是我最早的"节奏管理"实践。
2008 · 3 篇
期中成绩出来那天,C 语言 55 分,高等数学 48 分。这是我学生时代第一次不及格,而且一次来两个。写在开头不是卖惨,是因为这次翻车的复盘,是四年大学最重要的学习方法论来源。
大学广播站招新,我报名的理由是"想练说话",结果被分到的岗位是改稿子——把同学们投来的书面稿改成"念出来顺耳"的广播稿。这个岗位干了一年,它教会我的表达方法,比任何写作课都实用。
在没有高速网络的学生时代,了解计算机世界的窗口是报刊亭。每月一期合订本性质的电脑报,附一张塞满共享软件的光盘——那是当年最接近"互联网冲浪"的线下体验。
2007 · 1 篇
小镇的网吧,一小时三块钱。高一那年第一次走进去,花了半小时才找到 IE 图标——然后对着空白的地址栏发了十分钟呆。我知道"上网",但不知道"上"了以后去哪。这段记忆值得保存,因为它是理解"信息获取方式变迁"的最小样本。
2006 · 3 篇
128MB,能存 30 首歌,一块单色屏,一节七号电池听一周。这是我人生第一台 MP3 播放器的全部参数。以今天标准它简陋得像玩具,但在 2006 年,它是"把 30 首歌装进口袋"的魔法。
人生第一台完全属于自己的电脑,是从二手市场淘来的台式机。价格是新机的一半,配置却更高——代价是你要自己承担"前任主人的问题":灰厚的风扇、来路不明的系统、以及三个接触不良的 USB 口。
500 万像素、三倍光学变焦、一节五号电池——二手市场淘来的卡片机,是我第一台属于自己的相机。它拍出的照片放大后全是噪点,但它教会我的"观看方式",比任何参数都清晰。
2005 · 6 篇
整理旧物时翻出一沓圣诞贺卡——中学时代的社交货币。那个年代没有朋友圈,贺卡就是年度社交总结:谁给你写了、写了什么、卡片比去年多还是少,都是人际关系的年度报表。
家里翻出一张褪色的纸质饭票——面值"贰角",边角被磨圆。它是我见过的第一代"校园支付",再往后是打孔卡、磁条卡、IC 卡,直到今天手机贴一下就行的 NFC。二十年里,身份认证的方式换了四代,需求却从没变过:证明"你是你",然后扣钱。
换了城市读高中,开学第一天的固定节目就是轮流自我介绍。轮到我时,大脑一片空白,憋出一句:"我叫 XXX,喜欢计算机,爱好是拆东西再装回去。"全班安静了两秒,然后笑声四起——不是嘲笑,是"这人有点意思"的笑。
糖纸收藏的热度退去之后,抽屉里空出来的位置很快被橡皮填补。橡皮比糖纸"高级":有形状、有香味、有系列——收藏从"捡来的随机性"升级成了"成套的目标感",这是收藏的第二课。
小学的收藏是没有成本的:一张糖纸、一枚邮票、一个烟盒折的三角,都能成为"家当"。我的糖纸夹在语文课本里,按颜色排——那大概是我人生第一次按某种规则整理东西。整理的瘾,是从糖纸开始的。
第一个邮箱的注册动机很实际:注册一个游戏论坛需要邮箱验证。随手在免费邮箱服务上填了资料,密码是生日变体——当年没有任何密码管理意识,验证邮件倒是秒达。那一刻的仪式感,堪比拥有了一部私人电话。
2004 · 6 篇
有人用照片记录一年,有人用账单记录一年。我用关键词。今年的三个关键词是:折腾、坚持、原谅——顺序重要,倒过来说就变了味道。
打字速度是最被低估的"元技能":它不直接产出任何东西,却放大一切产出。从二指禅到稳定盲打,我用了一年多。这篇记录三个真正起作用的阶段,写给还在两根手指戳键盘的人。
新学期选修课开抢,选课系统的页面挤到瘫痪。当年选课的纠结让我总结出一套"三问法则",后来它被用在一切"有限时间内的选择"上——从选修课到订阅服务。
16MB——今天连一张照片都嫌小的容量,在 2004 年却是"一整盒软盘的替代品"。我的第一个 U 盘花了三个月零花钱,银色金属外壳,带着一层塑封膜舍不得撕。它的意义不是容量,是"数据终于可以优雅地随身携带"。
高考前的最后一次班会,没有豪言壮语,没有互相打气的口号。班主任只做了三件小事,多年后想起来,全是温柔。
第一次一个人出门旅行,三天两城。攻略做了三页纸,实际用上的不到一半——另一半的页面,被意外和临时起意填满了。而后者才是这趟旅行真正的部分。
2003 · 4 篇
那一年有一段被拉长的假期。广播里反复播着通知,教室消毒水的味道持续了很多天。复课之后,大家忽然对"普通的一天"格外珍惜——能坐在教室里上课,本身就是一件值得庆幸的事。
黑底蓝字的 Turbo C 界面、闪烁的光标、和一行照着黑板抄的 printf("Hello, World");——这是大学机房第一堂 C 语言课的画面。当年觉得"程序就是抄出来的",这个误会花了整整一个学期才纠正。
期末周最常见的复习方式是把课本重读一遍——效率极低,因为"重读"产生的是熟悉感,不是掌握感。更有效的方法是费曼技巧的变体:把每个知识点讲给一个假想的听众听,讲不清楚的地方就是没学会的地方。
班级要出一本学期纪念册,"会电脑"的我接下了排版任务。当时的认知里排版就是把字摆整齐——真正上手才发现,排版是内容的第二语言:同样的文字,排法的差别就是"想读"和"不想读"的差别。
2002 · 2 篇
校内 BBS 注册需要学生证号,发帖前要读"版规",第一次发帖的紧张程度不亚于课堂发言。那个帖子是问一个编程问题,两小时内收到三条认真回复——互联网第一次以"陌生人愿意帮你"的面貌出现在我面前。
2002 年的网页聊天室,是很多小镇青年第一次和陌生人打字聊天的地方。刷新页面才能看到新消息、文字一行行往下滚、没人知道你是谁——那个年代的聊天室,就是一个"身份消失的公共客厅"。