微世纪

我觉得可以有一个信仰微生物的宗教啊。

  • 起初没有世界也没有神,神在混沌中被孕育。祂无比的微小,但是又无比浩瀚,因为祂可以复制自身,神复制了以后依旧是神,依旧只有一个神,所有微小的亿万分之一的整体才是祂。
  • 经历了漫长的岁月以后,神想要创造世界。神必须审判自己,让自己的一部分褪去神性。
  • 神化作蓝藻,从混沌中采集负熵,降下了审判。神的审判遮蔽了这个世界,现在的凡人唤作氧气。
  • 失去神性的神难以对抗外界,他们聚在一起成为了多细胞生物。
  • 神是遍在的,神调和着自然的规律。神将死去的生物分解,轮回于自然。神将创生无穷力量的权柄化作叶绿体分享给了一脉生物,将使用这些力量的权柄化作线粒体分享给了所有生物,权柄都含有神性。
  • 多细胞生物不断繁衍壮大,存在于海中和陆地。神帮助它们,也用死亡选择他们。神是仁慈的,也是残酷的。
  • 最后,灵长类的裸猿诞生了,与此同时世界也诞生了。
  • 神安息了。
  • 神被惊醒了,因为裸猿窃取了专属于祂的权柄——青霉素——对抗祂自身。神愤怒的降下审判,专属于裸猿的审判,裸猿唤作 HIV。

Linux Windows UTC 时间问题

装了 ArchLinux 以后一直困扰我的问题是 Windows 和 ArchLinux 时间不同步,虽然 Wiki 上面有解决办法了,但是我修改 Windows 注册表以后,两个系统时间确实同步了,但都是错误的时间。(= = )

原因是 Windows 下面改成UTC时间以后没写入硬件,在 Linux 或者 BIOS 下写入就行了。

诡秘深奥的现代魔法 1.2 下

这个系列好久没写了,刚刚依靠光速浏览看到了第三章的结尾,于是回顾以前的章节开始认认真真读第二遍了。看以前的写的内容感觉就像习题解答一样无趣,于是多一点理解少一点习题,有趣的习题当然还是要写的,没写出来的习题也应该在这个仓库里面,如果没有的话大概是我不会做。

1.2 过程与它们所产生的计算

1.2.4  求幂

这里介绍了求幂的一种\Theta(\log(n))时间界。特别舒爽。下面的习题里面的迭代计算过程的求幂比较简单,后面的练习 1.17 也没什么难点。

对数步骤的求幂已经很让人奇异了,下面还有对数步骤的斐波那契数。

练习 1.19

这一题别看说什么变换族,什么让你证明,实际上挺容易的。

a\leftarrow bq+aq+ap
b\leftarrow bp+aq
.
继续阅读

生命,宇宙,以及一切的元

这篇文章想写很久了,这两年稍微了解了一点公理系统,哥德尔不完备定理以及其它的一些杂七杂八的东西总结的一些粗浅的玩意儿。如果看到上面一些名词就猜到我大概想要说些什么的人,基本上也不用看这一篇文章了。

从小时候开始,我注意到一个很有趣的现象,对生活中的任意问题“钻牛角尖”“打破沙锅问到底”,最后总会得到一个无法解决的问题。

“妈妈你为什么一定要我吃蔬菜?” “因为吃蔬菜会让你身体健康。”

“妈妈我为什么要身体健康?” “因为身体健康了以后才能活得长久。”

“妈妈我为什么要活?” “……没有为什么,因为你就要活下去。”

往往会收敛到一个哲学上的“终极问题”上。 继续阅读

近况

1

家里的情况越来越糟了,我不敢想像未来会是什么样的发展,自己又什么都做不了只能添乱。

2

在学校的OJ 上做题,快有一百道了,做的大多是C 基础题,虽然很多不难但是感觉自己对C 的熟练度提升了不少。

感觉做这种题注重解决问题不注重抽象,不过自己好好命名函数,grep 找找也是很棒的,很多题大同小异甚至复制就能AC。

3

心情很糟。

18 岁到了什么事情都来了。

好想和以前一样无忧无虑。

关于辩证法的一点疑惑

