Explore. Dream. Discover.

Samuel Chen's life

Twenty years from now you will be more disappointed by
the things that you didn't do than by the ones you did do.
So throw off the bowlines. Sail away from the safe harbor.
Catch the trade winds in your sails.

Explore. Dream. Discover.
—— Mark Twain

2005年3月29日 星期二

Google的社会网络

 Google的帝国中有一个不为国人所熟知的产品Orkut — Google用以试验网络中“六度分离”定律的人际关系网络。

    同样的,Orkut也是需要邀请的,没有邀请将难以访问其世界,我想这也是其在国内还不被众所周知的原因之一,不知道根据“六度”理论,何时会在中国泛滥?

相关信息:

目前有一个比较流行的人际关系网站Hi5,可以有blog/日记,相册等,这个倒是邀请的比较多,大家可以尝试一下。

ImageOrkut: http://www.orkut.com

ImageHi5: http://www.hi5.com

标签: , ,

2005年3月17日 星期四

三则消息

Indigo CTP 放出

Image     Indigo CTP 已经放出! 至少对于MSDN订阅用户来说是这样。请到MSDN订阅主页查看详细信息。如果想得到更多的文档和例子,你需要一份WinFX SDK

那么现在你就可以去玩这个新玩艺了,但是微软请你不要忘了告诉他们你喜欢什么不喜欢什么。

Google AD 新格式

从今天开始,您将看到一个提供给内容广告和网站的新AdSense广告格式(我们同时将会保留旧的格式)— AdSense Ad Links。这些比往常更小的格式使用了一些到几个分类广告的简写,而不再是显示广告本身。


广 告仍是使用AdSense技术自动的匹配相关网页内容。我们认为Ad Links 对于Web发布者(他们将得到一个更灵活的方式来使得广告和网站更融合)、广告客户(它们更多的被编入目录)和用户(将得到更合适选择)来说将更有用。总 体来说,有更大的机会使你能明确的找到你最感兴趣的。

Google Local Down To Business

Image     自从 Google Local 启动以后,google受到了许多商业用户关于从google local的索引添加、更新或者移除它们的询问。所以现在推出 Local Business Center ,一个免费的工具来进行这些以及更多的操作。如果您太忙了而没有时间搭建/维护你的网站,这个将会使您的客户很容易的通过在线找到你。

标签: , ,

2005年3月15日 星期二

Updater Application Block 2.0 发布

Updater Application Block (微软企业库,Enterprise Library的组件)日前公布了更新版本2.0。这个版本包括了简化API的监控下载状态事件以及支持基于Windows Installer技术更新的一些变化。

Updater Application Block 是一个.NET框架组件,它能帮助你侦测、下载和实现客户端应用更新部署。使用updater Application Block,你能在不需要或者很少用户干涉的情况下进行智能客户端的更新。你也可以使用自定义类型扩展它,从而完成投递部署(post -deployment)布置任务。

特别地,Updater Application Block 能在以下几个方面帮助你:

  • 实现“推模式(pull model)”的自动下载更新

  • 完成提交下载(post-download)布置任务而无需用户干涉。


这次Updater Application Block的发布包括如下新功能:

  • 大量简化的公开API

  • 是应用程序能完成关键场所的更新处理的事件

  • 支持部分更新

  • 支持使用时间监测下载进程

  • 支持基于MS Windows Installer技术的更新

  • 业务分离:在适当层次上具有扩展的能力的功能点,如用户表?????下载者以便激活。

  • 支持多种类型的下载方式

  • 基于Enterprise Library的图形化管理配置工具

  • 严格遵从模式与实践(patterns and practices) Enterprise Library 标准规格


ImageGotDotNet下载 version 2.0 of the Updater Application Block

标签: ,

Visual FoxPro 9.0 发布

vfp9微软公布了FoxPro的9.0版本,这个历史悠久的关系型数据库系统及开发环境。这个版本包括了支持创建web services以及和.NET兼容性一样好的XML开发方式。其他的新特性包括扩展的SQL增强、新的智能客户端界面控件、以及开发期间进行编译。

MS VFP 9.0 的官方网站

标签: ,

2005年3月10日 星期四

