2016年4月2日星期六

致陈独秀 - 胡适

独秀兄:前几天我们谈到北京群众烧毁《晨报》馆的事,我对你表示我的意见,你问我说:“你以为《晨报》不该烧吗?”

五六天以来,这一句话常常来往于我脑中。我们做了十年的朋友,同做过不少的事,而见解主张上常有不同的地方。但最大的不同莫过于这一点了。我忍不住要对你说几句话。

几十个暴动分子围烧一个报馆,这并不奇怪。这你是一个政党的负责领袖,对于此事不以为非,而以为“该”,这是使我很诧怪的态度。

你我不是曾同发表过一个“争自由”的宣言吗?(注:《争自由的宣言》,1920年8月)那天北京的群众不是宣言“人民有集会结社言论出版自由”吗?《晨报》近年的主张,无论在你我眼里为是为非,绝没有“该”被自命争自由的民众烧毁的罪状;因为争自由唯一的原理是:“异乎我者未必即非,而同乎我者未必即是;今日众人之所是未必即是,而众人之所非未必真非。”争自由的唯一理由,换句话说,就是期望大家能容忍异己的意见与信仰。凡不承认异己者的自由的人,就不配争自由,就不配谈自由。

我也知道你们主张——阶级专制的人已不信仰自由这个字了。我也知道我今天向你讨论自由,也许为你所笑。但我要你知道,这一点在我要算一个根本的信仰。我们两个老朋友,政治主张上尽管不同,事业上尽管不同,所以仍不失其为老朋友者,正因为你我脑子背后多少总还同有一点容忍异己的态度。至少我可以说,我的根本信仰是承认别人有尝试的自由。如果连这一点最低限度的相同点都扫除了,我们不但不能做朋友,简直要做仇敌了。

你说是吗?我记得民国八年你被拘在警察厅的时候,署名营救你的人中有桐城派古文家马通伯与姚叔节。我记得那晚在桃李园请客的时候,我心中感觉一种高兴,我觉得在这个黑暗社会里还有一线光明:在那个反对白话文学最激烈的空气里,居然有几个古文老辈肯出名保你,这个社会还勉强够得上一个“人的社会”,还有一点人味儿。但这几年以来,却很不同了。不容忍的空气充满了国中。并不是旧实力的不容忍,他们早已没有摧残异己的能力了。最不容忍的乃是一班自命为最新人物的人。我个人这几年就身受了不少的攻击与污蔑。我这回出京两个多月,一路上饱读你的同党少年丑诋我的言论,真开了不少眼界。我是不会惧怕这种诋骂的,但我实在有点悲观。我怕的是这种不容忍的风气造成之后,这个社会要变成一个更残忍更残酷的社会,我们爱自由争自由的人怕没有立足容身之地了。

民国十四年12月(1925年12月)

2016年3月17日星期四

死后的人生 - 阿西莫夫

死亡最终降临到我的父母身上,或许是引发我对死后人生的可能性重新思考的原因。如果不把死亡当成死亡,而当成是开启一种(可能)更灿烂的人生,甚至还可以重新见到你的父母和其他亲友,他们或许还充满了年轻活力,那将是多么的令人安慰。

完全是因为这种想法是如此的令人安慰和愉快,能如此有效地帮我们摆脱关于死亡的原本令人恐惧的念头,死后人生的存在尽管没有丝毫证据,却仍被绝大多数人所接受。

我们也许会奇怪,这一切是怎么开始的?我个人纯属猜测的想法是这样的——

据我们所知,人类是唯一一个意识到死亡对每个人都不可避免的物种。无论我们如何保护自己不受争斗、事故和疾病的影响,仅仅因为身体的朽坏,我们每个人也终将死去——我们知道这一点。

