Press "Enter" to skip to content

Category: The ability to speak does not make you intelligent

HTTPS explained (by an amateur)

厄,斯诺登传记的笔记还是没有写好。先再写一篇HTTPS的解释,因为我想实行一下费曼学习法:learn by explaining!

关于加密

加密这件事,其中算法的数学我不了解。我就先理解为一个把数据打成乱码的规则。需要一个key来加密,一个key来解密(把加密数据还原成原始信息)。加密和解密的key是同一个的话,就是对称加密。另外还有一种非对称加密,public key和private key成对,用其中之一加密的可以用另一个解密。而public key是公开的,private key必须保密。

脑中想象非常简单的对称加密:我送给你的数字都是*113的;那么你接到数字后就/113来解密。

非对称加密难以破解是基于这个事实:只知道两个大质数相乘的积要拆分出两个质数本身,对计算机来说也很难。然而生成key很容易。具体是怎么加密的我还没学会。

非对称加密的速度比对称加密慢。

关于HTTPS

HTTPS要解决的网络安全问题有两个,第一个是加密原来的HTTP信息,这样别人截获了这个信息对他们来说也无法使用。截获信息很容易。据说在公用无线网络上,同一个网络的人可以窃取你的所有请求。另外我可以想象,政府基建做好的中继路由,完全可以在上面部署程序把所有路过的信息都备份一下。(我不知道斯诺登发现的是不是NSA在这么做。。)

另一个要解决的问题是网站身份认证。如果你假装是亚马逊,然后用户就把信用卡信息填好发给你了,那么用户就完蛋了。在我自己搞HTTPS的时候我本来不理解为什么要把身份认证和加密打包在一起,因为我本来只有加密的需求。我还是觉得可以把加密和身份认证分开。当浏览器访问一个网站的时候,提醒客户这个网站只有加密没有身份认证就可以了。现在是,只有http的话浏览器会让你访问,但是有self sign(自己生成key,只有加密没有认证)的话,浏览器会不让你访问。我觉得这个是不是不太合理?(一定是我还没完全理解吧。。)如果我没有身份认证,然后我在冒充亚马逊想要套取客户的信用卡信息,那么客户可以提高警觉;但是我是一个个人博客,没有向客户索取信息,那么我完全可以不完成身份认证,客户可以随便来看看,并且知道我们交互的内容不会被ISP截取?

我那天先是试图使用自己生成的key,结果无法访问,走了很久的弯路,才知道现在浏览器都要加密和身份认证打包一起完成的。也许是为了让客户认准https标志就好了。现在好像是光是教育客户用https就挺费力的。

加密内容

加密HTTP内容是这样进行的:client端(浏览器)先获取server的public key,然后自己生成一个key用server的public key加密送给server。接下来双方的对话就用刚才送过去的key对称加密对话了。这样做的原因是非对称加密performance差,所以仅用它来交换接下来要用来对称加密的key。

第三方身份认证

如果没有身份认证,那么我可以冒充亚马逊和客户对话。我们仍然是用加密来对话,只不过客户用的是我的key,以为是亚马逊的key,然后我就获得客户的信用卡信息了。解决这个问题的办法和线下一样,第三方担保server的身份。

具体的做法是:全球有几家顶级担保机构CA (Certification Authority)(大部分是收费的;Let’s Encrypt是一家非营利机构,他们的担保服务是免费的),CA认证过网站的身份后,就开具一张证明,证明内容用CA的private key加密,而世界上任何人都可以用CA的public key解密。因为CA的private key只有CA有,所以能解密就说明这是CA开具的合法证明,就可以相信持有这个证书的网站了。

也就是说,如果想要给一个人发送绝密信息,可以用ta的public key加密,因为只有ta可以解密;如果想要全世界知道一个信息是我说的,可以用我的private key加密,把信息和public key公开,因为只有我持有我的private key,那么全世界都可以知道那个信息只有我可以写。所以private key是一个绝好的签名。

那么CA是怎么担保的呢?付费的CA我不太清楚了,他们可能有更严格的流程和定期audit什么的。Let’s Encrypt据说是要在server目录下生成什么文件,以显示你对server有权限。我操作的时候是在server上执行他们的命令,估计包括在里面了。执行的时候需要填写domain name。我可以把server配成亚马逊,不知道Let’s Encrypt会不会认证,但即使认证了,我的实际域名并不是亚马逊,我想也不会有用的。

Notes

得到了Let’s Encrypt的key之后,还要给server配置一下,这是Apache的配置

WordPress还需要(?)一个插件。其实我不是很明白它是干嘛用的:Really Simple SSL

