我的黑客马拉松之旅

近两个月参加了四次黑客马拉松,频率还算很高吧。不过其中三次来自同一个黑客马拉松系列活动。

这四次黑客马拉松活动是:实验楼的项目课竞赛,BearyChat的群聊助手机器人竞赛,魔豆路由器的APP竞赛,以及AmazeUI的前端竞赛。后三者都来自于GitCafe的黑客松之春系列比赛,其实就是由GitCafe牵头的并行式的黑客松比赛。因为今天一大早被日语老师放鸽子的原因,导致我突然有了时间为这些比赛分别写上两句。


先来讲讲实验楼的项目课竞赛吧。实验楼提供一个IT实验平台,亮点是可以通过浏览器连接到一台虚拟机:你什么时候需要做实验,什么时候创建,用完了就销毁。这个概念并不那么地新颖,因为虚拟机技术其实很早就有了,而临时沙盒,就我所知比如Drupal就有类似的应用:选择你需要的drupal版本以及对应的模块,就可以在一分钟内建立一个在沙盒内的drupal网站,该网站一般会在1小时后销毁。

实验楼的亮点在于,将两者结合起来以后,体验上特别好:从浏览器打开,无需安装插件;虚拟机连接十分迅速、稳定,以我所应用而言,从无意外断网,速度上也非常好;几乎没有任何限制,可以直接root,可以安装任何你想要的软件,可以在沙盒内做你任何想做的事,这对于沙盒安全性有很大的要求。在一定程度上,Docker很适合这类应用。

说回项目课竞赛。某天看到实验楼发布项目课竞赛的消息,也就是说,邀请参赛人员以某种技术的某种具体应用为例子,写一个文档,要求文档详实到按照其步骤就能够重现这个应用。这其实跟实验楼大多数的课的要求没有多大差别,比如其他的课是“一步一步学会Python语言”,那么项目课就是“一步一步使用Python语言搭建一个XXX”。最终交付的是这份文档。当时也没什么事做,就欣然加入了,后来得了个三等奖。

对于这次项目课的感受是,总体来说实验楼拥有一个比较高效的团队。中间碰到了一点趣事,就是用着用着发现实验楼网站有两个安全漏洞,就跟工作人员说了。我觉得这两个安全漏洞没有那么高危,也没有那么容易修复,但是没两天就修复了,说明实验楼和大多数初创团队一样,反馈效率还是非常高的。

另外一件事,我的项目课文档经过几次改进以后,发现写不下去了,就征求了一下工作人员的意见,把一个项目课拆分成了三个相关的实验,算是把我的权限提得高了一点点吧,比较灵活。

还有一件事也比较有意思,就是如同大多数竞赛一样,这次竞赛也有入围奖,一等奖,等等等等,以奖金计,所谓的入围,就是参与奖,一旦文档质量达到了及格线,被认可了,就可以收获入围奖,有100元奖金。比较好玩的是,入围奖是实时发布的,就是一旦你的参赛作品走进及格线了,一二三等奖还没评呢,你的支付宝就直接收到了100元奖金。而且入围奖是按项目计的,每个人可以提交任意多项目,好像其他参赛选手也有数个项目入围,然后一下子拿了好多100元的例子。公布最后名次,我得三等奖以后,也是第一时间就收到了奖金,可以说实验楼是我见过的打奖金最快的公司了。

如果说缺点的话,我觉得实验楼主要缺点就是,所有的课程的不同完全只落实于文档的不同。诚然,不同的实验可以使用不同的镜像,但只是操作系统和预装的某些软件的有限不同,课程没有订制启动镜像,环境的预设也完全来自于文档描述,包括运行示例代码什么的,都是通过文档描述手动下载,或者经由特殊的步骤复制粘贴代码。

进一步说的话就是其实形式很单一。学生打开文档,按照文档描述一步一步做下去。完成的标识,只有对虚拟机的截图。所有的课程都是这样,没有意外的惊喜。

对于这次项目课的话,我觉得遗憾就是,评选结果完全是按照该课程的总在线时长计的。我不是说自己的课程曲高和寡什么的,而且我觉得按照用户的活跃度来计也十分公平,只是你知道,用户的活跃度是按照键盘活跃分钟数计的,键盘活跃度是浏览器前端统计的,而浏览器前端的统计结果是很容易伪造的。主要是我觉得光靠用户使用率是无法完全反映质量的,有评审的比例会比较好。


第二个是BearyChat的机器人助手竞赛。大致上就是提供一个为项目管理而设的群聊环境,机器人可以因为各种事件而触发消息,例如git或者trello的更新提醒,把这些提醒都发送到群聊里,就达到了消息聚合的目的。触发也不一定是个外部事件,也可以通过群聊的关键字触发,这样就方便实时记录和查询一些消息。这次的黑客马拉松竞赛,就是写一个这样的机器人。

针对不同触发类型的机器人:通过外部事件触发和通过群聊关键字触发的机器人,我分别写了一个例子。其中一个例子对于BearyChat不拥有的某个特性(就是群聊关键字触发时附带触发者信息)有了要求,于是就跟工作人员说了,后来就给机器人加了这个特性。

