2006年05月23日

这一年多来,工作非常繁忙,每天上班被事情赶着走,经常加班,下班后仍然是一脑子事情,没有自己思考的时间,直到最近才得到些缓解。


我不喜欢这样的工作,这段人生只被一件事情占据太无趣了。为人打工是如此,不知道那些自己创业的人是什么感受。这样的工作让我找到一些做老板的感觉,也许真的自己做老板的时候,全部身心都投入到工作中去会觉得更值得。


老板没有退路,老板会非常投入的工作,也会希望员工与自己一样投入,为做到这一点,过去靠思想政治工作,现在靠企业文化。但从人的本性来说,这样的生活方式是不理想的。


Google可以允许员工拿出20%的工作时间来做自己感兴趣的事,顺应人的本性需要。其实对于Knowledge Worker,工作时间与工作绩效并不成正比。高技术公司靠的是人的脑力,而高技术人才追求的是个人价值的实现,技术方面的成就,Google的这种制度将两者协调的联系在一起。知识工作者不希望自己所有的工作时间在重复的做一件事情,他们更希望能有所创新,有所突破,不断进入新的领域,更希望将自己的长处发挥的淋漓尽致,这实际上也是企业对员工的期望。


马克思设想在共产主义社会,劳动成为人的第一需要,以前看来有点可笑,感觉和共产主义一样是遥远的事情。现在看来,这个论断的合理性在解决了温饱问题的人群中正在显现。人生来面临死亡,在基本生存需要得到满足的情况下,没有追求,没有自己喜欢做的事情称不上幸福。


当然这种劳动是劳动者自身需要的劳动,而不是被迫从事的劳动。当科技、社会进步到一定阶段,人类可以从被迫进行的劳动中解放出来,而是主动自发地去从事自己需要的工作,这应该是全人类的追求。


从某种角度说,Google公司部分进入了共产主义社会。

2006年05月06日

原来运行正常的软件今天出了问题,通过查看调试信息发现,最里层的错误信息是“加载类型库/DLL 时出错”,上网搜了一遍解决办法,未果,只能自己动手了。

这个软件出错的时候是使用System.Web.Mail进行邮件发送,而这个功能.Net Framework是调用CDO的COM控件实现的,根据出错信息可以猜到,可能是在加载包含此COM控件的文件时出了问题。那么是哪个文件呢?

使用.Net Reflector可以在System.Web.Mail命名空间中找到如下代码:

static CdoSysHelper()
{
      SmtpMail.CdoSysHelper._helper = new SmtpMail.LateBoundAccessHelper("CDO.Message");
}
CDO.Message就是COM控件的ProgID,可以在注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CDO.Message位置找到。
再通过CLSID找到包含控件的文件位置,在出错的机器上是
出错电脑的文件指向:
C:\Program Files\Common Files\Microsoft Shared\CDO\cdoex.dll,
而正常的电脑的文件指向:
C:\windows\system32\cdosys.dll
于是使用RegSvr32对原文件进行解除注册,并对正确文件进行注册后,一切恢复正常,命令如下:
RegSvr32 -u C:\Program Files\Common Files\Microsoft Shared\CDO\cdoex.dll
RegSvr32 C:\windows\system32\cdosys.dll