度日如年

一分钟就象一天一样,一个小时就象一个月一样,一天就象一年一样,等待着明天的来临

机会成本与边际效应

当学投资学出身的 Adam 忽然问我:选择项目A我可以获利500,选择B获利600,我选择项目A或B的机会成本各为多少? 我还真有点回答不上来。

机会成本是经济学里面的一个很重要的概念,一般是指面临多种选择时,选择其中的一种可能造成的损失,Adam 提出的解释是:选择B损失500,选择A损失600,所以A的机会成本大 … 我虽然觉得差不多,但好象并不完全正确。

经过与精算师沟通,这个题目的正确答案应该是:选择 A 的机会成本是 100 ,正是由于选择了 A 而未选择 B ,则损失了 600-500=100,而 B 的机会成本是 0 ,因为你已经选择了最大的获利,所以没有损失。

上面这道题其实很简单,它只是考察了一下机会成本的概念,而在实际的经济生活中,面临多种选择带来的收益和损失更多地是体现出不同质性,就是无法直接对比,象上面的题,只要 AI 大于 0 ,我估计就会选择 B ,但如果题目变成:公司选择 A 项目可以要花半年,获利 500 万,而选择 B ,则要花 9 个月,没有直接获利,但获得了某一国际知名质量认证,有了一张产品的国际市场的通行证,那在这种情况下,选择两个项目的机会成本就需要仔细计算了,把不质的结果转变成同质的,可度量和对比的指标。

翻开了书柜中多年没有摸过但一直舍不得扔掉的大学课本(会计学,经济学,企业财务管理,货币银行学,国际贸易概论等),在查阅机会成本的时候,顺便复习了另一个经济学中非常重要的概念:边际效应。

边际效应,有时也称为边际贡献,是指消费者在逐次增加1个单位消费品的时候,带来的单位效用是逐渐递减的(虽然带来的总效用仍然是增加的)。

举一个通俗的例子,当你肚子很饿的时候,有人给你拿来一笼包子,那你一定感觉吃第一个包子的感觉是最好的,吃的越多,单个包子给你带来的满足感就越小,直到你吃撑了,那其它的包子已经起不到任何效用了。

边际效应的应用非常广泛,例如经济学上的需求法则就是以此为依据,即:用户购买或使用商品数量越多,则其愿为单位商品支付的成本越低(因为后购买的商品对其带来的效用降低了)。当然也有少数例外情况,例如嗜酒如命的人,是越喝越高兴,或者集邮爱好者收藏一套文革邮票,那么这一套邮票中最后收集到的那张邮票的边际效应是最大的。

了解边际效应的概念,你就可以尝试去在实际生活中运用它,例如:你是公司管理层,要给员工涨工资,给 3K 月薪的人增加 1K 带来的效应一般来说是比 6K 月薪增加 1K 大的,可能和 6K 月薪的人增加 2K 的相当,所以似乎给低收入的人增加月薪更对公司有利;另外,经常靠增加薪水来维持员工的工作热情看来也是不行的,第一次涨薪 1K 后,员工非常激动,大大增加了工作热情;第二次涨薪 1K,很激动,增加了一些工作热情;第三次涨薪 2K ,有点激动,可能增加工作热情;第四次 … … ,直至涨薪已经带来不了任何效果。

如果想避免这种情况,每次涨薪都想达到和第一次涨薪 1K 相同的效果,则第二次涨薪可能需要 2K ,第三次需要 3K … … ,或者使用其它激励措施,例如第二次可以安排其参加职业发展培训,第三次可以对其在职位上进行提升,虽然花费可能想当,但由于手段不同,达到了更好的效果。

研究经济学其实也很有意思,只是对很多人来说,与 IT 这个行业不可完全兼得。

加入定制的WebService到SharePoint站点中

今天和SharePoint奋斗了一整天。因为我要加一些自己定制的WebService到SharePoint站点中,但是SharePoint Service接管了.asmx文件的处理(即屏蔽了.NET自己的处理.asmx的httpHandler),把这个问题搞定,然后发现用“.asmx?wsdl”的方式不能得到我的WebService的WSDL,但是SharePoint自己的“_vti_bin”虚拟目录下(SharePoint用来放自己的WS的地方)的WS则没有这个问题,然后发现SharePoint也接管了WSDL获取的方式,而且根本绕不开,只能再研究它用的什么方法来获取WSDL的…最后终于把自己的一个实验的WS调试通过,用自己本地的一个ConsoleApp连上并取回数据了…累啊…

