查看原文
其他

GitHub 第一!这位 60 后程序员火了!

CSDN App 程序人生 2019-07-25

作者 | 胡巍巍

出品 | 程序人生(ID:coder_life)

“我希望所有的流行趋势都在中国,都在北京发布。这样我们就不用老坐这么长时间的飞机去美国,去欧洲了。”

第一位登上维密的中国超模刘雯,曾这样吐槽时尚圈。

她的烦恼,同样存在于科技圈。

和国内时尚圈相似的是,过去,国内开发者主要跟国外学技术。

其中,GitHub正是程序员们的拥趸之地。不过,比起以往的观摩,越来越多的中国开发者,开始在GitHub上大展身手。

2019年7月中旬,一个名为TDengine的物联网大数据平台项目,在GitHub上一经开源,迅速蹿升至榜首。

GitHub截图


TDengine背后的男人


项目背后的掌舵者,火速浮出水面——涛思数据创始人陶建辉,圈内人称Jeff君。

采访那天,陶建辉亲自下楼接笔者,体恤衫掖进裤子的装束,显得很精神。

电梯里,他说自己和CSDN创始人蒋涛是同龄人,不知为何,说到这里,他突然摸摸已经不太茂盛的头发。

后来他说,他掉头发不是因为敲代码,是遗传。

陶建辉,爱笑,也爱动。

采访中,说到激动处,嗓门会突然提高,椅子也跟着转个不停。

一个人的性格,和家庭教育密不可分,他的母亲也是个乐天派。


谁言寸草心,报得三春晖


1968年,陶建辉出生在湖南农村。母亲一人带着他和姐姐生活,父亲在湖南郴州工作。

因为家中没有劳力,母子三人颇为不顺。

小时候,生产队里给每户分鱼,草鱼、鲤鱼从来就没份,只能分到鲢鱼,鲢鱼便宜、土腥味又重,多数人家都不爱吃。

但是陶妈妈总是一笑而过,也不过多理论。

她为了赚钱,一心一意在家里绣“湘绣”。

这样一来,就没精力侍弄菜园里的菜。以至于,陶建辉和姐姐很是羡慕邻居们可以早早吃上黄瓜。

好在陶妈妈是个做菜好手,即便原料不够,也总能把粗陋食材,变成盘中美餐。搞得堂兄弟们,总是到他家蹭饭。

与一般绣娘的“好静”不同,陶妈妈在绣花时,总喜欢叫上其他绣娘,穿针引线之间,房间里充盈着她的笑声。

这样的性格被儿子继承,多年后,陶建辉能在创业不顺中爬起,全得益于从母亲身上继承的性格。

陶妈妈并非没有流过泪,读高中时,有次陶妈妈在和陶爸爸吵架中挨了拳脚,妈妈对陶建辉说,好希望他可以快点长大、来保护妈妈。

学习上,陶妈妈对他要求很严,除了安排挖菜地等不费力的活儿之外,其余时间一律把陶建辉摁在家里看书。

可以说,陶妈妈一方面性格乐观爱笑,一方面对孩子要求严格。

她的“两面派”,让陶建辉在勤奋的同时,不至于养成读成性格压抑的“书呆子”。

初中时,陶姐姐已经高中毕业,陶建辉就拿来姐姐的教材,提前学习高中课程。


邓公一句话,影响一辈子


1984年2月,邓小平和王震在上海,观看小学生操作简易电子计算机时,提出“计算机的普及要从娃娃做起” 。

很快,陶建辉所在学校收到几台电脑。作为尖子生,他成为同学中为数不多可以“摸电脑”的学生。

说“摸”一点没错,因为老师也不会用电脑。他只好买来谭浩强的书《BASIC语言程序设计》,课余自学敲代码。

高中后,陶建辉考上中国科技大学。大学期间,他给老师开发了LB膜天平系统,直到今天还有科大的学生,在用它写论文。

近水楼台先得月,陶建辉的姐姐困于做账之苦,于是给姐姐开发出名为以“建辉电脑”命名的财务软件,至今也仍在使用。

本科毕业后,陶建辉留学美国,学习天体物理专业。后进入摩托罗拉工作,不久后妻子也来到摩托罗拉工作。

在美国的生活很安逸,大公司、高收入、大房子。

正如陶建辉把公众号起名“爱倒腾的程序员”一样,安逸明显不是他的归宿。很快,他倒腾起了创业。


携妻带子回中国


几年前,国内互联网潮水高涨,陶建辉毅然卖掉美国三千多平的房子,携妻带子回到中国。

然而,回国后的生活并不顺利。

母亲肺癌去世,去世前,他带着儿子石头,来到病榻前为母亲拉琴,她看着孙子不停地说:“我石头长的好,琴拉的好。”

