byers's profile安全第一-长风野老,铁臂山人PhotosBlogLists Tools Help

安全第一-长风野老,铁臂山人

byers roger

Occupation
Location
Interests
全世界无产者联合起来!
Photo 1 of 17

YOBO

 
lonegunman一起在友播听歌吧!
September 15

计算中的世界与全球意识体

一花一世界,一树一菩提。数学是宇宙的抽象,数学中存在着无穷大与无穷小,事实上无穷大和无穷小都是世界的本质的一部分,同时无穷复杂也是世界本质的一部分。如同你将现实中存在的任意一条直线无限地放大放大再放大,它一定会变得扭扭歪歪;任意一张桌子的表面积都可以是无穷大,只要你观察的工具可以无限地把平面上的凹凸放大。真实存在的复杂性可以很轻松地超越人类一切计算能力的总和,任意真实存在的系统在无穷精化后都将复杂的不可计算(只要到量子级别就不可测量了,更不用提计算)。
然而如同几十亿年前地球的某个地方出现了某种大分子结构的有机物一样到复杂的万物生灵,由世界孕育演化出的生命体演化出了智能,慢慢地发展到现在由我们人类设计并且制造出了专门用于计算的设备,计算也经历了从无到有的演进。从我们开始对周围的世界进行思考开始,地球上的计算密度就开始缓步提升。如果我们定义一种单位,以一个现代人的单位时间计算能力为基础单位,那么每平方公里的计算密度是呈指数级别增长的,特别是计算机的出现是这个增长的拐点。我们制造了各种各样的机器,将人类从拉犁收割、步行划船等体力活动中解放出来,还建造了计算机将人类从低级计算中解放了出来。
目前的社会,计算已经融入了方方面面。没有计算,飞机将会坠毁,交通会瘫痪,金融系统会被彻底摧毁,所有的经济体都将土崩瓦解。互联网的出现使得交流变得廉价,广义上的协同思考已经像电力自来水一样是社会对我们提供的基础性服务;人和人可以更加轻松地交流思想,知识可以传播地更快。个人受他人的影响越来越大,像尼采那样孤立封闭的超级哲人很难继续存在下去。
在可预见的未来,计算密度将会越来越高,我们会建立越来越精密的系统,模拟真实社会;会有越来越高效的嵌入式设备投入使用,他们必然会越来越多地是互联网的延伸设备;计算与信息会变得像空气一样,免费、唾手可得,但是又是性命攸关的。在这种情况下,组织与组织的界限更多的会变成他们后台系统、群体之间的界限,会有更多的融合意识出现。在法律上我们将企业视作一个有人类权利的虚拟人,称之为法人;在将来,我们将会把通过网络产生的群体意识、集体意识看作一个有独立思维能力的人;这个人的意识由组成它的无数真实的人的意识混合产生,反过来又会影响到这些组成它的人。艾泽拉斯大陆对于非魔兽世界玩家来说是什么?对于骨灰级魔兽世界玩家来说又是什么?我们可以这样来看,把全体魔兽世界玩家的混合意识看作是一个人,那么任何对魔兽世界这个游戏的致命威胁都是对这个人的致命威胁,必然引起它的反感与抗争。当然目前个体意识和群体意识的关联还没有达到为了个体意识为了群体意识产生的求生意识去不择手段的地步,但是越来越多的群体意识的利益与个体意识的利益挂钩。发展到最后,我幻想会出现一个具有自我意识,可以自主选择发展方向的全球性意识体,它是由全球无数多的个体意识在一起组成的。
在未来这样的全球意识体发展成熟以后,个体意识将变得更加无从轻重,个体的意识在群体意识面前就像一只瑟瑟发抖的被拔光毛的鸡,除了战战兢兢地四处寻找庇护所它别无他法,更别提去抵抗这种群体意识了。最后,独立的思想会越来越少,人类合为一体。
September 09

秋夜