开放源码的可信计算

对于开放源码软件(Open Source Software:OSS)的安全性问题,一直以来有两种观点。

一方观点是:正是由于其源代码开放,用户可以检查和确信软件中不会留有后门,所以开放源码软件的安全性高;而另一方观点则是:具有高超技术的 Hacker 可以查看源代码来寻找潜在的漏洞,从而可能在开发人员和用户都不知情的情况下,掌握系统的弱点,进而威胁系统的安全,并且大多数开放源码软件并没有给用户做出任何保证。

从目前国内外的情况来看,似乎是前者观点更流行,不过,SecurityFocus 的一篇文章则从另外一个方面对开放源码软件的安全性提出了质疑。

作者称,由于开放源码软件是由一些松散组织的开发人员(称为 Contributor)在一个源代码树(CVS、BitKeeper等)上进行开发和维护的,那么可能产生这样几个问题:

  • 有开发人员有意置入恶意代码,并且不被代码管理员发现而被接受(Accepted);
  • 开发人员的机器可能感染病毒或受到其它攻击,可能导致恶意代码进入源代码树;
  • 由于开发环境和编译环境没有严格的限制和要求,可能在编译环节被嵌入恶意代码;
  • 开放源码是基于 Internet 分发的,如果服务器被攻陷或着下载过程被监视,用户可能得到并不完全合法的目标程序

作者的观点最后似乎是:信任但要验证(Trust and Verify),和预科中的一样,文章的评论又是明显的两派观点,以反对方为多,他们举例说明开放源码是如何保证安全的,支持方很少,但观点也很中肯:目前开放源码软件的问题虽然可能不至于这么严重,但是对于我们来说,如何在人员、环境、设备等资源高度分散的情况组织软件的开发,源代码的管理,的确是一个需要关注的问题。

BTW:这些评论者虽然观点鲜明,但修养和素质还是不错,和新浪的新闻评论员们是明显的对比。

来源:SecurityFocus
来源:文章评论

谁在翻译这本书?不是挑错,只想问问

好像在哪里看到有人在翻译Christian Thilmany著的”.NET Patterns: Architecture, Design, and Process”这本书,能不能说一下翻译的感觉?

我才开始读从沉默的辣椒(顺便感谢他)处下载来的这本电子书(注:我一般是宁愿花钱读纸书的,只要书确实很好),读到下面这段
“….
XML Web services in .NET and Visual Studio .NET are not a design afterthought like they are in some languages and tools. It typically takes about 4 to 5 times more code to add XML Web services capabilities to a .NET application compared to one written in Java using tools such as JBuilder.
….”

什么?是这电子书有问题还是我的理解本来就有错?

Tim Bray

Tim Bray 是XML 1.0的主要编辑之一,Antarctica公司的创始人和CEO,还是W3C技术架构组的成员。早年曾任滑铁罗大学的新牛津英语字典项目的经理,后来开发过最早的商用搜索引擎。他把计算机应用分为四大类:信息获取(information retrieval),数据库应用(database interaction),内容生成(content creation)以及游戏(games)。在他的blog上,可以找到他写的有关搜索的系列文章,很值得一读

一个很Cool的特性

在C# 2.0中:
public class StringList : System.Collection.Generic.List<String> {}
类似的,我们可以直接创建出符合我们要求的IntList、UserControlList,呵呵。

诺基娅

公司有个亚洲女孩,看上去象是华裔后代,我的不少同事对她极其欣赏。因为她是做无线支持的,人们都叫她“诺基娅”。从背后看,其身姿曼妙。从正面看,好像妆化得重了一点,眉毛大概都是描的。昨天,偶尔迎面遇上,她好像没化妆,淡淡然反而更美。

看多了设计与模式的书,做项目设计时总是思绪万千,在几种比较好的选择间难以取舍,但最后总是选择最直接了当,最容易让人理解的方案。因为到六个月后,无论是自己还是别人维护,有文档或无文档,理解总是最难的一关。