IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT Oracle/ 2012-08-28 13:52:42 / 累计浏览 5,066

双机mount数据库出现ORA-00600[kccsbck_first]

一朋友的数据库在做数据库恢复的时候,数据库不能启动到mount状态,检查发现 alert日志错误如下 查询mos发现解释 在非集群环境中,当该数据库已经在一个节点启动,然后另外一个节点再尝试启动数据库可能出现该错误. 检查环境发现是使用roseha的双机环境,当关闭当前节点的数据库时候,另外一个节点认为oracle down掉了,然后自动在该节点去尝试启动数据库,而当前操作节点去尝试mount数据库的时候发生该错误,因为该数据库的另外一个节点已经mount了.出现这样的情况,和朋友的存储资源的配置也有不合理之处,在接管资源之前,应该先分析和处理存储的挂载情况,而不是不卸载这边,另外一遍直接挂载(也就是存储两边都挂载) 解决办法 这个问题的本质就是因为ha的两边都启动了数据库导致,关闭一边的roseha或者关闭主机就可以了

IT 编程语言/ 2012-08-27 13:58:50 / 累计浏览 2,089

C#的设计缺陷(2):不能以void作为泛型参数

相对于Java的假泛型(编译型泛型,类型擦除)来说,真泛型是.NET的一个亮点。Anders Heisenberg多次提到.NET的真泛型有利于编程语言的进一步发展,可以带来更丰富的编程模型。不过.NET支持的泛型是一方面,具体到语言本身则又涉及到编译器的实现,而编译器的实现又收到运行时的限制等等,所以要谈语言的设计缺陷的“原因”就会变得很复杂。不过这里我们就把C#作为一个“成品”来对待,谈下它不允许以void作为泛型参数的“后果”,“原因”则略为一提,不做深究。 泛型的限制 话说C#中泛型是很常用的特性,很多朋友都应该遇到过一些这方面令您不爽的地方。

IT 编程语言/ 2012-08-27 13:57:04 / 累计浏览 2,271

C#的设计缺陷(1):显式实现接口内的事件

其实使用C#这么多年,我时不时会遇到一些令人不爽的设计缺陷。这些缺陷大都是些限制,虽说无伤大雅,也很容易避免,但一旦遇到这些情况,总会令人心生不快,毕竟都是些无谓的限制。而且令人遗憾的是,虽说去除这些限制也不会带来什么问题,但我认为C#设计团队也基本不会去修复这些问题了,毕竟它们大都是些细枝末节。作为一名用C#的纯种码农,我突然一时兴起也要把这些设计缺陷记录下,也方便和大伙一起讨论下。那么这次就先从实现接口内的事件说起,当我们需要显式实现一个接口内的事件时,会发现我们必须提供add和remove访问器,这还会稍许影响到事件常用的使用模式。 强制add和remove访问器 这个问题听上去有些绕,不过看代码便一清二楚。

IT 编程语言/ 2012-08-27 13:56:38 / 累计浏览 2,145

Jscex与Promise/A那些事

任何异步编程的类库要做的第一件事往往便是统一异步编程的模型,例如Jscex的异步模块自带一个类似于.NET中的异步任务模型。围绕统一的模型,开发人员便可以尽情地提供各种扩展,例如Jscex异步增强模块中的whenAll或whenAny一样。换句话说,假如要混用两种异步编程模型,往往需要将其中一种适配至另外一种,因此异步增强模块中也提供了fromCallback及fromStandard辅助,能够轻易地将最简单的(也是Node.js里使用的)两种异步函数接口绑定为异步任务。

IT 互联网/ 2012-08-27 13:51:33 / 累计浏览 3,808

一条微博被恶搞所引起的思考

微博到底是公共的还是私人的?毫无疑问,它是公共的。它是一个公共空间(public space),不过,未必是公共领域(public sphere)。后者是一个学术化的名词。比如你在公园里说话,当然是在公共空间里说话,但这些话语,未必就是公共领域的话语。重点在这里:传统上讲,公共领域一定和媒体有关。你在饭店的饭桌上(公共空间)说张三行贿,还是一句私人话语。但你要在媒体的文章里写张三行贿,那就不是私人话语了。

IT 安全/ 2012-08-27 12:41:37 / 累计浏览 5,549

几种极其隐蔽的XSS注入的防护

XSS注入的本质就是: 某网页中根据用户的输入, 不期待地生成了可执行的js代码, 并且js得到了浏览器的执行. 意思是说, 发给浏览器的字符串中, 包含了一段非法的js代码, 而这段代码跟用户的输入有关. 常见的XSS注入防护, 可能通过简单的 htmlspecialchars(转义HTML特殊字符), strip_tags(清除HTML标签) 来解决, 但是, 还有一些隐蔽的XSS注入不能通过这两个方法来解决, 而且, 有时业务需要不允许清除HTML标签和特殊字符. 下面列举几种隐蔽的XSS注入方法: IE6/7 UTF-7 BOM XSS 漏洞攻击隐蔽指数: 5 伤害指数: 5 这个漏洞非常隐蔽, 因为它让出现漏洞的网页看起来只有英文字母(ASCII字符), 并没有非法字符, htmlspecialchars 和 strip_tags 函数对这种攻击没有作用.

