RSS 2.0 Feed
2006-10 Entries
摘要: 可以使用Windows Media Player直接播放以下URL地址:mms://wm.microsoft.com/ms/China/msdn/GRACE_User_Exp.wmv 开心录制于2006年10月14日通州家中...[阅读全文]

posted @ | Feedback (13) |

摘要:翻译了两篇Sidebar Gadget的文章后,决定自己写一个教程,与准备投身于Sidebar Gadget开发的劳苦大众们分享一下经验。也当作自己个人学习Gadget开发的一些总结,使自己可以学习得深入一些。欢迎大家就这一系列文章提出批评斧正。本部分准备介绍一些基础知识。 关于SideBar SideBar是Windows Vista特有的一个显示子系统(曾经宣布为Windows XP以及Windows Server 2003也开发Sidebar,但该项目现已取消),在中文系统中称之为“边栏”。其执行程序,我们可以在以下目录中找到[SystemInstalledDriver:]\program files\Windows Sidebar,此文件夹 结构大体如右图所示,各文件夹以及文件的具体作用如下: Sidebar.exe:此文件即Sidebar.exe的主执行文件,如果你在Windows Vista当中未打开边栏,可以直接执行该文件即打开。 Sbdrop.dll:Sidebar拖抻支持文件; settings.ini: Sidebar设置文件,可以设置默认启动Gadget等特性。 wlstrvc.dll: Weather Gadget(即显示天气的小工具)所依赖的ActiveXControl,显示RSS信息的Gadget所依赖的ActiveX控件是置身在System32目录下msfeeds.dll文件; en-us: 英文相关的资源文件; zh-CN:简体中文相关的资源文件; Gadgets文件夹:该文件夹中包括多个子文件夹,每个子文件夹均是Windows Vista默认自带的Gadgets解压后的形式。 Shared Gadget:存储在此文件夹中的Gadget可以供同一机器上的多用户共同使用。 而用户自行安装的Gadget可以在[SystemInstalledDriver:]\users\[user name]\appdata\local\microsoft\windows sidebar\gadgets\中查找到。 关于Gadget 在中文系统中,Gadget被翻译为“小工具”,微软的Gadget基本上分为三种,即Live Gadget、Sidebar Gadget以及Slideshow Gadget: Live Gadget:如果大家访问http://www.live.com,会发现其页面可以进行自定义,而自定义的小型页面模块,我们称之为Live Gadget; Slideshow Gadget:Windows Vista支持未来的笔记本电脑除了主显示屏外,还可以有一个外置的小型显示屏,类似于双屏手机中外置显示屏,在不开电脑电源的情况下,从这个扩展显示屏上获取自己想要的信息,而实现这个功能的模块称之为Slideshow Gadget; Sidebar Gadget:本教程中所指的Gadget是此种,依赖于Windows Sidebar所执行的Gadget。 另外,这三种Gadget目前的开发环境、执行环境以及开发方式均不统一,不能统用。至于未来规划,开心也不是非常清楚。有知道的可以在此透露一下。 其实Gadget本身非常简单,如果感兴趣,可以访问http://go.microsoft.com/fwlink/?LinkId=55696,并且随意下载一个SideBar Gadget。把其另存在桌面上,比如那个计算器Gadget(Calculator)。其后缀名为.gadget。我们现在把后缀名改为.zip,在Windows XP系统上可以双击打开,就会看到其目录结构。 也就是说,Gadget本身是包含一堆HTML、JavaScript、CSS以及图片文件一个压缩包,其压缩格式可以采用ZIP格式,也可以采用CAB格式。采用CAB格式,可以进行数字签名,参阅我上一篇译文。在这个Gadget中使用Gadget.xml这个文件来描述此Gadget的通用信息,如名称、作者、版本、是否有设置文件、图标等等。此文件可以放置在根目录中,也可以放置在不同语言文件夹中,如en-us或者zh-cn当中。 系统自带的Gadget大部分都使用了一些特别开发的ActiveX控件。我们自己开发的Gadget如果是想使用Microsoft Gadget Gallery(即http://go.microsoft.com/fwlink/?LinkId=55696)方式或者后缀名为.gadget方式分发,那么只能调用系统中已有的ActiveX控件,而不能创建自己的ActiveX控件。如果你想自己制作可执行的安装文件包,那么你就可以为所欲为了(流氓软件???呵呵)。 Javascript可以调用的ActiveX控件也非常多,比如使用Scripting.FileSystemObject访问文件系统,使用Microsoft.XmlDom分析XML文件,使用Microsoft.XMLHTTP调用Web Service等。所以Gadget可以做很多事情。 那么可以做什么事情呢?这就得依赖于我们的头脑不断闪现的灵感火花了。 问答题:博客堂,你认为哪部分可以提供Gadget服务呢?:)...[阅读全文]