昨日通宵,今日睡到日晒三竿才起来;下午闲来无事,洗了个澡就跑去公司逛逛,出门时一阵微风拂过,加上今日灿烂的阳光明亮却不烤人,甚是舒心;加上最为艰苦地工作已随昨夜而逝,油然有一种身无所依,心无所系,悠悠然游离于世外的幻觉。待得晚饭后,走在路上,感觉手脚发热,竟是越走越轻松,越走越畅快。回到家里,坐在桌前,打开窗子,鬼使神差地找到肖邦的降E大调夜曲播放,流水一般的旋律滑出音箱,配合窗外传来的阵阵虫鸣,竟是如此地和谐美妙,只觉有一股清泉缓缓流过心田,顿时工作的压力、焦躁、烦恼都不见了,精神也是为之一振。难道今天宇宙射线的频率与我的小宇宙很合拍?万籁俱寂之中居然有一些天人合一的感应。。。
我最近太过焦躁,现在夜深人静一个人反思,真是觉得没有必要。可能是我太渴望成功,太渴望挑战,忘记了这路上的磕磕绊绊琐碎杂事也是必须经历的,就像牛顿经典力学中设想的没有摩擦力的理想表面现实中是不存在的一样,不该如此地急躁。
让一切烦恼随着旋律流走吧,至少在晚上,是我自己的时间,我应该忘记烦恼,做一些喜欢的事情。
September 07

最近

最近内火很大,比较急躁。
很多的事情都步入了一个最后的阶段,辛苦了一年的系统积攒了一年多的问题也正在一个一个爆发再扑灭,推广工作也已经进入了尾声,只剩下最后一批门店了。回想起和同事们一夜一夜地努力,看着这个长得很畸形的系统还是顽强地站立起来支撑起那么多的业务,还是很有感触的。读书也快要结束了,这些天在赶论文,写的就是这个做了一年的系统,赶着赶着发现自己原来的实现有许许多多丑陋的地方,还要回过头去修补。等待了一年多的事情也有了一个比较乐观的未来,虽然还不知道未来会是怎么样,但总是一颗定心丸,眼看自己一直想做的事情终于从不可能变成了可能。未来,好像离我只有一年的距离。
我想最近急躁,可能就是这么许多事情都处于一个要出结果还没出的状态,好比XX前的疼痛,以及期待一般。
很庆幸自己依然愤怒,依然不愿妥协,依然桀骜,虽然无数过来人对我说,做人要XXXX(省略一万字)。但是我仍然相信,天地是广阔的,人性是美好的,人是要做大事的,妥协是不可接受的。如果人不能像利剑一样锋芒毕露,那也要做到像玄铁剑那样重剑无锋大巧不工。男儿立于人生天地间,当提三尺剑立不世之功。忍耐,继续忍耐下去,虽然有可能到最后还是一场空,但毕竟我有过一个梦想,我离它是那么的近。
加油!!!
September 01

我怎么了?

最近不是一般的愤怒,愤怒愤怒愤怒,对周边一切事物都感到厌烦与愤怒,我想要咆哮咆哮再咆哮。。。
为什么总是有那么多烦心的事情?如果人人做事时都为别人考虑一点,都想到自己的举动会对别人造成什么样的影响,哪里会有那么多横生出来的事情?
August 07

老狗学不会新把戏

都说老狗学不会新把戏,为了不沦为老狗,我还是要保持不停地学习。
最近在学习scala语言,一种面向对象的函数式语言,目前运行于jvm之上,可以与java互操作。
官方提供了一个很不错的站点提供培训:http://www.simplyscala.com/
为什么我决定学习一下这个语言呢?主要是以前很惭愧没有学习过函数式语言,正好就拿这个入门了。函数式的好处很多,例如下面的样例代码
 
abstract class TreeN
case class InterN(key:String,left:TreeN,right:TreeN) extends TreeN
case class LeafN(key:String,value:Int) extends TreeN

def find(t:TreeN,key:String):Int={
     t match {
         case InterN(k,l,r) => find((if(k>=key)l else r),key)
         case LeafN(k,v) => if(k==key) v else 0
    }
}
// create a binary tree
val t=InterN("b",InterN("a",LeafN("a",1),LeafN("b",2)),LeafN("c",3))
/*       [b]
         / \
       [a] c,3
       / \
     a,1 b,2
*/
 
