我是程序员。年轻力壮那几年,每天用不完的精力,除了搞好本职工作外,还要自学的新技术和偶尔接私单。
2012年网页直播间也还算如火如荼。一般整套系统用到的技术有flash,js,fms和java。技术群qq闪烁,忙里偷闲瞅一眼。 “fms谁搞过,私聊”一个大胡子布鲁托头像用如此简洁的话发布了一条私单。这几项技能我都具备,火速加了他q。布鲁托告诉我他花钱买了套直播间平台的代码。前端和后台管理系统都有源码。唯一缺失的是流媒体服务器控制代码。我要做的就是根据前端接口推测出fms流控制逻辑,然后实现。项目不复杂,粗略预估代码量在千行以内。只是能搞的人不多。布鲁托开价3K,我心中一万只草泥马飘过。调整情绪跟他解释,这不是很复杂的东西,但没有完整详细的功能说明,需要根据接口推测实现逻辑,难度是有的。废话不多说开价1w。刚好弥补一万只草泥马带来的伤害。 布鲁托犹豫再三开价8k,我不再坚持。给了联系方式,他很快打过来。透过略微高亢的声音判断此人大概40岁,个子不高偏胖。这或许是初中音乐老师教我最有用的技能。简单沟通后,他爽快转账3k到我账户作为定金。与此同时发过来的还有那几套系统的源码。
我对布鲁托是没什么好感的,虽然他这么轻易的信任我。《大力水手》中布鲁托是典型的蠢蛋反派。他是不是蠢蛋我尚且不知,反派是八九不离十了。项目有各种源码唯独缺了流媒体服务器的源码。这个状况主要有两种可能,一种可能是代码来路不正。极可能来自某大公司的离职员工,因为一个人没有权限搞到全套代码,所以找个行业的虫儿贱卖处理。第二种可能是代码来自专做聊天室2B业务的团队。布鲁托通过部分付费的方式买到大部分源码,而流服务需要个别授权卖出,以求卖个好价,他只买了一个授权作为分析案例。即将被坑的家伙以为没有FMS程序搞不定,没曾想布鲁托来这么一手。 无论哪种情况,都说明这家伙不是十分靠谱。 被迫害妄想症发作,幻想他或许有本事通过我手机号和支付宝账号就能把我揪出来。所以这份信任也变得不再值钱。还有一种可能就是我要的太少了,他怕我反悔。
那年的北京还是小区宽带时代,群租屋里十几个间房隔开的不同家庭共享着房东拉的所谓20M带宽。每天高峰期一到打开一个网页需要按分钟计算,更让人绝望的是1分钟过去了,浏览器显示该网页无法打开。这样的环境显然是无法满足调试要求的。由于拿到定金不再顾忌成本,开始去星巴克喝杯红茶,然后大方蹭网。两天后发现效果不够好,那家星巴克比较偏,9点就打烊。从公司打卡下班,坐公交到咖啡厅就已经将近7点半,再打开电脑启动环境,开始思考问题就8点左右了。一个问题还没想好,代码也只写了几十行,服务员就开始打扫卫生了。至于所谓的创业咖啡厅倒是昼夜营业,但离我住所也有个几公里,还是不够方便。 情急之下,决定单拉网线。很快一根512kps的网线进入了我的房间。512kps对,没错。尽管8年前我在家里已经享受到了2M独享。尽管我要调试的是视频项目。尽管这样的网线居然80元一个月,首次开通还要一次性交半年的费用。
这个项目写起来并不像我想的那么简单。我再一次的低估了项目的难度。布鲁托把他有的源码都发给我,还提供了线上可以正常跑的环境和账号供我搞明白业务流程。可一个人一下子搞清楚这么多东西也绝非易事。更何况在此之前我没看过任何直播。开始测逻辑,第一次进入某主播直播间,虽然已有女友多年,看到如此甜美的笑容和歌声出现在眼前,内心还是悸动了一下。这是该项目的另一个难点,跑逻辑时经常有美女在眼前会导致智商直线下降,本来10分钟能搞明白的事情,需要思考半小时甚至更长。 我开始用他的源码搭建环境。很正常的遇到了所有运维都会遇到的问题。缺乏依赖的各种库导致安装无法进行。没办法,凭借三脚猫的linux功夫,愣是一点点的把各种问题解决掉了。 满怀欣喜的看一眼项目时,发现项目里有个readme。打开一看,之前遇到的各种问题基本都有应对策略。好吧,我承认最后才看到readme有点2。更2的是我那时才发现项目的后台是php,java只是管理后台而已。php这门语言我当时还不会。好在fms与php打交道并不多。仅有的几个接口硬着头皮看一下也基本能弄个差不太多。
环境搭好了,开始调试了。公司的项目也开始紧张了。新项目我负责的部分是即时通讯模块,搞过的人清楚,写出能用的即时通讯程序不算很难写出稳定的即使通讯很难。调试时要一个人模拟出两个人对话的场景,还要在如此场景下,步进的调试bug,时间久了无论是程序还是人格都开始分裂。很显然周一到周五的时间我也需要加班了。下班到家已经9点。女友躺在床上用这根512kps的网线看视频,居然不是特别卡。我虽然算不上筋疲力尽,也没心思看布鲁托的项目了。发q跟他说,最近公司事多。你的东西需要更长的时间来搞。要么换人做我退钱,要么你多等等。布鲁托没有任何犹豫的选择了后者。被迫害妄想症再次发作,我坚信这个项目开价太低了。
我那时已经在燕郊买了房子,每周五挤公交去往30km外的小镇似乎是最让我兴奋的事。不止是因为房子宽敞明亮,还有物产丰富,物价低廉。从公交车下来一路到走进小区,会有一种在赶集的错觉,农用三轮后面拉着整车的水果,与动辄30多层的住宅辉映形成了浓郁的城乡结合部感。在这里我拉的是6M光纤,不知运营商怎么想的,在2,4,10M这种常用带宽间还搞了个6M。自此不必再忍受半M的网速调试视频。布鲁托脾气还不错,几乎没催过进度, 偶尔着急了也只是象征性说句兄弟这周能多调会不。现在回想起来这恐怕是我对他唯一的好印象。
这个单大体功能包括直播间流逻辑以及验证。聊天、礼品逻辑,以及其他的一些琐碎功能包括T人禁言……用了近一个月搞定了搭平台,搞清楚各个平台之间的交互逻辑,流验证逻辑和群聊。剩下的事情也都在控制之中,恰逢十一黄金周,准备猛干几天假期结束前交货。布鲁托的好脾气和这个项目低廉的价格让我忍不住拉他做测试。我把房间链接发给他,于是发生了下面的对话。
看到你进来了,xxx是我。
哦,看到你id了。怎么没有开播?
我没开摄像头。
你可以用虚拟摄像头把桌面直播出来。这样至少可以确认流直播没问题。 唉,图文混排怎么有点乱?怎么说不了话了。
最后一句是他用q发的,我告诉他我把他禁言了,说明禁言功能也ok了。另外图文混排不在我们之前谈到的功能里,改这个bug需要另付1k。布鲁托软磨硬泡准备500谈妥,我不同意他开始诉苦。什么啥都没干就凭信任给我定金,什么知道我公司事忙所以很少催我,什么明明我自己能搞的测试他还来帮忙。他把他所有的善举说尽了,又说我技术好改这个不费事,我开始略羞愧被迫害妄想症居然不在发作,答应500块改bug。答应他以后我就开始后悔,这块经验丰富能快速修复bug是我的本事。改这东西麻烦本来就值这么多钱,不能因为我消耗少就要的少。至于他的善举,也都是有原因的。妄想症再次发作。
国庆第四天,功能都搞定。布鲁托验收,又提了几个bug。都不复杂,也就没再提加费的事。第五天,改好的东西发给他。并催他尽快结尾款。他说了句再等等,自此q上杳无音讯。电话也不再接听。不出所料现实生活中的布鲁托也是个反派。
一个月后,布鲁托打电话给我。确认是我之后,第一句话是你再发一遍支付宝账号,我把剩下的钱打给你。第二句话是,你把验证代码去掉,然后源码发我。我幻想过很多次他会如何道歉,或者找个什么借口掩饰他的反派作为。他的直白还是出乎我的预料。码农的想象力果然不够丰富。因为预料到他的反派作为,我在代码里加了日期验证,有效期一个月。这块是最先写的部分,也是在辛巴克完成的最有用的工作。为了防止他改服务器时间,还加了奇偶日期验证,如果他反水,并且日期距离交货时间超过1个月,那么就是日期是奇数能用偶数不能用。项目进行的时候,我一度为自己的小心感到羞愧。电话挂断后羞愧一扫而光,同时一扫而光的还有对他为数不多的好印象,以及他列举的种种善举,取而代之的是一声叹息。
布鲁托不是直播平台的运营者,他只是一个倒卖直播平台的二道范子。之后他把同样的代码,卖给了一家又一家想做直播的小公司。我搭建的平台以及当时的测试平台早已无法打开,取而代之的是一模一样的其他地址。正经做直播的购买者还会给自己的平台申请个域名,准备赚快钱的购买者直接用服务器ip地址推广,然后我经常在某个qq群里看到各种撩人的词汇后面附着了一个纯ip链接。点开后看到了熟悉的界面。我之所以判定这个东西和我有关是因为当时调试时,在屏幕的左下角绘制了一个点。交代码时,忘记了删除它。
我拿着尾款买了一台新电视,装点一下我那城乡结合部的家。电视效果还不错。一年后升级了几次rom,开始慢的像牛。我不再像以往一样找客服撕逼打给厂商理论,而是唯心的把它和始乱终弃联系起来。觉得这钱赚的别扭,花的也不舒服。但凭着相当凑合的显示效果,还是忍了。就像为了钱忍了这次不愉快的私单。自此我不再接私单。2015-2016手机直播大火,网页直播销声匿迹。去年,我卖掉了燕郊的房子,连同电视和所有家具。 也删除了硬盘角落里直播平台的代码,至于布鲁托,已经找不到他的q了,不用删q也是老死不相往来了。