必定有过一个时候,这种知识开始传遍人群,而那必定是一种可怕的震骇,那相当于是“发现死亡”。让关于死亡的想法变得可以忍受的做法,是假定死亡并非真的存在,而只是一种假象。当一个人看起来已经死亡之后,他继续在一个别的地方以一种别的方式活着。这种想法显然受到一类事实的鼓舞,那就是死去的人常常出现在他们朋友和亲人的梦里,他们在梦里的出现可以解释为是代表了那些还活着的“死”人的影子或鬼魂。

有关死后世界的猜测逐渐变得越来越详细。希腊人和希伯来人所设想的死后世界(地狱或冥间)大体上只是一种昏暗的存在。不过,那里有折磨坏人的地方(地底的深渊)以及让被上帝认可的人快乐的地方(极乐世界或天堂)。这些极端的地方受到人们的青睐,他们希望看到自己得到保佑,而自己的敌人受到惩罚——如果不在这个世界里,也起码会在下个世界里。

想象力的拉伸构想出了一个终极归宿,用来惩罚坏人,或任何无论多好,但不完全符合设想者自己心意的人。这给了我们有关地狱的现代观念,即把地狱视为是用最刻毒的方法进行永恒惩戒的地方。这是嫁接在号称完全仁慈和完全善良的上帝身上的虐待狂者的荒诞梦想。

不过,想象力却从未能够构筑出一个可堪使用的天堂来。伊斯兰教的天堂里有永远存在、并且永远纯洁的女神(houri),因此那里是一个永恒的性爱场所。北欧神话的天堂里有在瓦尔哈拉殿堂(Valhalla)里欢宴争斗的英雄,因此那里变成了一个永恒的饭馆和战场。而我们自己的天堂,则通常被描述为每个人都长着翅膀,不停弹奏着永无尽头的上帝颂歌。

稍有点智力的人,有哪个能够长时间忍受这种,或其他人发明的那种天堂?在哪里才能找到一个可以让人读书、写作、探索、进行有趣对话、从事科学研究的天堂?我从来没有听说过。

如果你读过弥尔顿(JohnMilton)的《失乐园》(ParadiseLost),你会发现他的天堂被描述成一个永唱赞歌称颂上帝的地方,难怪有三分之一的天使要反叛了。当他们被打入地狱后,他们才有了智力活动(如果你不相信我,可以去读一读那些诗句)。我相信,不管那是不是地狱,他们在那里过得更好。当我读到那里时,我强烈地同情弥尔顿笔下的撒旦,并视之为那部史诗中的英雄,无论那是不是弥尔顿的本意。

但我自己的信仰是什么呢?由于我是一个无神论者,无论上帝还是撒旦、天堂还是地狱,我都不认为它们存在。我只能假定在我死了之后,相随的只有永恒的虚无。毕竟,在我出生之前宇宙已存在了150亿年,而我(无论这个“我”是什么)在虚无中度过了那一切。

人们也许会问,这岂不是一种凄凉无望的信念,我怎能让那种虚无的恐惧悬在自己的脑袋里?

我倒没觉得那有什么恐惧的。永恒无梦的睡眠并没什么可以恐惧的,它显然要比地狱里的永恒折磨和天堂里的永恒乏味来得好。

那要是我错了呢?著名的数学家、哲学家及坦率的无神论者罗素(BertrandRussell)曾被问及过这个问题。“在你死后,”他被问道:“如果你发现自己面对面地和上帝在一起,你会怎样?”

勇敢的老战士回答说:“我会说‘主啊,你应该给我们更多的证据’。”

几个月前我做了一个记得极为清晰的梦(我通常是不记得自己的梦的),我梦见自己死后去了天堂。我往四周看了看,明白自己在哪里了——绿色的田野,羊毛般的云彩,芬芳的空气,远远传来的令人迷醉的天乐。记录天使(recordingangel)带着灿烂的笑容和我打招呼。

我惊讶地问道:“这里是天堂吗?”

记录天使回答说:“是的。”

