周刊(第1期):开刊,数字化生活数据
为什么会写周刊
我为写周刊这个事情思考了小一阵子。
列举了好几个优点和缺点。比如,优点有能以输出来倒逼自己的输入,缺点有我的积累是否能够足以支撑我每周写一点东西,以及这种有明确时间限制的输出,是否会给我带来心智负担,等等。再比如,以往的博客内容都是很“硬”的技术内容,周刊不可能也不会每周都更新硬技术文章,会不会导致读者群有点分裂。
思考到最后,我还是决定写周刊。
从去年开始远程工作,大部分时间都在家里。由于我又很宅,网购也足够的发达,这又让我更宅了。然而,“物理”意义上的活动范围变小,并不意味着“逻辑”上能触达的范围也变小了,实际情况是,由于把通勤时间节省下来,我有更多时间看书、跑步了。所以,我需要一种方式,能输出我看到的一些东西,来与外界发生交流。
我在微博上看到了这么两句话,也反向让我坚定了这么做的意义。
社交媒体在我看来最大的价值:它是最开放的peer review system
让读书产生好处的最简单办法是,一旦有灵感和想法之后,马上写出来,公开发布在社交媒体上,即使不成熟也没关系。写的过程也是自己深度思考的一个步骤,外人的有价值评论可帮你不断推敲,或给你带来新的线索,积累多了自然会出深刻的洞见。一个人孤立封闭的傻读写笔记,很难迅速提高思考深度。
周刊于我的意义,就是能定期把自己想到、看到的事情都公开出去,反向的让自己定期整理、输出,这是我突破“物理”界限和人交流的手段之一。内容将会以自己的一些想法、业界的动态、推荐、读书、影视等为准,与我写的其他技术文章相比,不会这么“硬”。
另外,写周刊还有一个好处,之前有很多想法、念头会散落在各种社交平台这样的新媒体上,实际对整理、汇总、索引等也不好,把念头汇之于文章,用这种更老式的传播方式可以更好得记录下来。
数字化生活数据
既然谈到了周刊做为个人对外输出的一个手段,我就想起最近几年一直在做的事情:数字化各种生活数据。
做过一阵子时序数据库的开发,有些人当时并不太了解什么叫做“时序数据”,于是我当时想了一下生活里的类比,其实“时序数据”就好比我们的“流水账”:
- 9:00:起床,洗漱。
- 9:30:工作。
- 12:00:午餐。
- ….
所谓“数字化生活数据”,也就是按照时间顺序把这些记录下来。“时序数据”,说白了就是时间强相关的数据,以时间为第一维度来存储、查询的数据。
“数字化各种生活数据”,这么做的好处有什么?在我看来,有这些好处:
- 形成上面的“时序数据”之后,可以方便进行聚合、统计、查询。
- 定期还能依赖于各种工具来进行汇总、回顾等。
比如,我每天都在用的DayOne
app,就有一个“每年今日”的功能,提醒我以往的这一天我都记录了什么,这就是基于这些时序数据的汇总;再比如,每到年底各种app都会自动给用户汇总生成这一年的用户行为统计数据,告诉你最喜欢的歌、和你爱好最匹配的人,等等。
这些功能,都依赖于你之前上报过的“时序数据”。
今天要推荐的两个相关的开源项目,作者都是yihong0618 (yihong),他也是“数字化生活数据”的提倡者,可以在小宇宙里收听他的访问:S01E03 专访 YiHong,自学成为流行开源项目作者的点滴 - 开源面对面 | 小宇宙 - 听播客,上小宇宙
第一个项目是yihong0618/running_page: Make your own running home page,可以抓取主流的几个跑步app数据,生成好看的跑步数据展示页面:
第二个项目是yihong0618/GitHubPoster: Make everything a GitHub svg poster and Skyline!,可以将在各种app上(twitter、多邻国、扇贝等)上报的数据可视化:
可视化展示,会给人很直观的反馈。人的行为如果能得到即时的反馈,某种程度上会有正向作用。以我来说,去年9月份开始跑步,也是fork了这个项目每天生成跑步的可视化数据到我的网站,时不时会看一看数据,知道自己都做了哪些努力,潜移默化的会让我有一些成就感。
一个想法:未来会不会有一天,可以拿到一个人所有的数字化数据,在这个人去世之后以这些数据重塑回一个“一样”的人?
推荐
算法可视化交互动图
既然这一期讲到了数字化数据之后方便交互演示,就接着推荐旧金山大学制作的系列算法可视化交互动图,包括常见的堆、栈、队列等。学习算法数据结构的时候,如果能图示化的展现其变化过程,理解起来就会更顺畅,在学习B+Tree算法的时候,我就用过这里的演示来理解流程。
B-Tree中的“B”是什么意思?
上面提到了B+Tree,B-Tree数据结构中的“B”到底是什么单词的缩写?
下意识的,都认为是“balance”的缩写,毕竟这是一个平衡的树形数据结构。但是其实,连几位发明人,也从来没有解释过。
有可能是“boeing”的缩写,因为作者当时就职于波音公司;还有可能是第一作者Bayer的名字首字母。
B-trees were invented by Rudolf Bayer and Edward M. McCreight while working at Boeing Research Labs, for the purpose of efficiently managing index pages for large random-access files. The basic assumption was that indexes would be so voluminous that only small chunks of the tree could fit in main memory. Bayer and McCreight’s paper, Organization and maintenance of large ordered indices,[1] was first circulated in July 1970 and later published in Acta Informatica.[3]
Bayer and McCreight never explained what, if anything, the B stands for: Boeing, balanced, broad, bushy, and Bayer have been suggested.[4][5][6] McCreight has said that “the more you think about what the B in B-trees means, the better you understand B-trees.”[5]