程序员的世界

不是说把人生编成程序。只是说程序员的人生。

今天偶然看到这篇文章,21天学通C++,很有感触。

其实学通C++,这个词的含义无法准确定义。究竟什么是学通C++。如果说是要完全掌握使用C++编程的技巧的话,需要的时间是无穷的。因为难并不在于C++,而在于编程。

使用编写程序是一种生活方式。它不仅仅是工作或者学习。就像舞蹈或者作诗也是一种生活一样,一旦你进去了,就出不来了。程序员的生活沉浸在无尽的逻辑,抽象,接口,复用,通讯,数据,算法,blabla之中。。。

程序员的世界是抽象的

程序员看到的不是人,而是某一“类”人的一个“实例”。有些人是虚基类,你看到很多貌似相同的人,在某些具体的方面却有着完全不同的行为。有些人是模板类,很多貌似不同的人,却有着惊人相似的行为。有些人是单件,失去了就再也找不回来。

程序员看到的不是化学定律,不是生物学定律,不是物理学定律。程序员看到的是数学规律在各个具体场景中的表达形式。用相同的程式,程序员可以模拟桌球碰撞,可以模拟气体飞散,也可以模拟生物群落迁移,牛奶混合进咖啡,或者婚姻的结合以及破裂。

程序员的世界是定量的

程序员不理解“质变”,只理解“量变”。当别人看到悲剧,程序员看到概率。别人谈“可行性”,程序员谈“可能性”。任何东西都可以定量估计,不管是系统崩溃的概率,银河系中存在类人外星人的星球数量,还是一杯温水忽然一半结冰另一半沸腾,或者身边的椅子忽然变成一个美女的可能性。一切的一切,只要存在,就可以定量估计。

减肥的人会为少吃一块巧克力而自豪,而程序员指出其实瓶颈不是少吃了多少而是消耗了多少。排队的人为插到前面一个人而高兴,而程序员指出其中机会成本其实更高,而利益没有几秒。程序员乐于估算一辆公交车能装多少皮球,75码能把人撞飞多远,或者人一生能打多少个喷嚏。这些喷嚏造成的推力能把一架喷气飞机推进多远。

程序员的世界是协议化的

程序员调用函数,遵照函数的规格声明。程序员发送消息,遵照网络协议手册。程序员对这个世界过度“预判”,并根据这种预判作出推测和决定。程序员预判其他人也是程序员。所以大家任取1~100之间一个数,要想最接近所有数和的2/3,那答案必定是0。程序员预判其他人也会遵照协议,所以拿着用户手册去跟客户争吵那不是bug而是feature。

程序员制定协议,程序员遵照协议。然而如果事实证明协议无法实现,程序员会孜孜不倦的抛弃他,并重新创造新的协议。然而程序员不可能离开协议而存在。程序员需要protocol, 需要pattern, 需要manual  and guideline。程序员在种种规则和限制之中,找到了自由,假如失去了规则限制,程序员反被关在混乱的牢笼里,寸步难行。

程序员对程序是虔诚的

程序绝不会犯错,如果犯错一定是程序员的错。程序员一定会犯错。程序员像一群苦诵经书的狂信徒,无尽的敲出一行又一行一段又一段的咒语。据说摩西五经其实包藏了耶和华的真名,而这真名只有通过反复诵读才能体会。而代码之中也保藏了程序的真谛,无数程序员在反复敲打之中要去领悟醍醐。

公司里很多同事坐久了腰痛,干脆跪在机器前面写代码。虽则这种膜拜不能就另拙劣的代码产生灵性,然久而久之,程序说不定产生佛性,亦有可能。

一只脚已经踏入这个世界,我现在仿佛觉得这个荒谬的世界才是真实的,反倒是外面的世界是无法理解的。进入这个世界的话,就离不开了吧。

我是一个。。二次元的。。好人。。

本来是睡前例行公事刷下reader。。。

结果看到这篇牛文:[转载]一辈子的好人
他已经是转载了,我就不再转载了。。总之看完之后泪牛满面。。看了还想看。。

然后睡不着觉了。。。(也可能是咖啡喝多了的关系)

至少说明跟俺一起享受煎熬的同胞们千千万,都让人总结归纳出典型来了。。