寥寥几行定义了一个二叉搜索树。核心的地方在于find函数这里,完全体现了函数式在这方面相较于命令式语言的优越性,就是在写递归的时候非常简洁。其他的我还是刚刚学习,还需要好好体会。
July 14

最近

最近照例没什么大事发生,头们出去跑了一个礼拜所以日子过得很悠闲,除了嗓子造了两天反导致间歇性失声。
没事做就瞎琢磨一些小玩意,比如就试用了一把db4o,官方号称用起来比hibernate + mysql要快很多。我就拿最新的db4o release版在自己机器上创建了一个本地的嵌入式的数据库,然后和linq to sql比了一把存取读速度,写入比linq to sql快一点点,读取比Linq to sql慢很多。不过这个对比只是随便玩玩的,不具参考价值,因为我用的sql server是运行在ia 64环境下的小型机上的,并且对db4o不熟悉难免我的代码有点问题。感觉下来db4o用起来门槛很低,配合他的linq扩展用起来难度相当低,可以考虑在一些小的单机应用或者一些移动平台上使用一把看看。
这些天我们的application经常出现out of memory的问题,于是找了ants profiler,但是部署到服务器上以后发现经由ants托管的asp.net应用运行速度非常慢,因为ants profiler记录的内容太多太详细了。后来发现一个不错的内存调优工具,yourkit系列,有java版和.net版。部署在服务器上以后经由它托管的应用运行起来感觉不到有速度上的影响。监控了半天发现内存总是一点一点涨上去,但是又找不到什么东西占用了内存,一直到下班的时候抓了一个快照和刚开始监控时的快照一对比才发现,增加了400多m的内存开销中.net的对象只占了13%,大部分的内存不是被托管对象占用的。怀疑是非托管资源泄漏造成的。
接触了一个开源项目SharedCache,一个纯c#的分布式缓存项目,作者很有激情到处宣传自己的项目如何的高性能,但是我发现他的Cache代码中对一个键值的读写是lock了整个Cache,而并非是用读写锁,更没有为每一个键创建一个独立的读写锁。当然后面的做法值得商榷,但是前面的做法使得读也只能是串行读,这个还说是高性能我觉得有点过头了。
 
最近发现一本非常好看的书,量子物理史话,猛人曹天元写的,理清了很多从前一知半解的有关量子物理的概念,收获颇丰。特别是描述爱因斯坦与波尔的巅峰对决一段,文学与科学都照顾到了,很精彩,很有深度。特别是EPR佯谬,记得从前在阅微堂看过介绍,这次终于了解了本源。话说阅微堂主人从清华毕业了,姚期智的弟子一定前途无量。。。
 
如果无聊与孤独之间必须要选择一样,我选择孤独。如果冒险与守成之间必须要选择一样,我选择冒险。默默地积累,静待破土勃发的那一天,我不走别人的路,我的路刚刚开始。
June 23

凶猛的1/2啊

最近以ccav为首的****终于按捺不住自己心里积蓄已久的潮水般的怒火,朝google开刀了。紧接着,网上无数1/2蜂拥而出开始制造舆论,用我们从小熟悉的那种阴里阴气的春秋笔法开始大造声势。
google是色情网站泛滥的罪魁祸首吗?google是满街发廊洗头屋的罪魁祸首吗?
我看到,无数原本善良朴实的女性,到了城市以后,公然出卖自己的皮肉。那么她们做这样的工作,生活好吗?常识告诉我,在那种地方做的,生活不会好。是她们自甘下贱喜欢做这种事?有这种想法的人一定是脑子被门夹过了,或者就是一个天生的种族主义者,信仰有两种不同的人种,喜欢卖的和不喜欢卖的。
真正造成现在这种道德沦丧社会沉沦的罪魁祸首,就是为了追求经济增长而极度忽视精神建设,就是越来越大的贫富差距,越来越嚣张的既得利益集团和官僚买办。在我们这个社会,官员可以殴打公民,党员可以去嫖妓,公职人员强奸未成年少女算嫖宿雏妓,黑的可以说成白的,白的可以说成没的;一贯无偿为世界上所有互联网使用者提供相同服务的google,不会因为你是党员你是官员他不是而对你们两个人搜索同一个关键词给出不同的结果,也不会想方设法巧立名目要收费要涨价;google从创立那天开始的目的就是明确而唯一的:梳理人类知识。就是这样一个完全依靠技术与机器,相信技术可以使得人类生活更美好的一群单纯的工程师组成的团体,在我们的笔下成了十恶不赦整天就想着用几千万上亿元的设备来毒害中国未成年人思想的外国精神侵略者。
未成年人的思想早就被毒害了,就在你们搞特权搞腐化,就在你们决定开始执行愚民政策,让平民在令人窒息的无聊的娱乐中失去独立思考的能力的时候就被毒害了。
June 13

