B站在 5.3 那天出了一个 演讲视频,当时大概看了一遍,想到互联网正在改变很多现状,还是挺认同B站背后反映的互联网下 “认知盈余” 的现象。但这种表达形式让我感觉十分做作和尴尬,压根谈不上喜欢,也就没多留意细节。

或许也是这样的做作引发的热烈讨论吧,今天在朋友圈注意到了这一画面,在“自由学习新的语言”这一帧画面中,看到了当下在啃书学习领域最流行的 APP — MarginNote,突然意识到了某种差距所在。

阅读全文 »

上篇博文 引出了“硬币模型”,从“抛硬币”的角度描述了计算机数据的最本质属性。同时也介绍了为若干硬币赋予现实意义、实现更多数据在计算机表示的基本思路。

接下来我也会具体展开介绍一下数字、文字、音频、图像、视频在“硬币体系”下的表达,为你带来更直观的印象,本篇将重点介绍“数字”的表达。

1. 放下“硬币”

读过上篇博文的你,大概已经有了解我们说的“硬币体系”,它其实就是数学角度的 “二进制位”,这里先明确一个设定:

二进制位的值抛硬币结果
0反面
1正面

为了更好地表达更复杂的概念,这时候的你需要逐渐放下“硬币”这样的模型,去适应那由符号 0 和 1 构成的数学世界啦。

阅读全文 »

最近与几个朋友聊到了“信息的本质”相关的话题,惊讶地发现,即使是计算机相关专业在读,面对“数据究竟是怎么一回事”这个问题,许多人依然云里雾里(包括我)。

解决了这个最根本的问题,方可从计算机领域的各种复杂之中解脱出来。所以我也尝试以文章的形式梳理一下。

“数据” 与 “信息”

说到“数据”,自然和“信息”这个概念是分不开的。什么是信息呢?这个概念没有一个统一定义,但有一点可以确认的是:信息可以减少不确定性。对一件事情不确定,引入信息,把不确定变成确定,这是最基本的“通信“过程。

“通信”过程时时刻刻都在发生,你的肉眼看到的每一个画面,耳朵听到的每一点声音,神经传来的每一丝冲动,或多或少都在传递着信息,为你的大脑减少对外界的不确定性,辅助你的每一个决策。

传递神经冲动的突触

这时候,“数据”像是一种客观角度下的“信息”存在,它从某个具体的角度描述了某个事物的特征。当我们需要确定某事物在某个角度的特点,这个角度对应的“数据”便可以给我们传递应有的信息。比如说,我想知道你的期末考试成绩如何,成绩单上对应这门课的数字,可以给我带来这方面的“信息”;我们看到一段文字、一张照片,了解到一件事情的来龙去脉,文字和照片传递了“信息”,这段文字、这张照片本身就是“数据”。

从这个角度上来看,“数据”实际上是“信息”的载体,我们从某个角度,解决对客观事物的不确定性,形成“数据”;然后我们再通过“数据”解决我们自身对客观事物的不确定性。也就是说,“数据”给我们传递了“信息”。以本文为例,我用文字记下了这篇文章,你在读这篇文章的时候,了解了我所讨论的“数据”与“信息”是怎么一回事。

数据与信息的关系

阅读全文 »

过去在微博遇到许多有趣的内容,但常常因为时间太久远,回看收藏链接往往返回的是404,记忆也随之变成了一个个空洞。脑洞打开,是不是可以把一条微博涉及到的各种文件一键打包下载,在本地阅读呢,就像 docx 文档格式一样。

技术方案

从尽可能简单的角度解决问题的角度出发,能在浏览器端完成的话最好,不需要依赖什么脚本和平台,额外花时间去梳理各种业务逻辑相关的琐事。从此出发,在数据来源方面,选择更简单的手机版;保存数据,优先考虑在浏览器端用文件相关的 API 实现。

理论上来说,文件的本质是一系列二进制数据集合,HTML5 FileAPI 提供了处理二进制数据对象的 Blob。在浏览器环境中字符串可以构造成 Blob,微博中涉及到的图片和视频文件的数据也通过 Blob 的方式处理。

有了 Blob 这一层抽象,文件打包压缩的需求,也用 Blob 的方式去实现的话会更自然一些。寻找已有的解决方案,发现 JSZip,它支持创建 zip 的文件,在输入输出的表达上支持包括 Blob 在内的多种格式,也支持 ArrayBuffer, Base64, 字节数组等等方式的表达,省下不少自己处理的功夫。

文件下载方面,可以用 URL.createObjectURL 基于 Blob 创建一个 Object URL,然后创建一个 <a> 元素,触发 click 事件下载,得到最终的文件。

把数据源与保存的方式都理清楚,大致有了一个流程,就可以动手了。

阅读全文 »

过去没有写年终总结的习惯,但看到大伙儿的总结,回想自己整个人经历着大幅度的变革与刷新的一年,或许还是有必要在部落格里记录一下。

时间串起的生活是一条线,但每一个当下与过去频频交织,组成了一个错综复杂的网络,想用线性的文字去描绘它,很多时候得到的是冗长和啰嗦。想想,面对网络,常常需要集中在几个点再出发,才好凝聚表达的力量。就像 "PowerPoint",内容有 Point,表达才有 Power 吧。

阅读全文 »