RSS 2.0 Feed
2006-01 Entries
摘要:Ruby和其他动态语言里有个东西叫Duck Typing,按Dave Thomas的话来说,if an object walks like a duck and talks like a duck, then it must be a duck (如果一个对象走起路来象鸭子,叫起来也象鸭子,那么它一定是只鸭子!) 譬如,Ruby里可以这么做 class Duck def Quack   puts "I am a duck, so I quack" endend class Pig def Quack   puts "I am a pig, I don't quack, but I am faking..." end end animals = [Duck.new, Pig.new]animals.each {|animal| animal.Quack} 即使是只猪,只要它能Quack,在这里它就是只鸭。在Ruby里,the type of an object is defined by what that object can do。 VB里也有这样的动态机制,譬如,通过后期绑定,你可以这么做 Option Explicit OnOption Strict Off 'this is important Imports System Class Duck Sub Quack()   Console.WriteLine("I am a duck, so I quack") End SubEnd Class Class Pig Sub Quack()   Console.WriteLine("I am a pig, I don't quack, but I am faking...") End SubEnd class Class TestDuck  Shared Sub......[阅读全文]

posted @ | Feedback (17) | Filed Under [ .NET ]

摘要:该版不是早先发行的PDC版的简单更新,而是包含了新的编码。新的功能包括 1。IDE的LINQ Intellisense支持2。对DLinq比较多的 支持3。编译器对编辑XML字符串的支持4。XML后期绑定,包括XML命名空间的Import写法,IEnumerable的索引器等5。XML内嵌表达式句法的统一,全部用“<%=       %> ” 参考The Visual Basic Team blog: NEW VB LINQ CTP: Now live on MSDN! 下载处Visual Basic 9.0 LINQ Technology Preview [来源:Don Box] ...[阅读全文]

posted @ | Feedback (7) | Filed Under [ .NET ]

摘要:最近读到专栏作家Andrew Binstock在《软件开发时报》上发表的题为《开源的改头换面(The Changing Face of Open Source)》的评论员文章,感觉有点意思,大概摘译如下: 今天的开源编程几乎是商业性的,大部分的编码是由全职开发人员编写的,因为他们的雇主有兴趣对某个项目提供支持。譬如,今天JBoss的编码,只有百分之一不到的编码来自独立的开发人员,而Eclipse则更少。(饶有风趣的是,Eclipse Foundation的Mike Milinkovich说,独立的开发人员作为beta测试人员还是非常棒的)。 究其原因,首先是现在的项目复杂性越来越大,在庞大的编码库里找到能有所贡献之处,所做贡献又确有价值的过程越来越困难。即使象听上去很容易的事,譬如提供文档,所需要的工作量也是非志愿性社区所能及。 第二个也是重要的,开源项目商业化的原因,就是因为项目主管更愿意对开发人员有控制权,这样他们就能计划特定的功能以及发行日期,而不必等待志愿者提供所需编码了。 当然,商业化的效果有目共睹,譬如,与功能不全的AbiWord相比,你得到的是功能齐全的OpenOffice,与以前一些混杂的线程支持方法相比,你得到的是Linux kernel中企业级的线程支持。 但商业化也带来了其他一些的问题,其中很重要的问题是,在今天,大型的,草根级的开源项目怎样,或者是否还能,生存下去。研究表明,在目前,这并不乐观。在过去的几年内,大部分新的开源编码是商业公司贡献的现有编码。虽有类似Firefox 和Spring这样的项目日益红火,但相比之下,这些项目很小。 开源的商业化也解释了为什么一个公司当初希望通过开源化来改变产品效益不好的初衷并没有效果,因为他们所做的就是公开源代码而已 。 开源的商业化也意味着对产品而言,开源不再是个卖点,而价格,功能以及来自发行商处的支持才更具重要性。但想一下,这些东西不就是评估闭源的商业软件的同样标准么?...[阅读全文]

posted @ | Feedback (9) | Filed Under [ 业界 杂类 ]

摘要:[来源: Michael Swanson, Tim Sneath] 同时还提供WCF/WWF的Go-Live licenses,但由于客户端环境的难控制性,目前还没有WPF的Go-Live license WinFX Runtime Components: http://www.microsoft.com/downloads/details.aspx?FamilyId=61DD9CA7-1668-42E4-BD37-03716DD83E53&displaylang=en   Go-Live licenses for WCF and WWF:http://msdn.microsoft.com/winfx/getthebeta/golive/default.aspx Windows SDK:  http://www.microsoft.com/downloads/details.aspx?FamilyId=64750EEF-D4A7-4CC8-92F2-9A201268A231&displaylang=en Microsoft Visual Studio Code Name “Orcas” Community Technology Preview - Development Tools for WinFX :   http://www.microsoft.com/downloads/details.aspx?FamilyId=5A0AE4CD-DC79-4B12-8A05-B6195F89FFA2&displaylang=en VS Extensions for WorkFlow:   http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&displaylang=en WinFX RC January CTP “Readme”:  http://msdn.microsoft.com/windowsvista/support/relnotes/winfxjanctp/default.aspx ...[阅读全文]

posted @ | Feedback (2) | Filed Under [ .NET ]

摘要:微软SQL Server 2005中的分析服务(SSAS)提供了企业级的数据挖掘功能,可用于对购物篮,客户流失,市场/营销活动,预测,网站用户行为等问题的分析之用,来帮助企业提高生产力、增加利润和减少支出等,看来数据挖掘大众化已经是非常现实了。随SSAS来的是个基于一个虚构的公司Adventure Works的数据库,但网上还有不少公开的数据库,可供学习之用,kdnuggets网站有个详细的列单 Datasets for Data Mining...[阅读全文]

posted @ | Feedback (6) | Filed Under [ 杂类 ]

摘要:读到Ruby里有个东西叫code block,它支持closure。 list = [1,2,3,4,5,6,7,8,9,10]sum = 0list.each() {|i| sum = sum + i} 这里,红字的{....}的东西就是code block。在上面,数组调用了它本身的方法,each(),而each()则会通过yield来反复调用code block里的语句。 在C#2.0中,code block相当于匿名方法,类似的实现为 int[] list = {1,2,3,4,5,6,7,8,9,10};int sum = 0;Array.ForEach<int>(list, delegate(int i) { sum += i; }); 但如果使用LINQ的话,类似运算可以简化为 int sum = list.Sum(); 注意,这个Sum()方法并不是数组类本身的方法,而是标准查询运算符(Standard Query Operators)中的方法...[阅读全文]

posted @ | Feedback (9) | Filed Under [ .NET ]