我经常会害怕的一件事情就是在上海的公交车上刷卡,然后盒子里传出甜美的机器女声:“好人卡”。。。(误

不过话说那些一直收到好人卡的家伙还是很令人羡慕的。。至少还认识那么多 发卡机。。咱手上的几张好人卡都是编译器啦虚拟机啊什么的发的来着。。不过编译器是小萝莉,不能欺负人家。。啥都得你慢慢教她,还动不动撒娇发神经的。。你学会她的语言,就能让她明白你的意思;你做错了啥也都会直说,不会让你猜她的心思(好吧,其实也经常是需要猜的。。)。。不过即使是这样,不管你怎么追求她,她还是会拒绝你。再说了,就算不拒绝,也处不长嘛。。x86, x64, ARMV4I, ARMV6; MS cl, gcc, g++; Windows, Linux, Unix[自行排列组合],那么多平台那么多编译器呢。。 好不容易喜欢上其中一个,人家改版升级了。。况且全世界的geek们都在追求她们,她们哪瞧得上我啊。。

好吧。。编译器是太幼齿了不适合。。操作系统呢。。操作系统是孕妇,又大又慢,麻烦事特多,还特别怕病毒,喂她吃东西还得先申请权限。必须好好照顾她们。不过人家都怀胎十月了您还幻想啥。。网络呢,网络是老太太,耳朵有点背,嗓子也有点哑,反应也特别慢,记性也有点不太好。人家照顾你,感激还来不及呢,就别想入非非了。。CPU倒是职业女性,又快又麻利,稍微慢了一丁点就拼命自责。问题是她们都穿素黑的工作装,平时一句闲话不讲,要说就说正经事,冷冰冰的,她们都缺觉,同时干好几件事情,一有空就拼命补觉,没时间跟你闲扯。应用程序们都是幼稚班的小孩子,跟她们说啥都听不懂,就知道嘻嘻哈哈到处乱跑,惹她们的妈妈(操作系统)生气,给她们的奶奶(网络)添乱。

果然二次元世界不是年纪太轻就是年纪太老,没有适合咱的吧。。怪不得程序员都打光棍呢。。。

算了。。半夜三惊的发春了。。太傻叉了。。不过写都写了。。就放在这里吧。。

论牛人

记后记:本文纯属个人心灵探索…观点纯属个人愚见,没有妄加评论别人或者妄图要求别人按照自己想法去做的任何意图…

最近跟几个同学聊天。。都碰上了牛人这个话题。。

先是在buzz上不小心跟不认识的学弟言语冲突。。之后又跟人聊天时对牛人产生了鄙视情绪。。

虚荣心。。虚荣心在做怪。。

膜拜牛人是一种病。当然,有些牛人是不得不拜的。他们达到了神的境界。但是我现在已经堕落到见牛就拜的程度了…承认一个人很牛,表示自己对自己达到他的实力缺乏信心,如果仅是没有胆量或者方向不同(比如程序员崇拜一个诗人)还情有可原,否则其实一种惰性。是的,他很强,我比不上他,我认输。表面上看着很谦虚很大度。其实仅仅是懒惰而逃避罢了。

但是反过来讲,否认牛人,装出一副鄙视全世界的样子,一样是病。“切,那算什么”。其实自己根本做不到。这纯粹就是装B。。。

应该对牛人抱有什么样的态度呢。。应该是对对手的尊敬。要敢于挑战,也要勇于认输。但是认输不是服输。“我早晚要超越你”。

牛人有很多种类。有些牛人确实是牛。他们有伟大的想法,他们创造了奇迹,他们构造了整个世界赖以生存的基础,他们的贡献使每个人受益。对这些牛人,我们深深的膜拜。

但并非所有的牛人都是这样。很多牛人并非是看起来那么牛。之所以如此,是因为人们看到了他的成绩和辉煌,却没有看到他们达成成绩的过程。过程是艰辛的。假如你看到他达到辉煌的困苦历程,你对他的态度不会是崇拜,而会是尊敬。就像魔术,你不知道原理的时候,以为是超自然力,或者魔法,或者什么不可思议的奇迹创造了这一切。你别无选择,对魔术师产生了深深的崇拜,以为他们无所不能。但当你看到他们练习魔术的艰苦,设计魔术的苦思冥想,以及了解了魔术实现的原理,你或许不再崇拜他。他从神坛上走下,他是人。但你仍然保有对他的尊敬,因为他的智慧和勤奋。

然而魔术师不会告诉你魔术的背后。当然这没有错。因为他们依靠这种信息不平等造就的魔力吸引观众。这是他们的职业。

某些种类的牛人也是一样。他们强大,可他们的背后有艰辛,有运气,还有别人的帮助。假如你知道他是怎么做的,并且你付出跟他相同的努力和代价,或许(这要看运气)也能达到他的程度。等你知道这一切,你不再把他当作膜拜的对象,而是敬佩他的付出和代价。

甚至还有一类牛人,他们的牛完全是装出来的。他们采取别人听不懂的措辞,他们故作高深。他们深居简出,不让别人看到他们。于是别人以为他们高深莫测,就认为他们是牛人。(在此强调,并非所有深居简出的牛人都是装牛。。而是说某些种类的装牛会采取此策略。。)对于这类牛,尊重他们装牛的选择,既不鸡肚他们不费什么力就得到牛人的光环,也不非要让他们下不了台,以此为乐,那就对了。因为鸡肚是源于自己的惰性(“如果我像他那样省力讨好该多好”),而扯破面皮则是自己的虚荣心在做怪了(“凭什么我不如他”)。

之前说了句,觉得真正的牛人应该是傻乎乎的那种类型。这是电影看多了吧。。不过我的话,确实是欣赏那些不摆架子,不故弄玄虚的牛人。他们会在自己力所能及的范围内帮你(他们强大的力所能及啊。。),甚至热心的授之以渔,但超出他们的范围的时候他们简单的道歉,并且告诉你解决问题的途径(某个领域专家,图书馆或网络,继续练习和吸取经验,或者只是简单的不可能)。而不是在力所能及的时候卖弄炫耀,在力所不及的时候故弄玄虚。

至于我自己。我承认自己虚荣心重得搬不动。。被人哄一句牛人就轻飘飘了。。说不定他还是冷嘲热讽我都没听出来。。举世誉之而不加劝,举世毁之而不加沮。。这确实很难做到啊。。被人哄也没啥可高兴的,被人讽也没啥可不高兴的。总归自说自话自做自事就对了。

有的时候在想,为什么我这么争强好胜,为什么对“牛人”这个话题这么敏感。我努力学习,努力工作,是不是只是为了让大家觉得我很牛,尊敬我,甚至崇拜我呢。我是不是故意把自己光彩的一面给人看,而藏起自己的窘状和搓态呢。这就是在装逼啊。。。包括我在写这篇博客,都是在掩饰自己的虚荣心啊。不是吗。这篇博,不就是因为自己对“牛人”这个词敏感了,虚荣了,鄙视了,才写出来的吗。。

不能这个样子。。。

学习,工作。是为了什么呢?

付出。

绝对是付出。

这个问题想了好久了。人要吃饭。人要穿衣。人要体面,人要虚荣。但仅仅是为了要这些东西而活着吗。那人跟怪兽有什么区别。[人形怪兽出没注意]

吃饭穿衣是为了活着。活着是为了付出。体面虚荣,游戏音乐,是为了高品质的活着。高品质的活着是为了高品质的付出。归根结底,人是为了付出而活着的。

一定是这样。[我无法证明这一点诶。。摊手]

真正的牛人不是别人怎么看待他,而是他付出的数量和品质。

我不是牛人[因为还没付出过啥],也不想[不应该想]当牛人[是指受人追捧的那类气场型牛人]。但是我要尽力付出更多。为了这个目的,要开开心心的活着。

与天地斗是科学,与人斗就是经济与政治

前几天回趟上海,路上遇到了不少过去完全不会关心的事情。。

仔细想想,其实都是人与人之间的关系。。往大了说就是经济与政治吧。。也可以说经济与政治其实无处不在,就在生活之中。。

下面插播一条广告

养鱼池:不准摸鱼,违者暴打罚款

这是在火车上路过大概山东还是河北的时候看到围墙上歪歪扭扭写着的几个大字。。很白话。。很暴打。。

一件事就是去拍毕业证件照,一大堆人都在排队,黑压压的能有上百吧,心说这队要排个一个小时排不完。。我也只好莫名其妙的进去排队。算是幸运吧,刚排没多久,就有一个人从前面绕过来,手里拿着一个序号,说是要先交钱排号码,然后回来排队。还好没傻傻的继续排队,跑到前面去交钱,一个大大咧咧的男生在收钱,收到的钱摊放在桌上一堆,找零就从里面扒拉扒拉翻出几张来找。。拿到序号,心想,那还排什么队嘛,等着叫号不就好了。。没想到等了没几个人,就排到我的号码了。。才知道,原来那么多人在排队都像我一开始那样,完全不知道为什么要排队,只是这么排着,结果我很无耻的插队插到了上百人的前面。。。我不是故意的啊。。
问题出在哪里呢。。后面的人看到排队,自然就跟上去排队了。。前面呢,那个收钱的桌子前面那几个排队的人居然站在那里聊天,完全不知道要去缴费。。而那个收款的男生只顾照顾那几个“插队”上来交钱的人 ,对后面黑压压一排排队的人完全不理会。。
这很明显是一个经济问题吧。。当然考量经济的指标不是金钱而是时间。从个体上来看,获取更多的消息,就能大大提高收益(比如我。。|||),而消息不灵通的后排群众只能傻等。但是从群体上看呢?如何照顾更多的人,好让全局获得最大收益?这又变成了政治问题。。当然这个问题在这里是很简单的。。只需要那个收费的男生大声招呼几句,“上来交钱”,之类的,就没问题了。新闻。舆论。宣传。所谓喉舌。。。当然个体宣传也可以呀,可惜当时我没有很负责任的招呼几句。。而是在“插队了”的巨大罪恶心理压力下灰溜溜的逃跑了。。不过跟在我后面的几个也能提早拍照的人貌似很是感激我的样子。。囧

另一件事就是回到北京以后,7:30从南站出来搭地铁。4号线挤得满满的,根本没法上车,绝不是“金枪鱼罐头”或者“人肉相册”可以形容。。而从南站出来要上车的群众跟车里面的群众数量又是同一个数量级。。好吧,逆回几站试试看,上次5+告诉我不能逆回到终点站,因为终点站不允许下车后直接上车,还得重新出站进站。。于是逆回到倒数第二站。勉强能上车,已经非常挤了。然而正是等车的当口,居然看到一列空车不理会站台从面前飘过。。肯定是去南站救火的吧!天哪,自作聪明逆回几站,结果错过了最佳选择。。。只能说是信息掌握不够吧。假如你知道交通局有机动列车专门用于救火,就会在南站安心等了。不过话又说回来,即使是逆来顺受的等在那里,结果也正是一样的。这就是传说中的:RP!!

哦哦,还有也是关于排队的事情,从南站出火车站进地铁,有3排地铁入口。然后正面对火车站出口的那一排,居然一大早不开,结果一大坨人挤在这一排地铁入口处等着,很多莫名其妙的人也只好陪着排队。要不是我带着眼镜看到遥远的对面也有一排貌似地铁入口的东西,我也会在那里傻等吧。。从个人角度上说,要采集更多信息,从群体角度上说,不开通正对火车站出口的这一排地铁入口,是完全没有道理的。南站设计的很完美,朝向三个不同方向,地铁入口有二三十个吧,可是那天早晨只有3个开通了,而且都在同一个方向。无语。

又想起来一件事情,就是火车上超级难吃又贵的要死的盒饭。我来上海时候火车差点误了,稀里哗啦赶到车站,忘记带一路上吃的用的。从早晨9点起床,11点赶上火车,一直挨到下午,挨到晚上,实在撑不住,要吃东西。饿的时候是没有理智的,总觉得方便面哪能吃饱,就去买传说中的铁路盒饭。。刚打开的时候还是很有食欲的,关键是饿得两眼放光。问题是吃了第一口就。。堵到了。。从来没吃过那么难吃的东西。我就不形容了。。免得诸位看官犯呕。为啥铁路盒饭要做这么难吃呢。。还是号称顶尖的和谐号。。已经收了高价了,随便找个大厨做做从经济利益上来说绝不会亏本。所以做这么难吃绝不是为了赚钱。能想到的理由只有一个,就是火车没法储藏足量的盒饭。如果很好吃,就算贵,也会很多人来买(毕竟方便),结果就是导致餐车拥堵不堪(其实本来餐车就被站票党们霸占了。。),而且盒饭也会严重供不应求。反而导致很多一开始就打算吃火车套餐的人因为没带食品而饿着。火车盒饭做得难吃,准备充分的人就不会去买了。忘记带东西的人也会被方便面分流掉一部分,这样剩下的这很小的一部分人,餐车准备的套餐数量正好可以满足。当然这很可能不是火车盒饭做的难吃的本来的原因(应该仅仅是官僚造成的吧。。),不过至少是这种情况能够持续的一个原因(当然主要原因还是垄断啦。。)

总之经济和政治问题是以前从来没有关心过的。其实就是把研究对象从自然转变到人而已。其实还是很有意思的。比如M牛推荐过的少数决,就是标准的政治游戏。还有同是他推荐的不完全信息问题,则是经济游戏的典范。这些问题都涉及到信息不完全,而且每个人的个体的行为的不完美不自解释不可预测,没法用自然科学的方法去研究(好吧或许可以用信息论或者概率统计。。不过最近的经济危机已经让华尔街的数学精英们认错了。。),不过想一想,其实还是很有趣的东西。并且越是这些没法定量分析的东西,古老的中国哲学理念越是容易起作用。

好吧,说了这么多都是findings…我好像又出现这种没有point的情况了。。conclusions各位自行总结吧。。囧||

过年回来没干劲了

博客也荒废了

不想干事情的状态再持续下去的话,整个人就会完全废掉了。

其实需要干的事情很多很多啊。结果都扔在那里。然后自己一个人呆在一边发呆。

需要动力啊。

最近在做图形库的接口抽象。之前做的widget引擎和图形库的耦合过于紧密了,现在想要加上DX的支持的话就相当于整个项目重写一遍。没有办法,只好想办法把图形库的通用接口抽离出来。之后用DX实现一下那套接口。说起来貌似挺容易。但是从哪个层次抽离接口呢。由于我们原来使用的是Cairo图形库,最初的想法是把Cairo的每一个API都当作是接口的一个函数。这样做改动不大,原来的代码可能几乎不怎么动就能把接口抽离。问题在于抽离了接口之后,怎么去实现…Cairo是一套平面矢量库,DX的API跟它差的十万八千里。要用非常别扭的方法才能实现那些接口。那样做的结果只有性能下降。本来用DX是要提高性能的,这样做实在得不偿失。

于是只好在较高的层面来做抽象。分析widget里面每个DOMObject衍生类使用到Cairo的函数,发现主要使用到的其实只有render和translate两个函数(其实translate本来也是属于render的一部分,后来因为通用性强才抽出来做独立的函数的),除此之外还有一些使用到的,比如getCurentRect,或者img::setSRC,这些函数其实本可以不使用Cairo,比如setSRC完全可以只是设置一个字符串路径。 到render的时候才去读取文件。这样一方面能提高些许效率(假如有人反复setSRC却不显示那个图片,其实本不需要读取那个文件),另一方面也能减少DOMObject和图形库的耦合。至于getCurrentRect之类,应该在每次render的时候将位置,大小还有mask(用于hittest)的信息存储在某处,想要获取的时候直接去用就好了。这样做就几乎把所有跟图形库的耦合全都缩小到render函数里面了。之后只需写一个公共接口,然后用工厂方法对不同的DOMObject子类生成不同的render实现传指针进去就好了。这样在有DX支持的系统上,可以使用DX,而在没有DX支持的板子上,程序可以动态适应,换用Cairo版的render实现。比较灵活。

这两天总算拖着拖着做了这么一点,接口基本上抽离出来了,但是抽出来之后发生了一些bug, 主要是TextArea和Colorize部分出了问题。争取尽快把bug解决掉好提交代码吧。。还有太多太多事情等着我做呢!!

我和我的编译器

“要不然…要不然…今晚再编译一次?明早我过来看结果,好不好?”

“想编就编呗”,她漫不经心的说。

5个小时的等待…在得到确定答复之前,你永远都不会知道结果。“她编译通过了吗?”,你嚼着米饭在想。“她编译通过了吗?”,你一边走路一边想。“通过啦!通过啦!”,你从梦中发出会心的微笑。然而第二天去那滴滴答答闪着光标的屏幕前,你一定能发现一行行刺眼的红字。

我发现我的编译器是个女孩子,无论我怎么追求她,她总是拒绝我。

Don’t know how to build #^$&@.lib

光标假装认真的一下一下的闪着。“我跟你说过多少次了!”,这次我真的有点发火,“按照makefile执行!”她一定知道怎么编译的。她只是想试试我。我这样暗自想着,并且忍住偷笑。可是抬头看着那闪烁的光标,这次看起来她是认真的。她真的不知道怎么编译了。为什么在服务器上她每次都能顺利编译通过。在我这里就不行。或许她只是想要一个更刚猛的CPU,更宽敞的内存和更顺畅的网络。这是我所没有的。

重新检查,makefile, sources还有dirs,我完全没有碰过,原原本本的从服务器上拷贝下来。可是根据编译脚本本该编译出来的lib就这样神奇般的在编译进几十个exe之后,从硬盘上消失了,连一比特的碎片都没有留下。这不可能。这没有道理。要不我去单独编译一下lib?那不行,那需要太多依赖了。他们都在之前的编译环节中被删除了。我也许可以跟别人借一个lib过来。不过编译环境选的不一样,这样编出来的东西很可能不能跑。

“要不然…要不然…今晚再编译一次?”故事就这样进行着。

“现在我正编一个debug版,但是retail版也需要编译一下。一起编译可以吗?”

“没问题”,她望着窗外。

我没有自信。不过她看起来没什么不愉快。“那劳驾你了。”

第二天,不仅retail没编出来,连新来的debug也fail掉了。

Can’t open file ^*%%&*, check if other progress have opened it.

她不能容忍在我的机器上同时运行其他编译进程。

近来我发现,原来奇迹般的清除编译好的lib文件的,都是该死的杀毒软件!我错了。我不该让她跟杀毒软件呆在一起的。我把杀毒软件彻彻底底的从硬盘清除掉。就如同他删除那些lib文件一样,不留一比特碎片。还好她不会不依不饶,事情过了也就原谅了我。

我最喜欢卡夫卡的树,在雪地上横躺着一棵树。他看起来漂浮在雪面,似乎轻轻一推就会滑落山崖。不对。他已经深扎大地,深埋雪底。不过,那也仅仅是看起来如此而已。

你永远不知道下一次能否顺利编译成功。

不过,经历这些事情,我更加牢记了程序员的三大定律:

1. 她永远不会犯错

2. 如果犯错都是我的错

3. 我一定会犯错

以上

中伊网战和DNS

今天见识到了国家级的网战较量。结果也不过于DNS攻击和DDOS。

硬件的问题是没办法说了,那个相当于军备竞赛,蛮无聊的说。DNS劫持就比较有趣。毕竟DNS只不过是一个电话簿。攻击了电话簿既没影响网站也没影响用户和中间的信道质量,其实影响力本不会这么大的。要说直接攻击一个网站,要破解服务器密码,或者通过系统漏洞拿到系统操作权限,对于成规模的企业级应用已经相当不易,更不要说国家级网站。不能钓鱼成功或者通过所谓“社会工程学”得到一些情报的话,直接攻破异常困难。像今天这样几个小时搞定一个网站估计是不太现实了。由于DNS服务器不断监听网络DNS报并且不断更新自己数据的这个“易变”的特点,才使得DNS攻击变得异常容易。

其实之前GFW不也是大量采用DNS劫持的手段嘛。那时候我就想过,如果DNS服务器能够分成动态和静态两套互补的体系,则安全性更强不易遭受攻击。(当然政府直接施压你就没辙了。。这个属于“社会工程学”范畴。。)静态DNS是记录长期稳定的DNS路由,不能轻易更新,也不会遭受突如其来的DNS污染。因为新来的DNS不会被他识别为“稳定”的,因此他会拒绝更新。而动态DNS部分则如传统DNS般不断更新。这样一旦出现DNS不稳定的情况,可以通过人工介入的方法(除了可以让管理员手动开启外,也可以考虑让访问用户举报这种方式。但是举报者又可使用DDOS来进行攻击,但攻击结果也不过是转成静态路由而已,对他们的好处不大),强制使用静态路由。当然使用了较为稳定的静态路由的缺点就是速度可能会严重下降。但这也是为了安全性而做的一点牺牲嘛。DNS机制没有仔细研究过,没办法直接在这里提出相应算法和解决方案。不过相信这个思路肯定是可行的。如果研究生期间还没出现类似产品或论文的话,我可以考虑做这方面的研究哈哈。。

另外,除了公共DNS服务可以静态化之外,个人host也可以静态化。这个我也很早就在想了,可惜一直没实际做出来。就是不断读取浏览器访问的域名和IP,然后全都记录下来。一旦发现域名劫持,可以把过去记录下来的域名/IP对导入host中去做一些尝试。一般来讲,封锁IP的速度会慢于域名劫持。所以在域名劫持之后原来的这些IP或许还有可以访问到的。当然啦,如果政府真的下力打击的话,这些IP早晚也还是会封光。。不过,至少。。还有喘息的机会嘛留一丝丝。。

对了对了,补充一点,本地记录IP,对一些公共DNS崩溃造成网络拥堵的情况也能缓解不少问题。甚至每个PC都可以成为一台小型DNS服务器。这样就像p2p的思路一样,大家互帮互助来进行DNS解析。当然大型公共DNS服务还是主力啦。

好吧今天看到DNS争夺战这么激烈,忽然想到以前想过的一些idea,算是做个记录吧。

新年游北京

其实来了北京还一直没游过。。我是一只不懂游泳的鱼~~漂啊漂泊在外地~~(哈哈转眼文艺起来了。。)

本来都想继续窝家睡觉的,没想到昨晚忽然下起雪来,今天早晨一睁眼,满世界白白的一片,加上前几天不幸“罹患”的流感也好了,心情极其好,说走就走,瞟了两眼地图就出发了。

原定计划:天安门-南海-中海-北海-前海-后海-西海-鼓楼

这个全是海计划实在是瞟了一眼地图随意想到的。。回想一下假如真的按这个路线走了还不得无聊死。。当初只是觉得没带地图嘛,沿着一堆海边上走比较方便,不用问路。。

结果一下地铁就已经迷路了。出发前说好了尽可能不问路练习自己倒霉的方向感的,所以很是坚决的自以为向东走了快半个小时,结果发现其实自己是在往西走。赶紧掉头回去,终于迎来了(其实感觉没那么)恢弘的天安门广场。下着大雪气氛奇迹般的肃穆而宁静,连路边趁雪卖帽子手套口罩的吆喝都没那么刺耳了。穿地道进广场,北京实在是一个过于谨慎的城市,啥地方都有安检。不过也好,就当是被交警姐姐上下乱摸了一通,就感觉很开心了。。囧
不过鉴于天安门自杀事件那么多,多检查检查还是有道理的。恩。一边这样想着一边在空旷的广场上疯跑,像小孩子一样翻滚玩雪。。超级开心。。一边气喘吁吁的一边跑过去拜见了人民英雄纪念碑。一般来说嘛,设计成柱状的东西都是有点阳具崇拜的意思。比如说法国人的铁塔(你知道法国人眼里没有别的…)。所以这个也不例外。。就好象为摆脱封建建设祖国奋斗了数百年的人民英雄们,向着那堵红墙竖起一根手指。好吧,或许设计不是这个本意,不过这样YY也挺让人心平气和的。。

再次下地道,从刚才乱摸我的那个姐姐身边穿过去,向北海进发。为什么说是向北海进发呢,本来的计划是要从南海经中海去北海的。。然而一下子找不到路,只看到一条胡同隐隐向北伸去,也不知道会通向哪里,就假装是往北海走吧。转念一想,莫非“中南海”就是中海+南海。。若真是如此肯定不会让我“经过”的。。所以不去也就罢了。。

胡同很宽敞,不过也能些许感受到老北京的韵味。毕竟还是皇城根底下,估计还不是平常人住的地方。一个小屋门口贴着“私人府邸,非请勿入”,大笑肯定以前让不少旅游观光打酱油人士走进来溜达得烦死了。。再往前走肚子开始叫了,在一家不太靠谱的小店吃了碗不太靠谱的牛肉面,面条不靠谱,不过牛肉丁很好吃,满足了我无语的肚皮(喂喂,肚皮,你倒是说话呀…)。

走着走着浑身就开始发起热来,越走越有劲。果然宅男不能当久,一直窝家一定要生病的。。你看出来逛逛多开心啊。就是两只脚比较郁闷,还穿着春秋天的跑鞋,冻得发紫(好吧我承认我没把鞋脱下来看颜色…)。加上前面踏雪踏得太HI,雪全钻进脚脖子里了好冷好冷。。一路上赞叹北京到处都是名人痕迹文物古迹,这边一个中学是陈云提的字,那边一个小学用的是国家级文物的庙宇。。。闷头又走了很久终于出了巷子,心想这回还是问路吧,结果一抬头就是北海南门,好吧天助我也。

唱着“水面倒映着美丽的白塔,四面环绕着绿树红墙”,就走进了北海。从小就喜欢这支歌,从小就向往这个虽然大雪中完全没有微波荡漾绿树红墙的北海。尽管我早已经不带红领巾,也完全没有心思去当起双桨。其实游北海的主要是老年人居多。果然这完全是一个回忆中的故园。偶尔有几个外国人和带着三脚架和长枪短炮的专业摄影人员或者职业装逼男。两个老太太在雪里照相结果滑倒了两人跟欢声笑语一起摔到雪堆里,周围的人都看呆了。
爬白塔山,古人建的台阶果然好陡的,古人果然是不怕吃苦,身体练的也比现代这班宅男强得多。下了大雪我爬上去还是要手扶着石墙慢慢走。心想要是年轻十岁准一溜烟跑上山。果然转眼看到一个小男孩,两手叉兜蹬蹬蹬就下了山,自愧不如,上山易下山难啊,自愧不如。心想果然老了老了。山上亭台楼阁很有旧时风韵。以前小的时候学画,画山水花鸟亭台,怎么画怎么不像。总觉得那松树怎么可能那么怪异,那亭子又怎么可能有那样翘起的飞檐。然而今天看到的,全是过去画过的东西,积雪的苍松,孤单的亭台。往山下一望尽是万千屋舍,炊烟袅袅,雪落屋檐。 正感叹间,只听得扑通一声,刚刚下山那小男孩一屁股摔倒在台阶上啦。。吃了这一次亏,吓得连一步都不敢下了,慌慌张张在台阶上坐着。。唉只好无聊的把刚才的喟叹都收回来,继续往山上爬。
在爬就没什么话说了,像是遭了沉默法术一样就逛完了北海,从北门出去,眼前就是前海,只见一片欢乐的都在滑冰,我想想自己走了这么久也感觉到冷了,不如冲进去蹦达蹦达暖暖身子。可惜咱根本不懂滑冰的,也不想玩那冰车,就土掉渣的在冰上打出溜滑玩 。。不过还是很欢乐的。。把前几天在寝室里放音乐大闹天宫没闹够的劲头都使出来了。可惜雪下得太大,冰面一点都不滑,时机果然不对啊。这冰上果然没有代沟,老太太老先生,情侣们还有小孩子们,都在这里撒欢。好吧像我这样形单影只的比较另类。。。不过也还是有一些的。。比如那边那个穿着警察制服的男孩子,跟我也差不多大吧。。

热闹够了疯也发够了,继续向北走,才发现自己的策略完全失误了。抗冻其实是个体力活,把体力都耗掉了才会觉得冷。想起来以前说过冬天掉进水里,千万别脱了大衣自己扑打,除非离岸边进,若是掉进大海里,就得穿着大衣抱成一团节省体力,这样即使在水里也是最抗冻的方法。。唉这下疯发的虽然浑身出了不少汗,反而觉得更冷了。。也不知道鼓楼在哪边,心想走到哪算哪吧。没想到沿着湖边走出去,往旁边一望,正有一座红色琉璃檐的塔楼,近前一瞧,正是鼓楼。今天老天真是玩了命的帮我。开心死了。
鼓楼钟楼一起游下来,没啥曲折。只是再度感叹了古人建的楼梯就是陡。鼓楼是木制,钟楼是石质。一开始还不知道为什么会这样。然而登钟楼的时候,每一步台阶都能听到上面金属的回音。原来整个钟楼都建成大钟的共鸣箱 ,用跟金属频率比较接近的石头,才更容易产生共鸣吧。我是这样想。于是回想鼓的木桶结构,果然用木制建立鼓楼才更能与木材共鸣吧。看了介绍牌,心中想着古代一到晚上七点,击鼓鸣钟,闭城门断交通,大家都回家休息,鸡犬不鸣。暮色消散万家灯火。那光景定是美妙。不过估计也就是新鲜吧。假如让我天天九点睡觉,又没水没电(更别说上网打电话…)那肯定得无聊死。。于是果然又叶公好龙了一次。。

再往回走,一路上看到到处贴着“文明拆迁”之类的封条,各大小商店都在放血甩卖。尤其一家店,周围用金属围栏围得严严实实。上面贴满了各种“合法文明拆迁”之类。又被撕得不成样子。在一瞧那围栏里面,只能看到灯箱被扯得稀烂,灯管也砸的粉碎。至于再里面什么情节,就被围栏围住看不到了。心想这围栏估计就是用来掩盖这坨“合法”和“文明”的。。
不过话又说回来,这拆迁是为了修地铁。如果地铁不修,作为老百姓我照样会骂这班人办事不力,连个地铁都修不来的。然后修了地铁,又要骂拆迁过于暴力。于是人家肯定是正反不得好。一般来讲,这时候干正事的人就可以大喊“站着说话不腰疼,要不你来试试”之类的回敬。可惜咱们貌似听不到这种回敬。主要还是坚持党的领导是写在四项基本原则里并且不可动摇的,这种事情没法说“让你试试”。。。于是干活的那帮人只好继续假装哑巴吃黄连吧。。。

总归欢乐的游了北京,感叹了自己老了然后又默默把话收回来了,之后又感叹了一下古代人楼梯建的真陡,再之后又感叹了下怎么每回自己都是形单影只的,有多少开心事也没人分享,虽说可以挂到博上来说不定有人看看。。不过文字能表达的,也只有超级欢乐的一日(其实只有半日而已)游的一点点而已嘛。。

希望能一直这么欢乐下去吧~新年要努力啊!也祝大家欢乐还有好运。

元旦快乐!!

恩。。元旦快乐!

好吧。。自娱自乐一记。。

一年很快就过去了。。很久没有这样自言自语的回忆往事了。。不过今天还倒轻松。。经历了压力和负重的一年,能静下来想一想,确实很轻松。就像收拾一个整整一年只顾着往里面乱塞东西的旧钱包,里面有太多让你出其不意的东西拿出来回忆了。。

大学生活就这么匆匆结束,以至于还没来得及记住他的味道。满脑子还充满着初中高中记忆,就已经恍恍惚惚被赶出大学校门上街打工了。。回想起来,幼稚的心曾经憧憬了多少年大学时光啊。曾经暗暗发誓要在大学期间做出多么宏伟的事业,曾经YY过多少浪漫和梦想。。结果全都荒废在每日懒觉和课堂上的嗑睡上了。。再就是补作业的纠结和备考的慌张。。无聊的假期消耗在荒蛮土地之间的“快速列车”之上,再就是依旧昏黄的灯光和项目。。当然也少不了昏天暗地的游戏。。不吃精神鸦片,不知人间苦辣酸甜。。。光有好高骛远的雄心是万万不行的。。要么就真有力可拔山的盖世之气,要么就有甘于消沉堕落的平凡之心。。固然学学刘邦的狡猾蛮混也不错,不过相比胜者为王,败为草寇似乎更适合我。。

悄悄地说声。。最好是能败得回肠荡气月夜箫声秋风落叶英雄没骨。。不过嘻嘻又是YY啦。。

疲劳,困惑,纠结,彷徨。。

像我这种急性子直心肠,还真少遇到这种扭曲的症状。。也不知道究竟怎么了。。想要的太多,只好跑得更快跳得更高飞得更远,最后也只会摔得更惨。。然后想要的还是得不到。。只是徒增了期盼和压力。。只是徒增了疲劳和包袱。。于是背着这包袱,挤出一个笑容,继续前行。

思考。。我所能剩下的唯一荣耀。。因为思考,能把自己推上至高的宝座,尽享宇宙之宏伟自然之广博人性之多变。。然而说到底也不过是自己的YY而已。。像是过家家的小孩子。。。

虚荣,虚荣而已。。

以此虚荣献给这坨死要面子活受罪的小强吧~

新年快乐!!!

开始写博客吧

算是玩玩吧,否则只是买了空间不是很浪费嘛。。

况且最近要做好几件事情,用个地方做点记录还是很好的。只不过不知道会不会一直有钱维持这个博客诶。。

算了这个先不提了。最近正在做的事情,两个项目是帮微软的,就不能写太多了,不过相关细节遇到的可以写一写。一个是帮何老师做的widget engine了,其实我主要做的是图形引擎的部分。当然js engine和xml解析也学到不少东西。另外对COM的理解加深了一些。另一个是CE上的media player了,这个恐怕能写在这里的更少,到时再说了。

另外想做的,一个是修改PhpProxy的代码,使之支持SSL和COOKIE,然后搭在这里。本来看了一下他只写了一千多行代码,感觉应该挺简单的,没想到居然还是很复杂的。看来还要研究研究。要支持SSL和COOKIE的话就要把HTTP协议完全搞懂,可能还需要研究加密方面的东西。。还是很麻烦的。。看来这阵子一下子是搞不定了。不过每次看到又有啥网站倒掉了,咱就心头一振,算是持久的强心针吧。应该能磕磕绊绊坚持下来。

再来就是最近挺有意思的Starcraft AI competition。找了小推和洋洋合作,还找了原来高中同学,学生物的,做过些数学建模的东西,主要还是对SC感兴趣了。要是能坚持下来应该也挺不错的。今后可以在这里多写些笔记。要是有人看还有人在这里讨论那就当然更好了。。

好吧先写到这里算个start up吧:)