【开源访谈】鱼传尺素 —— FishChat 作者 Harold 访谈实录

孔小菜 发布于 2015/05/18 11:05
阅读 8K+
收藏 55

【FishChat简介】

FishChat(鱼传——鱼传尺素),是一款纯 golang 编写优秀的即时通讯软件(IM), 它集合了市面上已有产品的优点, 并具备 智能硬件网关管理(学习QQ物联思想, 构思中)。


【访谈实录】

1.请简单地介绍一下你自己(技术背景、学习经历、工作经历)。

Hi 大家好,我叫Harold Miao (miaohong@miaohong.org),ID:miaohonghit, 一个有点小梦想的码农:)。 我本硕就读于哈尔滨工业大学,2011年毕业后先后在华为、PPTV工作。 目前从事大规模视频云平台架构设计工作。 除了对大规模分布式系统比较熟悉外,我的技术涉猎算是比较广的,在开源硬件、嵌入式系统、web开发以及Android/IOS等领域,我都在孜孜不倦的 码代码并深陷其中不能自拔 :) 。


2.你做 FishChat 项目是基于什么缘由?

FishChat一开始并不是一个IM项目,因为我业余是一个开源硬件爱好者,并基于BananaPi (该公司是由我同学创建,在这里给他无耻的打个广告:http://www.lemaker.org/) 开发了一些小智能玩具(比如视频监控等),当我发现这些智能硬件渐渐多起来后,我就想我要用一个统一的平台去管理它们(因为我是个懒人嘛)。这时候我就打 算开发一个云平台,受一些市面上产品启发,我想着IM是沟通人与人之间的工具,那么对于智能硬件它们也有交流的需要,怎么把这个交流的需要给抽象出来变成 代码这就是非常重要的一个问题了,我苦苦思索这个问题,当我发现它越来越有意思的时候,我变得越来越兴奋。也就是从2014年12月开始,我决定先走出第 一步,实现具备基本功能的通用分布式可伸缩IM服务器,然后FishChat就呱呱坠地了,然后你们就看到了,即便是这个第一步也是走的无比艰难。


3.目前 FishChat 是如何推广的,它的应用情况如何?

FishChat其实没有做什么推广,目前开发维护只有我一个人(而且只有下班后才有时间), 其实写这个稿子的时候,FishChat才正式公布3、4天而已。

目前有几家做物联网平台的公司和教育APP公司给我发了邮件表达了一些技术交流和合作的想法。我很希望能和大家一起交流未来的智能硬件物联网平台到底是什么一个样子(憧憬一下:))。


4.FishChat 与市面上其他产品相比有哪些优点?它是如何对智能硬件网关进行管理?

FishChat 诞生的背景就不是一个纯IM , 它是在物联网大潮流的背景下成长的,所以一开始我们就不是以一个“人”的思维去构思它,而是以一个智能硬件的视角去看待IM (交流的需要)这个东西, 所以我一直在思考硬件到底需要怎样的交流。当然目前你看到的FishChat还是一个蛮规规矩矩的IM, 但是我们会不停的去以时代的眼光去审视它,所以即便大规模推掉重写代码也是毫不犹豫的。

另外我想强调的一点是:FishChat中没有中心 节点的, 例如智能电饭锅需要问一下智能温度计的湿度数据以便控制煮饭的时间,那么智能电饭锅不需要去FishChat手机客户端去请求再转发给温度计, 电饭锅是直接和温度计进行点对点交流。电饭锅只要认为自己有需求,就有理直气壮的理由去请求温度计。我们希望更多的赋予智能硬件真正思考的空间。

目前它对智能硬件的管理是参考了QQ物联的想法。我自己建立了一个新的代码库分支正在做硬件接入这方面技术上的探索,相信不久会有一个初步的技术架构。


5.你为什么想要把 FishChat 开源呢?

