花了一周的时间,看完了《Dreaming in Code》(梦断代码),看得我心潮起伏。对里面那帮家伙的评价也起起落落。最终的结论是:外国大牛也不过如此。   别看他们名头那么响,做了那么多超有名的项目,实际的能力(软件开发能力与项目管理能力)看来相当有限。感想很多,想到一点说一点吧。   1、以前有一篇文章叫“谦卑的程序员”,有这么一段话:“优秀的程序员很清楚自己的能力是有限的,所以他对待编程任务的态度是完全谦卑的,特别是,他们会象逃避瘟疫那样逃避‘聪明的技巧’”。但是,那些所谓的大牛,却一点的不知道这一点。一开 ...
2008-09-08

IT开发与管理——新收获

关键字: 开发管理
9月4日,我略尽地主之宜,招待了大概20多位朋友。那一场研讨会从晚上8点一直聊到了12点多,大家都还意犹未尽。   这次聚会,因为我是地主,周老师又让我来做主持,所以我大概是这次研讨会上收获最大的人了。   下面记的,都不是原话,只是我记忆下来的内容:   1、阿朱:“事情都是联系在一起的,但是要解决他们,必须分开来解决,否则都纠缠在一起,肯定没法弄。”   2、余波:“一个女孩子回到家,精疲力竭马上就想躺下睡觉。突然她男朋友打电话给她,约她宵夜。她一下子就精神百倍了。你能不能做那个打电话给员工 ...
要改进这两种算法,都是一个目标,就是寻找不需要列出所有解的办法来。 前一种算法,是求出所有的可能解,然后再找其中的最优解。要进行优化,则可以将求解与求优合二为一。在每一个递归中,都寻找最优解。比如,make_change(14,[10,7,2]),我们就可以寻找14-10后剩余的4的最优解,得到[2,2],以及14-7后剩余的7的最优解,得到[7],最后是14-2后剩余的12的最优解,得到[10,2]。然后选择其中最短的一个[7],组合为[7,7]作为结果返回。 代码如下: def make_change(amount, coins = [25, 10, 5, 1])&nbs ...
接着上回的讨论,我们需要写两个方法,一个找出所有的零钱组合,get_all_change_list。另一个从中再找出符合要求的一个解。 找出符合要求的解,比较简单,先写在下面。 def get_best_change(change_list)   best_change=nil   min_length=100000   change_list.each do |list|     if list.length<min_length       ...
先把题目再抄一遍: 这周的题目是找零钱,假设我们需要找给别人39美分的零钱,那么结果将会是(美元的硬币有25,10,5,1这种): >>make_change(39)   =>[25, 10, 1, 1, 1, 1]  假设我们的硬币种类有10,7,1,那么找14美分的零钱结果将会是: >>make_change(14, [10, 7, 1])   =>[7, 7]  这次的每周一测就是完成该方法: def ...
自从Quake Wang在JavaEye贴出第一个Ruby每周一测之后,我就一直非常的感兴趣。不只是对题目本身很感兴趣,更觉得这是一个非常好的技术写作的架子,可以有很多个深入探索的方向。   首先是解题思路本身,就值得讲一个又一个有趣的故事。再联系到具体的语言实现,不同的语言各有巧妙不同,又值得大书特书。再有就是效率的提升,巧妙的实现是一个方面,性能的提升,则是另一个非常重要的领域。再加上举一反三,融会贯通,可以借此做语言比较,也可以借此谈语法设计的优劣,总之,每一个Quiz,都可以挖一个大坑,慢慢展开。   所以,我的手一直很痒,想拿这样的题目来下手,但是,另一方 ...
DynamicStruct,是我最近自己在鼓捣的一个ruby项目,这是一个更大的计划的一部分。 当他完成之后,应该是这样的一个结构:    Aurum      |      V   RubyBCL      |      V DynamicStruct Aurum是目前徐昊正在做的一个项目,简单的介绍可以看这里:《A very brief introduction to Aurum》 通过auru ...
庄表伟 说: 我最近在整理自己的思路,怎么写出来,还没想好 徐X 说: 嘿嘿 你也好久没博了吧 庄表伟 说: 我还是在MSN里,先跟你说说,看看能不能理清楚一点 徐X 说: 好 庄表伟 说: 我以前写那个丧钟,当时是一鼓作气,想推翻OO中心论的思维模式 现在做的项目种类多了之后,就发现打错了目标了 现在我能够想清楚的,有三大块: 1、不同的软件系统所针对的问题域==>需要采取不同的分析问题的模式 2、不同的语言组合==>需要考虑不同的系统架构模式 3、不同的问题域、语言组合、人员情况==>需要考虑不同的开发管理模式 我当时的经验,其实只不 ...
以前没有学过ruby,这回练练手,用ruby写了一个“出数独题”的小程序。抛砖引玉,看看有没有解数独题的算法被引出来  Table=Array.new(9) def getNumber(a) return nil if a.length==0 sum=a.length*10 l=rand(sum)/10 return a[l] end def setTable(i,j) if Table[i][j].class==Fixnum 0.upto(8) {|pos| Table[i][pos].delete(Table[i][j] ...
最近在玩“饭否”,结识了一位玩ruby的朋友nnnnon。他做了一个基于wxRuby的小软件,能够同时在Twitter和饭否发言,目前最新的版本是4.0。(个人认为叫0.4比较妥当)下载地址:http://users3.nofeehost.com/nnnnon/Rupdate-version4.0.rar  于是我就产生了广泛的联想,现在的Web2.0网站,已经越来越多的支持开放API,比如Google Maps,比如RSS,比如Flickr/Yupoo,比如Twitter/Fanfou。于此同时,Mashup的技术也应运而生。 现在nnnnon做的这个 ...
与T1聊天的简单记录。 起初,上帝创造了Internet,他告诉程序员,这协议里的一切,你们都可以用,唯有那树上的小甜饼(Cookie),你们不要去吃。吃了必死。 上帝认为,服务器端应该是始终无状态的,这样才能保持性能,分布性,可靠性。但是,Web的发展,越来越超出上帝的预料,从Cookie到Session,服务器端记录了越来越多状态。这些都是违背HTTP/URI/WWW的很多协议设计的本意的。 所以,Fielding主教出来说,你们要回归原始教旨,这样才能符合当初设计Internet的本意。 REST,简单的说,就是表现状态的迁移, 表现,不那么学术的说,就是HTTP协议中 ...
  很早就知道InfoQ China的消息,一方面是通过gigix的签名档,“InfoQ China coming soon”这个标题在他的gtalk上挂了好久。后来又在javaeye的年会上遇到北京来的Jason,再后来,《程序员》杂志一直和我联系的霍泰稳也 去了InfoQ China。再后来,他们的网站beta版上线,我也是第一时间订了RSS,一直看到现在。 很早就答应泰稳,要帮他宣传宣传,但是却一直没有做任何宣传,连一篇blog都没有写过。 前几天,他又发了一封email给我,先全文黏贴如下:   这是一封来自InfoQ中文站(http://ww ...
网游是一个可怕的东西,我从来不敢沾这种玩意,我相信,这东西一旦沉迷就完蛋了。 但是,前两天,我因为订阅duduwolf的RSS,所以看到了他收藏的一个del.icio.us网址。 XPairtise - Pair Programming for Eclipse XPairtise为分布结对编程提供了一个平台。该插件提供共享编辑,项目同步,共享程序和测试执行,用户管理,内置对话交流和一个共享白板。 正好最近在InfoQ China看到一篇KentBeck的访谈,其中一段话,令我很感兴趣: 与此同时,在我现在参与的许多项目中,我将很多时间花在利用付费客户端进行远程结对编程 ...
openis 系统的历史、目标与方案的选择 1.0版 2004-01-16 庄表伟 一、历史   1、PHP版本,最初的试验     在2000年6月左右,我开始使用PHP为公司开发门户网站,当时有一个最初的设想,   来源于各种各样的“栏目”,在一个门户网站中,存在各种各样的栏目,每一个栏目都   有不少的文章,栏目还包括子栏目,子栏目下也可以   包括不少的文章。以往的设计   都是为不同的栏目设计不同的表,定下不同的字段,为了这些不同的表和字段写不同 ...
庄表伟
搜索本博客
我的相册
B5998f8e-0b53-4830-ae9e-da1c6fa20ddc-thumb
匪夷所思
共 19 张
存档
最新评论