我说(醒来后回想时,我为自己的诚实而自豪):“那肯定搞错了,我不属于这里,我是无神论者。”

“没有搞错,”记录天使回答说。

“但作为一个无神论者,我怎么可能符合资格?”

记录天使严肃地说:“是我们决定谁符合资格,而不是你。”

“明白了,”我说。我向周围看了看,又想了片刻,然后问记录天使:“这里有打字机可以让我用吗?”

对我来说这个梦的意义是很明显的。我心目中的天堂是写作,我已经在天堂里生活了半个多世纪,而且我自始至终都知道这一点。

这个梦的第二个要点是记录天使所说的,是天堂而非人类决定谁符合资格。我认为这意味着假如我不是无神论者,我将选择这样一个上帝,它将凭借一个人的人生全部而非语言的模式来决定谁能得到救赎。我想他会喜欢一个诚实正直的无神论者,而非一个满嘴上帝、上帝、上帝,所做的每件事却都是犯规、犯规、犯规的电视布道者。

我还想要一个不允许地狱的上帝。无穷的折磨只适用于惩罚无穷的罪恶,而我认为哪怕对于象希特勒那样的情形,我们也不能宣称存在无穷的罪恶。更何况,如果大多数人类政府都能文明到试图废止折磨和酷刑,我们从一个无穷仁慈的上帝那里所期待的难道应该更少吗?

我想假如真有死后的人生,那么对罪恶进行有限度的惩罚是合理的,不过我认为其中最长、最严厉的惩罚应该留给那些通过发明地狱而给上帝抹黑的人。

但所有这些都是玩笑,我的信仰是坚定的。我是一个无神论者,在我看来,死亡之后是一场永恒无梦的睡眠。

2013年5月29日星期三

如何临时解决看 youTube 难的问题?

不少爬墙网友投诉有时看 youTube 有难度,其实解决这个问题并不难。

在 FireFox 和 Chrome 里都提供了两个扩展,能帮我们把视频下载到电脑观看

 


另外,我们也可以借助一些所谓的云储存进行离线下载来暂时解决这个问题


下次再次遇到这类问题时,相信应该知道怎么做了。

2013年5月28日星期二

GoAgent 的 "Python Urlfetch Error:'GET' " 到底是怎么回事,如何解决?

用 GoAgent 的朋友经常会遇到 "Python Urlfetch Error:'GET'" 的问题,在一次和推友的对话中,无意中使我对这个问题产生了兴趣,现在来谈谈我的理解和很有限度地提供一些解决方法。

图一

首先,来看看我们一般是怎么打开网页的(假设A是你,B是网站):

1)A点击链接或输入网址;
2)A发送请求到B;
3)B收到请求,把网页数据传回A
4)A阅读网页

在2)和3)之间可能会出现一些情况,如(僻除ISP),输入的网址无效,网页不存在,服务器正在维护或关闭,路由出问题(诸如天灾)又或A和B之间沟通上出了问题都会造成我们无法正常打开网页。

在2)和3)之间,无论成功与否都有一个返回码叫 HTTP response status codes (以下统称RSC),这个码不一定从B所传回,可以从2)和3)之间的任何一个环节中传回。


以上4步,A和B是直接联系的,但如果我们用代理上网(设为C),那么A和B就必须要通过C才能联系得上:

1)A点击链接或输入网址;
2)A的请求送到C;
3)C向B发出请求;
4)B收到请求,把网页数据传回C;
5)C再把数据传送回A;
6)A阅读网页

这回,一旦出现情况,RSC会被传回到C,"Python Urlfetch Error:'GET'" 正是由C传回到A的错误信息。

 图二

谷歌提供了一个叫 URLFetch Python API,GoAgent 就是利用它和外界联系,让它能自由和谷歌以外的网站沟通。

