世界这么大

人生的路很长
总是有沟沟坎坎
难免会起起落落

如果刚上路就嫌弃你
那么会在一路上不离不弃
与你一起到终点吗

走着走着
有自行车经过
原来可以骑车的
为什么要走

走着走着
有汽车经过
原来可以开车的
为什么要走

其实
只是不想和你一起走而已

 

// 补充

这篇在草稿箱里躺了好久好久,终于想起来点了发布

花样年华

王家卫大导演的作品《花样年华》,《2046》,《重庆森林》等作品,教育了当时年少的我,什么叫逼格。

我没有花样年华,只能品味别人的花样年华。

今天在网易云音乐上听到了梁朝伟用普通话唱的《花样年华》,倒是别有一番味道。

螃蟹在剥我的壳

经人指引,
读到了一首三行诗。

螃蟹在剥我的壳,笔记本在写我。
漫天的我落在枫叶上雪花上。
而你在想我。

读第一遍的时候并没有什么感觉,
而再读一遍的时候,却给我带来巨大的冲击与共鸣。
当一切都是反着的时候,你才会想我。
简直就是我的真实人生写照。

//补充1

据说这三行诗是抄袭的,我也看到了被抄袭的原文。怎么说呢,我还是喜欢这一版。

最新在搜歌的时候,
无意间搜出了关栋天先生的《道》。
对的,歌词就是老子的道可道,非常道,
再配上略微诡异的音调,倒是非常符合我的口味。
被凡尘所扰的同学可以尝试下。

鲸鲨的思路探讨

鲸鲨是一个不同以往的项目。
因为我有一个很大的构思。

对于初学者,熟练者与精通者而言,需要不同的训练方式。
初学者更加侧重于基础知识的重复记忆。
熟练者需要掌握更多的技巧与经验,即俗称的语感。
而精通者需要的,则是可以模拟母语者的思考方式与跟上语言的最新发展。

鲸鲨的范围是在高等熟练者与精通者之间。

入门的方式有无数种,精通的方式呢?
鲸鲨的所有内容组织只根据一个核心:情境。

没有情境的语言是毫无意义的。
教科书里会有文章,有对话,去刻意的编撰不同的情境。
但写在书上的场景,人物,说话方式,从被写下来的那一刻起就已经落后了。
语言是根据人的需求,动态发展与变化的。
可以被精确记录的语言,是已经没有人使用的语言。
得益于信息时代的互联网,
我们可以方便的收集到最新鲜的语言。

鲸鲨应该去找到每一个情境,与每一个情境下最适合的语言组织方式。
并且时刻保持最新状态。
然后用来考验学习者,
告诉学习者。

从点滴做起,实现这幅蓝图。

近况

关于如何阅读代码,原来早有好多工具已经诞生。
其思想与我之前构想的也差不太多。
在一个不崇尚技术与效率的圈子里呆久了,
早已看不见世界的真实样子罢。

最近在push三个project。
一个是一直在进行的神秘项目,目前的关键字为“snoopy”。不宜多讲。
一个是之前提到过的JWMA,野心很大,但很难实现,且必须实现,为了她。
一个是一个简单的ios应用,非常简单,但我非常想做,用swift做。

阅读代码的工具想试试understand,试玩写评测

关于阅读代码

与其说阅读代码如同读书,不如说如读棋谱

从小阅读计算机编程书籍,
大师们就教育我,
写代码如同写书,
代码是写给人看的,
不是写给机器看的,
所以一定要保证有优良的可读性。

具体的来说就是要做到:
遵守命名规范;
清晰的注释;
最大限度的代码复用。

最好呢,
还有要有完善的文档。

但是,书与程序还有有些不同。
不同的地方在于程序是非空间线性结构。
对于书来讲,
我无论从哪开始翻起,内容都是连续的。
尽管对于一些情节紧凑的小说来讲,
可能从中间开始看,仍然不明所以,
但不影响叙事的线性顺序。
从物理空间的角度看,作者一定是希望读者从上到下,从左到右,从前一页到后一页的顺序来阅读。

而代码不是这样子。
假如我们将一个系统的代码全部打印出来。
连怎么排序都是个问题。
最简单粗放的方式就是按照文件名排列(排序A)。

如果我们按照读书的方式来阅读排序A的结果,
除了超人之外很难能读懂这个系统到底要做什么。
(可以设想下排在前几本的程序会是什么,按这个顺序读代码会是一场灾难)

对于书来讲,最开始一定会是目录和前言。
那我们作一个代码文件的或者函数的目录,并且索引出来。
然后写一个介绍系统功能的前言(排序A改)。

这样可以通过类似于翻新华字典的方式,
来阅读我们的代码。
但我们还是不知道该从何读起。(先找到MAIN()是个明智的做法,但有些时候并没有Main)

一个故事,一定有一个开头,
一个代码,一定有一个入口。

代码的内容的组织方式与故事不同。
代码在物理空间上不是线性的,
而是在时间上线性。

从代码的入口开始,可能下一行的内容要跳到别的代码里,
然后再跳进另一本代码里,
然后出现了一个分支,
再次进入另一本代码
。。。。。。。。
终于在翻了大半本书之后,
跳回了第一页。
然后下一行,
再次跳遍了大半本书。
内容之间只有前后,
没有绝对的下一页一定和这一页相关,
甚至下一行与这一行的相关。

其实,如果看过棋谱的话,就会知道,
代码的这种特性,
与棋谱很像。

棋谱,
有两种记法。
一种是按照着棋的顺序,以纯文字描述。
如象棋棋谱中的 马五平七,车三进四。
一种是绘成图,然后每一着上写着步数。
读者自行按照图中的数字脑补在不同时点棋盘上的样子。

当然,代码是无法如同第二种技法那样具象化的。
所以,阅读代码的最好的方式并不是按照文件和上下文的物理顺序来读,
而是按照时间顺序来组织。

以后可以做个工具以静态分析的方式将程序的调用顺序列出来,
以达到debug单步执行的效果。

科普系列-发起

最近脑袋中一直在不断的盘旋着很多的想法。
其中一个就是科普。
科普什么呢?

计算机世界总是显得对行外人很不友好。
虽然有一些计算机科学的概念已经深入到普罗大众,
比如副本重启之类,
但很多基本原理还是不被行外人所知。

相比于经济学与心理学等热门学科的普及率,
计算机科学还是相当自说自话,空中之楼阁。

所以我打算以好莱坞常用的手段—–拟人的方式,
将计算科学的一些基础概念与原理描写出来。

会是个很大工程。
也许写的也不会很吸引人,
但我还是会尽力一试的。

想法诞生于一部美国动画片,
讲的是一个药丸与免疫细胞战胜致命病毒,拯救男主角的故事。
但是名字想不起来了,等想起来之后再更新。