BearyChat给我的第一个印象就是,开发很正式,有迭代周期和上线日程表。一个特性通常不能随随便便就修了然后就上线,而是通常要等到下一个迭代周期的到来。对于一款项目管理平台而言,这显然是靠谱的特性。中间有过一件事,就是有一位用户反映上传功能的改进不好,要求回滚到上一个改进。于是经过考虑后BearyChat就回滚了这个功能,取消了新的改进。这个例子向我透露出一种开发正式的感觉——代码是可以回滚的,项目是有节奏的。这对于一个项目的长久发展显然是良性的,如果要比长跑,就要掌握节奏,脚踏实地。

BearyChat给我的另一个印象就是界面很好看,非常整洁。在UI上的设计看得出来花了很多功夫,而不像一些项目那样颜色花里胡哨却不知重点,个人非常喜欢这种整洁的风格。

另外,由于其机器人的形式定义,BearyChat的开发也非常方便。没有复杂的信息验证,而仅通过向某个秘密WebHook发送POST请求即可推送消息。一开始的顾虑是,这个秘密的WebHook如果使用明文HTTP的话就会有泄露风险,不过在黑客马拉松期间BearyChat给整站加上了HTTPS,弥补了这里的不足。

整体而言BearyChat是玩得最开心的。一开始做了一个RSS文章定时发布器,觉得不够酷炫,又做了一个随机数生成器,用户输入roll,机器人就会返回一个1~100的数字。我写得很开心,看到别人玩得也很开心。

后来roll机器人得了一个三等奖,奖品是一个蓝牙音箱。

中间比较难过的只有一点,就是写好随机数生成器,并且给BearyChat官方看过之后,过了几天官方微博就用了类似的骰子机器人来进行微博抽奖活动,给我一种剽窃了我的想法的感觉。其实roll的想法来自于Dota的一个彩蛋功能,并不是我创造的,而老实说也没有太大的创新的成分,技术上也不难,纯粹是为了好玩。但是自己写的应用,开放了源代码,几天后看到官方自己发布了一个类似的应用,又完全没有通知你,完全没有向你解释一句,到底内心还是有一些芥蒂。

更新:不过后来Bearychat的创始人有跟我亲自解释,颇有诚意。

对于BearyChat整体,我觉得问题全在于一个方面,就是它是否可信。既然定义为一个项目开发的团队沟通工具,客户就必须确保自己在上面的讨论是保密的,不会被泄露。如何确保我可以安全地在一个第三方平台上讨论商业机密呢?我觉得这除了是个技术问题,还是个商业信用问题。如果我是项目负责人的话,一样是项目沟通工具,我更倾向于选择微软或者苹果这样有信誉的大公司的产品,腾讯神马的次之,小公司就更次之了。

我的项目可能总值就比那整个小公司大,我又怎么放心让他们随心所欲地看团队的聊天记录呢?这根本不是一个只要对方拍胸脯,或者相信人与人之间的诚信就能够决策的问题。我相信对于BearyChat及其客户而言,安全性问题远远超越了产品稳定性以及功能之类的问题。


第三个是AmazeUI。AmazeUI其实关注了很久了,可以说是国内目前最靠谱的前端框架之一。我对其印象比较深的一点其实不在于它好不好用——当然它挺好用的。我对其印象比较深的一点就是,它是完全订制给中国人用的。所有的文档都是中文版,不提供英文版,以至于github有歪果仁来抗议。UI组件的默认提示(像“请选择”之类的placeholder)也是中文的,非常霸气。对于这种风格另眼相看倒不是因为“扬我国威”之类的原因,而是一款产品能够清楚给自己划一个定位,这也是一款良性产品应有的品质。

这个黑客马拉松的题目是给AmazeUI写一个UI组件或者使用AmazeUI写一个示例页面。我倒是有点打酱油,因为最近比较多地在用socket.io调试,就顺手用AmazeUI写了个Socket.IO调试工具,其实本质上跟AmazeUI没太大关系。不过工具这个东西就是让你专注产品本身,不要专注于工具,从这个出发点来看,我也不算是走偏了吧。

后来它得了一个二等奖,奖品是一个机械键盘。AmazeUI果然是个靠谱的团队,寄奖品很快,扔过来一个京东链接,是这个吗?咔,下单了……

顺手贴一下我写的那个调试器 http://siyuanhu.org/socket-io-client.html

对于AmazeUI也没什么评价,因为也不是一款刚出来的东西了,跟工作人员也没有什么交流,反正就是因为用了AmazeUI所以打个酱油吧。


第四个是魔豆路由器,是一款智能路由器,亮点是路由器上有一个触屏,可以从触屏直接设置路由器看wifi密码什么的。

我觉得这个创意非常好,是对于普通路由器颠覆性地改变。不过对它也是意见最多的。