我们欲了解 GoAgent 所传回的错误信息,得要仔细看看才行,"Python Urlfetch Error" 是一个笼统的信息,细心看下去就是 "GET", "get" 意味着C向B索取数据(网页内容),这个 "GET"(还有 POST,HEAD,PUTDELETE)都不是关键的,它只是告诉你C向B提出什么类型的请求,关键部分在下面那几行,在图一部分,我尝试打开一个不存在的网站,错误信息就是:

DNSLookupFailedError('DNS lookup failed for URL: http://www.prankwang.com/',), deadline=60
DNSLookupFailedError('DNS lookup failed for URL: http://www.prankwang.com/',), deadline=120


这个信息告诉我们,C在到达B前,进行 DNS 检查的时候所发生的错误。

在图二里,关键字是 "DownloadError", 说明无法下载网页,如果刷一刷就没事,说明很可能是在C和B联系的过程中出了点问题,如果一直都刷不出来,而 GoAgent 的设置又正确,那最常见的可能就是网页已经不存在了(404),然而,网页不存在不是不能打开网页的唯一原因,下面我们来看看当遇到类似问题时应该如何解决。

当C和B之间出了问题,我们在A点,能做些什么呢:

1) 如果你初装了 GaAgent, 记得把在 proxy.ini 里的 id 填上;
2) 刷新几次;
3) 把浏览器关了,重新打开;
4) 清除浏览器的缓冲区;
5) 清除 cookies
6) 用浏览器的安全模式尝试一下;
7) 换一个浏览器试试;
8) 重启电脑;
9) 重启 modem, 如果安装了路由或和交换器,重启一次;
10)这可能是 ISP 造成的,试试和他们联系;
11)联系B的站长,告诉ta这个情况;
12)向 GoAgent 作者(@phuslu) 反应一下;
13)这可能是 Python URLfetch API 服务器的问题,等待一下,谷歌会修复的。

祝翻墙无阻!

特别感谢 @neil_alpha,在和ta的对话中使我对这个问题有更深的思考

2013年5月25日星期六

如何利用ifttt从那些不支持“另存为“ 的图片网站里(如Flickr/Instagram)取得原图?

Flickr和Instagram有很多超漂亮的图片,但可惜的是,这些网站基于某种理由,我们是无法下载到原图的,要下载原图,得另外想想办法,以下我来讲讲我所使用的办法。

我个人比较喜欢 Flickr,因为里面的图片相当之有水准,一些好的图片,我都会下载然后设为壁纸(电脑/手机),因此,在这里,我就用 Flickr 作为例子。

ifttt 是一个相当给力的网站,在以往的一些博文中也经常提及它,今天我们也用它来达到我们的目的。


以下是简单步骤:
1)在 ifttt 的 this 选 Flickr;
2)然后选择 "New public favorite" ;
3)在 that 处,你可以选云空间,如 DropBox, Gdrive ...(可以把图片直接放进去)



也可以选择其他方式如邮件,我选择了邮件,这样免去了在空间里进进出出的动作。
4)点击 “+”后选择 "Original Image source URL"。
设置完毕后,我们就可以到 flickr 选择心爱的图片,看准后点击 favorite 图标(小星星),


完成。

2013年4月5日星期五

如何搭建一个属于自己的私人云空间(Cloud)

看到标题是不是有点却步了?认为这个必定要有高度复杂的技术,错了!继续看下去,不需要5分钟你就能搭起一个高度保密性的私人云空间。

你可能会怀疑一个私人云空间存在的必要性,市场上不是已经提供了很多吗?

在云刚开始流行的时候,在下曾经预测过云最终带来的问题就是安全问题,还记得 Dropbox 和 Evernote 吗?他们都被黑过,所谓树大招风,他们受到黑客攻击的其中一个原因是他们的服务器上有着成千上万的用户资料,通过一次攻击就可以捞到一大把,可算是划算之极,如果用户建立属于自己的空间,每个空间都零散的分佈在不同的地方,那就会大大提高了黑客们的时间成本,拿计算器出来按按算算后,亏本的事,谁会做呢?

