两件不爽的事

在 Teched 2005 上,孙展波等人把 Microsoft Max 演示的天花乱坠的,很是令人期朌,今日得闲,花了不少时间卸掉以前的 Avalon,下载 Max + Avalon ,安装的时候报错,说不支持本机器 OS 的语言版本,搞得大家很生气,Microsoft 网站上就有很多人发表不满:“这个世界不是英语的世界”等,后来找到网上流传的一种有效的另类安装方法:

1. 安装时报错界面出现后,将安装程序在 C 盘下生成的一个值为 GUID 的临时目录复制、设为只读 或直接结束安装程序的进程,就可以避免安装程序退出后删除临时目录

2.用 Notepad 打开 <tempdir>\update\update.inf ,删除第三行的“%LangTypeValue%”字样,Ctrl + S 保存,然后 Ctrl + Z ,等上述字样重新显示后,先不要保存

3.运行同目录下的 update.exe ,同时快速切换到 Notepad 窗口,Ctrl + S 保存,这样就可以欺骗安装程序,使之继续 (如果还是出错,说明你的动作不够快,或顺序有问题,多试试),这样就可以顺利安装了

4.安装完,并不表示能正常使用,我就是这样,系统未知错误,说希望在下个版本解决,不爽 :(( ,但从网上看到,也有些人在非英语 OS 上成功安装运行,试试运气吧

Teched 2005 上的所有演示稿都能下载了,地址是 http://www.teched.com.cn/2005/download/default.htm ,但是让人不爽的是,不能批量下载,只能一个一个点击下载,简直是体力活,一点儿技术含量都没有。

本来是一件挺美好的事,非要把它搞成这么让人不爽 ……

警惕某些服务器厂商在 TPCC 性能指标上搞猫腻

先说我了解的一个真实案例:某单位要建立一个系统,设计容量是 2008 年要达到 1500 万客户的规模,在花费巨资(将近 100 M $)建设起此系统后,运行只有几个月,客户量也只达到几十万,厂商就说此系统容量不够,要花数 M $ 要扩容,并声称不是拍脑袋是,按 TPCC 计算的结果 …

以前只大致了解 TPCC 指标的一些情况,平常也就看看 By Performace 和 By Price/Performace 的 Top 10 列表,了解一下各厂商的实力和产品的情况,这次对 TPCC 进行了一下深入了解,发现了一些容易被厂商搞猫腻的地方。

TPCC 简单的来说,就是事务处理性能委员会 TPC 组织针对联机数据库应用系统(OLTP)制定的一个综合性能考评指标,它模拟了一个批发 商的货物管理环境,有标准的数据库结构(Schema),可以很容易的扩展,在此系统中,主要有五类交易:

1. 新订单(New-Order)  
2. 支付(Payment )  43%(最小比例)
3. 订单查询(Order-Status)  4%(最小比例)
4. 交付(Delivery)  4%(最小比例)
5. 库存查询(Stock-Level)  4%(最小比例)

因为 TPCC 指标值主要是衡量“新订单”交易的数量,所以厂商都会趋向于增加新订单交易的数量,这样并不满足实际的应用场景,所以 TPCC 的规范中指定了后四种交易数量的最小比例,这样意味着 “新订单” 的数量最多只能占到45%(这个 45% 不知出于什么原因,在很多 TPCC 的指标介绍中并没有提及)。

这就说明了:如果一台机器有 1000 tpm (Transactions per Minute),那么它实际上处理的交易(请求)为 1000/45% = 2222 ,而实际上大多数厂商在面对用户估算应用系统需要多少个 TPCC 的服务器的时候,是计算所有交易量的,这样带来的评估结果是用户至少买比实际需要大一倍性能容量的机器,获得利益的谁呢?当然是服务器厂商,越高 TPCC 值的机器,价格越高,性价比也一般要偏小。

此外,服务器厂商还容易在以下方面愚弄客户:

1、交易复杂度(用户的一个交易约等于多少个 TPCC 的标准交易),某国际著名的服务器厂商建议此值取 10 – 20 ,这个值也忒大了点, 在 TPCC 的场景,交易也不是很简单的,和实际的应用交易差别并不是很大。

2、按一些峰值指标来计算性能,实际上,这些峰值只是在极少数情况下出现,所以在计算时,应乘以 80% 的系数。

3、预留容量,很多厂商建议预留容量,甚至达到一半,这有点过份,在实际容量要求增高的时候,可以通过服务器的横向扩展来纵向扩展来满足应用要求,何必为未来五年的要求,要在眼下一下子要做全部的硬件投资呢? 何况硬件的价格在不断下降呢。

现在回头来看刚开始的案例,除了说他们愚弄客户,贪得无厌之外,还有什么可说的呢?

BTW:在了解 TPCC 的同时,我整理了一个 TPCC 介绍的 ppt ,其中包含了一个自己总结的估算应用系统所需 TPCC 的公式,这里无法增加附件,有意者可以留言索取(2005.12.31 前)。

安全删除文件

彻底地删除废、旧或更换硬盘上的文件的重要性大家都很了解,谁让 FinalData 等这样的数据恢复工具功能太强呢,想当年,一哥们硬盘坏了,让我帮着找文件,结果找出 8 万张图片,穿衣服的和不穿衣服的各占一半,打开目录需要 10 分钟才能把文件列表显示出来 …

网上也有不少工具可以实现,本来想自己写个小程序实现的,方法挺简单,就是参照美国国防部的文件删除标准 DOD 5220.22-M,简化一下,在文件内容中先全部写入0,再写入1,然后再删除即可,可看了一个 VBScript 中的 FileSystemObject 和 .NET 的 System.IO 中的若干对象,似乎都没找到能简单实现的此功能的方法,笨。

在 Google 上 Search 到这个免费工具:Sysinternals SDelete,免费还提供源代码,实现方法是用磁盘整理的 API ,强!还考虑了压缩文件和 EFS 的情况。C/C++ 不熟,源代码也没看出 123 来,但使用挺简单。

下载后存到 Windows 目录中,再用如下注册表项加到文件和文件夹的右键菜单中,就可以直接在资源管理器中彻底删除文件和销毁罪证了,不过操作要小心哦,这删了可真就没办法找回来了。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Securely Delete][HKEY_CLASSES_ROOT\*\shell\Securely Delete\command]
@=”C:\\Windows\\System32\\SDelete.exe -p 1 -q \”%1\””

[HKEY_CLASSES_ROOT\Folder\shell\Securely Delete][HKEY_CLASSES_ROOT\Folder\shell\Securely Delete\Command]
@=”C:\\Windows\\System32\\SDelete.exe -p 1 -s -q \”%1\””

想删就删,就删个痛快

招聘i-DE(广州及北京各一名)

开心于2003年11月份加入微软(中国)公司,担任企业解决方案部的技术专家,先后主要负责BizTalk Server、SharePoint Server以及IW解决方案等工作。在工作将近一年之后,即2004年10月1日,正式转到开发合作部担任开发技术经理,负责.NET的推广工作,同时也由v-的身份转为FTE。

很多人看到开心的名片中的英文的职务,都非常疑惑不解:Developer Evangelist(DE)。其实简单而言,开心主要要做的是传.NET之道的工作。在今年,我们把工作重点放在了软件园,开心将会负责华南区,由于工作需要,准备在北京及广州各招聘一位i-DE。(至于什么是i-, v-,在这儿就不做详细解释了),如果感兴趣,可以与开心(joycode # gmail.com)联系。

不希望在这儿再写什么工作描述,因为现在招聘广告中的工作要求特别华而不实,什么都是要求“精通”。造成了现在的应聘人员的简历当中也是华而不实。刚学习三个月,就敢称自己“精通”。昨天收到一家企业的CEO要求开心代为招聘的要求:1.精通XXXX技术;2.熟悉YYYY技术;3.精通ZZZZ技术。并且注明,符合1者可以作项目经理,符合1+2者可以作技术总监,符合1+2+3者则可以作公司副总。真的非常不明白,一个公司的副总以及总监难道要以精通某门具体的编程技术为代价的吗?

只要您够创意,乐于学习,有团队精神,熟悉.NET,口才不错就可以应聘。其中广州的职位将直接report给我,而在北京的职位将会report给我的老板。

Sorry,自己说过的话没有算数,要求别人不再发招聘广告,自己还是发了。

另外,在11月初我们即将面向全国的.NET技术俱乐部的成员(在职人员,不含学生)开展“超级英雄”编程大赛,3-5人组成开发团队,使用.NET 2.0构建一个俱乐部的门户,开发周期为三个月,奖品将会包括XBox 360及其它神秘大奖(目前还在考虑Media Center PC, Pocket PC等奖项,有人曾经建议发轿车,但考虑到并不是所有人都有驾照,暂时否了)。请大家尽快与各地的俱乐部建立起联系,并且在11月份关注各地的网络媒体以及平面媒体广告。另外,同期我们也会进行征文大赛,目前题目正在制定当中。

同时正如大家所知道的那样,我们即将在11月7日在美国向全球发布Visual Studio 2005英文版,准备邀请一位热心于俱乐部活动的成员前往美国亲身体验美国发布大会的实况,目前尚在协商之中。

贴子以”现状”提供且没有任何担保也没有授予任何权利。

接口 vs 合约

10.1 放假一周到现在,也没干啥事,净看中央2台的“梦想中国”了,由于观众的短信参与,让节目增加了不少看点,电视台不但省了请嘉宾和评委的开支,反倒在 1元/条 的短信上收入上千万 RMB ,最后结果还让大家无话可说,瞧人家的这生意做的。

言归正传,从 TechED 归来,开始学习那些没能听到的课程的讲义,其中有一个 Session“协调业务与 IT 业务架构设计”,很多内容虽然还没有完全理解,但其中屡次提到一个词“合约”,于是仔细思考了一下这个词所体现的涵义,写出一些对它的理解。

“合约”(Contract)是面向服务架构(SOA)中提的较多的一个词,也是其中的一个关键要素,其实际意义相当于原来的我们常说的系统间调用的接口(不是语言规范中的 Interface,如 IUnknown 等 :P)约定或规范,但为什么旧瓶装新酒呢?

接口可能更多的时候是从技术的角度来反映这种约定的,它大多是偶合较紧的,象 COM 、IIOP 、CORBA 都可以称之为接口,它已经细致到技术实现层次了,在这些接口之间的系统大多是基本数据包的同步调用。

合约更多的是从业务的角度来描述约定,合约更接近于商业情境中的合同,更便于从业务的角度理解和反应问题,也更多地体现了以提供服务为中心的业务模型,象 WSDL 就是合约,它大多是基于消息的(如包含商业信息的 XML 文档),也常常是跨越组织边界的异步调用,自描述,且偶合程度较轻,这更适合于未来基于互联网的业务系统架构。要想让人对你提供的服务一目了然,合约显然比接口更易于让人理解和使用。

目前的理解只有这些,希望以后能有更准确的理解和想法。

去掉/禁止系统菜单里的MOVE的方法

针对论坛上的问题“如何禁止在标题栏上点右键”,有如下方法:

1。用API去掉Move,

[DllImport(“user32.dll”,EntryPoint=”GetSystemMenu”)]
extern static System.IntPtr GetSystemMenu(System.IntPtr hWnd , System.IntPtr
bRevert);

[DllImport(“user32.dll”,EntryPoint=”RemoveMenu”)]
extern static int RemoveMenu (IntPtr hMenu, int nPos, int flags);

static int MF_BYPOSITION = 0x400;
static int MF_REMOVE = 0x1000;

System.IntPtr hdl= GetSystemMenu(this.Handle,System.IntPtr.Zero);
int nflag =MF_BYPOSITION | MF_REMOVE;
int npos =1;
RemoveMenu(hdl,npos,nflag);

2。去掉系统菜单(不推荐)

private const int WS_SYSMENU = 0x00080000;

protected override CreateParams CreateParams
  {
   get
   {
    CreateParams cp =  base.CreateParams;
    cp.Style = cp.Style & ~WS_SYSMENU;
    return cp;
   }
}

示范代码如下

使用自定义集合编辑器以避免生成对象变量

看到这个问题,怎样让自定义控件的子控件不会自动生成变量定义? 研究了一下Table对象,发现,你需要使用自定义的集合编辑器,示范编码如下

标准的魅力

假日的中关村 people mountain people sea,在海龙发现一个很有意思的小店,全是卖各种转接设备的,其中以 USB 居多,几乎能想到的接口,都有相应的小设备来转换:

  • 网卡、无线网卡
  • 声卡
  • 红外设备
  • 蓝牙设备
  • 串口
  • IDE、SATA
  • PS/2
  • 游戏手柄、跳舞毯
  • USB Hub
  • 摄像头
  • 各种读卡器(CF、MMC、SD等)

除此之外,还有DC、DV、PDA、手机也大多是 USB 接口来和电脑交换数据的,当然还有各种各样新奇的 USB 设备:小灯、电风扇、电热杯、手机充电器等,好玩,现在已有很多国产电视支持接移动硬盘播放流媒体的功能。

中关村的 优盘/MP3 市场就象大白菜一样随处可见,而且买移动硬盘的人也很多,这都得益 USB 标准的简单、高速、方便、可热插拔的特性。现在如果电脑上没有 USB 接口,大家是无论如何不能接受的,正如 USB 官方网站所称的一样:It has the power to connect you with a whole new world of PC experiences.

USB 设备在 PKI 应用上也大有可为,在国内,各银行的网上银行的数字证书大多以 USB 为介质存储,而且形象地称之为 USB Key 或 USB 锁,很家大家的欢迎,而智能卡(Smart Card)却似乎不太被普通用户所认可,而且需要额外的读卡设备。

USB 好象最早是 Intel 组织几个厂商制订的,然后贡献给了业界,所以使用 USB 接口无需专利,所以目前一些争取“闪存盘”蝇头专利的厂商甚是无聊。USB 下一步的发展方向是无线 USB ,即以后的 USB 设备都可以不用线缆了,这是不是对目前的红外、蓝牙等外设通讯方式是很大的冲击?当然了,USB 2.0 的 480M 速度也并不是非常高,对一些高速存储设备来说,以后仍可能需要升级。