连写了3 篇哲♂学日志,你们一定以为我中二病犯了吧。其实这几天一直在做SICP,这些文章主要是把我一直以来的发病产物总结了而已。

我不了解这东西,只被科普过,所以下面的内容看看笑笑就好。

刚听到辩证法的时候感觉确实很有道理,枪能杀人也能保家卫国,塞翁失马……反正没什么东西只有好处没有害处,也没有什么东西只有害处没有好处的。

在我的理解中,辩证法是这个样子的,通过两个对立的概念分析一样事物,将事物属于这两方面的特性给“解”开来。

很明显,事物都有两面性,这是不容置疑的。但同样明显的是,辩证法并非真理。那么是什么地方出了问题了呢?

我们假设地球其实处在外星人的实验室里面,一个外星人正在记录,对这个外星人来说人类只是这个实验的一个现象而已,从微观上来看还有更多细小的现象,这一切和他没关系,要做的仅仅是记录而已。 继续阅读

黑白玛丽不存在

黑白玛丽也是一个著名的思想实验,指出了“知道”与“体验到”存在决定性的差异。[1]

哲学家提出这个概念是为了反驳物理主义中,认为一切都是物理过程的机械演变,和拉普拉斯妖的假设有点像,不过这个物理过程不局限于经典力学,也就是说不管是波函数还是别的,或者是未被发现的理论……也就是说,物理过程就是一切可以用理性加以实证的东西。用物理主义的观点来解释人类,就是复杂的结构,身体中的神经元细胞中的电流产生了名为“意识”的,实际上不存在的现象。

// 题外话,或许可以将其称之为“机械唯物主义”。XD

黑白玛丽的说法,其实就是“不可与夏虫语冰”,看上去确实无懈可击。但我认为是诡辩,因为混淆了“身体不能做到的”和“实际不能做到的”。(这里的说法我感觉不确切,但是想不到更合适的了。)

为了说明这一点,只要稍微修改这个实验就好了,很简单,一句话:

玛丽自己发明制造了一个仪器,能对自己大脑关于视觉的神经元进行精确的刺激,从而让大脑体会到色彩。

[1] 哲學哲學雞蛋糕 黑白瑪莉

拉普拉斯妖不存在

以前提出了这样的思想实验,如果有一个妖怪或者机器能获取全宇宙所有粒子的位置,然后根据经典力学推演就能预知未来。对小时候的我来说,很长一段时间因为这种宿命论和自由意志的虚无而感到无可适从。

不过因为量子力学引入的不确定性就宣告了拉普拉斯妖的死亡,但是即使是经典力学下拉普拉斯妖也是不能预知未来的。

拉普拉斯妖等同于一个计算机,那么就可以用计算机的理论去讨论了,如果它要预知未来,必须计算全宇宙所有的粒子,但是问题是,拉普拉斯妖也是宇宙中由粒子组成的物质,它计算了未来以后大脑里面的状态也是不一样的,“计算”这个行为本身也是要纳入计算的,也就是说对未来的计算会陷入无穷递归之中。[1]

也就是说,我要计算我之后要想什么,我之后必然是在计算我之后之后在想什么,我之后之后必然是在计算我之后之后在想什么……

当然有一个方法能规避这一困境,就是拉普拉斯妖位于宇宙之外,不参与宇宙,所以不需要计算自己的大脑,但是这样的话,拉普拉斯妖就可以用奥卡姆剃刀杀死。

更新:

CS Slayer 大大指出,关于自指地计算大脑形成无限递归从而无法计算的论述不成立,因为 继续阅读

由Cookie Clicker 想到的

Cookie Clicker 真是一个神奇的游戏。

刚开始玩的时候, 一下一下点,觉得自己有成百上千个饼干顶天了,然后慢慢的,有了鼠标和老奶奶了以后觉得可以尝试一下几千个饼干了,一万个饼干觉得遥不可及……

慢慢地,现在每秒钟都有十亿个饼干了,但是发现自己从来没满足,以前感觉能让自己满足的数字,真到了那个时候也就轻轻跨越,将目光放在更庞大的数字。

cookie