当ADO.NET遭遇静态

这些天公司的系统非常非常的不稳定,分析日志后发现,是因为系统大量抛出IndexOutOfRange的异常,在读取数据库返回的IDataReader时。
但是我们很确定我们从DataReader获取的列都是在语句中显式声明的,而且相较频繁的业务操作来说,这些异常出现的概率并不能算高,也就是说,大部分场景中读取是正常的。
由于这些我认为不会出错的代码我并没有加上try catch,而页面层也没有对异常统一进行catch,所以导致系统出现未捕获异常非常频繁;我们发现IIS在这种场景下,会在几小时内发生严重错误,系统所有的功能全部失效,必须回收应用程序池才行。
分析了一篇持续时间长达四年的强帖,

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/74a5db87-c63f-4386-b317-e848dedb2cd9 以后,我们有了一些初步的认识:

 

第一:这个错误是和并发量有关的。当我们系统涉及的门店数量较少时,很少有这样的异常发生。所以和多线程有关。

第二:错误是因为DataReader的Data Schema是错误的,也就是说,返回的DataReader的结果集实际上是另一个线程进行查询的结果集。

第三:这与ADO.NET连接池有密切的关系。

 

对应的步骤有几个:

第一:为不同模块在连接时的连接字符串添加不同的Application Name(SqlServer的情况下)。

第二:在调用获取的Connection的Open()方法时,加锁。

第三:将与数据库访问相关的代码从静态方法、单件对象中移出;这个问题与静态有非常密切的关联。

第四:可适当增加连接字符串中规定的连接池最高与最低连接数的大小。

 

其实本质上就是两件事,减少对连接池的冲击,以及使与连接池相关的代码不在静态作用域内。

 

不仅是IndexOutOfRange的异常,其他也有可能有许多与数据库相关的严重异常与静态相关。我真是对ADO.NET不熟悉,不知道微软关于这方面的建议。留下此文只是希望也许可以帮助到以后与我遇到同样问题的人,因为这个问题从asp.net 1.1一直到3.5 sp1,windows server 2000到2008,SQLServer 2000到SQLServer 2008一直是这样的。

不想醒来

做了一个梦,梦见自己过着一种很悠闲的日子,在一个阳光灿烂的下午开着一辆奥拓去看保健医生,保健医生说我胸口有些皮疹,给我开了点皮炎平。
然后就醒过来了。
醒来的一瞬间,马上想到的是自己还没有做的那些事,是这两天在公司里遇到的棘手的问题,死而不僵的异常,是失望,是压力,突然一下子喘不上气的感觉。
 
是不是我渴望简单的生活呢?总是幻想自己可以走一条和别人不一样的路,总是告诉自己只有靠自己,总是倾向于选择没有退路的路线,总是自负地相信自己总能化险为夷。我想我可能最近是达到极限了。第一次产生这种想永远做这样的梦,不想醒来的想法;开始理解matrix里大多数人即使知道真相也不想离开它了。
 
最近在开发中遇到一个与ADO.NET有关的非常棘手的问题,这个问题也有别人遇到过,伴随着.NET从1.1一直到现在的3.5,windows server从2k到2008,Sql Server从2k到2008都有人遇到过,就是有时候你会发现DataReader读出来的数据不是你所查询的,DataSchema都对不上,会出IndexOutOfRange的异常。过两天我认为彻底解决这个问题后会详细记录这个过程,也希望到时候也许有知道这是怎么一回事的朋友,遇到过这种问题的朋友能够不吝赐教我,点拨我一下。