首先是屏幕的问题。屏幕太小了,整个屏幕大概只占了平面的四分之一不到。我觉得完全可以做成一个电子相框的样子,样子也可以再潮一点,从此路由器可以大大方方地放上桌面。另外就是屏幕是以前诺基亚时代的电阻屏,而不是比较灵敏的电容屏,需要用指甲、触控笔之类的硬物点击。我觉得以上两点大概都是出于成本和对新兴事物的不确定,所以腿迈得比较小吧。所以我会觉得这家公司的胆子不够大,没有从一开始就打算把这款路由器设计成一款可以称霸行业的颠覆性产品的魄力。

其实主要就是嫌屏幕又小又难用吧,另外也对于它的极慢的开机速度有意见。我觉得它对于材料的使用上,根本上对于消费人群的购买力估计太保守了。

竞赛方面,就是为这款路由器写一个应用,要么运行于路由器配套的手机APP内,要么运行于那一方小屏幕中。我选择了后者,在上面做了一款聊天应用。好多人持负面意见,谁要在那么小的屏幕上聊天?嗯,是啊,所以我的想法是反过来的,屏幕太小了。

这款路由器的APP逻辑是用bash写的,或者lua也可以我不会,比较蛋疼……然后界面是使用已有的专用于那一方小屏幕的UI控件,支持的功能比较少,例如实时刷新什么的……总之感觉还有很长的路要走。

对于这款路由器其他的意见在于其社区,看起来是个用了开源CMS搭建的论坛。虽然上面也有活动,却给人一种十分山寨的感觉,结合前面的意见,就觉得创业公司应该有很多难处吧,人手不足,资金不足,技术不足。出来混大家也不容易。

为了比赛,买了两个路由器,倒是对路由器附送的尺子比较感兴趣,是使用沉金工艺制作的一块狭长的电路板,刻上刻度,以及一些常用的测量功能,非常有特色。


我自己参加黑客马拉松的心情跟参加真正的马拉松的心情大概差不多,就是一时的喜欢。我记得去年这个时候我不断地参加各种城市长跑,最后还参加了上马,回想起那个时候,是出于真心的喜欢。然而现在突然兴趣转向了,不那么喜欢跑步了,也不勉强自己,就随遇而安了。

黑客马拉松和长跑马拉松在这点都是一样的。看起来名字里都有“长”的意思,但放在人的一生,或者人的一个阶段而言,是很短的东西。黑客马拉松只不过持续几天,而长跑马拉松可能只需要一个上午的事件。对我来说,这都是兴之所至可以做的事——如果我喜欢,就可以花一上午或是几天去做做看,哪怕没有结果。如果我不喜欢,就不要做。

黑客马拉松中的项目,大多数并不是真正成熟的产品,而只是一个想法,一个创意,可以说仓促地落在纸上,欠周全的思考,欠辞藻与推敲,但它毕竟落在了纸上。你不需要对一个黑客马拉松做出的东西负责,花48个小时做出来的东西,满是bug,满是跳线也没有关系,无法维护也没有关系,离开这48个小时,你可以忘记它。

我觉得参加黑客马拉松的人真正可以学到的是,一个想法从0到落在纸上,距离并没有那么远。想做的事情就去做就可以了。

然后我觉得对于我参加的这次gitcafe的三个马拉松而言,应该主办方预期的人气会比现在的高一点吧。坦白说,除了AmazeUI,这几个项目的人气都不怎么高。我觉得不是因为技术门槛,而是有两个原因。第一是进行时间故意放在了寒假以吸引有空闲的学生朋友的参与,熟料学生就是趁寒假休息和玩,以及做自己的事的群体。第二就是时间太长了。有的应用我花费的构想与编程的时间甚至都没有写这篇文章那么长,而一场黑客马拉松居然要持续一个多月————你在任意的时间都可以提交自己的作品,往往意味着我不知道什么时候下定决心去做合适,特别对于拖延症患者而言。

我注意到这几次黑客马拉松的奖金都不怎么高,大多数一等奖也就是一千元或者一千多。对于线上竞赛而言,奖金就是主要的化肥,算是低成本的黑客马拉松。这从一方面降低了人气,但是在另一方面,我却很赞赏这种活动。因为我觉得低奖金却多次的黑客马拉松很适合学生朋友,因为可以拉低准入门槛。这就像是现在国内技术书的翻译现状一样,因为待遇与工作量完全不对等,所以反而给了像我一样名不见经传的无名之辈一个尝试的机会。

我觉得黑客马拉松这种东西就应该走校企合作的路线。学校鼓励学生创新,落实于IT,就应该让他们按照自己的想法做一些东西,失败不要紧,但请失败得快一些,我觉得这种精神就非常适合黑客马拉松,也不像真正的创业那样会耽误学业。对于企业而言,可以提高知名度,可以搜集创意,可以反省产品,可以挖掘人才,又花不了多少钱。

于我而言,黑客马拉松可能就只是一时的兴趣吧,兴趣过了,就去做其他有兴趣的事情吧。

你可能感兴趣的:(gitcafe,bearychat,amaze-ui,黑客马拉松)