然后要做一件事是把http的请求重定向到https。在Apache下就是在config里加一下配置。这里我并不明白80端口和443端口一个给http一个给https这个是不是约定俗成可以随便改的。(你为什么不去试一试。)

在研究这个问题的时候看到了一个博客我觉得写得很好。How does HTTPS actually workHTTPS in the real world 这两篇文章写得很好(个人博客比维基好看多了)。我特别喜欢他说,In cryptography, trust is mathematically provable. Everything else is just faith. 然后看了他描述的revoke key的问题我意识到,revoke这件事没有一个mathematical solution,所以比较麻烦。(这个问题是,CA给了你证书,然后,你的private key被人盗取了。CA证书和public key是一起发给客户端的,谁都可以截取。那么盗取你private key的人就可以拿着证书和private key冒充你了,实际上客户不该再相信这张证书。然而因为证书可以用CA的pub key解密验证的,这就没办法收回了。现行solution在文章中有,就是加入了revocation list和提供这个list的服务器。(真的没有更简单的办法了吗?)

另外想说(我也知道bash中国社会没意义,但是还是想说),因为有斯诺登和别的一些人,然后有了股沟这样的大公司发力,我们才有这个架构的,现在是相对有点安全。想想如果真的完全是局域网,如果我们的安全全都交给国内的吹哨人(不存在或者发声后被整治,见写科普文说药酒没有治病功能的人),或者国内的大企业(他们不写流氓软件已经谢天谢地了,我经常做的事情是帮我妈卸载360,而阿里腾讯什么的,如果不是有国外投资,他们出卖信息肯定是明着来的了),哦,想想就怕。啊,希望贸易战不要继续了,商业巨头丑恶,但至少还是我们和liberal世界的最后一层联系。。。

Do you (still) believe in Capitalism?

看我起了这么好的标题,但实际上这只是一篇工作日晚上随便写的日志。就是刚才我听了这周的Sinica Podcast,听到了最动摇我对资本主义的信任的论点。提出这个论点的是嘉宾Evgeny Morozov。他说:资本主义的基本原则是,相信市场是调节分配资源最有效的手段。然而未来完全有可能有更有效的手段。本来资源是靠市场、资本、金钱的流动来调整的,但是大数据技术可能可以让我们绕过经济规律,直接更有效地调整社会资源。说到资本主义是在大家都获得知识的情况下运作,但实际上资本主义也经常靠无知来运作,我们不知道一次google搜索的费用(我们不知道房产泡沫)。

最近几年看到不少文章反思资本主义的,不是说反思资本主义对穷人的不利,而是反思资本主义是不是比社会主义优化,带来技术创新和全民富裕。说实话,所有指着中国的崛起说这是另一条更有效的道路的,我都是不同意的。中国的崛起是因为走了资本主义道路,而我觉得中国崛起最大的阻碍是如今偏离西方民主+资本主义的模式。最近看到Elizabeth Warren说要拆分硅谷大科技企业,第一次对她有了真正的兴趣,因为促进竞争应该是资本主义该做的事情。

然而今天Morozov说的,是唯一动摇我相信资本主义的观点了。如果真的如此的话,我们更需要学习经济规律,甚至不是经济规律,是超越经济学的东西。然而因为我自己是做数据的(albeit很低级的一种),我特别讨厌迷信数据。但是我能想象真的这门新学问发展起来(姑且叫做超经济学),知道怎么用数据,然后。。?然后对世界下判断,你应该做什么他应该做什么?感觉还是不太对,然而足以让人感觉兴奋。也许应该找这个人的书来看看,不知是否看得懂。(我发现他才比我大一年。)

另一个我的同龄人是斯诺登。昨天下午打开了他的自传后,一晚上都被抓住了。正好今天Morozov说了和斯诺登说的相反的观点。哦,其实并不是相反的,还是compatible的。我的思想经历和斯诺登比较像(请忽略我自大把自己和斯诺登相比),成长的年代经历了web 1.0。斯诺登写道:

In the early 2000s the Internet was still just barely out of its formative period, and, to my mind at least, it offered a more authentic and complete incarnation of American ideals than even America itself. A place where everyone was equal? Check. A place dedicated to life, liberty, and the pursuit of happiness? Check, check, check. It helped that nearly all the major founding documents of Internet culture framed it in termes reminiscent of American history: here was this wild, open new frontier that belonged to anyone bold enough to settle it, swiftly becoming colonized by governments and corporate interests that were seeking to regulate it for power and profit. The large companies that were charging large fees — for hardware, for software, for the long-distance phone calls that you needed back then to get online, and for knowledge itself, which was humanity’s common inheritance and so, by all rights, should have been freely available — were irresistible contemporary avatars of the British, whose harsh taxation ignited the fervor for independence.

听Sinica和看关于中国的报道,经常看到说,当年认为互联网会给中国带来民主,克林顿还说想要封锁互联网好比想要把jelly钉在墙上。但是看看现在的中国互联网啊?这个论调听多了,就一直默认自责自己曾经觉得网络是民主的力量是脑子发热的错觉。看到斯诺登这么写,他也有这个‘错觉’,非常感动。

维基百科上看,Morozov在2011年就说了因特网带来民主这个信念是很可笑的。我觉得他的论证很可靠:网络和其它技术一样,只是一种工具,可以被矛盾的双方利用。他觉得可笑的是很多人认为互联网这个东西的存在可以do our work for us,我们就不需要去uphold民主的大旗了,好像它是force of nature,不需要人工干预就能达成的一样。

关于forces of nature我还有一点有点哲学的想法。不过今天太晚了,我还要洗头,明天还要上班,就打住吧。最后,为了证明我脑子是一团浆糊,下面是一个叫做Evegeni’s Waltz的曲子。这个曲子是我第一次遇到这个俄国名字。

更新过的wordpress后台太难用了(好像是5.3),我都看不见我写的东西在哪里了,是不是有什么css没有加载。。。先发出来吧。

update:忘记写他说的资本主义信念是quasi-religious信念了。因为最近看宗教改革所以我其实有点想法。。另外,spotify widge怎么变得这么大!

夏天午后的雷阵雨

我小时候的一个记忆是,夏天的午后下雷阵雨。那时家里只有一个房间,一扇窗。炎热的夏天在家里,忽然意识到天光变暗,是年幼的我第一次意识到平时对日光过于习以为常。过一会儿传来滚滚雷鸣,接着就是雷暴雨。窗外的弄堂里到处流淌着雨水,从屋檐上,从雨棚上留下到水泥地上,流进墙角的排水沟。雨水冲走了炎热,凉风习习。而我们平时一天的节奏被打断。我们不再摇扇子,或者做别的我们每天做的事情。爸爸无言地望着窗外,抽着烟。以前的这种雷阵雨一般都很快就过去了。雨停后,夏日的太阳依旧猛烈,很快外面残留的水也不再凉爽。我们继续摇扇子,而爸爸则去做他夏天下午会做的事情。

中学地理课上学到,这种是亚热带季风气候常见的对流雨。这也是我小时候特别喜欢地理课的原因之一,因为我可以拿学到的东西和常识、经历、想象去比较。后来我们搬离只有一个房间的住处后,夏天下午仍然会下雷阵雨。有一次我骑车出门遇上了。瓢泼大雨冲到我眼睛睁不开,我只好打退堂鼓,推着自行车走回家。但是当我回到家门的时候雷阵雨已经过去了,不久太阳就烤干了我湿透的衣服和头发。

我不知道为什么如今夏天下午很少下这种雨。难道夏天午后的雷阵雨也只是我忆旧过程中理想化了的内容?还是全球气候变化中,消逝了的一个现象?如今夏天只有持续不断的烈日。而如果要下雨,就可以给你下一个星期、一个月。


我忽然写了这篇日志。因为我在读Peter Hessler的River Town。别的优点先不说,他用语言描述的场景读起来特别有滋味,好久没有新读到的书给我这种感觉了。有时候他描述的场景,没有评论,就能让我感动掉泪。这也太夸张了。作为一名东施,我必须效颦一下,用自己的语言来体会一下把对一个场景的感情投射在描述里,看看能不能达到那种效果。

另外想自大的一点:我发现我现在中英夹杂的毛病变少了。写上面的文字的时候有几次我挣扎着思考怎样用中文表述。一个地方是,小时候下雷阵雨之前天变黑,是让我不再take sunlight for granted的一个记忆。这个想法我是翻译成中文写的。第二处是怀疑自己对雷阵雨的记忆是不靠谱的nostalgia,难道这种词中文都没有对应吗?肯定是我的知识有问题。还有一处是,前面那一段说River Town,我想说的是among other things, the language is a pleasure to read. 因为这本书最大的优点肯定不是语言。我以前中英文夹杂,是因为我自大地觉得想法本身最重要,我就真的不在乎我写下的是中文还是英文。我现在还是觉得想法本身最重要。但是如果你有技能用准确的语言记录下来,那就更好了。我应该用更高标准要求自己。至于怎样做到像River Town这样的效果,那人家是专业的,我还是先不要妄想了。

倒浆糊(倒出来,没有打错)

我看任何东西都只能看见自己在想的东西。(我的头脑宛如一团浆糊,什么放进去都会搅在一起。说好听点是融汇贯通。)

最近看的所有东西都让我觉得世界怎么在各个层面上都这么糟糕,而且没有解药。无形的大手在运作,个人的力量没办法改变什么。没法怪罪任何人或实体。

上周分两天看完了Dominion。这是一部介绍目前世界上的畜牧业的纪录片。我们吃肉吃蛋吃奶的时候总是想象那些动物的处境已经是尽量人道了的。实际上远非如此。这部片我只能说是听完的。我坐在电脑前,从头到尾基本上一半的时间都用手挡住屏幕,因为画面实在太血腥太残忍了(而这些是如今畜牧业的常态)。有些动物被用来养肉、有些用来下蛋、产奶、产毛等等。因为经济的驱动,下蛋、长肉的量远高于自然状态。那些母鸡看起来太可怕了,毛大片大片地掉了;那些用来养肉的肉鸡,则连站起来都很困难等等等等。看这部片的时候我想到(实际上纪录片结尾也点到了),人类对于动物的dominion,和人类对于别的人类的dominion,其区分可能只是一个spectrum,也许并没有本质区别。前一阵读了《汤姆大伯的小屋》,里面提到的把黑人奴隶的婴儿和父母分开,这种做法,和奶牛产子立刻被夺走的区分,其实也没那么大?

我在读《汤姆大伯的小屋》的时候想到,我以前一直不知道奴隶是什么意义。小时候就知道我们要“起来,不愿做奴隶的人们!”,但我似乎自打有意识起就一直意识到,这种口号往往是反过来的意思,越是叫得响,就越说明我们其实也是奴隶。我发现我潜意识一直认为黑奴的问题只是他们在明面上都是低人一等的,实际上他们和我们一样,干活吃饭,永无天日(暗含着他们在争取什么啊的感觉)。卖来卖去又怎样?在我们这里恐怕还没人买我呢(!)。

美国过了这么多年,才承认黑人也有人的权利。有人的权利是什么意思?可以拥有财产,自我表达,自我实现。可是想想中国人的财产权也是很dubious的。国家如果想做什么还不是可以对你做任何事。

最近一个新闻是发现一个数据库,里面对女性都打了一个属性BreedReady,这和养猪的区别(因为使用了Breed这个词而显得)有多大?

再说回纪录片里看到下蛋的鸡或者养肉的鸡形体上已经和我们印象中自然的鸡很不一样了。我想到现代在城市中生活的人们,比如我。长期看着电脑因此视力很糟糕;肥胖、有腰椎间盘突出,跑500米就喘不过气来。更不要提心理上的扭曲了。我们看到的各种纪录片和国家地理摄影师镜头下的野生动物,形状各异,但各自有各自优美的地方。我的身体之于一个自由自在生活的健康人类身体相比,是不是就和Dominion里产蛋的鸡或者肉鸡之与我们印象中散养的鸡的对比一样。

然后,最近在《枪炮、细菌、钢铁》里再一次读到,人类的扩张带来了当地物种的灭绝。读到书里写从白令海峡到达美洲的人类扩张的速度的时候,我忽然想起了Firefly里提到Reaver出没的地带越来越广。Mal说:Getting awfully crowded in my sky。我想,对于动物来说(甚至后来对于面对殖民者的原住民来说),人类就是reavers。本来只在最北边出现,但是他们扩张得太迅速。

顺着这个思路想下去,想到Zoe跟Simon解释Reaver的那段话:”If they take the ship, they’ll rape us to death, eat our flesh, and sew our skins into their clothing. And, if we’re very, very lucky, they’ll do it in that order.”忽然证实了!人类就是reavers。Dominion里都有啊!而且经常是不按这个顺序来的。纪录片里贯穿每一种畜牧动物的一个问题是,无法很有效快速地杀死它们。甚至,他们有拍摄到中国的皮毛业活剥皮的地方。我尽管一直遮着屏幕,还是看到了一点,不想记住。。。

mumble jumble

忽然在想,我总是把一切混为一谈不是因为我善于联想(我嘴上说自己脑子一根筋,想到什么看什么都是它,实际上心里还是有点得意自己有点融会贯通的本领),而是因为任何一个话题我大概都不太懂,无法深入。

刚去世的John McCain的最后的话,在推特上被转到我的时间线上。摘抄如下

“My fellow Americans, whom I have gratefully served for sixty years, and especially my fellow Arizonans,

“Thank you for the privilege of serving you and for the rewarding life that service in uniform and in public office has allowed me to lead. I have tried to serve our country honorably. I have made mistakes, but I hope my love for America will be weighed favorably against them.

“I have often observed that I am the luckiest person on earth. I feel that way even now as I prepare for the end of my life. I have loved my life, all of it. I have had experiences, adventures and friendships enough for ten satisfying lives, and I am so thankful. Like most people, I have regrets. But I would not trade a day of my life, in good or bad times, for the best day of anyone else’s.

“I owe that satisfaction to the love of my family. No man ever had a more loving wife or children he was prouder of than I am of mine. And I owe it to America. To be connected to America’s causes – liberty, equal justice, respect for the dignity of all people – brings happiness more sublime than life’s fleeting pleasures. Our identities and sense of worth are not circumscribed but enlarged by serving good causes bigger than ourselves.

“‘Fellow Americans’ – that association has meant more to me than any other. I lived and died a proud American. We are citizens of the world’s greatest republic, a nation of ideals, not blood and soil. We are blessed and are a blessing to humanity when we uphold and advance those ideals at home and in the world. We have helped liberate more people from tyranny and poverty than ever before in history. We have acquired great wealth and power in the process.

“We weaken our greatness when we confuse our patriotism with tribal rivalries that have sown resentment and hatred and violence in all the corners of the globe. We weaken it when we hide behind walls, rather than tear them down, when we doubt the power of our ideals, rather than trust them to be the great force for change they have always been.

“We are three-hundred-and-twenty-five million opinionated, vociferous individuals. We argue and compete and sometimes even vilify each other in our raucous public debates. But we have always had so much more in common with each other than in disagreement. If only we remember that and give each other the benefit of the presumption that we all love our country we will get through these challenging times. We will come through them stronger than before. We always do.

“Ten years ago, I had the privilege to concede defeat in the election for president. I want to end my farewell to you with the heartfelt faith in Americans that I felt so powerfully that evening.

“I feel it powerfully still.’

“Do not despair of our present difficulties but believe always in the promise and greatness of America, because nothing is inevitable here. Americans never quit. We never surrender. We never hide from history. We make history.

“Farewell, fellow Americans. God bless you, and God bless America.”

读这段话的时候意识到我被感动得不小,如果不加控制大概要哭了。我好像一直认为我自己对任何爱国情感都是by default否定的。前一阵重看TCW的时候,我意识到我心里其实是有很强烈的寻找归属感的需求的。我小学时候也曾是爱国者呀,只是现在我对能被我认同的集体的要求更高了。也许本质上并没有什么区别(我还是那么skeptical)。前两天看佳士工人的视频的时候,也是看哭了(虽然我很反感那些视频里表面上的口号形式,这太像国家喉舌的风格了。这些人可能是没有别的表达技巧(比如控制情绪地陈述事实),也可能是故意这样觉得可以得到更多同情和支持)。

其实这篇日志更想说的是。。McCain这篇告别词,有一种扎实稳固的道德观。如今强调这种被很多人认为是过时了的美国精神,是不是只有人要死了才可以不被喷。如今即使是仍然相信民主开明的人,也不太开口重提这些基础。“你知道吗?这个人曾经支持伊拉克战争啊!所以他说的话都要怀疑一下。”我对McCain其实不了解,也就这两天稍微看了一下,但我可以想像“杠精”要抬杠的话也是有很多地方可以抬的。据说这个人本身就是有不少争议的,但就这篇告别词里说的感情、信念,都非常动人。能在死前说,我爱过自己的生活,我也知道我努力过的事业以后还会有人继续下去——这就是十几年前我读罗素的时候认定的人生的目标。

能无顾虑地建立在在我看来是基础的道德观上做别的事,真是现在已经没有了的自由。我最近看BVTS也有这种感觉。这部剧里,作者可以讲笑话、制造恐怖、写言情等等,但背后那个moral fiber是那么的正,看得很舒心。比如最近看的一个故事里(尽管非常老套),Buffy的老同学要计划带领一些人去喂吸血鬼。表面上他的动机是对吸血鬼有无知的崇拜。最后发现,他的动机是得了绝症,悲惨地死去不如变成吸血鬼。虽然动机让人同情,但这样做给别人带来的伤害才是更不对的地方。Buffy当即对他说:You don’t have a good choice, but you have a choice。如此简单明了的道理,一方面立场坚定,一方面也给对方选择,当然要这么做这么说!Buffy这样做太完美了。

这部剧看着让我明白,我喜欢Buffy和喜欢Luke是一样的(除去TLJ)。在我看星战的时候,我就意识到单纯不吝啬地给角色这些扎实的道德基础,虽然也许看起来不如有moral ambiguity的有趣,但勇敢、善良、无私、宽容是那么可贵的品质,编剧们是不是有义务这样写啊!如今,你更加难以站出来champion这些品质了。现在的剧只会想方设法把人物搞复杂,情节设定搞得高大上,brainy is the new sexy,搞你脑筋(而实际上很多都其实经不起推敲)。

是我真的脑子太一根筋了,还是我太天才了看出来如今这个世界能为新纳粹辩护、把所有人性格里最狭隘的一面鼓动起来的国际大趋势,在娱乐行业就能看出来?

当然,我还是同意道德是没有理智的是非的。也许我怀念真正的政治正确,只是怀念过去的中年的标志而已。

无题

有时候做梦会梦见自己本来完全没想到的事情?或者难道说潜意识里有我完全没意识到的点子?

我还很小的时候,我妈的朋友来推销保险。爸妈都不太懂保险,看在朋友的面子上买了。他们的思路都是好东西要给我买,所以给我买了人寿保险。买了之后好几年才意识到,对我来说人寿保险最好还是给爸妈买。我的人寿保险,其实不该我爸妈付钱买。那么每年都交一些钱,我妈都会说,算了买就买着吧。

应该是昨天我忽然梦见我妈又在跟我说这件事,说每年交几万块(现实中没远那么多),真是有点浪费了,但是还是别取消了,万一我出什么事,爸妈可以得到补偿。我当时也觉得很有道理。这是一个很平静的梦。

我都不记得这个记忆是梦了。但是一定是的,因为金额不真实,而且我爸妈肯定不会动“万一女儿出事”的念头。

我为什么还活着,以前一直是觉得如果我去死,对爸妈会是很大打击。现在我觉得,不管我做什么,爸妈都不会真正为我感到高兴。我的意思是,他们是被文革挖空的一代人,我的快乐和追求,他们真的无法感受到。我能做的就是对他们耐心。

对我自己而言,我想知道世界是怎样运作的。我还有两个很可能永远达不到的目标。最近比较切实的活下去的理由,好像是有一些书好想读和重读。罗素5岁时觉得人生只过去了1/14很痛苦,只有学数学的念头让他想活下去。忽然意识到我能体会这种感觉了。

随着人年纪的增大,悲观绝望的感觉总是能突破原来的想象。当然这也让美好的体验更加深刻。只是美好在现实中,实在太少了。我固执地想把这种状况理解为这就需要我去做一些事情增加微不足道的一点点美好。

这么多年来,让我没有疯掉的一直是两句话。一句是Firefly里的台词:每个困难都是让你去克服它的一个机会。(后来重看发现那句话是,每个问题。)现在都有点感觉这句话太天真了。第二句话是王小波说的,理论上没有无法突破的牢笼。

算是辞旧迎新吧

我已经好几年没写总结或展望了,因为人生进入了迷茫写不出来。

我的感情很明确,我知道我最想要什么。或者说我并不知道,因为我所知道的,似乎还不够清晰或具体,没法行动。每天就在应付上班的过程中过去了。

这几年来,我形成了很不好的习惯。没有动力做很多事。我可以怪罪很多外部的事情。但现在觉得怪罪任何事物,外部的也好自己的也好,都没有意义。只有自己作出一些行动来改变才有意义。当然,分析问题的来龙去脉有助于行动。我不禁觉得曾经自己还有点行动力的时候,那点行动力来自对分析/怪罪这件事有无知的自信。

如今的我似乎丧失了专注的能力。如果股沟一下“如何专注”,会得到很多建议:减少环境中会分心的东西、制定目标、放松、番茄法、meditation等等。

我看,根本还是缺乏目标。曾经我会愿意为了获得认可而专注。我真正被吸引而专注的案例其实很少。所以我无法坚持,无法专注。

I’m still in the woods. I can’t see a path.

不是所有的总结展望都要结束在upbeat上,也不是所有的人生都能圆满。收起我的骄傲,直面自己的失败和懦弱,也许还能获得一点平常心。

Freedom for the Thoughts We Hate

两周前发生在Charlottesville的事件,有好多我挺震惊的点。孤陋寡闻的我,先是听新闻说”white supremacists”和”Neo-Fascists”是事件的一方。听新闻的用词,这些人难道是自称“白人至上”、“新纳粹”吗?我简直不敢相信,上网搜了一会儿,看到一篇文章分析这些组织的旗帜图案是纳粹的图案的演变,才接受了真的是他们自称,而不是别人强加的贬义名字。

接下来是川普不愿意公开谴责造成一人死亡的纳粹一方,过了一两天被逼开口的时候强调暴力on many sides。震惊了一分钟。

接下来好像是听BBC新闻的一个correspondent说到,Godaddy撤销了对白人至上主义的网站的域名解析(他们转战Google Domains也被驳回)。这位correspondent说:This is always where free speech ends. And of course you wonder why it took them so long to terminate their services. 这是在新闻里非常快速地说过的,似乎是理所当然的、没有任何争议的一样。说实话我又被震惊了一下,而且完全没想到会被震惊到(没想到难道不是震惊的同义吗)。

也许是因为我长期处于被审查的一方,即便我对纳粹、种族主义是痛恨和蔑视的态度,我对被审查却很敏感。我很想得到结论:不应该审查网站。为此我想了一些理由

  • 首先我想到的是,不该让川普一方的人抓到把柄,说他们被迫害。不给他们martyr的地位。
  • 压抑往往只会增加矛盾。如果新纳粹能自由表达,那么也许(?)诉诸武力的动力就会减少(好吧反对意见说的是仇恨和煽动的言论会造成更多暴力)。并且,如果我们明确知道哪些人在说些什么,那么对危险的控制有利。
  • 以上两点好像都是从功利的角度出发的。我现在并不觉得功利主义那么不堪。特别是在涉及政治的领域,往往make it work更重要。
  • 更深层次的理由是:今天我们站在这一方打压自己不同意的另一方。如果我们是被打压的一方呢?现实永远会让你震惊,好坏的界线并不是那么容易划的。
  • 只有宽容才能治好狭隘。

我愿意把我认为自己希望得到的权利,也同样给我的敌人,这样才是sportsmanship。我痛恨狭隘,但我坚决维护你显示自己多狭隘的权利。

我总是希望宇宙是和谐的,从不同的角度可以得到相同的结论。(然而哥德尔定理。。)

刚才听了Al Jazeera的Stream,讨论了这个话题。四个嘉宾,其中的一个是持有比较坚决的需要给新纳粹主义言论自由的人。他说的一句话我也非常同意:There are ways to do it without resorting to censorship。然而另外几个不同意见,我也觉得非常有道理。

  • 一位嘉宾说,在完全正常的舆论环境下,好的言论会盛行。然而现在白人至上主义能得到非常多的资金。她举例说她所在的90%都是有色人种的学校里,也有白人至上主义的活动,他们每次都能包豪华大巴。还有他们游行时举的火炬,他们有钱买这些。特别是如今,如果搞过网络营销就能知道,有钱可以影响舆论。Theirs is not free speech, it’s funded speech.
  • 另一位嘉宾(是不是同一位)说,你想一想,如果是黑人上街游行,如果穿成白人游行那样全副武装的样子,能游行吗?不能,很可能当场击毙。
  • 另一个不是在节目里听到的,而是网上看到的新闻图片是:tolerance does not mean tolerating intolerance。Does it?

听了他们的辩论,我觉得他们的区别只是,一方对黑人有更深、更切肤的同情。实际上他们是有联合的空间的。世界上很可悲的一件事是,仇恨和无脑更容易团结人心。理解力和深思熟虑往往让人行动谨慎。

(好在这方面还有很多的书可以看值得看。所以我打开了放置很久的《言论的边界》来读。没想到这本书的英文名直接是:Freedom for the Thoughts We Hate。)

tinkering randomly

同事在公司服务器里搭建了一个服务,我们可以用浏览器图形界面来执行一些原来只能命令行(打印无数无用信息)来做的事情。该服务器必须通过登陆专门服务器后ssh到。同事能通过端口映射来把http请求通过ssh通道实现。我看了也想试一下。然而同事的是mac电脑,我的是windows,他的设置不能copy。所以我就股沟着想办法。一般这样的功能,两个平台都有方案的。

然而我上班花了不少时间试没成功,还带电脑回家研究,有两天一直到很晚不睡还不成功,没解决就上床睡觉的感觉挺绝望的。(我日记里写,甚至有那时拔牙前的绝望情绪。我这么敏感情绪化,真不像一个技术人员。)上周有一天早上,忽然想试一种方案,结果成功了。

回想一下,基本上是这么个流程:

  1. 我有一个本地服务也是通过端口映射实现的,我仿造它的配置设置了一下,没成功。股沟:怎么设置端口映射
  2. 按照好几篇设置来看,我的设置并没有问题。股沟:怎么看putty的log;
  3. 搞了半天putty的log,发现那个log的功能是把屏幕output同时存到log里;
  4. 仔细揣摩之前一篇设置的文章里说log的意思。摸来摸去摸到了putty的event log;
  5. 对比成功的端口映射和不成功的端口映射的log,发现不成功的那个并没有port forwarding to XXX:YY的log;
  6. 傻眼了,叫我再看什么啊
  7. 求助那个同事。他看了以后,也一下子不知道怎么搞。
  8. 晚上心事重重,回家后洗澡的时候忽然想到,我本地并没有处理浏览器请求的服务啊!另外一个利用端口映射的是java程序访问的,我完全不知道它怎么访问的。估计就算看了代码也不懂吧。那个同事可以说是full stack开发,肯定在本地装了Apache之类的,完全不会想到要提醒我们这些后端装Apache;
  9. 本来想早点去公司研究的,结果没睡好还是准时上班。路上想起来windows server可以用IIS。股沟了windows 10上如何打开IIS服务;
  10. 打开IIS服务,IE浏览器可以显示local host但Chrome不能。重启windows后Chrome也可以打开IIS的localhost页面。至今不知为何。然而!访问映射的端口还是不成功!!!
  11. 看到putty有“forwarding to XXX:YY”的log了,但是过一会儿会返回一个connection refused / time out;
  12. 股沟:怎样看端口有没有开放。(很多命令是我没权限执行的,但能执行的看来没问题);
  13. 股沟:怎样模拟TCP/IP请求——用wget——试了一下不行。中间服务器和目标服务器似乎只能ssh,别的链接方式都会失败;
  14. 之前股沟出的一个结果是,scp也可以用端口映射来通过ssh通道直接访问bastion服务器背后的真正的服务器。所以我又花了一点时间试了试以保证我设置并没有太大问题。结果成功了。。鬼知道为什么另一个不可以;
  15. 思来想去,寝食难安(。)。感觉我还有一个可能性没试过,但我没抱什么希望。那个可能性是multi hop。跳一下不成功,跳多下不是失败的几率更大吗。。。
  16. 可能目标server只能ssh访问。我试了从开发server可以ssh到目标server。
  17. 出于死马当活马医的心理试了multi hop。没想到——成功了。最终的姿态是:local -> bastion -> dev server -> target server。local设置了到dev server的通道,dev server设置了某个端口映射到目标server的通道。关键好像是mac下的proxycommand的功能,windows没有;还有我dev server可以设置无密码ssh链接到目标server。

我想起来前一阵听的Talk Python to Me的一集Geeking out in the golden years,嘉宾Phillip Guo收集了一个60岁以上的学代码的人的问卷。主持人和他在聊这问卷里发现的一些东西。说到老年人学代码自己觉得的一些困难。其中一项困难是遇到error没有解决问题的能力。主持人说,这个问题不仅是老年人会遇到的啊。下面是他的原话(原来这podcast还有transcription):

00:25:29 Michael Kennedy: You know, I find, I interact with people and I’m not sure if this is an age thing or not, but certainly people say, “Oh Michael, you solve this problem, you’re really good at computers,” and I had, I used no skill, all I did was just randomly try variations with the piece of software they’re trying to get to work, until the thing just gave in and worked, right? It’s not like I used some great skill or something, I was just persistently pushing through, and I was just willing to play with whatever the people brought to me with their computers, “Can you fix this?” and I’m like, I don’t really know about that, but I’ll try, you know, and I wonder if that’s something about growing up with computers, like, we didn’t have a lot of good sources to learn, so you just try variations until it works, and maybe that’s something that comes to you easier when you grow up with it, and you’re not learning when you’re 60? I don’t know.

唉,还是挺高兴看到一个开着python教程的作者这么说。coding这个东西,layer很重要,所以不要觉得越过layer看代码学习原理才是解决问题的根本办法。不然的话,why stop at software?我上一份工作是在沟通很不好的环境下做支持,所以我好像总是要求自己去看代码找问题。固然有它的好处(即:在很toxic的环境里不被人欺骗和欺负)。但是并不是绝对必要的。

===分割线===

上周有了这个工具后,效率还是很低。还不知怎么评价效率怎么这么低(知乎体)。我们写了一堆不需要产品化但需要手动重新使用的脚本。所以写的时候也不太注意(时间赶,而且不是产品)。重用的时候就各种问题:表存储并不在我们想的地方,所以数据不对;有的表需要实体化所以语法不一样没有改;数据导在同一个目录下导致数据double;两批数据格式不一样所以不管怎么建表都报错。。。

要在被“要照顾那么多细节”paralyze的情况下行动起来get it done,然后使用的时候还是有很多问题。需要行动&反思结合。