解惑

解己之惑,解人之惑

作者:cherami (第16页共82页)

王侯将相宁有种乎

今天看了《李开元:秦始皇的后宫之谜与亡国之因》发现可能原来对这句话的理解是错误的,按照那篇文章的说法:
“王侯将相宁有种乎!”的原始意义是哀王孙,同情六国旧贵族悲惨不幸的命运,其正确的解释,应当是被嬴秦一家所残酷摧毁了的各国各姓旧贵族,如今还有其种(后代)可以寻找得到乎?这种意义,才是在原文的语境和当时的历史背景下的原义。
其实就是哀叹那些旧的王侯将相还是否有后代存世,可谓和现在普遍的理解完全是南辕北辙的。

姑且不能这个是否是最合理的解释,但是现代汉语肯定对很多成语或者短语的理解是有问题,也正如那个文章所说,每个朝代的更替都会对历史进行修改,也会根据自己的需要修改某些说法,包括那些所谓的学者,也会根据某种目的曲意修改。

超人情结

刚刚看完金刚狼前传,很喜欢,合我的口味。
看完琢磨了下,相信不少人都会有超人情结,期望一个超级无敌的英雄拯救你,或者自己变成一个超级无敌的人,拯救大家或者奴役大家?
简单的总结了下,古代的超人,基本上是神话类的,例如中国的修仙,北欧神话,希腊神话等等,而现代,借助的无非就是外星人(超人)、变异人(X-Man)和高科技(钢铁侠,蝙蝠侠)。无论是那种类型,看的人都不少。
另外,是否男人有更多的这种情结?因为男人肩负的是拯救/征服的角色?

PS:判断一个人的好坏,大抵可以用赋予他超人的能力后他用来拯救大众还是奴役大众判断吧?

Role的新意义

进入这个新的项目后学习到的一个很重要的概念就是Role了,这个Role和我们平时的用户的Role是不同的,而是Service或者Component或者Instance的Role,怎么讲?其实就是一个东西,具备多种功能,你可以让它同时做那些事情,在高负载的情况下,你可以安装很多个,然后让不同的东西承担单独的功能或者几个功能。
说白了,这个不神秘,就是在系统设计的时候可以让某些功能启用,某些功能不启用,好处是什么呢?你可以针对系统的负载特点安排Cluster的配置,有些组件的负载更重一些,那么就多安装一些机器专门负责那个功能,也就是更加灵活的在各个层面可以实现负载横向扩展或者Cluster。
举个实际的例子:
微软的Exchange大家想必都用过,Exchange的功能也是可以划分Role的,你可以安装很多个Exchange,但是安装的时候选择这个Exchange的Role,可以是专门负责收邮件的,可以专门负责邮件的过滤,可以专门负责客户端访问,可以专门负责Mailbox,等等,想详细了解的朋友可以看看这个E文
当然,这个Role其实有比较正式的名称,就是Server Roles。

取消房子的投资功能

这段时间在看经济学原理,先从微观看起,昨天看到赋税的功能,其中就提到有经济学家倡导土地税,就是把土地和房子的增值部分全额征收掉,因为土地和房子的增值是全社会共同贡献的结果,是社会发展的结果,不应该被个人占有。
这里不谈这个经济原理是否是正确的,或者是否可以,这里简单的憧憬一下:
取消土地和房子的投资功能,手段不限,可以是全额征收溢价部分,或者极大比例(90%+)征收,导致房子买卖失去其投资功能,特别是一次性投资收益功能,那么中国的房价是否应该回归正常呢?当然,房子的投资功能并没有全部取消,因为还可以通过房租,但是如果房子没有买卖的高额溢价,那么还有多少人去做这个长期的投资,特别是在中国这种租售比严重失衡的情况下做这种投资。

Java为什么没有SharePoint

前几天老大想知道什么是SharePoint,我就负责研究这个东西了。刚开始就认为它只不过是MS的一个产品而已,就像Office一样,但是仔细看过以后才知道,SharePoint的目标远不是这样的,SharePoint的目标是Business Buidling Framework,就像很多国内的小公司想做的快速开发框架一样,它提供很多功能,你不用写代码拖拖拽拽的就可以搞一个自己的网站,而且还在一定程度上是定制的,当然,你也可以写代码扩展系统默认的功能。
到目前为止Java业界并没有一款类似的东西,为什么?因为Java是个大的生态环境,百花齐放,某个领域有一个或者几个成功的东西,但是还没有一个完整的解决方案,当然,也有很多人在试图构建一个这样的Building Framework,只是都不够重量级,而MS,就够这个重量级,因为.NET下的那套东东,都是它自己的东东是王者,即使不是最好的,使用的人也差不多是最多的,用它的捆绑策略,也基本上慢慢做成是用得最多的,于是乎,这个诞生于若干年前的东东现在逐渐变得流行,势不可挡。