好,我们进入主题,看看如何搭建一个属于自己的云空间。


  • 准备
1)你必须要拥有一个支持 .php 的网页空间;
2)你必须要懂得怎么操作这个空间,如,如何上传文件等;


  • 介绍
你的云空间是通过 http://owncloud.org/ 所提供的工具所搭建的,它除了为你搭建外,还提供了电脑(win, maclinux)的桌面和手机(Android  和 iPhone)客户端。一旦搭建完成后,你的空间就可以像别的专业云空间一样储存文件,比其他云空间更加优胜的是,你还可以上传日历,联系人,还能在线播放音乐。


  • 步骤
1)到这里下载 web installer ;
2)在你的空间里安排一个地方放置这个 web installer,如 http://www.hksfl.hk/cloud/ ;
3)上传 web installer 到上面提及的位置(在这个例子里是目录 cloud 里);
4)然后在浏览器地址栏输入网址,在这个例子是:http://www.hksfl.hk/cloud/setup-owncloud.php ;
5)按照指示填写设置。
6)下载电脑或和手机客户端,设置一下就可以用了。

是不是很简单?不废话了,祝网络安全!

2013年3月29日星期五

如何为你的 Android 手机设置虚拟内存?

手机刚到手的时候,很是顺滑,随着安装软件数量的不断增加,一年半载后,开始有点卡,再过一段时间,可能到达一个无法忍受的地步。排除一切软硬件故障或损坏,最大的可能就是 RAM 的短缺,解决办法是卸载一些不常用的app可能会有所改善,如果不想这样做,那就得考虑一下加RAM了,可手机和电脑不同,不能增加或更换RAM条,但一点相同的是,大家都可以在设备上设置虚拟内存。

在继续看下去前,你的手机务必是一部已经 root 了的手机,安卓手机 Root 的教程到处都有,网上搜搜就有了。

设置虚拟内存,主要是在sd卡上划出一个分区(并不一定需要,请往下看)来放置swap(交换)文件,然而,不是每部手机的核心(kernel)都允许这样做(视乎于生产商的设计),欲知自己的手机核心允许与否,可到 play 市场下载  MemoryInfo & Swapfile Check  进行检查,(注:在运行该app前建议先把网断开,因为它对权限的要求不太合理)。

一切就绪后,我们就来看看以下3个设置虚拟内存的app,使用后,就能把你带回昔日的速度。


  • SWAPPER(DONATE版)









它的设置页面简单而直观,把"Active Swap on Boot"勾上,选择 "SD CARD FAT Partition",最后在 “Swap file Size(in MB)”下面填好数字(在这里我填了1G),点击 “Save” 就行了。

这个app有两个好处:
1)它不用在sd卡上划分区;
2)所要求的权限相当合理,是一个干净的软件。

由于以上两个优点,造就了它在 play 里下载量。

设置好后,你是无法找到它的设置结果,手机上的RAM数量也不会因为这样增多了,不过,你可以从使用中感受到手机的速度,你会发现一切都突然顺滑起来,就像一部新机一般。







  • SWAPPER2
众多国人都很喜好它,但它缺少了 swapper 的所有优点;需要划分区,所要求的权限不合理。



  • ROEHSOFT RAM EXPANDER


这个app和 MemoryInfo & Swapfile Check 是同一个公司(作者),新版可扩展至4G内存。虽然界面不错,资料也很详尽,但和 swapper2 一样需要划分区,也同样存在着不合理的权限要求。

ROEHSOFT RAM EXPANDER 下载(旧版,可扩展至2.5G)


(注:以上提供的各款软件链接有些不是最新/付费版本,欲下载最新/付费版本,可参阅这里介绍的方法。)


总得来讲,我个人比较喜欢 swapper, 虽然如此,我仍然提供了其余两个以供选择。


警告:使用这类软件可能会导致你的sd卡缩短寿命。