Tidbits

上次提到棋谱分析器mvm想要一个音乐推荐器。相比一下,两者都需要一个庞大的数据库,一大堆meta data(元数据?),以及这些meta data间的联系。有区别的是,棋谱相对小些,而且可以通过分析棋谱来得出这些meta data,音乐就难了,可以通过分析波形来得出这些东西么?

说到Intelligent Search,[via Tim Bray] 具有鲜明观点的IT业界著名writer Robert X.Cringely提到一种与Google大不相同的Search技术,也许能让搜寻更准确。拥有该技术的Meaning Master Technologies 公司(公司的口号: Search with the Power of Meaning) 的CEO Kathleen Dahlgren说,

“We model the way people interpret the meanings of a word — through context. We search on meaning by using grammar and structure and semantics. Every word has associated with it a set of beliefs.”

  1. [via Christian Nagel] Tim Sneath的《What’s New in ADO.NET 2.0》 说,ADO.NET 2.0对下列这些用户常见的要求都会满足

    –How do I get ADO.NET to make multiple updates in a single batched operation?
    –How do I implement a data tier which is provider agnostic without resorting to OLE DB?
    –How do I convert a DataReader into a DataSet?
    –How can I optimise DataSet serialisation?
    –How can I use two DataReader objects simultaneously? (一个论坛上常见的问题)

这里还有一个ADO.NET 组项目经理Pablo Castro的MSDN TV演示,或者直接下载

  1. [via Roy Osherove] Notepad2? (NOTEPAD is my favorite ),其功能包括:
    • Customizable syntax highlighting:
       • HTML, XML, CSS, JavaScript, VBScript, ASP, PHP, CSS, Perl/CGI
       • C/C++, C#, Java, VB, Pascal, Assembler, SQL, Python, NSIS
       • INI, REG, INF, BAT, DIFF
    • Drag & drop text editing inside and outside Notepad2
    • Basic regular expression search and replace
    • Useful word, line and block editing shortcuts
    • Rectangular selection (Alt+Mouse)
    • Brace matching, auto indent, long line marker, zoom functions
    • Support for Unicode, UTF-8, Unix and Mac text files
    • Open shell links
    • Mostly adjustable

  2. [via Julia Lerman] 经常看见有人埋怨VB.NET的Code Sample少,可以去Visual Basic Developer Center看看,那里还有一堆录像 Visual Basic At The Movies

  3. 这里有对 Julia Lerman 的采访: 《.NET Rock Star: Julia Lerman 》。 Julia Lerman是MVP,也是INETA负责人之一。采访中她谈到了对MVP的看法,

“….I think MVPs are part of a group of people who, just for the love of the technology, cannot help themselves when it comes to lending a hand with others; they love to share information. Such people have no expectations of anything in return – just the pleasure they derive from helping. So many people fit into this category! That’s created some difficulties for Microsoft, as they attempt to identify these people and give them the MVP award. The MVP award is thanks for what you have done in the past year, and is granted for only one year at a time…”

SharePoint Portal Server 2003的资料下载

下载地址: http://blog.joycode.com/sps.zip

说明:

  • 本压缩包包括一个Word文档以及一个Web Part的Package。
  • Word文档是讲述如何向外网发布SPS站点的内容,本文档不具备任何官方性质,即“以‘现状’提供且没有任何担保也没有授予任何权利。”。
  • Web Part Package是本人的试验作品,十分简陋。使用stsadm -o addwppack -filename [PathOfPackage]进行安装即可,如果使用了-globalinstall选项,则图片文件可能无法显示,需要手动修改;
  • 打包时可能写错了一个地方,如果显示“未安全注册”错误信息,请手动修改web.config中的SafeControl项,将“Microsoft.PRCTS.WebParts.DocLib”修改为“Microsoft.PRCTS.WebParts.ADManager”;
  • 该dll中共包含多个webpart,但有几个尚未完成,或者不易部署,所以只给了一个dwp文件。

凡发信或者留言索取者还请自已下载,实在没有时间一一回信,十分感谢。

InfoPath,你不需要吗?

Microsoft Office以及Windows应该是微软的两个最大的盈利产品,所以它们的一举一动,最能牵扯广大最终用户的心。