monopoly city streets

这个应该是现在最火的游戏了。

很难进去,进去之后没有注册功能。

我来告诉你怎么玩吧。

首先搜索街道,最开始一般是搜索城市,例如shanghai,然后双击街道,这个时候就会loading…可以买卖的街道,请注意,这个过程很缓慢,可能得几分钟,然后会出来一个可以买卖的街道列表,然后你从列表里面选择一个比较便宜的街道(不要选择超过3百万的街道),填入一个比那个上面显示的价格高的金额然后make an offer,然后注册的页面就出来了,填完后用3百万扣除你刚才输入的金额后就是你剩下的金额了。

你可以继续买其他的街道,但是不是马上成交的,所以钱会预先扣除。如果那个路是别人拥有的,那么需要等待拥有者决定卖给谁,如果拥有者不做决定,那么7天后自动成交(还不清楚是否是最高价),其他的没有成交的钱才会退还给你。
所以开始的时候谨慎出价,最好先买些偏僻的路?

完整的游戏规则请看游戏的左下角的“Gaming rule”。

美金不是那么好花的

在国外的域名服务商那里买了几个域名,需要用美元,当时用的是交行的信用卡,上个月到期以后也没有注意到底有没有还成功,这次收到账单发现美金账单有利息和滞纳金,所以上次没有自动扣款。打电话去问,说要开通什么美元帐号,然后要开通自动购汇,还要开通美元自动还款。上周去弄了下,把家里原来留的几十个美元存了进去,然后别人还好心的提示过两天最好打电话确认下。今天有空,打电话确认了下,发现说法不一样,这次打的是借记卡的电话,他们建议我再和信用卡中心核实下,结果是这样的:
信用卡开通自动购汇以后,在账单出来的那天就会从自动关联的借记卡中扣钱自动购汇,然后在还款日扣款。如果出账单的时候还没有开通自动购汇,那么我需要存一笔美元到我的信用卡的美元帐号里面。
还得跑趟银行。

MAPI32的Impersonate的问题

这个其实是 用代码创建MAPI的Profile的后续问题,因为我们把这个东西封装在Web Service里面供远程的其他程序调用,而这个Web Service的运行身份很重要,结合到底是谁?讲的,我们期望是可以通过Impersonate创建在我们指定的用户下面,但是MAPI32是根据当前的Process的用户身份,也就是Application pool的运行用户来读取注册表创建Profile的,所以Impersonate基本上没有用,有一些方法:http://blogs.msdn.com/stephen_griffin/archive/2005/04/13/407925.aspx ,但是基本上对我们不适用。

用代码创建MAPI的Profile

这个问题曾经折磨了我好几天,最终放弃了。
最后在其他同事的不懈努力下最终解决:

extern "C" __declspec(dllexport) bool CreateProfileWithIProfAdmin( LPTSTR szProfile,LPTSTR szMailbox,LPTSTR szServer)
{
    HRESULT         hr = S_OK;            // Result from MAPI calls.
    LPPROFADMIN     lpProfAdmin = NULL;     // Profile Admin object.
    LPSERVICEADMIN  lpSvcAdmin = NULL;      // Service Admin object.
    LPMAPITABLE     lpMsgSvcTable = NULL;   // Table to hold services.
    LPSRowSet       lpSvcRows = NULL;       // Rowset to hold results of table query.
    SPropValue      rgval[2];               // Property structure to hold values we want to set.
    SRestriction    sres;                   // Restriction structure.
    SPropValue      SvcProps;               // Property structure for restriction.

    // This indicates columns we want returned from HrQueryAllRows.
    enum {iSvcName, iSvcUID, cptaSvc};
    SizedSPropTagArray(cptaSvc,sptCols) = { cptaSvc, PR_SERVICE_NAME, PR_SERVICE_UID };

阅读全文

到底是谁?

Windows的IIS应用的身份真的是太复杂了一点。
首先是IIS的Service是有运行用户的
然后是应用使用的Application Pool也有运行用户
然后是应用也可以指定Impersonate的用户
而如果应用没有使用Windows的用户,那么还可能有另外一个用户。

以前没有搞过Windows的Web的开发,不太清楚这个里面的最佳实践。

目前的感觉是:
IIS的身份一般不去动,因为是大家共享的
如果需要比较强的用户身份,而且比较固定,建议修改Application Pool的运行身份,另外建议创建自己的Application Pool,如果应用只是简单的需要某种身份访问系统中的资源,例如读写文件、服务数据库,那么建议简单的修改web.config,使用Impersonate指定一个用户。

更早的文章 更新的文章

© 2025 解惑

本主题由Anders Noren提供向上 ↑