与 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 相伴的坚持 / 推荐”的一个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注