`
dongbin
  • 浏览: 245705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
连岳被封, Wikimedia也恢复原样了。社会好和谐啊!
中国研制成功“银河麒麟”操作系统
很喜欢薛兆封老师的一句话: 我会全力以赴的反驳你,一旦我失败了,我的努力将转变为对你观点的信服. 如果我完全支持某一观点,我会选择沉默。而发现逻辑站不住脚的地方,我会直言相向,不会投露出任何委婉的语气。因为我相信,我的批驳是对你最有力的支持。 曾几何时,我也是一名EJB的fans,频繁的反对without EJB的观点。但是随着我反驳的无力,我逐渐认识到了自己的愚蠢,成了一名实证主义者。 所以我很少“顶”贴,更多的是投反对票。 我还坚信,至少在软件领域,一个实践者胜于十个思想家。 另外关于方法学上的问题,我只能从实践的自身体验来说什么是好的,而无法形式化的证明它。软件开发从来不是,也 ...
度很难把握,所以Agile方法很讲究原则。 设计的简单性是快速响应变化的前提,是不是Over要看是否是满足需求最简单设计,这就是一个Agile的原则。 简单的设计不是Quick and dirty, 而是 Clean。用TDD来保证最初设计的Clean,每一次变化来临时,用Quick and dirty方式解决它,再用Refactoring来Clean up。  很喜欢gigix的一句话: 一切面向对象都是语法糖。计算机世界根本就没有对象,应该把面向对象当作手段,而不是当作目标。遗憾的是受到GOF的影响,OCP成了很多Over Design的元凶。
今天编写ROR应用接受了两个深刻教训: 1. 以打印异常为荣,以出错不报为耻: 很简单的undefined method错误,因为错误被我rescue之后没有打印出来,结果花了一个小时调试。一定要深刻反省! 2. has_many :through 不能代替 has_and_belongs_to_many: 用了has_many :through之后 user.items << item 不能保存到数据库。 如果join_table不需要额外的字段,就has_and_belongs_to_many吧,因为这时,中间那个Model不是Model!,权当作实现复杂性吧! ...
刚才有人给我留言,说[url=http://charon.blogdriver.com/charon/132572.html ]Test Drive != Test First[/url],让我差点晕倒。 无话好说,就贴一段Kent Beck对TDD的定义: Test-driven development (TDD) (Beck 2003;  Astels 2003), is an evolutionary approach to development which combines test-first development where you write a test before y ...
很多软件开发方法都称自己是实践者的方法。 如何辨别方法学是否能够指导实践呢?看这个方法有没有原则性。 度的把握是仁者见仁,智者见智的问题,指导实践的最终结果就是领导意志决定一切。而原则确能明确的指导开发者。    1. 瀑布方法学在指导每一个阶段的时候,严重强调一定要review保证上一个阶段完成了。如何保证?这是专家的能力,我等草民不可怀疑。只管准备出小山一样的文档就行了。    2. RUP教育我们,一定要多写单元测试,多做code review。话是没错,但是这种没有原则性的空话,就和“建立和谐社会”一样,对于开发者没有指导性。    3. XP晴天霹雳:“尔等Test Driv ...
上一篇帖子只是看了robbin的文章后由感而发,所以写的有一些随性。 尤其是标题,只是一时想起这句话,用一下比兴手法,随手拈来。好比“羊羔羔吃奶眼望着妈,小米饭养育我长大”。现在有一些后悔,所以把标题改了。 但是我还是发现一个奇怪的现象,这篇文章主要想讨论软件的内在复杂性和次要复杂性,只要读完这篇文章的人都应该看得出来,和“问题”,“主义”没有任何关系。可是我发现还是有一半的跟帖围绕着这个没有意义的标题,所以我很是怀疑他们有没有看完,甚至是看完第一段也好。 真的是件很遗憾的事情。 但我还是要虚心接受大家批评,不要再让标题误导读者了。
最近关于ruby够提高开发效率的问题讨论的热火朝天 。我也插两嘴。 有一句格言我比较喜欢:“改变你能改变的,接受你不能改变的”。 人月神话告诉我们软件开发没有银弹:因为软件的内在复杂性是现实世界复杂性的映射。 ...
上篇blog 讲到Xerial 366上装linux有问题。现在找到了答案,做一个解答。 先下载IBM 的SAS Redhat driver 在利用里面的img文件制作一张驱动软盘。 然后插入第一张Red hat EL4 光盘启动,在boot提示符下面输入 linux dd 启动之后就能够找到SAS硬盘了。
单位买了一台Xseries 366,我尝试着装Ubuntu,结果失败了。 安装过程没有问题,但是重启之后内核找不到硬盘。 google一下,发现原因是366系列放弃了SCSI,开始使用SAS硬盘. SAS 的linux驱动是有的,但是linux2.6.15内核有一个 bug 并且至今没有fix。所以SAS 目前和linux无缘了。 又找到了一篇详细的文章 ,看来SAS对于linux还是新生事物,如何加入内核还在激烈争论之中,relegated to vendor kernels and third-party patches. IBM推出这样的server难道只让我们用Windows作 ...
理由很简单,MSN Space几乎到了无法访问的地步,还有一个原因是我现在用Linux的时间比较长,而Linux上是不能在MSN上发表文章的。请大家访问我的新Blog http://dongbin.iteye.com  
装了一个alsa-oss声卡驱动,再通过aoss realplay命令来启动realplay就行了。 如果启动的时候说LD_PRELOAD载入失败,是因为aoss共享库的名字错了,就需要修改/usr/bin/aoss文件,改成正确的名字。
读了孟岩老师的理解矩阵之后,深有感触。 “矩阵是线性空间里的变换的描述。”矩阵本身是一种描述如何变换状态的东西,而变换状态的主体也是矩阵。并且状态变换本身也是可以作为变换的主体继续演化。这种思想和SICP这本书描述的颇为神似。在Scheme这种语言中,数据和过程之间的界限非常模糊,过程可以作为数据来对待。尤其是第4章,深刻论述了过程作为一种描述机器结构的数据,完全就是一种普普通通的数据而已。最近在读的《UNIX 编程艺术》在第9章“”数据驱动开发“中也专门论述了这种思想。主张把程序逻辑从通用语言中提取出来,作为数据来描述。从而降低复杂性,提高可维护性。这种过程作为数据的思想,引导着过程向高阶函数 ...
读了《Unix编程艺术》后,对Shell有了新的理解: Shell也可以看作是一种函数调用方式,它是进程独立的,以文本流为参数的一种调用。 Shell跟普通的函数调用相比,它不仅是模封装的逻辑实体,而且是物理实体(进程独立)。所以封装的更彻底。而编程语言中的模块由于线程的存在,还要被同步等问题打破黑盒。 管道,重定向相当于一种参数传递机制。相对于 函数调用,他的强大还在于异步的数据传输。 由于Shell机制内嵌于操作系统,使得异构应用程序之间不必重新开发底层的协议,只需文本协议的Shell调用即可。J2EE项目中的各种异构问题的解决方案相比之下简直复杂的不着边际。
Global site tag (gtag.js) - Google Analytics