我为了做这个项目,每天晚上下班后还要继续写代码3个小时以上,周末也是持续的工作。即便是已经达到了身体的极限,项目进度还是令我很不满意,所以我很自然的把它开源了。另外我之前有做一个商业项目(http://www.unitscan.com, 该项目已下线), 做了半年失败了,原因是那个项目在其领域也是比较宏伟,在经过个人苦苦挣扎之后终于力不从心,在某大公司竞品出来后就自然的寿终正寝了。(鉴于一些商业上 的原因,该项目不能开源,抱歉了)。自那以后,我明白了,如果做一个小项目接一个小单子,那两三人也能搞定;但是如果做的是一个平台级的东西,那就非得依 靠社区的力量,所以开源是必然。

另外我现在还有两个比较有想法的项目,代码现在还不成熟,未来我也有开源的打算。


6.FishChat 未来的发展方向是怎样的?

我 认为做这件事情一定要稳扎稳打,所以接下来的重心还是会聚焦IM的基本功能;其中一件事情是将协议模块独立出来,以便兼容一些常用的协议;同时因为我对音 视频领域还算熟悉,所以会把语音聊天和视频聊天这个功能给做了。另外我一直还在维护硬件接入的代码分支,希望尽快在这方面能有一些突破。

另外FishChat的客户端是个大问题, 我现在自己在写android客户端已经感觉很累了,有时候觉得不做客户端好了,但是觉得从推广项目上来讲,这很不好,所以只能挤出更多的时间去做这件事情,也希望能得到开源社区的帮助。

我希望大家尽量以物联网的思维来看待这个项目,如果单纯的做传统IM, 造轮子的意味未免太重了。所以我希望这个项目能有一些创新的特质。


7.你平时是如何管理维护 Github 上的项目的?

我在github上的项目有不少是私有的,我购买过github的这类服务。一般前期都是在私有状态下工作,因为很多代码都不成熟,不宜公开。

对 于开源项目,我希望的是大家如果感兴趣,尽量去fork,然后建立自己的branch,做自己感兴趣的,然后能和原始开发者讨论项目的重构,这样对开发者 来说是很难得的,因为开发者最希望的是大家能在一起真正的讨论优化一个项目。当项目进入一个比较稳定的时候,就可以接受一些pr和issuse。


8.你能否谈一下你对开源的理解?你认为国内开源现状如何?

我很早就接受了开源思想,也混迹于各种社区,受惠于开源软件的各种好处,所以也懂得了有取有施。记得上学的时候曾经捐助了一星期伙食费给某个当时给自己很大帮助的开源项目。

开源软件总得来说是共享知识,它在思想上其实是一个普世的公平价值观。所以任何一个愿意学习的人都可以从中获取它想要的知识,从宏观上看,它是打破了知识垄断,推动了科技的进步。

有时候大家过分的关注开源的code, 其实开源的核心在于“人”的参与。开源的精神就是让个体的人越来越强大,让code作为一种联系的纽带, 所以当“人”变得越来越重要的时候,我们传统的code保护主义将会渐渐削弱, 而人的强大也是符合最基本的生物进化论。

另外开源一个比较重要的美德是持续维护,一个开源项目的生命力就在于开发者愿不愿意持续维护,我们作为一个负责任的开发者,就要把这种维护状态做成一个常态化现象。在这里我承诺:只要我还写一天代码,我就会持续维护FishChat。

国内开源现状我只有一句话:越来越好了。可能还存在一些问题,但是我真心觉得是一片勃勃生机。在此也希望大家能够多多支持国内的个人开发者。


9.你对开源中国有何意见和建议?

开 源中国现在的产品算是比较多的,我很喜欢Team@OSC这个产品, 而且开源中国以开源项目为核心,将开发者和用户聚拢起来是一个很好的做法。去年看到openssl的各地开发者们利用老罗的捐助搞了一次聚会的新闻,我有 点感概,所以我给开源中国一点建议是能不能通过开源中国的号召力以及开源项目使用者们的捐助让开发者和用户能够多在一起线下交流,通过在一起的交流更能凝 聚社区的力量!


10.请聊聊任何你想谈的话题。

最后我想推广一下go语言, 大家知道FishChat的服务器是100%纯用go语言开发的(不包括语音视频服务器)。在此我就打个广告吧: go语言是开发分布式系统的最佳语言, 希望大家多多尝试(一家言论, 不要喷我 :) )。


关于开源访谈

开源访谈是开源中国推出的一系列针对国内开源技术发展的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者的现状,着实推动国内开源软件的推广与应用。

加载中
1
唐家V
唐家V
看到电饭煲询问温度计温度的时候我就小兴奋了一把。
0
phantome
phantome
宏宏,我要给你生猴子~~



大胖森
大胖森
一楼亮了
0
zcgly
zcgly
支持+关注
0
QuenTine
QuenTine
名字就好萌,哈罗德·喵。
0
YangEphraim
YangEphraim

引用来自“唐家V”的评论

看到电饭煲询问温度计温度的时候我就小兴奋了一把。
未来的生活真这么美好?PC询问可穿戴设备主人已经多久没动了,叫来跑步机,强迫关闭电脑。
开源中国最大五毛
开源中国最大五毛
强迫关电脑的生活一点都不美好。
0
放牛娃1988
放牛娃1988
是个外国人?
0
开源中国最大五毛
开源中国最大五毛
咦。我刚clone了代码现在就有访问了
返回顶部
顶部