ABOUT/LONG FORM/9 章

这不是简历。
这是一份
很长的自白。

我会告诉你我为什么写这些东西、什么不肯让步、什么深恶痛绝,
也会告诉你「币圈从不收盘、阳台只认节气」这句话是什么意思,
以及有几件事我到现在也没想明白。

01

一句话

币圈从不收盘,阳台只认节气。
两边我用的都是同一个办法:把东西留在自己能碰到的地方。

如果只能留一句:我不做产品,我造的是我自己每天都要用、而市面上没有人愿意做对的那件工具。它们解决不了什么大问题,只解决每天都会遇到的那一个小问题——而那个小问题,通常也正好是很多人的小问题。所以它们才会被人看见,尽管我从来没为「被人看见」做过任何事。

主业是币圈的技术支持与服务。那个圈子节奏最快、噪音最大,我在里面有活干,但从来没打算住在里面。我的锚在别处:一个硬盘、一个域名、一壶茶、一盆还活着的植物。这几样东西有一个共同点——它们都不需要我向任何人申请许可。

02

我从哪来

我的生活是两个刻度。一个用分钟计,一个用季节计。工作那一半在币圈——那是个 7×24 不收盘的地方,新词一天能换三茬;下面要讲的这一半,从一条家用宽带和一台运营商给的机顶盒开始。

起点非常普通:一条家用宽带、一台运营商给的机顶盒。开机先放三十秒广告,界面全是预置位,想看的频道被塞进菜单第三页,回看永远转圈。我最开始只是想搞明白一件事——它到底凭什么。

后来我发现自己真正在意的不是内容,而是中间那一层。内容到处都是,愿意把中间那层写干净的人却很少。于是我从一张没人写过的组播地址表开始:写一个检查脚本,把「哪一路是活的」变成一个能看见的东西。

再后来,脚本长出了界面,界面长成了一件工具:批量检测、EPG、时移、预约录制、多屏、硬件解码。我没有哪一天突然决定要做「一个播放器」——我只是第无数次被同一个问题卡住,然后第无数次决定不再忍。

频道从来不是问题。
问题是每次打开电视,都要先看三十秒广告。
03

我信什么

关于软件,我有五条不太会让步的信念。

  • 一 数据应该待在自己的硬盘上 不是因为我 paranoid,是因为「别人的服务」有一个本质缺陷:它随时可以停。理由可以是涨价、是倒闭,也可以只是某个产品经理的季度目标。换句话说,你对自己数据的权限,是一份随时能被单方面修改的口头承诺。
  • 二 工具应该在断网的那一刻还活着 如果一个播放器的核心功能依赖一个远程服务,那它就不是播放器,是那个服务的遥控器。我的工具只有一个硬指标:拔掉网线,本地能做的部分照样做。
  • 三 每一个功能都要能回答「为什么」 加一个功能之前我先问:它解决的是真实存在的问题,还是我想象出来的问题?答不上来就不加。功能列表的长度不是能力,是负债。
  • 四 工具不该要求你注册账号 没有会员,没有订阅,没有「登录以继续」。一个跑在你自己机器上的程序,凭什么要先证明你是谁。这条在我这里没有例外——谁来找我谈,都没有例外。
  • 五 新的东西,必须自己摸一遍 AI、新协议、新硬件、某个半夜发出来的 demo,只要看不懂我就想拆开看看。但拆是为了理解,不是为了跟上。追热点的人不需要理解,只需要站在人群里;我不想要那种便宜的安全感。
如果一个工具在断网的那一刻就死了,
那它其实不属于你。
04

我讨厌什么

讨厌清单比信念清单长得多,而且每一条背后都有人靠它赚钱:

三十秒不可跳过的开机广告,和为它辩护的那句「毕竟免费」。「免费」只是账单的另一个收件地址。

「该内容仅会员可见」。内容本身是公开的,被藏起来的只是访问权——他们卖的不是内容,是栅栏。

先制造摩擦,再出售「移除摩擦」的权限,然后把这整件事叫做一个行业。

为了一个开关要你注册、收验证码、同意一份没人读过的协议——而你想要的只是那个开关。

把用户叫成「流量」「DAU」「日活」,然后在同一份 PPT 里写「以用户为中心」。

以及「我们优化了你的体验」——而你说不出优化在哪里,只发现少了几个按钮、多了两个入口。

我写东西的力气,很大一部分来自这份清单。我做的每一个工具,都是在从这份清单上划掉一条。哪怕划掉的只对我自己有效。