posted @ | Feedback (22) |

摘要:译自:http://blogs.msdn.com/sidebar/archive/2006/08/31/733880.aspx 作者:Brian Teutsch,Windows Sidebar PM(译文中含个人演绎) Windows Sidebar作为Widnows Vista中的一个组件,提供了对于“Gadget(小工具)”的运行时支持。Gadget是一种迷你程序,用以向用户呈现信息,提供辅助功能。Sidebar运行Gadget的方式类似于Windows Vista运行可执行代码的方式。Sidebar团队致力于使Windows Vista成为史上更加安全的Windows版本,我们也承认为Gadget提供安全并且可信赖的执行环境。 Sidebar Gadget开发方式 在Windows Vista中提供的Sidebar版本中,我们使用Microsoft HTML引擎来开发Gadget,这包括HTML标签、脚本、图片以及其它相关的特性。Sidebar也提供了丰富的APIs集,使得Gadget中的脚本可以调用Windows中已经安装的ActiveX对象。 Gadget下载 Gadget是使用HTML以及脚本开发完成的,但是这个HTML并非在远程Web服务器上执行。首先,我们需要将Sidebar Gadget从服务器上下载,然后在本地机器上执行。这种过程比较类似于从服务器端下载可执行文件(.exe),然后执行的过程。 Gadget文件本身是一种压缩格式,可以采用的压缩机制包括ZIP方式或者CAB方式。如果使用CAB方式打包,我们为其添加证书,进行数字签名。数字签名工具可以使用Visual Studio 2005中的“Signtool.exe”命令。 只有当用户查看过Gadget提供的相关信息后,Sidebar才开始载入MSHTML控件进行呈现,并且执行脚本代码。 注:以下图片来自于预发行版本的Windows Vista,在未来有可能会有所不同: 图1:带有代码签名的安装对话框 图2:不带有代码签名的安装对话框 由于代码签名需要耗费一定的时间,而且并不普遍,我们并没有强制要求所有的Gadget都必须签名后才可以部署。 HTML 运行时 HTML Gadgets将会遵照Internet Explorer以及域沙盒(Domain sandboxing)的安全设置来执行。不过,因为Gadget类似于其它可执行文件,拥有相似的下载过程以及安装体验。所以HTML运行时给予了Gadget相当的权限来执行,类似于HTML Application(HTA)运行时权限以及本地机器区域的安全配置。 Gadget在其安全配置上,与普通的Web网页有很多不同点。第一点,Gadget可以创建任何已安装的ActiveX对象的实例,因为其被配置为“可以初始化并且脚本访问未被标记为安全的ActiveX”。其次,Gadget也可以访问跨域的数据源,因为只有将不同位置的数据进行相应的集成,Gadget对于开发人员和最终用户才有意义。最后一点特殊的是,在SideBar的HTML页面中禁止下载任何新的ActiveX控件,无论这个ActiveX控件是签名或者未签名的。 User Account Control (UAC) 交互 User Account Control (UAC) 是Windows Vista提供的一个新特性,使用户能够以标准用户权限来运行Windows。如果当前Windows用户是标准用户,那么Sidebar Gadgets也会为标准用户权限来执行,从而避免Gadget做出破坏系统的行为。在UAC审批模式下,即使当前用户是Administrators组中的成员,默认情况下,Gadgets也会为标准用户权限来执行。这样做可以有效阻止Gadget修改系统中受保护的资源。 另外一个我们需要知道的是,虽然其它可执行软件在需要较高权限运行时,会弹出相应的对话框,来要求用户给予完全的Administrator权限。但Sidebar Gadget在此种情况下,不会显示此对话框。不过,通过Gadget来调用的应用程序仍然会显示此对话框,以获得更高权限。 举个例子,如果Gadget试图删掉System32系统目录中的一个文件,虽然此操作会失败,但不会给予最终用户任何提示。失败的原因是由于系统文件无法被标准用户修改。 分级模式交互 IE中的分级模式也会影响SideBar Gadget的执行。IE 7的分级模式可以由父母或者其它监护人模式设置安全浏览以及所执行的一系列策略,比如禁止儿童访问一些成人或者其它非法站点。举例来说,如果分级模式仅允许儿童访问站点A或者B,而Gadget试图与站点C进行通讯,那么将会失败。 Windows Defender 交互 由于Windows Vista中的Windows Defender中的存在,Gadget的下载会更加安全。如果允许,Windows Defender可以在IE下载Gadget时,会自动扫描Gadget包中是否存在恶意代码。这种操作可以有效的保护用户,因为它是在Gadget运行前,甚至安装前就已经进行了。 Internet Explorer 7 保护模式 在Windows Vista中的Internet Explorer 7有一个新的安全特性,即保护模式。保护模式可以有效的阻止不被信任的站点中的恶意软件的侵扰。但保护模式对于Gadget无效,因为Gadget是运行在本地计算机上,并且与本地文件以及API相互交互。 完全信任 Gadget是迷你型的应用程序。虽然每一个单独的Gadget只有单一需求,比如读取文件或者远程机器上的信息,或者仅仅是显示一个按钮,或者其它功能等等。但是各个单独的需求汇集起来,就成为一个巨大的集合。为了更好的集成,所以我们给每一个单独的Gadget都设置为了完全信任模式,即第一次通过Windows Sidebar添加新Gadget对话框,并且信任后,以后执行时不再提示任何对话框。 附加的安全信息 如果您的客户在一个受组策略控制的环境下使用Gadget,可以限制Gadget的使用,以避免以上所提及的境况。Sidebar支持一种称之为共享Gadget文件夹的模式,这个文件夹可以在Program Files文件夹中找到。你可以将Gadget存放在此文件夹下,从而让本机上所有用户均可使用一份代码。你可以设置一个策略阻止用户再安装新的Gadget到他们自己的独享文件夹中。这个策略选项也可以阻止使用任何非共享Gadgets文件夹下的Gadget,而且只能通过某Administrator来更改此项策略。 Windows Sidebar共有以下的组策略选项以供定制: 关闭Windows Sidebar 禁止解压缩或者安装未签名的Gadget 关闭用户安装的Windows Sidebar Gadgets 覆盖“获取更多在线上小工具”链接...[阅读全文]