几年后的清明节,陶建辉带着儿子,来到母亲坟前,已经长成少年的儿子,一丝不苟地拉着提琴,对着天上的奶奶遥寄相思。

在奶奶坟前拉琴的石头

于此同时,陶建辉的创业一波三折,先是做主营手机推送的和信,被联发科收购;再后来,看准孕妇胎心测试仪的前景,开始做快乐妈咪,结果也是被收购。

被收购,说明创业已算成功。

但是,陶建辉心里始终有个洞。

直到创办涛思数据,这个洞才逐渐找到填充物。


TDengine三两事


涛思数据的主打产品是TDengine。

团队不大,仅有十个人,其中一位女员工,既是人事、也是财务。

小而美的开发团队,却暗藏大能量,他们中间有三位博士、四位海归。

开发TDengine耗时两年多,光陶建辉一人,就贡献三万多行代码。

比起前两次做短信和母婴,这次的产品很有技术含量:TDengine主要用于物联网大数据平台。

相比同类大数据平台,它速度快、性能高、成本低。假设原来企业需要十台服务器,现在一台足矣。

性能好的根本原因,是由于TDengin充分利用物联网数据的特点,比如银行账户的信息统计,缺少哪怕一条转账记录,都会影响结果。但是,物联网数据即便丢失十分钟的数据也没关系,因为用户关心的是一个时间段的趋势,而不是某一个特定时间点的值。


开源核心代码


谈到开源,这是陶建辉参悟人生后的一个梦。

他坦言,有谁会记住诗人李白时代的首富是谁呢?

真正被历史记住的未必是有钱人,而是创造精神财富的人。

这次开源TDengine,陶建辉心一横,索性把核心代码也推向开源(下为本次开源的部分代码)。

int vnodeInsertPointToCache(SMeterObj *pObj, char *pData) {
  SCacheBlock *pCacheBlock;
  SCacheInfo * pInfo;
  SCachePool * pPool;

  pInfo = (SCacheInfo *)pObj->pCache;
  pPool = (SCachePool *)vnodeList[pObj->vnode].pCachePool;

  if (pInfo->numOfBlocks == 0) {
    if (vnodeAllocateCacheBlock(pObj) < 0) {
      return -1;
    }
  }

  if (pInfo->currentSlot < 0return -1;
  pCacheBlock = pInfo->cacheBlocks[pInfo->currentSlot];
  if (pCacheBlock->numOfPoints >= pObj->pointsPerBlock) {
    if (vnodeAllocateCacheBlock(pObj) < 0return -1;
    pCacheBlock = pInfo->cacheBlocks[pInfo->currentSlot];
  }

  for (int col = 0; col < pObj->numOfColumns; ++col) {
    memcpy(pCacheBlock->offset[col] + pCacheBlock->numOfPoints * pObj->schema[col].bytes, pData,
           pObj->schema[col].bytes);
    pData += pObj->schema[col].bytes;
  }

  __sync_fetch_and_sub(&pObj->freePoints, 1);
  pCacheBlock->numOfPoints++;
  pPool->count++;

  return 0;
}

另一个原因,则是因为TDengine的存储引擎和计算引擎特别重要,它之所以能提速,主要是由于存储和计算,都对物联网数据做了很大的优化。

对于开源后的打算,陶建辉说,TDengine肯定还会有Bug,所以要下功夫“杀死虫子”,同时还要提供功能更强大的流式计算、以及支持各种各样的工业数据采集协议。

当然,他也希望,有更多的贡献者,可以参与到TDengine的开发中。


51岁,仍在路上


不是所有人,都可以像“中国第一程序员”求伯君那样,46岁功成名退、退休归隐。

相反,51岁的程序员,在国内程序员就是吃青春饭的论调下,更值得鼓励!不服输、不服老,是中国程序员该有的底气。

正如小米集团技术委员会主席崔宝秋的评论所言:“我们需要为陶总这种老程序员的技术精神鼓个掌。谁说35岁之后的程序员就价值不大了呢?”

这一生,只做个代码工匠,又有何妨?写代码,当然可以一辈子!

 热 文 推 荐 

真实揭秘 90 后程序员婚恋现状,有点扎心!

这几个好评率超高的公众号,别告诉我你一个都没看过

漫画:程序猿眼中的《长安十二时辰》

一个程序员开始优秀的 3 种迹象

“Hyperledger Fabric 是假区块链!”

☞AutoML前沿技术与实践经验分享 | 免费报名

知识体系、算法题、教程、面经,这是一份超赞的AI资源列表

SaaS前世今生:老树开新花

☞中国第一程序员,微软得不到他就要毁了他!

点击阅读原文,输入关键词,即可搜索您想要的程序人生文章。

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存