IT 奋斗/ 2012-08-27 12:40:54 / 累计浏览 2,184

翻译杂思

从09年玩票性质地参与了《ThoughtWorks文集》开始,我踏入了图书翻译这一河。 09年下半年和小刀一起翻译了《Programming Scala》,11年又参与了老马DSL的翻译,今年新近接手了《The Joy of Clojure》。算起来,也有了不少的经历。公司邮件列表里看到一封邮件,又是书找译者。在ThoughtWorks,要做这样的事,机会多得很。看到很多小朋友们很踊跃地报名,我就借题发挥一般地总结了一下自己做翻译的一些经验,算是分享吧!首先是选择。兴趣驱动永远是最好的选择,翻译本身是一个非常磨人的工作,做自己不喜欢的事,会倍加痛苦。就我参与的翻译而言,除了第一本玩票外,我选择的主题都是相关的:程序设计语言类。无论是Scala、DSL,还是正在做的Clojure,我都是在给自己一个更好地了解某种语言的机会。

IT Oracle/ 2012-08-27 12:40:32 / 累计浏览 4,409

rman备份对各种数据块操作

有不少人对于rman的backup功能,到底备份数据文件的什么级别,一直有着不明确的说法,我这里以10.2.0.4版本的rman backup 测试,进行一个简单的说明.这里提供的是一种思路.如果你在实际工作中,遇到一些rman到底会不会备份相关数据块的时候,可以通过类此的试验来证明你的版本的rman的功能. 模拟环境 备份空数据文件 从这里可以看出来rman备份的时候,数据文件中未格式化的块并没有备份(数据文件10m,备份集只有106k左右,比文件实际使用的65536b稍微大点) 备份create表数据文件 这里可以得出结论,rman的备份集大小可以从一定程度上近似等于数据文件使用空间大小

IT 网络系统/ 2012-08-27 12:39:30 / 累计浏览 4,106

关于tcp-proxy的几个小问题

Tcp-proxy是什么东西就不说了,搜索本站就能找到答案,说说最近碰到的几个问题。 1)keep-alive 如果server或client开启keep-alive,需要tcp-proxy也能感知。但是keep-alive本身是不携带有效的数据(通常是最后收到并且已经确认的一个字节),所以直接转发会有问题(tcp-proxy转发会重写tcp header,而且tcp-proxy之上的应用不能处理这个包)。所以说keep-alive是tcp层的行为,而不是应用层的行为,只要tcp-proxy的两端处理就可以了。由于tcp-proxy接管的tcp连接,所以最好是两边都能够发出keep-alive packet,这样才能完成协议所规定的功能。

IT 互联网/ 2012-08-27 12:38:56 / 累计浏览 2,374

文本的解构与结构:读《恶搞》

整体而言,中国网络人口的年龄层相对于整个中国人口是年轻的,30岁以下网民占据了一半。年轻人对恶搞之类的事的热衷丝毫不奇怪,于是在网络上随处皆可见到恶搞。互联网的开放性、匿名性,又为恶搞推波助澜。在互联网上,亚文化几乎成了主流文化,便是这样的原因。

IT 算法/ 2012-08-24 13:09:41 / 累计浏览 4,064

谈谈年度最佳代码“不管你们信不信,反正我信了”

最近有段十分流行的代码,是从江湖传闻“身怀八蛋”的铁道部发言人王勇平同志的一句名言:“不管你们信不信,反正我信了……这是生命的奇迹……它就是发生了”所引申出来的。这段代码虽然只是在调侃,但是围绕这段代码也产生了一些讨论(如代码风格,编程规范等等),在此顺手记录一下,就当无聊罢。

IT 编程语言/ 2012-08-24 12:31:38 / 累计浏览 2,307

由eval生成的代码效率真的很差吗?

昨晚跟一位Node.js专家讲解了我的Wind.js类库。之前那位仁兄对Jscex(Wind.js的前身)的看法是“就是不喜欢”,也在微博上对Jscex冷嘲热讽,于是我私信他说建议看一下文档了解一下Jscex。昨天我们的争论主要围绕在eval的使用上,他认为更好的做法是像CoffeeScript那样使用一个额外的进程监听改变,这样更方便。我说CoffeeScript这么做是因为它没有像Wind.js那样借助eval实现完全动态的运行时转化,且生产环境中不会出现eval。最后他坚持认为“eval就是有性能问题”,因此开发时也不应该使用,否则Wind.js为什么要提供预编译器?虽然最后不欢而散,不过我忽然也打算验证一下eval生成的代码效率到底会差到什么样的地步,于是便有了这次试验。 测试代码 有人可能会问,eval每次动态的执行代码时需要重新分析代码,还不能进行优化,为什么会“不慢”?