posted @ | Feedback (11) |

摘要:一年前的某天,右耳垂后面长了一个小疙瘩,一直不以为意。今年开始逐渐变大,到七月份去医院查看时已经将近两分分左右,由于当时业务繁忙并且懒得去医院,所以拖到现在将近三公分时才去医院动了手术。 相信很多朋友都去过医院,也有过很多怨言。的确是这样,先去挂号,告知对方姓名、性别、婚否等相关信息,去门诊再问一次,然后交费化验再来一次,然后再去办医保又是一次,办理住院以及医保信息还要问一次。真是“没有病也被累出病来”。做心电图时,医生说我的诊单不合格,应该填写“多导式心电图”,而非“心电图诊断”,我又得跑回医生处重新修改这个错误。 是医院没有上马IT系统吗?不是。其实我所住的这家医院也上马了相关的系统,并且还有条形码扫描仪等等先进设备,门诊信息以及住院信息都是非常齐备的。但是IT系统只是工具,而非万能药。缺少了完善的业务流程以及人员培训,IT系统只是摆设。 由此想起某年在某省级电信公司开发BOSS系统时的遭遇。拿到需求,已经将近千页的文档。但很简单的几个业务问题,比如办理小灵通的流程等等这种最基础的问题,每级领导给出的答案仍然不一样。很多大型公司在进行IT系统建设时,首先需要请咨询公司进行业务流程整理,从而保证IT系统的有效性。但很可惜,就像各单位在IT采购时比较重硬件轻软件一样,在上马IT系统时,也大都是重系统轻咨询。所以导致IT系统上马时不仅没有助力业务,反而有时候扯后腿。 另外一个感言就是,现在医院真的非常好赚钱。就一个耳垂的肿瘤,我先后拍了心电图、胸透,还要抽四管血化验。手术前先输液,手术后再输液(今天一上午就输了三瓶)。在你询问时,医生的回答感觉也是非常有道理的:第一,住院有一个基础费用,先把基础费用花到了才能动手术;第二,在手术前,要确认身体没有其它疾病,否则术后出现问题由谁承担?开心也不是医生,只好认命。 本来手术定的是周四,但或者是天意吧,昨夜睡眠时,这个小疙瘩竟然自己破了,流出一些液体来,体积也小了一半。到了医院,大夫在没有麻醉的情况下,用刀挑开,然后进行了简单的包扎(颇有刮骨疗毒的感觉)。这下手术也不用做了,明天下午又要开始继续上班了,不过这形象可能就要影响市容了。...[阅读全文]