LDAP注射白皮书

LDAP注射(Injection)的概念类似于SQL注射,除了目标是活动目录(Active Directory)或者任何LDAP服务器。这个思路是非法用户在LDAP查询中注射不被信任的数据。

这里访问白皮书(PDF)

标签:

2005年3月9日 星期三

.NET专家:微软正在对.NET失去信心

Image    Richard Grimes, .NET 专家及作者, 从2000年.NET技术预览发布就开始研究.NET。Richard 给Dr.Dobbs杂志撰写关于.NET的文章已经超过三年,他正在退出(stepping down)并发表对.NET相关事情的评论。在他的退出讲演中,他回顾了一些.NET发展中的失策,并对这个平台的未来发出了 警告。

在摘要中,Richard 写到这个库发布的太早而且他认为它太大了,还同时给出了VB.NET只是因为市场而不是技术存在的数个原因 — 这个新的语言(对于开发人员)没有真正的说服力和好处。

Richard 指出微软自身就缺少对.NET的坚定信心,因为微软没有用.NET改写多少他们的核心产品,而只是用.NET作为一个库来扩展它的产品 线 — 实际上Office 和 Visual Studio并不是用.NET写的,而且“迄今为止,微软还没有展示(给我们)它对这个框架的任何更多的信心。”

谈论到WinFS和它从下一个版本Windows(Longhorn)的去掉时,Richard指出:“微软选择了去掉它而不是(努力)使这个技术能运转,从这之中,我怀疑这个技术将永不会再回来。”
关于Longhorn的另外外两个主要特性,Richards说:
微 软宣布在Longhorn中另外的两个.NET技术,Indigo和Avalon,将也会出现在其他版本的Windows中。Indigo是一个消息技 术,所以它能在其他版本的Windows中使用是有意义的。但是,我相信Avalon出现在其他版本的Windows中是对 Longhorn的销售缺乏信心...微软指出Longhorn将不会是.NET的大革新,这使我们有理由相信它是从PDC 2003而来。所有这些显示出微软正在对.NET失去信心

Richard 给出结论 “微软承认市场优先于技术”。

全文:Mr. Grimes’ Farewell.

标签: ,

2005年3月8日 星期二

GDS网络爬虫插件kongulo简单指南

case studykongulo 是Googles Desktop Search (GDS)的一个网页爬虫插件,他可以爬行指定的网站,从而使你能在本地搜索。它和Google网页搜索的site:命令类似,好处是 google还没有收录的新内容可以马上用kongulo索引,进行本地查询,以及局域网内地文件搜索。作者:Samuel Chen, Alpha Atom

这里简单介绍一下其使用方法:...

(此文原发于alphatom.com,后网站关闭失去该文)

标签: ,

Google 桌面搜索1.0发布

Image    今天,Google发布了它的桌面搜索工具1.0(英文版,其他语言还处于beta,包括中文)。新版的工具将能搜索索Doc, PDF, Excel, 图片, 声音等多种格式文件,以以及Outlook邮件, Firefox/mozzila浏览过的网页还有AOL记录。

“Google桌面搜索将google强力搜索带到了个人用户的桌面,他就像你在你电脑上所有的一切的记忆快照,就在你指尖” google产品管理副总 Jonathan Rosenberg说道。他提到将继续为全世界的用户增强扩展这个桌面搜索。

新版的Google桌面搜索除了上面说的那些外,还能帮助你查找意外删除的或者不记得放在哪里的信息。Google桌面搜索还具有插件系统,提供供了诸如象Trillian IM工具(索引Trillian,AIM, ICQ, IRC, Jabber, MSN Messenger, Rendezvous, 和 Yahoo Messenger即时通讯工具 )、Kongulo 网络爬虫(用来收集你指定网站的网页信信息,比如内网,使得可以在本地查询),Larry's系列索引器(包括text, chm, mIRC, OpenOffice和StarOffice等)。当然,Google不会忘了提供API来让用户对它扩展。

Google桌面搜索需要WindowsXP或者Windows2000 sp3以上版本,以及500M硬盘空间,最少128M内存和至少400MHz的奔腾处里器。

下载Google Desktop Search

下载Google Desktop Search插件