IT 编程语言/ 2012-08-24 12:27:57 / 累计浏览 1,946

我对“语言之争”的看法:别随便拉我入场

我很喜欢编程语言,但我争论语言时有着基本的原则和必备的知识,没有这些在我看来就不应该参与讨论。讨论时我也会严格控制范围,因此我基本不会使用类比,因为类比其实就是在用外部知识来理解当前的话题,很容易把话题扯开出去。同理,我也不会像高级分析师们讲一些初级程序员们都懂——但往往我不怎么理解或赞同的大道理。我就是怎么没出息,就像今天早上还有人在IM上对我说“老赵怎么可能还在写程序,你是冒牌的吧?”。

IT 算法/ 2012-08-24 12:27:27 / 累计浏览 3,489

我看面试时出(纯)算法题

今天早上一边出门一边在平板上读了左耳朵耗子的新文章《为什么我反对纯算法面试题》,略有想法。正逢外面暴雨如注,我就又回屋打开笔记本发了一些回复,特此整理一下。为了避免有人扭曲我的看法,我先声明我并不是反对这篇文章,相反我是基本同意其中的观点,只不过会加以一些补充,把其中一些我认为有些过头的地方按一按。您也可以认为我的观点是提交一些补丁,发了一些Pull Request(当然不是这种Pull Request)就行了。我当时吐的第一个槽,是说文章太鄙视搞学术研究的人,说他们是书呆子,不关心业务需求,认为那是应试教育不会思考的产物。这个么其实不是重点,只不过触到了我的学术研究情结罢了,接下来的才是我真正想说的。 耗子的文章以前两天的一个讨论引出话题,那是一道面试题:“找出无序数组的第2大的数”,而在当时的面试中,“排序”后再取数被判为不合格的答案。

IT 奋斗/ 2012-08-23 00:05:26 / 累计浏览 2,185

动手好奇反叛的Hacker精神

我花了点时间,写下了我对Hacker精神的理解,给大家瞅瞅。 Hacker不是仅仅在计算机领域才有。历史上的那些杰出的发明家,画家,建筑师,工程师,科学家,很多具有hacker的精神。 他们会发现这个世界里面让他们兴奋的问题,并且自己动手去寻求解决方案。 问题是什么? Hacker解决的问题可能很大。比如人类想飞而不能飞的问题;比如马的力气不够大的问题;比如把消息尽快的传出去的问题,到在互联网上找不到东西的问题。看看世界上林林总总的解决方案,你会惊讶于莱特兄弟的方案,福特给出的方案,以及Tim-Berners-Lee等很多聪明人给出的方案。Hacker不是以做什么为导向的,他们以解决什么问题为导向。

IT MySQL/ 2012-08-23 00:04:55 / 累计浏览 3,948

尝试mysqlbinlog的flashback功能

简介: mysqlbinlog flashback功能是淘宝彭立勋的一个很强劲的作品. 主要功能: 对rows格式的binlog可以进行逆向操作.delete反向生成insert, update生成反向的update,insert反向生成delete.让dba同学们也有机会简单的恢复数据.可恢复:insert, update,delete相关的操作.

IT 互联网/ 2012-08-23 00:04:23 / 累计浏览 3,707

微博 还是 微信

微博在商业上真正强劲的对手是微信,虽然两者并不是一回事,但争夺的东西都是一样的:用户的注意力。微信于11年1月发布1.0版,采用了快速迭代的开发方式,今年5月就进化到4.0版。普通人今天使用微信的重要动机在于:它能满足人们自身某些时候显摆的需求,但又避免了无意义的围观。微信的使用所产生的危机,远远小于微博上的。要知道,同样一句话,在你的朋友(真正意义上的)面前是可以接受的,但在陌生人面前,恐怕就不那么容易接受了。再加上微博的转发机制,事实上微博上颇有些人被推到完全意想不到的风口浪尖。有一位IT从业人士这么和我说,每一次微博上的小危机,都赶跑了一批微博上的用户。

IT 网络系统/ 2012-08-23 00:02:38 / 累计浏览 5,628

nslookup通往DNS的桥梁

【nslookup何许人?】 nslookup命令,是Linux里非常常用的网络命令,简而言之就是“查DNS信息用的”。 通过man nslookup可以看到对于nslookup的官方解释是“query Internet name servers interactively”。 【nslookup作者何许人?】 通过man nslookup可以看到其作者是Andrew Cherenson,我寻找到了他的Linkedin主页,原来 他是一位计算机科学的高材生,曾经就读于哈佛大学和加州大学伯克利分校。 目前就职于ChoiceStream公司, 【系统没有nslookup命令?】 如果你的Linux系统没有nslookup命令,那么八成是你没有安装bind-utils包。