05

我怎么做东西

没什么方法论,只有几条被我自己反复验证过的规矩。

  • 01先写脚本,再写界面。界面是脚本的翻译,不是它的装饰。如果逻辑没跑通,界面做得再好看,也只是把问题盖得更严实。
  • 02能删就删。不确定要不要留的功能,默认删掉。留下来的每一个,都会在我三个月后重新读它时收利息。
  • 03自己先用一个月。发布之前,至少要有一个月是我自己在天天用它。一个连我自己都不天天用的东西,没有资格发给别人。
  • 04写完要写文档。没写文档的功能等于没做——因为三个月后的我,和陌生人没有区别。
  • 05允许它难看,不允许它难用。外观可以慢慢改;但一个要先看说明书才能启动的程序,等于没有做完。
界面是对脚本的翻译,
不是对它的装饰。
06

阳台上那点事

前面五章讲的全是屏幕里的事。屏幕外面还有一半,而且这一半才是把我按回地面的那部分。

我喜欢在家喝茶。不是讲究的喝法,就是一壶放在手边,干点别的,凉了再续,一天两次。手机放远一点——这是我一天里唯一能做到「什么都不刷」的时间段。

我养花,也自己种点菜。水平属于「活着就行」那一档。但这件事有一个我一直很依赖的性质:它不接受催促。水浇多了烂根,浇少了蔫,肥上多了烧苗,你急也没用。它只按自己的时间表长。

在币圈那边熬完一天,再回到阳台上,这个对比会变得很刺眼。那边所有东西都在追下一个叙事:一个新词、一个新协议、一个新故事,二十四小时就能涨跌一遍。这边一株番茄从开花到能摘,要等一个多月,而且它完全不在乎今天谁在喊什么。两边我都需要——一边让我知道世界跑得多快,一边让我记得有些东西催不得。

菜不会因为你着急就长得快一点。
这件事我每天都得重新学一遍。
07

我还在学什么

我对新东西有一种不太体面的好奇心。AI、新协议、新硬件、新框架、某个人半夜发出来的一段 demo——只要看不懂,我就想弄明白它到底是怎么跑起来的。

但我的方式和追热点相反。我不是「跟上」,我是拆开。装一遍、跑一遍、读一遍它的源码或文档,然后在自己机器上让它干一件真事。跑不通的,我不会替它辩护;跑通了的,我也未必会用它一辈子。

这套习惯有个副作用:我的兴趣列表永远比时间表长。GitHub 上那一百零八个仓库,大部分是这种「我想弄明白」留下的痕迹,不算作品。作品只有门口那四件——区别是,那四件我每天都在用。

所以如果你问我最近在学什么,答案通常是:三样正在拆的东西,和一样刚拆坏的。

随波逐流的人不需要理解,
只需要站在人群里。
08

关于钱

所有代码是 MIT。没有付费版,没有企业版,没有「开源核心 + 商业特性」那一套。站上没有广告,没有统计脚本,没有 cookie——所以我不知道你是谁,也不知道你从哪来,这是故意的。

为什么这样:因为我用的很多东西,是别人免费给我的。Linux、mpv、无数个我甚至不知道作者名字的库。我只是把这件事往下传。传的方式就是——当我写出一件还行的东西,就把它整个放出去,不设门槛,不留后门。

如果你确实想给我转点钱,赞助页上有两张收款码。但你不转,这些工具也一样能用一辈子,而且我不会因此少写一行代码。

09

现在与将来

现在手上只有四件在跑的东西,都在作品页上。四件,是筛完之后剩下的数量,不是我没得写。它们不大,但都还活着,而且都在这台机器上跑着。

将来想做的事只有一件,但它很大:把「搬回自己家」这件事做完。代码托管、内网穿透、媒体库、监控、备份、告警——一层一层,从别人的服务器上搬回我自己的硬盘上。现在做了一半,而那一半已经很有意思了。

生活那边也有一个很小的目标:把阳台也接进这套系统——浇水、光照、一株菜从种子到上桌的完整日志。一棵菜和一路信号,在我眼里是同一类问题:都得自己盯着,都不能外包。

除此之外还有一个大概永远做不完的目标:学会在写完一个工具之后停下来。

唯一确定的是——下一个工具仍然先给我自己用。如果你也在折腾同一件事,或者你也在币圈、凌晨三点也还醒着,写封信给我。我们大概聊得来。