标签: ,

2005年3月7日 星期一

Oracle 发布EJB3.0预览

Oracle Logo small 在3月4日的TSS Java 座谈会上,Oracle 公布了一个EJB3.0的预览。除此之外,他们还提供供了15个"EJB 3 如何" 和代码示例,以及4页详细的技术白皮书。

Application Developnent Tools的首席架构师 Ted Farrell 主题(keynote)中展示了EJB3和JSF。他将这个容器嵌入到不需要部署就允许真实快速代码(real quick code)演示的JDeveloper中。他还展示了如何使用JSF渲染工具包(renderkits)将UI跨越浏览器和胖客户端和移动设备部署, 看起来真的是非常酷!

获得 EJB 3 预览 和示例代码

标签:

2005年3月4日 星期五

Script Callback in ASP.NET 2.0 (脚本回调)

  • 原作者:Dino Esposito
  • 出处:codeguru
  • http://www.codeguru.com/columns/Experts/article.php/c9321/
  • 发表时间:2005-2-28 于 alphatom.com (此站点已关闭)
  • 翻译:Samuel Chen (http://SamuelChen.Net)

让我们面对这个事实吧:Web开发人员愿意付出一切来换取一种可以让他们避免页面刷新的开发工具。想想这个常见的情景:你在一个ASP.NET页面上添加了一个grid控件(control)用来显示用户导航栏。每当用户为了显示几行新的数据而点击时,页面将回传(postback)服务器,由服务器处理后又原封不动地重现(除了grid控件(control)中的几行新数据)。这个过程导致了严重的性能问题,尤其是对于复杂的大页面。开发者们不禁要问:为什么每次处理用户事件都非要下载50Kb的内容(而且还得上传其中的相当一部分同样多次)?

不用回传(postback)整个页面就能上传客户端数据是web开发者们一个期待已久的梦想。理想情况下,他们应该能触发客户端代码调用服务器来处理事件,并用返回的数据仅仅更新页面中受影响的部分。

ASP.NET 1.x 以及传统的 ASP 都可以实现这个功能,但开发人员必须使用ActiveX控件(ActiveX control)或者至少是Java小程序(Java applet)来做中介(intermediary)。这种中介(intermediary)的作用是接收客户端脚本的调用,并建立一个并行而不被用户察觉的连接到某个服务器页面。服务器页面根据接收到的输入产生相应输出。输出经连接返回到客户端,客户端便可通过DHTML对象模型(Dynamic HTML object model)来更新页面显示。

ASP.NET 2.0 抽象了建立服务器连接并解析返回数据的逻辑。ASP.NET 2.0中的脚本回调(script callback)提供了一种成熟而立即可用的机制,从而大大简化了上面的过程。更为重要的是,脚本回调(script callback)隐藏了很多实现细节并且帮我们解决了一大堆浏览器兼容性问题。

使用脚本回调(script callback)的要求

ASP.NET脚本回调(script callback)的核心包括一些客户端JavaScript,用来安并排处理程序中客户端和服务器间的数据往返。所以,使用脚本回调(script callback)的先决条件是服务段代码侦听客户端的调用。回调由客户端的中介(intermediary)处理,而用户可以继续进行操作。回调并不立即影响当前的页面,给用户造成一种假象,仿佛所有的一切都像是在传统的桌面应用程序中。因此,第二个要求就是浏览器支持DHTML并实现了高级的文档对象模型(DOM)。没有这些功能,多数下载下来的数据都没什么用。

在微软的世界里,第一次回调(callback)的实现是Remote Scripting (RS)。RS使用Java小程序(Java applet)连接服务器并要求用一个ASP页面来处理请求。另外,此ASP页面提供一个量身定做的对象模型(object model)——一种共有的通用接口—— 为了让交互启效。在ASP.NET中,总体上模型很相似,但使用的工具有所不同。

ASP.NET脚本回调(script callback)的工作原理

ASP.NET 2.0脚本回调(script callback)用XmlHttpRequest DOM对象(XmlHttpRequest DOM object)来建立连接。(对Internet Explorer来讲,脚本回调(script callback)要求版本至少是5.0) 远程调用的目标可以是某个特定的Server Control(例如,新的GridView控件(GridView control)),也可以是页面本身。通常,此目标必须是个实现了ICallbackEventHandler的对象。

下面几段向您展示怎样增强你的页面使其支持脚本回调(script callback)。

第一步是标识触发操作的HTML元素(HTML element)。典型情况下,此元素(element)是一个可供用户点击的按钮(button)或链接(link)。关键的一点是此元素(element)引发的事件不会被浏览器自动处理并导致一次回调(postback)。例如,你不能用元素(element)来触发回调(callback),因为会产生一个提交按钮(submit button)。如果你想用一次按钮点击来开始一次操作,下面的代码非常不错:

< runat="server" id="callbackStarter" value="View Details" type="button">

这个按钮(button)——HtmlInputButton控件(HtmlInputButton control)的实例——需要一些特定的JavaScript代码来处理点击(click)事件。你可以添加如下代码到Page_Load事件中:

callbackStarter.Attributes["onclick"] = String.Format("JavaScript:{0}", callbackRef);

怎样确定将事件绑定到那个脚本函数呢?要靠Page类中的GetCallbackEventReference函数。看这个例子:

string callbackRef = GetCallbackEventReference(
this, "document.all['cboEmployees'].value", "UpdateEmployeeViewHandler", "null", "null");

GetCallbackEventReference函数的第一个参数制定了服务器端将要处理回调的目标对象。如果传入的是this,则表示页面本身。也可以传入任何实现了ICallbackEventHandler的页面控件(page control)的引用。在任何情况下,客户端的提交动作(submit action)会提交至和标准回传(postback)机制相同的ASPX页面。

第二个参数是一个JavaScript常量表达式,表示传给服务器的输入数据。在上面的代码中,一个下拉列表(dorp-down list)当前选中元素(element)的值被传入。

第三个参数是一个用户定义在块中的JavaScript回调(callback)函数名。回调(callback)执行后,此函数最终负责页面的更新。最后两个可选参数可用来指定错误处理函数(error handler)和上下文对象(context object)。

GetCallbackEventReference函数将产生如下的脚本调用:WebForm_DoCallback( pageID, input, UpdateEmployeeViewHandler, null, null);


此函数的代码会自动下载到客户端并通过标签添加到页面响应(page's response)中。WebForm_DoCallback 使用XmlHttpRequest DOM对象(XmlHttpRequest DOM object)回调(call back)当前页面的URL。与此同时,它会添加一些额外的隐藏域(hidden field)以便服务器区分更简单的轻量级回调(callback)请求和一般回传(postback)请求。

处理请求时,ASP.NET运行时(runtime)标识出调用的目标对象(传给GetCallbackEventReference的第一个参数),确认它实现了ICallbackEventHandler接口后调用RaiseCallbackEvent方法:

public virtual string RaiseCallbackEvent(string eventArgument){
// Do something with the input and generate the output
return ProcessTheCall(eventArgument);
}

RaiseCallbackEvent的接收参数和返回值均为字符串(string)类型。它也包含任意处理客户端输入并返回响应(response)的代码。客户端和服务器间的数据交换仅能通过字符串(string)进行。一个字符串(string)可包含任何信息,包括序列化的对象(serialized object)。其格式可由你随心所欲指地定。的返回值将被传入客户端的JavaScript回调(callback)函数(前面代码中的UpdateEmployeeViewHandler函数)。这里是其必须的原形(prototype):

function UpdateEmployeeViewHandler(result, context){
// "result" is the return value of RaiseCallbackEvent
// TO DO: Process the string and update the page using DHTML
}

上面说过,脚本回调(script callback)并不适用于所有浏览器,尽管最新的浏览器,包括Internet Explorer 5+, Netscape 6+, and Safari 1.2+都能行。Microsoft在ASP.NET 2.0中加入了两个新的browser bapabilities:SupportsXmlHttp 与SupportsCallback以便开发人员检查方案的可行性。

一条让页面刷新更快的告诫

尽管脚本回调(script callback) 定义在ASP.NET 2.0中,要使其在ASP.NET 1.1里工作也并不很困难。在ASP.NET 2.0中,很多服务器控件(server control)借助脚本回调(script callback)提供了更迅速的页面刷新。最突出的例子也许是GridView控件(GridView control),作为DataGrid的接班人,选择性地运用脚本回调(script callback)实现分页显示记录。

正如前面所说,脚本回调(script callback)依赖于文档对象模型(DOM)的XmlHttpRequest对象。在Internet Explorer中,此文档对象模型对象(DOM object)通过ActiveX控件(ActiveX control)实现——Microsoft.XmlHttp。在IE中浏览这样的页面时,你必须适当降低安全设置以允许ActiveX控件(ActiveX control)能被脚本调用。在其他以同样方式实现XmlHttpRequest文档对象模型对象(DOM object)的浏览器中,这是不必要的。事实上,基于Mozilla的浏览内置支持了HTTP请求功能器,而没用使用ActiveX控件(ActiveX control)——这也是在Internet Explorer 7.0中被寄予厚望的功能。

标签: , , ,

2005年3月2日 星期三

Hibernate 3.0 即将发布

Hibernate Logo  Hibernate 3.0 今天宣布候选版1(RC1)已经准备放出。这个全新的支持O/R/XML映射的版本包含了大量特性,全新的O/R查询功能,如Hibernate查询语言(HQL),增强的Hibernate标准查询API(HCQA)等。

  • Much more flexible O/R mapping: support for exotic association and inheritance mappings, and greater flexibility when working with legacy data.

  • Hibernate3 filters: a unique feature for working with temporal (historical), regional or permissioned data.

  • Unprecendented flexibility for mixing handwritten and generated SQL within a single application or even a single entity: full support for "derived" entities and attributes defined in the mapping document, full support for overriding any generated SQL statement with handwritten SQL, support for stored procedures.

  • Object/Relational/XML mapping: query XML directly from the database for reporting, replicate data between databases via intermediate XML, externalize entity data as XML when interacting with remote systems.

  • Enhanced ease of use: better defaulting, an unchecked exceptions model, simplified natural (and composite) key support, simplified CMT integration.

  • Enhanced Criteria query API: with full support for projection/aggregation and subselects.

  • Runtime performance monitoring: via JMX or local Java API, including a second-level cache browser.

  • Brand new AST-based HQL parser: bulk update/delete enhancement, better syntax validation.

  • JBoss EJB 3.0 preview: support for annotation-based O/R mappings, full support for EJB-QL 3.0, support for EJB 3.0 persist()/merge() lifecycle, JACC-based security model.

  • Hibernate Tools preview: a full suite of Eclipse plugins for working with Hibernate 3.0, including mapping editor, interactive query prototyping, schema reverse engineering tool.

  • Many new extension points: including a new, extensible, event-driven architecture

  • Documentation enhancements.

  • Brand new test suite, including many useful examples of exotic Hibernate mappings.


特性详细列表

详细信息查看 Gavin King 的Blog

下载 Hibernate 3 release candidate.

标签: ,

2005年3月1日 星期二

IE7 平台及Outlook Express 消息

Dave今天在IEblog上就人们对IE7的疑问进行了解答,他说到“我们看到对于IE7的宣布人们有一些问题,除了两件事我会进行澄清外,其他大多数我们都�?准备回答和讨论。”

  • Platforms(平台).  目前,我们计划在Windows XP SP2或更高版本上发布IE7,因此不仅在32位版本的 Windows XP SP2,而且在 Windows XP Professional x64 Edition 和 Windows Server 2003 SP1 上都将很快发布。和Dean在他的关于IE7的blog上描述的一样,我们听到了用户关于支持Windows 2000的呼声,但目前关于这点还没有任何声明。IE Logo

  • Outlook Express.  Outlook Express不再是IE7计划的一部分,它将成为一个独立于Internet Explorer之外单独的产品组。Outlook Express小组正忙于为绑定下一个版本Windows发布的新版Outlook Express,因此没有任何计划会在下一版Windows之前发布新版Outlook Express。Outlook Express 新闻组 是讨论该产品和反馈意见的好地方。


同样,当我们得到更多IE7项目的消息时,将会与与大家分享详细内容。

IEblog上的原文

标签: ,