Office System 2003的推出,让我们感受到其受为一个System的强大协作功能,但相信很多用户,对于Office 2003之外的InfoPath、OneNet等组件还不太了解。我在这儿想先讲讲啥是InfoPath。开心很难使用官方语言去为一个产品下定义,所以还是想到哪说到哪吧。

在几个PoC里面,简单的应用了InfoPath。最简单的,如果你开发了一个Web Service,在你不愿意为其编写ASP.NET的UI的时候,使用InfoPath是最佳选择,其操作就那么几步:

  1. 选择一个Web Service作为提交数据的数据源;
  2. 将数据列表中的Schema拖到表单设计器上;
  3. 再加一个Button按钮,就可以提交了,如果想美化一下,还有多种配色方案可供选择。

一切大功告成,就这么简单。做为一个表单设计工具来讲,InfoPath简单超强!!!有了它,你公司的部门秘书MM甚至不用学习任何编程,就可以做出一个像模像样的报销表单或者会议记录表单出来,供大家填写,甚至直接入库。所需要的就是拖拉而已。当然,再花哨一些的,就需要使用JavaScript编程了。

对于我来说,InfoPath让我感觉最不爽的有两点:

  • 不支持.NET 语言编程,作为一个.NET时代出生的产品,不支持这.NET简单太不可思议了,竟然还使用老套的JS以及老大的VBS;
  • 做出来的表单不能发布到Web上,再往前一步,如果像FrontPage一样,直接就设计出来生成ASP.NET网页,那不是超爽?那样,我们为什么还使用VS.NET来设计ASP.NET表单呢?

第一条不爽,估计下一版本就会有所改善。第二条不爽,估计不会有所改善了,至少MS官方不会提供类似的产品,因为这是Business,是By Design。