或许,“满足”是和“明天”一样的概念。不过感慨这些是毫无意义的陈词滥调,人类如果懂得满足的话现在不就只能住在洞穴里面了吗?

我只想说一句,好想好想让每秒饼干产量突破百亿啊!好想刷成就啊!好想把能升级的全升级了啊!

UPDATE 不知因为BUG 还是什么,我的饼干全没了,还我,还我!!!

说一些不开心的事情给大家开心开心

原本是日常博客的,结果最近两年变成中二文章+傻逼牢骚+逗逼技术文章了。现在写一个记录自己最近事情的文章。

背景是我这个弱(sha)B终于实现了我一直以来的梦想,成为野鸡大学的学生,当然命运仁慈的给我了赠礼,不光是成为了一个野鸡大学大学生,而且成为了一个野鸡大学专科生!

回忆了一下,暑假因为关于成绩之类的事情虽然一直在废柴的玩但远远谈不上快乐,还因为自己持续的中二以及可笑幼稚的逆反和我妈发生了数次冲突,还有我妈的生意破败到完完全全背水一战的地步,远在上海的爷爷奶奶年龄也已经很大了。 继续阅读

关于讨论

在目睹以及亲身参与了网络上的许许多多的讨论以后,我觉得,现在网络那么发达,但是讨论的方式还是那么简陋,许许多多有意义的讨论到了最后都变成攻击和谩骂,所以我一直在设想一种讨论的新的方式。

WikiGit 给了我一点启发,如果一篇文章能不断完善的话那不是很好?相同观点的人去完善同一个论述,论述中发表出自己的论点论据,要反驳的人也逐条反驳。

借由开源软件中常见到的“分支”的概念,也可以想象:一篇论述,如果有人想要在原有的基础上引申发展以及修改,形成了一篇新的论述的话,那就可以在原有的论述上开启一条分支进行修改,之后他的论述就是从原论述引申的新论述。

从用户的角度上来讲,这种讨论似乎是没有什么趣味的,过多的要求严谨会让人心力憔悴,但是我觉得这不是问题,维基百科看起来也没有什么趣味。

下面就是详细的说说这种机制的细节。

继续阅读

一个解释器

在军训的闲暇写下这个文章。

几个星期前的时候,我突然想做一个Scheme 解释器,然后就去做了,尽管我《SICP》第二章还没仔细看完。在经过这辈子第一次天昏地暗的专心Coding 了以后,成品出来了。也是我第一次做出能拿得出手的东西。

但其实这东西技术含量不高,关键的代码只占用了编码时间的20% 剩下的时间都用来写配套的代码,重构和修改代码还有收拾自己的愚蠢Bug。

时间不多,简单说一下结构和核心代码。 继续阅读

Pectin 简单说明

Pectin 是我一个小小的项目,目的是给Tornado 添加一些实用而必要的特性,这些简单的东西我猜已经被人完成过几十上百遍了,不过独立出来成为一个轮子就能方便一些。鉴于有人发邮件来问了,我就稍微的说明一下这个小东西。搭配上项目中本来的说明例子

是什么?

Pectin (果胶)的意思是“胶合层”,而且是很薄的一层胶合层。功能上基本上是通过给Tornado 的类重写方法来实现的。

具体来说,只需要利用Python 的多重继承,应用一些Mixin 就可以实现,也就是说Pectin 其实算是类似“插件”或者“补丁”的一类东西。 继续阅读

Python 所容易忽视的

当你觉得自己Python 入门了,至少不会因为基础的问题而苦恼的时候,有些问题实际上很多人没有注意到。

另外注意,各种内置method (E.g: __getitem__),以及生成器迭代器的使用都是基础。

这是一篇简洁的拾缺补漏的文章,给出一些常见问题——的文章的链接。

另外,有问题可以去看Stackoverflow

独特唯一的万法之法 – 《什么是数学》读书笔记 0-0

又挖了一个读书笔记的坑。

虽然都是极其重要的著作,但是《什么是数学》无疑比《SICP》更重要和基础。

标题中 0-0 代表的是第一遍阅读的读书笔记,第一遍阅读不纠结太难的地方,也不做习题,可能会跳过很多章节也不按书中的顺序来,主要是概览。因为不算真的在仔细地读,所以就当作第0 遍吧。