posted @ | Feedback (15) |

摘要:在Soapbox.msn.com上注册了一个帐号,开心也没有什么表演才能,不过经常讲Web cast,所以可以利用这个东东讲讲开心想讲而没有机会讲的东西,也就是当一次播客了。以前在MSDN Webcast上开了一个《开心三人行》系列,由我、鞠海洋、王晴三人共同来主持,不过由于工作原因,三人很难聚在一起,所以这个系列逐渐消失了。现在开心准备单人行了。 录制于2006年10月12日凌晨录制于青岛海景花园酒店(台湾同胞请注意,在大陆酒店就是饭店的意思) Video: 开心播报 ...[阅读全文]

posted @ | Feedback (16) | Filed Under [ 业界评论 ]

摘要:今天早上在家早餐时,与平常一样,看中央电视台的“马斌读报”栏目,其中有一条新闻是《马来西亚规范语言,滥用语言者将罚款》,马斌评曰:要搁咱这儿,那些跨国公司、IT企业的白领非罚得倾家荡产不可。我与太太看后忍俊不已,心想,如果真实施,微软员工可能真的都会在不长的时间内全都要倾家荡产了。 今年去台湾开会的时候,学了一个新词,就是LOVE,不是“爱”的意思,而是指微软今年即将发布的四款新产品,Live Platform、Office System 2007、Windows Vista以及Exchange 2007。是不是感觉挺标新立异的呀? 其实IT界使用缩略语是见怪不怪的,我相信圈里人都可以在五分钟之内列举出来十个以下的缩略语。而LAMP对于我们搞网站的人员来说,更是如雷贯耳了。所谓的LAMP,就是指Open Source的Linux+Apache+MySql+PHP(请注意,这其中并没有Java,因为截止到目前为止,Sun的Java实现还不是开源的)。我不想讨论LAMP与微软解决方案的是是非非,因为无论我如何说,都会带起一场论战。君不见,无论国内以及国外,只要一谈及此事,都会异常火爆,对发起者、辩论者、旁观者都是耗时耗力之活儿,而且陷入到细节中的,谩骂以及攻讦也会随之而来,实在是天下第一无聊之事也。 我想说的还是缩略词,有LAMP,现在又有WISA。什么是WISA呢?去网络上搜一下(1,2,3),突然发现,我是互联网上提出此定义的第一人。注意定语为“互联网上”,因为在现实中,我老板当然比我早,是他首先写在他Office的白板上的,他的定义为WISA=Windows+IIS+SQL Server+ASP.NET。出于对仗工整,我也不敢有异议。 I LOVE WISA!But WISA is not enough. 对于Web 1.0来说,网站的技术决策人员所关心的无非如下: 使用广度:使用的人越多,则越好招人,越好招人,人力资本越低,又可以省下下大笔来做广告或者其它的事情了。 快速开发:在越短的时间内开发出来产品,对于公司来说也是一个非常好的缩减时间成本的地方,尤其在做C2C(Copy To China)业务的时候,抢占先机非常重要; 维护成本:网站在开发完上线后,其维护成本如何?所选用的技术更新换代时,向前兼容性如何?这些也是网站技术决策人员所关心的。如果“代沟”太大,或者被其主人轻易抛弃,都可能会影响技术选型的决策。 当然,还有性能问题等因素,不过性能问题无论是LAMP还是WISA,大部分都出现在设计阶段。而且性能问题也与带宽、网络拓扑、数据库设计、网络互通等有关系,所以在我这儿就不列为因素了。 以上这些因素,无论WISA还是LAMP,均可胜任,剩下的就看大家的需求了! 除此之外,在Web 2.0时代,我们提出了Web 2.0的三项基本原则,即开放、分享、平台。TechED 2006的课程当中,我也介绍了相对于这些原则所对应的微软技术,即: 开放:Atlas,Expression 分享:RSS,Gadget 平台:CardSpace So,我自己的独一无二的缩略语定义也出来了,在Web 2.0时代,微软的技术方案应该是GRACE,而GRACE就是Gadgets+RSS+Atlas+CardSpace+Expression。 I love WISA and GRACE。 呵呵,政府不会罚我款吧?...[阅读全文]