但官方不会,非官方就不会了吗?类似于.NET的跨平台,虽然MS没有提供官方实现,但Mono实现了呀。InfoPath也是同样的,有非官方提供的InfoView(http://infoview.uniqueworld.net/)。

可惜呀可惜,这个InfoView不像Mono那么慷慨,它不是免费的,其价格竟然是$12,000,而且还竟然是per CPU的。

世上无难事,只要肯登攀,老外能赚这钱,我们有五千年文明的老中们就不能赚这笔钱了吗?下载InfoPath的SDK,翻翻里面的内容,嘿嘿,还真有咱们需要的,那就是Downlevel工具,这是一个以三种外貌出现的工具,分别是cmd形式,JS形式以及xls形式。它可以将您的InfoPath表单给降格成HTML,为什么说是降格呢?因为在生成HTML后,所有的文本框都不再能填写呢悲伤的脸,看来此路不通呀。

我们再来分析一下InfoPath的文件内容吧,InfoPath表单设计完后,其后缀名是一个XSN文件,其实如果你再深究一步,这是一个cab文件,你可以从InfoPath的文件菜单中选择“提取表单文件”将里面的文件全部提取出来,里面会有一个XML以及一个XSL(根据你定义的视图而定),XML是数据Schema,而XSL则是表现,主要是配色方案。此XSL其实也是Downlevel的,但如果转换一下思路,再用另外一个XSL,将里面的<span>转换为<asp:TextBox>也不是很难吧?再从js文件里面读取出来相应的验证,做一个InfoServer,相信几个人用半年时间也可以开发出来了笑脸。到时候,大把的钱不是到手了吗?

可惜呀,我没有时间去做这个研究及开发,哪位感兴趣,赶快动手做起来,成功后,我就收取一点提成就是了,$100 per CPU,便宜吧?笑脸

Microsoft SharePoint Portal Server做外网门户

SPS真的是一个非常好非常好的东西,不是吗?我相信N多人跟我一个想法。里面的很多概念都给微软的其它产品很多启发。比如Web Part的概念,就在Whidbey里面有了体现,当然,Whidbey更进一步,至少比SPS的Web Part有了可视化设计界面。在我看到的SPS Web Part Wish里面,大家把“提供可视化Web Part的设计工具”放在了第一位,我想在SPS 2004的时候,这个愿望得借助Whidbey来实现了。在目前,你只能通过一些“歪门邪道”来借力Web User Control来做这个工作,这方面的详细资料可以参看Kaneboy的精彩连载,或者我提供的这个PPT

另外,FrontPage其实是我一直不看好的工具,但自从开始做SPS的PoC(很多人问我啥是PoC,其实就是Proof Of Concept,说白了,就是Demo)之后,FrontPage就成了我的必备利器,因为通过它,可以非常方便的定制SPS的界面细节。前段时间,使用Frontpage并且配合CSS的功底,在不到一天的功夫,我们将SPS进行移头换面,将某政府网站移植成了SPS界面,如果不事先做心理准备,估计很难看出来这是SPS做的网站。

政府网站,当然不能只是内网办公这么简单了,其中遇到的最大问题,就是如何在允许匿名访问的情况下,仍然能够对SPS进行管理。

大家知道,SPS 2003是基于AD的,必须在AD环境下进行安装。它的用户身份验证等功能全部来自于AD。在安装SPS后,默认会把Portal所在Virtual Server设置为不允许“匿名访问”,所有人员都需要有一个登录过程。如果你启用了SPS的匿名功能,那么更不幸的事情发生了:即使你是域管理员,你会发现你的身份自动Downlevel成了匿名用户,根本不再具备管理权限,这可如何是好???

嗯,让我们再看看一个活生生的在外网的SPS网站吧:靠近我(http://www.run2me.com),这是刘润大哥做的SPS网站,同样的,上面也都是MS的员工。从第一天看到它开始,我就一直在疑惑,它是如何在启用匿名后,仍然可以对其进行管理的?而且很显然,每个人的身份还都不一样。

恰巧这次PoC的时候,同事正好有刘润大哥的电话,于是我们就用电话向刘润大哥请教了一下,在得知其机理后,才发现,一切都是那么简单:IIS中两个Virtual Server(一个匿名,一个非匿名),一个SPS。在SPS当中设置两个代理访问Url,即可以起到此效果,一切得来都是不费功夫。

虽然说起来简单,但设置起来还是需要一定技巧的,因为SPS过于庞杂,想要玩转,也需要一份功夫,如果您在做SPS开发,并且对这种做法感兴趣,可以联系我,我会将具体资料文档发送给您。

另外,很多公司在内网部署了SPS,但是访问者的机器都没有加入到AD中,所以更改密码也成了问题,我恰巧也做了一个显示登录者信息并且能够更改登录者密码的Web Part,有需要者也可以与我联系,Free。

BTW:仔细看看下面的留言,不要再留您的邮件了,您应该知道在哪儿找到下载了。唉:'(

 

谈谈工作流引擎及面向服务编程

相信很多人对于BizTalk Server 2004(简称BTS)都有一种误解,认为这是微软出品的工作流引擎。包括我在内,从没有进入MS以来,一直在围绕着BizTalk Server 2004做开发,而加入后,所做的大部分PoC都是基于BizTalk Server 2004的。当然,我做的都是一些外围开发,而不是一些核心性的BizTalk开发。

所谓的外围开发,就是为工作流做一些UI界面,以便驱动整个工作流能够进行下去。做得久了,经常会有一些疑问,我相信大部分做过BizTalk Server开发的人员都会遇到类似的疑问,因为在我与Partner的研发人员闲聊时,也遇到类似的困惑,那就是为什么有了BizTalk Server 2004这么好的工具,我们做工作流开发还这么累呢??很多时候,为了完成一个简单的公文流转功能,我们用ASP.NET可能几行代码就搞定了,但加上了BizTalk Server 2004后,却发现工作量成倍的增加。

经过这一个月以来,与同事探讨,终于找到了一个原因。因为我们错了,BizTalk Server不是微软的工作流引擎。这话似乎有一点惊世骇俗,但我相信,我们的观点没有错误。

博客堂前段时间一直在探讨SOA(面向服务编程),其实在我看来,BizTalk Server 2004正是为了SOA而做准备的,它是为了整合各个System的Service,而建立的自动流程功能,同时,由于各个System的Service所传递的消息的Schema的不统一,所以BTS里面提供了Mapping的功能。在BizTalk Server 2004的文档中,其功能就列了两点:(1)EAI,企业应用整合;(2)B2B的消息传送。

这种EAI的Service整合,在流程运行时,没有人为因素的干扰,没有UI的驱动,非常适合BTS这种无角色流程引擎进行驱动(BizTalk Server还是有角色的,不过非常淡化)。而类似于OA这种公文工作流的引擎,则BTS根本不适合。

前段时间,非常有幸看到了ADOBE Workflow Server的介绍(本来也想去看看点击科技王志东老大的工作流系统,可是无缘),对此我更有感悟。ADOBE的这套东西,才是真正基于公文工作流的,我们可以比较它的流程图与BTS流程图的异同。BTS的流程图更像我们的软件逻辑图,在这个图中,你很难一眼就从中找到哪个点应该是一个UI,这个UI上应该有哪些单元。但ADOBE的流程图则不一样,它每个节点就是一个UI,在这个节点旁边可以罗列一些选项,比如“同意”、“不同意”、“退回秘书”之类的,然后从这些选项到它们应该到的下一个节点间连一点线。非常清晰的就把这个工作流的UI都给清晰化了。再配合ADOBE Form Server以及Form Designer,则能够很简单的做出来一个公文工作流系统。

且慢,难道微软真的没有工作流软件吗?非也非也。加入微软之前,也很有幸接触到了Teamplate的工作流产品,这是一个微软的全球合作伙伴,它的TeamPlate产品基本上把MS的所有Server都包含进来了,比如BizTalk Server 2004、SharePoint Portal Server 2003、Exchange Server 2003,那么这个工作流产品使用了BizTalk Server 2004的什么特性呢?原来使用的是HWS(工作流服务,Human Workflow Service)。

HWS,翻开BTS的随机文档,发现关于HWS的文档真的是非常珍贵,打印出来估计不到十页纸(估计其中大部分还是HWS的UI方面的,介绍哪个按钮做什么的)。估计没有人能够看得明白,但是再去MSDN Online上找一下,好多了,因为我们发现了BTS的SDK,在Sample里面还是一些料的,不过,我估计再没有人指引的情况下,没有几个人会对这东西能够上手。

HWS,实现的就是ADOBE Workflow Server所实现的东西,但是在目前,它缺少一个Workflow Desinger的设计工具,所以会造成它的曲高和寡的局面。你必须自己手动写代码去完成你的工作流设计,虽然在SDK里面有Step By Step的指导,但似乎还是很难(想想BizTalk Server 2004本身,本来设计流程就是画画那么简单,但MS还是怕很多人不会,还提供了一个免费的Visio插件,供大家做图玩)。

可能很多人读了上面的文章,会认为我在贬低BTS,其实不然。我觉得做BTS始终是MS的大智慧所在,它早在2000年就预示到了SOA的到来。只不过由于其流程图画得那么“好看”,导致大家有一些误解,从而杀鸡用坦克,既不顺手,还劳民伤财。在SOA服务来临之日,BTS更能突显其危力。我们想想Longhorn,那里面有一个Indigo。仔细思考一下,其实Indigo的很多功能似乎与BTS有交集,所以有理由相信,在未来,BTS下一版本又有新的面貌了,至于新貌如何,还请各位看倌拭目以待。

BTW:讲到SOA,想到前段时间博客堂对于SOA中传递消息的讨论,一派人认为SOA应该只传简单类型,一派人认为SOA可以传递复杂自定义对象,甚至包括DataSet在内。我搜集到的材料让我确认第二派会在未来占上方,有时间大家再一起聊聊吧笑脸

个人拙见,欢迎斧正(没有想到会出现在首页上:()

X1棋谱分析器?

Chris Sells想要一个类似X1这样的东西,但是为编程用的。他希望这个东西知道很多现有程序的功能,当他输入一些指令时,这个东西能提供选择,然后自动实现一些已经实现了多次的功能,他只想写那些编码来实现没实现过或实现次数很少的东西。有点异想天开?

我现在想要一个类似的东西,它收集了所有能找得到的围棋棋谱,它能列出所有跟当前盘面棋子一样的棋谱,并列出各种相关信息,让我能很快地决定下一步走哪好。感觉应该很容易实现的,起码比Chris Sells的梦想容易,或者是谁已经有类似的系统可以给我一份用用?,笑脸

Tidbits

[via Chris Sells]想学什么东西,但不知道该系统地读些什么书?参考麻省理工学院(MIT)的OpenCourseWare,里面罗列了MIT提供的很多课程的参考书,笔记,课程演示,作业,。。。

[via Chris Sells] X1,利用高级indexing过程,让你快速搜寻文件/电邮

Dino Esposito在MSDN杂志的专栏里移植了很多ASP.NET 2.0里的东西到ASP.NET 1.1,在他的blog里征询意见是否值得继续这么做下去
Dress Your Controls for Success with ASP.NET 1.1 Themes
Image Generation Service for ASP.NET 1.1 
Personalization in ASP.NET 1.1

From Microsoft ffice Developer Center: Training

InfoPath 2003 SP-1 Training: Hands-on Exercises

[via TheServerSide.Net] PINVOKE.NET by Adam Nathan, author of “.NET and COM: The Complete Interoperability Guide” , “attempts to address the difficulty of calling Win32 or other unmanaged APIs in managed code“

在同一台机器上开发/Host多个不同的网站 (Web Sites,NOT Virtual Directories),三种方法
1。每个网站用不同的IP
2。每个网站用不同的Port (Cookies 会有问题)
3。每个网站用不同的Host Headers

参考
Hosting Multiple Domains With IIS
Hosting Multiple IIS Web Sites with Host Headers
IIS Answers Top 10 FAQ: How to Create Multiple Websites with one IP address

更多MVP Summit照片
Alex Feldstein 在MVP Summit 2004 拍的照片
2004 MVP SUMMIT PHOTOS – Excel Team –
TypePad
Seattle Summit
Gallery: MVP Summit 2004
MouseTrax

Tidbits

[via Sam Ruby]Janne Jalkanen把blogging比作卡拉OK,是一种自我表达和放松的方式

[via Dino Esposito, Matt Hawley]想安装VS.NET 2005 CTP DVD ISO image,但没有DVD驱动的话,你可以安装Daemon Tools 或Undisker,这些工具让你把ISO image当作本地驱动

[via Roy Osherove]Steven M. Cohn的《UI Design Pattern #1 – Singleton》

在论坛上经常看到一些从C/S开发转B/S开发的网友的问题,起因是不理解HTTP,HTML以及B/S编程模型,[via Scott Watermasysk]Dave Wanta的这个工具Fiddler也许可以帮助你理解浏览器与网络服务器是怎么交流的。另外一个很好玩的工具是ieHTTPHeaders,能让你看到在IE里头信息是如何交换的

对Whitehorse感兴趣的网友,可以去读读微软Visual Studio Enterprise Tools Group组主管开发Whitehorse的架构师Keith Short的blog,当然,目前资源尚不多,期待他的书《Software Factories: Assembling Applications using Patterns, Models, Frameworks and Tools》的出版

[via Matt Powell]Christian Weyer谈论WSE 2.0里的一些新东西,以及他写的辅助‘Contract First’ Web services development的一个VS.NET Add-In,免除了使用wsdl.exe 的麻烦,还能自动生成property,而不是象wsdl.exe那样生成成员field

Visual Studio 2005 Developer Center开张了

九频道

Channel 9 (九频道) 是这次峰会上宣布的集多媒体weblog,wiki,RSS和讨论区为一体的网上社区,让你不用通过媒体,即能听到微软内部的声音,也让你有机会跟开发人员直接对话

Bill Hill ,ClearType的原创人之一,在采访对话《Windows is not the most important OS》里说,最重要的操作系统不是Windows,而是Homo Sapien (现代人类)1.0,整个采访很是有趣

Outlook 2003/2002 Add-in: Notes Connector !!!

Microsoft Office Outlook Connector for IBM Lotus Domino 可以让你使用 Outlook 2002/2003 来接收 IBM Lotus Domino Release 5.x /6.x 的邮件、日历、地址簿以及待办事项(To Do)等。

大约一年前,Outlook Connector for IBM Lotus Domino 就有了,但只有英文版,不能在中文版上安装,这次出的这个 2002/2003 版本目前依然只有英文版。

经过对 Beta 版的试用,觉得基本功能都实现的很好,但也有些缺点:

  1. 必须要先安装 Lotus Notes Client 5.x/6.x;
  2. 发送RTF/HTML 格式的邮件给其它用户时,字体、大小等格式设置会出现混乱;
  3. 不能象 Notes Client 一样,通过输过收件人的汉语拼音来检查收件人地址(有点象 CheckName),其实 Outlook 很需要借鉴 Notes 这个很有本地化特色的 Feature;
  4. 发送某此格式的附件时,会出现错误,如 *.mht 附件。

Anyway ,对于习惯了使用 Outlook ,不堪忍受 Notes Client 诸多缺点(不易用、界面难看等)的人来说,还算是个好东西。

下载:Outlook 2003/2002 Add-in: Notes Connector