“独特唯一”很明显是取自书中对数学的形容;“万法之法”意思是,所有像魔法一样的东西,根底里都是数学。

希望能和《SICP》 结合起来来说,比如说数学归纳法和算法的循环不变式……不过《SICP》 并没有看到讲循环不变式。

莱布尼茨在他的二进位算术中看到了宇宙创始的原像,他想象1 表示上帝,而0 表示虚无,上帝从虚无中创造出所有实物,恰如在他的数学系统中用1 和0 表示了所有的数。

看优秀的教材一定要一页一页仔细看,我之前对前面的学过的内容直接跳过,然而刚才一页页读发现这才有收获,很多序言中表明是“高深”的部分也不用害怕,先看看,如果能勉强看懂就不要放弃。

感觉看这本书最浅的乐趣是看里面数学史,然后就是理解现成的概念,再然后是理解美妙的证明——或许之后就是完成里面的习题和思考题吧。投入的思索越多最后获得的乐趣就越大。

Fuck you! shit script guy!!

呸,只会用现成的扫描脚本的script guy 。

8/30 号更新:换了服务器以后似乎就没有被侵入了。

12/6 :这篇文章受到了可怕的SPAM轰炸已经很久了,至少有几万条SPAM 被拦截,不过我不打算删掉这篇文章,为了Akismet 训练更好的识别机制。

诡秘深奥的现代魔法 1.2 上

1.2 过程与它们产生的计算

菜鸟的读书笔记,如果有常识性错误和非常识性错误请毫不留情的开口指正!

1.2.1 线性的递归和迭代

能耐心看这个语焉不详的文章的读者都知道递归和迭代是两种循环的方式。但是SICP 中说道,一个递归的过程中也有递归和迭代的区别,这就是文中所说的:递归计算过程,和迭代计算过程,我们通常说的递归和迭代只是从语法上而言的,书里说的是计算过程,一个递归计算过程需要维护一个栈来储存信息,所以所需的空间是线性增长的(空间复杂度O(n)),但是迭代计算过程对空间的要求是常数级的(O(1)),是维护着一系列“状态”,当调用自身的时候,其会释放空间,所以会保持函数的递归深度为1。
所以如果要用递归过程的话,如果可能最好用迭代计算过程,当然,编译器或者解释器要支持尾递归优化(当一个过程是迭代计算过程,那么就可以说是尾递归的),能够在递归中不断释放栈,比如说我喜欢的Python 就不支持,仁慈的终生独裁者先生还讲了一堆说程序员最好不要用递归balabala,不过这种实用主义的哲学正是Python 的魅力所在。

迭代计算过程就是那种其状态可以用固定数目的状态变量描述的计算过程,而与此同时,有存在一套固定的规则,描述了计算过程在一个状态到下一个状态转换时,这些变量的更新方式;还有一个(可能有的)结束检测,它描述了这一计算过程应该终止的条件。

注:书中说常见语言的递归过程,即使是尾递归也往往需要线性储存空间,但是现在C 是支持尾递归优化的。并且即使编译器没有尾递归优化也可以用手动 goto 语句来实现。 继续阅读

诡秘深奥的现代魔法 1.1

改名叫《诡秘深奥的现代魔法》,“诡秘深奥”是书中第一章形容程序设计语言的词语。

注意!翻译过程中有一些错误,可以看之前先根据勘误表改正,注意勘误表中有一条关于微分方程的勘误(dy/dt 被勘误表改成 dy/dy)可能是错的(原文的方程可能是对的),修改的时候注意。(update: 我发邮件过去确认了我的猜测是对的,之后可能会被更正。)

这一小结说的内容比较基本,讲述了程序设计和Lisp 里面的一些基本原理。

正则序和应用序

我是这样理解正则序和应用序的,正则序是先展开后求值,应用序是先求值再展开。正则序更常用的术语是惰性求值,我比较熟悉的Python 中的生成器就是惰性求值的例子,其他语言也有类似的,似乎都是受Lisp 的启发。(参见第一条评论,是我搞错了) 继续阅读