posted @ | Feedback (13) |

摘要:开心经常在各种活动中担任讲师,有时候会经常碰到一些熟悉的朋友,基本上是逢会必参加。无论在什么地方都可以见到,可能就是俗话说的“会虫”吧,当然,我没有任何对这些朋友的不敬。当然,讲课讲多了之后,我也收到很多大家的反馈,比如在TechED上有人就告诉我,听完课后,对这个技术还是不太了解云云。 我不知道大家是如何看待这个问题的。对于TechED这样的活动,我在加入MS之前,都是抱着交朋识友、朋友聚会以及了解微软未来技术方向去参加的。因为通过60分钟或者75分钟的课程,一个讲师很难把一个技术的方方面面讲清楚。不知道各位是否有这种感觉。所以我认为来TechED听课,应该抱着来感觉微软未来的技术方向,并且借此机会认识一下业界的朋友,毕竟天南海北的朋友一年见次面也不容易。 那么我们需要什么样的培训呢?我个人把所有的培训形式罗列了一下: 1. 大型峰会:微软的TechED,英特尔的IDF均是属于这种情况。各厂商的峰会均是总结厂商的过去的进展,分享该公司未来的发展。通过这种峰会,可以得到厂商Overview层次的技术方向。 2. 深度式培训:类似于我去年做过的TechReady(1, 2,评论)以及其它同事所做的Workshop,均是此种培训,通过此种活动,可以非常专注的就某一专题得到相关的学习,但一般来说,这种培训均是需要收费的。另外,很多的CTEC(微软认证培训中心)或者相应的其它厂商的培训中心也提供类似的培训,但培训效果有些参差不齐,所以需要认真选择。 3. On-site培训:有些公司会投入一些资金来邀请一些讲师到公司来进行讲授。我个人认为这种培训会非常有效果。因为在培训之前,讲师一般会进行课前准备,就实际情况选择内容,并且会认真准备Q&A的内容,从而达到因材施教的效果。 4. 产品推广会:厂商的产品发布大会或者路演活动均属于此类,通过这种培训可以了解某一产品的基本特性。但同样也不适合深度学习。 5. Tech Talk: 有些公司会在每周或者每月组织公司内部的技术人员,进行技术探讨。这种内部交流我个人认为效果会非常好,讨论的问题均是单位内部最显著的问题,但如果没有人认真准备,勇于担当主讲,此类活动容易流于形式,最终不了了之。 应该还有其它的培训形式,欢迎大家补充。所以在选择各种培训活动的时候,大家应该事先了解这种培训的目的,对活动形式、活动内容均需要了解,然后再根据个人的实际情况决定是否参加。...[阅读全文]

posted @ | Feedback (12) | Filed Under [ 业界评论 ]