与 12306.cn 相伴的坚持 / 推荐

过去的一个月是春运购票的高峰期,而互联网购票已经成了很多人的第一选择。12306 购票网站(下简称 12306)从诞生时被骂,到改版,到一步步进化,不知不觉也过去了 5 年。

最近看了些博客,我想总结介绍一位默默坚持着自己的信条的一位技术“大神”的故事:木鱼。

还记得拖累 GitHub 的新闻吗?

外挂这种东西,或许算是互联网的一种精神和常态。12306 刚开始自然也是如此。木鱼并不是第一个做出订票插件的开发者,但他或许是影响力最大的一位。

木鱼在博客中说,最早的时候,12306 虽然速度慢,但是只要能顺利连进去,用不着排队马上就能搞到票。所以那个时候的订票插件是很有效的,毕竟打着抢票主意的人也没现在多。

而他做了很多功能性创新,针对 12306 的放票规则进行了很多优化。比如一趟车上不同段的票并不全是共享同一个票池的,买多一站或许会有票,于是就有了自动的跨站查询。还有大量的界面细节的打磨,自然是道不尽了。后来他发现很多别的插件,乃至 12306,都开始或多或少地借鉴他的功能和细节。

渐渐的用插件的人多了,12306 为了防机器人,也开始朝令夕改,很容易影响插件运行,这个时候自然就得靠频繁更新插件了。因为一些技术限制,木鱼的插件当时就直接用了 GitHub 来检查更新,结果用的人太多,GitHub 的运营人员发现流量异常,就通过公开渠道联系了木鱼,木鱼也发现自己的程序的确有问题,很容易搞成 DDoS,也马上修改了。结果就搞出了“中国春运拖垮外国网站 GitHub“的新闻。实际上影响究竟有多大,GitHub 官方也没有说明,更有可能只是巧合。

这条新闻是三年前的了。木鱼发现,从运维公开联系他之后可以看出,外国人讨论事情都特别踏实,而“中国观光团”在 GitHub 上的吃瓜闲聊实在太多,所以他“一冲动就直接给干掉了仓库”。过了一年他重新开了仓库,直到现在,就再也没有观光团回来过了。

实际上,国内的各种浏览器开始内置抢票插件的时候,大家还很单纯,木鱼的插件也是最著名的。于是很多浏览器最早内置的也是木鱼的版本,用户量或许就是这么上来的吧。

做个订票软件有什么信仰可讲?

你自然会想,不就是个订票软件嘛,能买到票就是好猫,有什么单纯、坚持、信仰可讲?

其实现在 12306 网站上就自带了“刷票”功能,可以每 5 秒钟自动刷新余票、自动下单。也就是说,刷票这件事,在 12306 的规则里是可做的。这时候,我们看看一个订票软件可以干的事情。

  • 优化界面:12306 的界面的信息量其实挺大的,但有时候的确操作也不够方便,比如验证码太小看不清、要多点几次什么的。所以自己重新做一套界面就很正常啦。
  • 提供智能选择:比如跨站中转查询啊、购票难度显示啊、提示怎么买票更好啊。而且 12306 其实是有很多前端服务器(CDN)的,会强制缓存结果若干分钟(是绕不开的),有时有些服务器还是坏的,这时候做个自动选择服务器就好多了。
  • 智能对时:上面说到缓存,也就是说,理论上整点放票的时候,只要你一不小心提前了一秒钟刷新,接下来的几分钟你就看不到放出来的票,因为被缓存了,还绕不开。这个时候跟服务器对个时、智能选择刷新时机就很重要了。
  • 处理出错情况:12306 经常会有错误,一不小心就查不到结果了,又一不小心就会把你强制下线了,网站的自动刷票功能遇到这些,就会坏掉。所以,第三方的软件只要上点心,就能把这些处理好,减少人工干预。

看起来都不是很给力对吧,那下面这些呢?

  • 暴力刷新:用最快的速度刷新,虽然因为缓存其实没卵用,还增加服务器负担,但是用户看着爽啊。
  • 自动填写验证码:验证码那么难认,浪费我时间,自动填写多好!
  • 离线抢票:服务器网速好帮你抢票,购买保险还可以有加速包。
  • 利用漏洞刷票:有时 12306 可能会有一些奇奇怪怪的,很难发现的漏洞,可以让买票更快一点。不敢说现在有没有,反正前几年是有的。

然而木鱼认为,订票软件的意义在于前面那些点,在不干扰公平的前提下提高购票体验。而后面那些功能,自动打码是绕过机器认证,离线抢票类似于黄牛(你不自己付出时间还想抢票),而且服务器的网速肯定对普通购票者不公平,至于漏洞就更不用说了。

于是现在木鱼开发的 Windows 版的订票助手里,默认设置的刷新时间跟 12306 一样,虽然有接入第三方的打码平台,但默认关闭,设置很隐蔽不说,页面上还红字标明,打码自己跟第三方付钱,打码速度很慢,不建议使用。估计他也是被网友的强烈要求烦死才加的功能吧。

而且软件还有一个功能,如果检测到有其他作者认定有收费抢票等功能的软件运行,木鱼的软件就拒绝运行。

无论如何,木鱼的软件,总是跟市场的“主流”背道而驰。他认为有时候买票的人是盲目的,只要能搞到票,才不管软件用了什么手段,而国内这些大互联网公司,也是迷失了方向。

一晃三年,忍不住又坚持了下来

前面提到木鱼现在做的是 Windows 软件,并不是浏览器插件,这也是一段故事。

木鱼开始做的是 12306 的浏览器插件(用户脚本),慢慢的为了更好实现功能,就变成了 Chrome 扩展。那个时候他在宁波的一家小公司做程序员。

后来 12306 扩展市场越来越大,猎豹浏览器背后的公司看上了木鱼,加上当时他有想换个城市工作,于是就到了北京加入了猎豹。结果在猎豹的几年,都在专职做猎豹浏览器里的 12306 扩展,都是他一个人。这段时间他还在业余弄出来了一个 Windows 软件版的订票助手。

因为公司慢慢抛弃 PC 端,木鱼专职做 12306,做别的项目也很吃力,他感觉很无奈,最终还是在 2016 年中离职了。

而今,唯一在维护的就是 Windows 版的订票助手了。因为他一直做的是免费无广告的软件,维护的精力也很多,自己离职之后又没法靠捐助吃饭,他曾表达过放弃继续维护的打算。

不过,现在是 2017 年的 1 月,他还是给软件发布了新版本。12306 改了新的交易流程,他也在配合着完善着软件。

这软件已经三年多了,作者的生活有了大变,新闻却已经从“代购票收费违法”到了“网络平台有偿购票有合理性”。

在软件的启动界面有一句话,“希望你的坚持都是因为热爱,而不是不甘”。有时人不知道为什么,明知山有虎,偏向虎山行。做出这样的坚持,或许真的是从了自己的初心吧。

以上内容大部分转述自 魚·后花园

“与 12306.cn 相伴的坚持 / 推荐”的一个回复

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)