<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[yung]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[喜欢上进的人]]></description>
<link>http://hi.baidu.com/yungts</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[少有人走的路：心智成熟的旅程]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/86112cf4e5aef9e57609d7a5.html]]></link>
        <description><![CDATA[
		
		<strong>内容简介</strong>
<div class="zhengwen">
<p>或许在我们这一代，没有任何一本书能像《少有人走的路》这样，给我们的心灵和精神带来如此巨大的冲击。仅在北美，其销售量就超过七百万册；被翻译成二十三种以上的语言；在《纽约时报》畅销书榜单上，它停驻了近二十年的时间。这是出版史上的一大奇迹。<br>
毫无疑问，本书创造了空前的销售记录，而且，至今长盛不衰。<br>
本书处处透露出沟通与理解的意味，它跨越时代限制，帮助我们探索爱的本质，引导我们过上崭新，宁静而丰富的生活；它帮助我们学习爱，也学习独立；它教诲我们成为更称职的、更有理解心的父母。归根到底，它告诉我们怎样找到真正的自我。<br>
正如本书开篇所言：人生苦难重重。M·斯科特·派克让我们更加清楚：人生是一场艰辛之旅，心智成熟的旅程相当漫长。但是，他没有让我们感到恐惧，相反，他带领我们去经历一系列艰难乃至痛苦的转变，最终达到自我认知的更高境界。</p>
<p><strong>作者简介</strong></p>
<div class="zhengwen">
<p>M·斯科特·派克，我们这个时代最杰出的心理医生，他的杰出不仅在其智慧，更在于他的真诚和勇气。儿童时，他就以&ldquo;童言无忌&rdquo;远近闻名；少年时，他又勇敢地放弃了父母为他安排的辉煌前程，毅然选择了自己的人生道路，最终当上了一名心理医生。他曾在美军日本冲绳基地担任心理医生，为美军军官做心理医生。在近二十年的职业生涯中，他治俞了成千上万个病人，他以从业经验为基础写作的《少有人走的路》，创造了出版史上的一大奇迹。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
</div> <a href="http://hi.baidu.com/yungts/blog/item/86112cf4e5aef9e57609d7a5.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%CA%E9%CD%C6%BC%F6">书推荐</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/86112cf4e5aef9e57609d7a5.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-30  11:00</pubDate>
        <category><![CDATA[书推荐]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/86112cf4e5aef9e57609d7a5.html</guid>
</item>

<item>
        <title><![CDATA[JavaFX]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/0c1c840f860e42eaaa6457d4.html]]></link>
        <description><![CDATA[
		
		<p>&lt;转&gt;</p>
<p>Sun刚刚发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发富互联网应用程序(RIA)。JavaFX Script 编程语言（以下称为JavaFX）是Sun微系统公司开发的一种declarative, statically typed(声明性的、静态类型)脚本语言。JavaFX技术有着良好的前景，包括可以直接调用Java API的能力。因为 JavaFX Script是静态类型，它同样具有结构化代码、重用性和封装性，如包、类、继承和单独编译和发布单元，这些特性使得使用Java技术创建和管理大型程序变为可能。</p>
<div class="spctrl"> </div>
　　JavaFX开发应用中的问题答疑<br>
<div class="spctrl"> </div>
　　JavaFX脚本是一种声明式、静态类型编程语言。它具有一等函数（first-class functions）、声明式的语法、列表推导（list-comprehensions）及基于依赖关系的增量式求值（incremental dependency-based evaluation）等特征。JavaFX脚本为多种多样的操作提供了声明式、无中间程序逻辑的语法，这些操作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。 <br>
<div class="spctrl"> </div>
　　JavaFX教程<br>
<div class="spctrl"> </div>
　　在JavaFX中，类的成员函数和操作本身被模式化作为在目标类中的类，而形参和返回值被表示为属性。代表目标对象的属性名是&ldquo;this&rdquo;。代表返回值的属性名为&ldquo;return&rdquo;。代表形参的属性具有和形参相同的属性名。而目标对象则指使用成员函数和操作的对象。 从上例中可以发现，你也可以从Class对象中获取相同的、被反射的操作。 被反射的操作能够像函数那样通过将目标对象作为第一个参数、其它参数作为后面的参数的方式被调用：<br>
<div class="spctrl"> </div>
　　AJAX,Flash,Silverlight,JavaFX到底选谁<br>
<div class="spctrl"> </div>
　　事实上，像Adobe's Flex, Microsoft's Silverlight, 以及Sun 最近发布的JavaFX这样的计算技术，使得向量图形实质上优于AJAX提供的Dojo或者Yahoo图形实验室(YUI)这种构架.无论相信与否，在网络应用程序开发中，在基于网络的向量图形的应用方面存在巨大的商机，而这绝不仅仅是看起来比较诱人这么简单。需要注意到，无论是JavaFX, 还是Sliverlight现在都没有分享到被Adobe Flash Player占领的任何市场份额。
<h2><a name="2"></a>1.0 Final 正式发布</h2>
　　2008年12月05日 Sun微系统公司今天正式发布了基于Java语言的平台JavaFX 1。0，这个平台建立在其广泛应用的Java编程语言的基础上，旨在建立大量可在电脑和手机上运行的网络程序。 Java一直以来就是编程语言，但是随着JavaFX的发布，Sun公司开始允许将编程内容创新这一任务转移到以设计艺术为重点而非编程科学为重点的设计人员身上。<br>
<div class="spctrl"> </div>
　　&ldquo;我们的目标群体是叫做创造者的人群&rdquo;，Sun公司Java平台组的高级副主任 OctavianTanase对 InternetNews.com说，&ldquo;随着1.0版的发布，我们将目标锁定在网页开发人员，这群可能拓展Java界面体验的人。到2011年，主要的目标是大量使用诸如Adobe系统等设计工具的设计人员&rdquo;。<br>
<div class="spctrl"> </div>
　　当然，通向这个以设计为导向的工具还需要一些时间。Sun公司最后打算提供自己的程序给设计人员来建立RIAS，但是直到如今，这些设计人员还得使用程序员所使用的Netbeans或Eclipse集成开发环境(IDE)。新工具将在来年夏天面市。 <a href="http://hi.baidu.com/yungts/blog/item/0c1c840f860e42eaaa6457d4.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B6%C1%CD%F8%D5%AA%C2%BC">读网摘录</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/0c1c840f860e42eaaa6457d4.html#comment">查看评论</a>]]></description>
        <pubDate>2009-01-26  11:29</pubDate>
        <category><![CDATA[读网摘录]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/0c1c840f860e42eaaa6457d4.html</guid>
</item>

<item>
        <title><![CDATA[weblogic 无法命令行停止解决方案&#60;转&#62;]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/db02eb13f9bd8d24dc5401c0.html]]></link>
        <description><![CDATA[
		
		<p> </p>
<p>在UNIX下停止weblogic，使用stopWeblogic.sh，然而如果直接执行该命令常常会遇到不少问题，在weblogic8下你可能用该命令停止weblogic时会遇到如下错误提示：</p>
<p>Stopping Weblogic Server...</p>
<p>Failed to connect to t3://localhost:7001: Destination unreachable; nested exception is: <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  java.net.ConnectException: Connection refused; No available router to destination<br>
Done</p>
<p>解决问题：</p>
<p>方法一：从weblogic控制台停止weblogic。<a href="http://ip:port/console">http://ip:port/console</a>进入网页控制后，依次按以下顺序进入Domain Configurations --&gt; Servers --&gt; 在列表中选中&quot;myserver&quot;或是其它自定义服务名 --&gt; Control --&gt;&nbsp;&nbsp;  Force shutdown of this server...<br>
接下来一路按Yes，完成后差不多过2~3秒网页自动刷新失败即是服务器被停止了。</p>
<p>方法二：用vi查看stopWeblogic.sh，您会发现停止weblogic直接执行该脚本是不行的，必须加上几个参数，具体格式如下：</p>
<p># Usage: stopWebLogic [username] [password] [server-name] [admin-url]<br>
# The default value of server-name is myserver<br>
# The default value of admin-url is t3://localhost:7001</p>
<p>因此，如果你对脚本比较熟悉的话，可以更改这些变量，上面错误提示就是因为使用了默认的admin-url，然而您的admin-url并不是该url，最简单的办法就是执行该脚本的时候将各个参数正确的加上，例如：</p>
<p>./stopWeblogic weblogic weblogic myserver t3://ip:port</p>
<p>这里注意，port为80也不能省略。<br>
<br>
如果没有错误的话，将出现如下成功提示：<br>
<br>
0<br>
Stopping Weblogic Server...<br>
Server &quot;myserver&quot; was force shutdown successfully ...</p>
<p>Done</p> <a href="http://hi.baidu.com/yungts/blog/item/db02eb13f9bd8d24dc5401c0.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B9%A4%D7%F7">工作</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/db02eb13f9bd8d24dc5401c0.html#comment">查看评论</a>]]></description>
        <pubDate>2008-12-31  09:25</pubDate>
        <category><![CDATA[工作]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/db02eb13f9bd8d24dc5401c0.html</guid>
</item>

<item>
        <title><![CDATA[addEvent和removeEvent]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/36ea052da7895b33359bf73a.html]]></link>
        <description><![CDATA[
		
		<p>function addEvent(element,type,handler)<br>
{<br>
&nbsp;&nbsp;  if(!handler.$$guid)<br>
&nbsp;&nbsp;  {<br>
handler.$$guid = addEvent.guid++;<br>
&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;  if(!element.events)<br>
&nbsp;&nbsp;  {<br>
element.events={};<br>
&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;  var handlers = element.events[type];<br>
&nbsp;&nbsp;  if(!handlers)<br>
&nbsp;&nbsp;  {<br>
handlers = element.events[type]={};<br>
&nbsp;&nbsp;  if(element[&quot;on&quot;+type])<br>
&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;  handlers[0] = element[&quot;on&quot;+type];<br>
&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;  handlers[handler.$$guid] = handler;<br>
&nbsp;&nbsp;  element[&quot;on&quot;+type] = handleEvent;<br>
};<br>
addEvent.guid = 1;<br>
function removeEvent(element,type,handler)<br>
{<br>
if(element.events&amp;&amp;element.events[type])<br>
{<br>
&nbsp;&nbsp;  delete element.events[type][handler.$$guid];<br>
} <br>
};<br>
function handleEvent(event)<br>
{<br>
var returnValue = true;<br>
event = event||fixEvent(window.event);<br>
var handlers = this.events[event.type];<br>
for(var i in handlers)<br>
{<br>
&nbsp;&nbsp;  this.$$handleEvent = handlers[i];<br>
&nbsp;&nbsp;  if(this.$$handleEvent(event)===false)<br>
&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;  returnValue = false;<br>
&nbsp;&nbsp;  }<br>
}<br>
return returnValue;<br>
};</p>
<p>function fixEvent(event)<br>
{<br>
event.preventDefault = fixEvent.preventDefault;<br>
event.stopPropagation = fixEvent.stopPropagation;<br>
return event;<br>
};</p>
<p>fixEvent.preventDefault = function()<br>
{<br>
this.returnValue = false;<br>
};</p>
<p>fixEvent.stopPropagation = function()<br>
{<br>
this.cancelBubble = true;<br>
};</p> <a href="http://hi.baidu.com/yungts/blog/item/36ea052da7895b33359bf73a.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/web%C7%B0%B6%CB%BF%AA%B7%A2%D2%BB%D0%A9%B3%A3%D3%C3%B5%BD%B5%C4%D6%AA%CA%B6">web前端开发一些常用到的知识</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/36ea052da7895b33359bf73a.html#comment">查看评论</a>]]></description>
        <pubDate>2008-12-22  13:56</pubDate>
        <category><![CDATA[web前端开发一些常用到的知识]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/36ea052da7895b33359bf73a.html</guid>
</item>

<item>
        <title><![CDATA[标准 Event 方法]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/9c3345389f28fb2496ddd8de.html]]></link>
        <description><![CDATA[
		
		<p>1、initEvent（）</p>
<p>event.initEvent(eventType,canBubble,cancelable)</p>
<p>（字符串值、事件的类型，事件是否起泡，是否可以用 preventDefault() 方法取消事件）</p>
<p>该方法将初始化 Document.createEvent() 方法创建的合成 Event 对象的 type 属性、bubbles 属性和 cancelable 属性。只有在新创建的 Event 对象被 Document 对象或 Element 对象的 dispatchEvent() 方法分派之前，才能调用 Event.initEvent() 方法。</p>
<p>2、preventDefault()</p>
<p>取消事件的默认动作。</p>
<p>event.preventDefault()</p>
<p>方法将通知 Web 浏览器不要执行与事件关联的默认动作（如果存在这样的动作）。例如，如果 type 属性是 &quot;submit&quot;，在事件传播的任意阶段可以调用任意的事件句柄，通过调用该方法，可以阻止提交表单。注意，如果 Event 对象的 cancelable 属性是 fasle，那么就没有默认动作，或者不能阻止默认动作。无论哪种情况，调用该方法都没有作用。</p>
<p>3、stopPropagation()</p>
<p>event.stopPropagation()</p>
<p>该方法将停止事件的传播，阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意，虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用，但是它可以阻止把事件分派到其他节点。</p>
<p> </p> <a href="http://hi.baidu.com/yungts/blog/item/9c3345389f28fb2496ddd8de.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/web%C7%B0%B6%CB%BF%AA%B7%A2%D2%BB%D0%A9%B3%A3%D3%C3%B5%BD%B5%C4%D6%AA%CA%B6">web前端开发一些常用到的知识</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/9c3345389f28fb2496ddd8de.html#comment">查看评论</a>]]></description>
        <pubDate>2008-12-18  14:12</pubDate>
        <category><![CDATA[web前端开发一些常用到的知识]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/9c3345389f28fb2496ddd8de.html</guid>
</item>

<item>
        <title><![CDATA[JavaScript中的execCommand介绍]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/c790b7dd411e8d335882dd71.html]]></link>
        <description><![CDATA[
		
		<strong>JavaScript中的execCommand介绍<br>
</strong><font > 
<p>execCommand方法是执行一个对当前文档，当前选择或者给出范围的命令。处理Html数据时常用<br>
如下格式：document.execCommand(sCommand[,交互方式, 动态参数]) ，其中：sCommand为指令参数（如下例中的&quot;2D-Position&quot;），交互方式参数如果是true的话将显示对话框，如果为false的话，则不显示对话框（下例中的&quot;false&quot;即表示不显示对话框），动态参数一般为一可用值或属性值（如下例中的&quot;true&quot;）。<br>
<br>
document.execCommand(&quot;2D-Position&quot;,&quot;false&quot;,&quot;true&quot;);<br>
下面列出的是指令参数及意义</p>
<ul><br>
    <li>2D-Position 允许通过拖曳移动绝对定位的对象。</li>
    <li>AbsolutePosition 设定元素的 position 属性为&ldquo;absolute&rdquo;(绝对)。</li>
    <li>BackColor 设置或获取当前选中区的背景颜色。</li>
    <li>BlockDirLTR 目前尚未支持。</li>
    <li>BlockDirRTL 目前尚未支持。</li>
    <li>Bold 切换当前选中区的粗体显示与否。</li>
    <li>BrowseMode 目前尚未支持。</li>
    <li>Copy 将当前选中区复制到剪贴板。</li>
    <li>CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。</li>
    <li>CreateLink 在当前选中区上插入超级链接，或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。</li>
    <li>Cut 将当前选中区复制到剪贴板并删除之。</li>
    <li>Delete 删除当前选中区。</li>
    <li>DirLTR 目前尚未支持。</li>
    <li>DirRTL 目前尚未支持。</li>
    <li>EditMode 目前尚未支持。</li>
    <li>FontName 设置或获取当前选中区的字体。</li>
    <li>FontSize 设置或获取当前选中区的字体大小。</li>
    <li>ForeColor 设置或获取当前选中区的前景(文本)颜色。</li>
    <li>FormatBlock 设置当前块格式化标签。</li>
    <li>Indent 增加选中文本的缩进。</li>
    <li>InlineDirLTR 目前尚未支持。</li>
    <li>InlineDirRTL 目前尚未支持。</li>
    <li>InsertButton 用按钮控件覆盖当前选中区。</li>
    <li>InsertFieldset 用方框覆盖当前选中区。</li>
    <li>InsertHorizontalRule 用水平线覆盖当前选中区。</li>
    <li>InsertIFrame 用内嵌框架覆盖当前选中区。</li>
    <li>InsertImage 用图像覆盖当前选中区。</li>
    <li>InsertInputButton 用按钮控件覆盖当前选中区。</li>
    <li>InsertInputCheckbox 用复选框控件覆盖当前选中区。</li>
    <li>InsertInputFileUpload 用文件上载控件覆盖当前选中区。</li>
    <li>InsertInputHidden 插入隐藏控件覆盖当前选中区。</li>
    <li>InsertInputImage 用图像控件覆盖当前选中区。</li>
    <li>InsertInputPassword 用密码控件覆盖当前选中区。</li>
    <li>InsertInputRadio 用单选钮控件覆盖当前选中区。</li>
    <li>InsertInputReset 用重置控件覆盖当前选中区。</li>
    <li>InsertInputSubmit 用提交控件覆盖当前选中区。</li>
    <li>InsertInputText 用文本控件覆盖当前选中区。</li>
    <li>InsertMarquee 用空字幕覆盖当前选中区。</li>
    <li>InsertOrderedList 切换当前选中区是编号列表还是常规格式化块。</li>
    <li>InsertParagraph 用换行覆盖当前选中区。</li>
    <li>InsertSelectDropdown 用下拉框控件覆盖当前选中区。</li>
    <li>InsertSelectListbox 用列表框控件覆盖当前选中区。</li>
    <li>InsertTextArea 用多行文本输入控件覆盖当前选中区。</li>
    <li>InsertUnorderedList 切换当前选中区是项目符号列表还是常规格式化块。</li>
    <li>Italic 切换当前选中区斜体显示与否。</li>
    <li>JustifyCenter 将当前选中区在所在格式化块置中。</li>
    <li>JustifyFull 目前尚未支持。</li>
    <li>JustifyLeft 将当前选中区所在格式化块左对齐。</li>
    <li>JustifyNone 目前尚未支持。</li>
    <li>JustifyRight 将当前选中区所在格式化块右对齐。</li>
    <li>LiveResize 迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观，而不是只在移动或缩放完成后更新。</li>
    <li>MultipleSelection 允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素。</li>
    <li>Open 目前尚未支持。</li>
    <li>Outdent 减少选中区所在格式化块的缩进。</li>
    <li>OverWrite 切换文本状态的插入和覆盖。</li>
    <li>Paste 用剪贴板内容覆盖当前选中区。</li>
    <li>PlayImage 目前尚未支持。</li>
    <li>Print 打开打印对话框以便用户可以打印当前页。</li>
    <li>Redo 目前尚未支持。</li>
    <li>Refresh 刷新当前文档。</li>
    <li>RemoveFormat 从当前选中区中删除格式化标签。</li>
    <li>RemoveParaFormat 目前尚未支持。</li>
    <li>SaveAs 将当前 Web 页面保存为文件。</li>
    <li>SelectAll 选中整个文档。</li>
    <li>SizeToControl 目前尚未支持。</li>
    <li>SizeToControlHeight 目前尚未支持。</li>
    <li>SizeToControlWidth 目前尚未支持。</li>
    <li>Stop 目前尚未支持。</li>
    <li>StopImage 目前尚未支持。</li>
    <li>StrikeThrough 目前尚未支持。</li>
    <li>Subs cript 目前尚未支持。</li>
    <li>Supers cript 目前尚未支持。</li>
    <li>UnBookmark 从当前选中区中删除全部书签。</li>
    <li>Underline 切换当前选中区的下划线显示与否。</li>
    <li>Undo 目前尚未支持。</li>
    <li>Unlink 从当前选中区中删除全部超级链接。</li>
    <li>Unselect 清除当前选中区的选中状态。</li>
</ul>
</font> <a href="http://hi.baidu.com/yungts/blog/item/c790b7dd411e8d335882dd71.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B6%C1%CD%F8%D5%AA%C2%BC">读网摘录</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/c790b7dd411e8d335882dd71.html#comment">查看评论</a>]]></description>
        <pubDate>2008-11-13  14:08</pubDate>
        <category><![CDATA[读网摘录]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/c790b7dd411e8d335882dd71.html</guid>
</item>

<item>
        <title><![CDATA[TUXEDO与WEBLOGIC通过WTC进行互连的配置 &#60;转&#62;]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/476c89ec286b7f2063d09f57.html]]></link>
        <description><![CDATA[
		
		<div class="t_msgfont" >TUXEDO与WEBLOGIC通过WTC进行互连的配置<br>
<br>
WEBLOGIC与TUXEDO的互连有两种方式，通过JOLT或通过WTC(WEBLOGIC TUXEDO CONNECTOR)。它们都是BEA公司的产品，WTC不仅能让WEBLOGIC调用TUXEDO中的SERVICE，而且能让TUXEDO调用WEBLOGIC中的EJB;而JOLT只能让WEBLOGIC调用TUXEDO. 但JOLT可以使TUXEDO与WEBSPERE等其他应用服务器相连，而WTC只能用于WEBLOGIC与TUXEDO之间进行互连。下面通过一个例子介绍TUXEDO与WEBLOGIC通过WTC进行连接的配置方法。<br>
<br>
一、WTC说明:<br>
(1)WEBLOIGIC5.1无法通过WTC与TUXEDO连接.<br>
(2)WEBLOGIC6.0与TUXEDO连接时,要安装WTC软件包.<br>
(3)WTC已集成在在WEBLOGIC6.1中,只要配置一下就可以了,不用单独安装WTC软件包.<br>
(4)目前WTC只支持TUXEDO6.5,TUXEDO8.0两个版本,不支持TUXEDO7.1版本.<br>
(5)目前WTC有两个版本, Windows版本支持2000/NT,UNIX为统一版本.<br>
(6)WTC可从http://commerce.bea.com/downloads/tuxedo.jsp下载,目前的版本为1.0.<br>
<br>
二、WTC安装过程：<br>
(1) WEBLOGIC与TUXEDO必须先安装好.<br>
(2)WTC要求在JAVA环境下安装，可在命令行下，运行weblogic主目录下config/EXAMPLE/setEnv.sh(NT/2000下为setenv.cmd)配置JAVA环境<br>
(3)在DOS命令行下执行安装程序WTC_10_win.exe。按提示操作就可以.<br>
注意:如果在WINDOW下安装，到COPY文件那一步时，不会执行，但提示安装成功，实际是假的。所以应在DOS命令行下安装.<br>
<br>
三、WTC配置说明：<br>
TUXEDO与WEBLOGIC之间通过DOMAIN方式实现互相调用，在这个例子中有两个DOMAIN：TUXEDO所在的DOMAIN名为TDOM1， WEBLOGIC所在的 DOMAIN名为TDOM2。TDOM1上有TOUPPER它是一个TUXEDO SERVEICE，TDOM2上有TOLOWER它是一个EJB，<br>
下面以WTC安装带的例子simpapp(在WTC安装目录的examples/wtc/atmi/simpapp下)说明配置过程:<br>
TUXEO版本: TUXEDO65<br>
WEBLOGIC版本: WEBLOGIC6.0<br>
TUXEO安装目录: D:\TUXEDO65<br>
WEBLOGIC安装目录: D:\WEBLOGIC<br>
操作系统: WIN2000<br>
例子目录: D:\SIMPAPP(把WTC安装目录的examples/wtc/atmi/simpapp目录COPY到D:\SIMPAPP)<br>
服务器名: DEMOSERVER<br>
WTC安装目录: D:\WEBLOGIC\WTC1.0<br>
<br>
四、TUXEDO要做的配置<br>
(1)修改D:\SIMPAPP\SETENV.CMD为:<br>
set TUXDIR=d:\tuxedo65<br>
set WSNADDR=//DEMOSERVER:8888<br>
set APPDIR=d:\simpapp<br>
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%<br>
set TUXCONFIG=%APPDIR%\tuxconfig<br>
set BDMCONFIG=%APPDIR%/dbmconfig<br>
<br>
(2)修改D:\SIMPAPP\UBBDOMAIN为:<br>
*RESOURCES<br>
IPCKEY 123456<br>
DOMAINID simpapp<br>
MASTER simple<br>
MAXACCESSERS 10<br>
MAXSERVERS 5<br>
MAXSERVICES 10<br>
MODEL SHM<br>
LDBAL N<br>
<br>
*MACHINES<br>
DEMOSERVER LMID=simple<br>
APPDIR=&quot;d:\simpapp&quot;<br>
TUXCONFIG=&quot;d:\simpapp\tuxconfig&quot;<br>
TUXDIR=&quot;d:\tuxedo65&quot;<br>
<br>
*GROUPS<br>
GROUP1<br>
LMID=simple GRPNO=1 OPENINFO=NONE<br>
<br>
*SERVERS<br>
DEFAULT:<br>
CLOPT=&quot;-A&quot;<br>
<br>
simpserv SRVGRP=GROUP1 SRVID=1<br>
<br>
*SERVICES<br>
TOUPPER<br>
<br>
(3)修改D:\SIMPAPP\DOM1CONFIG:<br>
修改dom1config，加入TLOG的路径和AUDITLOG的路径。然后修改TDOM1的NWADDR=&quot;IP:PORT&quot;为TUXEDO的IP和端口，TDOM2的<br>
NWADDR=&quot;IP:PORT&quot;为WEBLOGIC的IP和端口。<br>
<br>
*DM_RESOURCES<br>
VERSION=U22<br>
*DM_LOCAL_DOMAINS<br>
TDOM1 GWGRP=GROUP2<br>
TYPE=TDOMAIN<br>
DOMAINID=&quot;TDOM1&quot;<br>
BLOCKTIME=20 <br>
MAXDATALEN=56 <br>
MAXRDOM=89 <br>
TLOG=&quot;d:\simpapp\TLOG&quot;<br>
AUDITLOG=&quot;d:\simpapp\AUDITLOG&quot;<br>
<br>
*DM_REMOTE_DOMAINS<br>
TDOM2 TYPE=TDOMAIN<br>
DOMAINID=&quot;TDOM2&quot;<br>
<br>
*DM_TDOMAIN<br>
TDOM1 NWADDR=&quot;//DEMOSERVER:9998&quot;<br>
TDOM2 NWADDR=&quot;//DEMOSERVER:9999&quot;<br>
<br>
*DM_REMOTE_SERVICES<br>
TOLOWER RDOM=&quot;TDOM2&quot;<br>
<br>
(4) tmloadcf -y ubbdomain<br>
(5) mloadcf -y dom1config<br>
(6)buildserver -o simpserv -f simpserv.c -s TOUPPER<br>
(7)将examples/wtc/atmi/simpapp/simpserv下的tolower.c 拷贝到D:\SIMPAPP，并执行buildclinet -v -f tolower.c -o tolower<br>
<br>
五、WEBLOGIC要做的配置：<br>
(1)修改weblogic目录下config/examples/setExamplesEnv.cmd及startExamplesServer.cmd,在CLASSPATH中加入：<br>
d:\weblogic\wtc1.0\lib/jatmi.jar。执行setExamplesEnv.cmd<br>
(2)修改bdmconfig.xml <br>
修改&lt;!DOCTYPE&gt;中的:[WTC installation directory]\weblogic\wtc\gwt\wtc_config_1_0.dtd(WLS60)<br>
修改TDOM1和TDOM2的NWADDR和TUXEDO中的dom1config中的一致<br>
如果tuxedo为6.5版本则在&lt;T_DM_LOCAL_TDOMAIN AccessPoint=&quot;TDOM2&quot;&gt;中加入&lt;Interoperate&gt;Yes&lt;/Interoperate&gt;如果为TUXEOD8.0则不需要。<br>
(3)修改后的bdmconfig.xml内容如下：<br>
&lt; ?xml version=&quot;1.0&quot;? &gt;<br>
<br>
&lt;!DOCTYPE BDMCONFIG SYSTEM &quot;file:D:\weblogic\wtc1.0\weblogic\wtc\gwt\wtc_config_1_0.dtd&quot;&gt;<br>
<br>
&lt;!--Java and XML--&gt;<br>
&lt;WTC_CONFIG&gt;<br>
&lt;BDMCONFIG&gt;<br>
&lt;T_DM_LOCAL_TDOMAIN AccessPoint=&quot;TDOM2&quot;&gt;<br>
&lt;WlsClusterName&gt;Coolio&lt;/WlsClusterName&gt;<br>
&lt;AccessPointId&gt;TDOM2&lt;/AccessPointId&gt;<br>
&lt;Type&gt;TDOMAIN&lt;/Type&gt;<br>
&lt;Security&gt;NONE&lt;/Security&gt;<br>
&lt;ConnectionPolicy&gt;ON_DEMAND&lt;/ConnectionPolicy&gt;<br>
&lt;BlockTime&gt;30&lt;/BlockTime&gt;<br>
&lt;NWAddr&gt;//DEMOSERVER:9999&lt;/NWAddr&gt;<br>
&lt;!-- Example address: //mydomain.acme.com:9999 --&gt;<br>
&lt;Interoperate&gt;Yes&lt;/Interoperate&gt;<br>
&lt;/T_DM_LOCAL_TDOMAIN&gt;<br>
&lt;T_DM_REMOTE_TDOMAIN AccessPoint=&quot;TDOM1&quot;&gt;<br>
&lt;LocalAccessPoint&gt;TDOM2&lt;/LocalAccessPoint&gt;<br>
&lt;AccessPointId&gt;TDOM1&lt;/AccessPointId&gt;<br>
&lt;Type&gt;TDOMAIN&lt;/Type&gt;<br>
&lt;NWAddr&gt;//DEMOSERVER:9998&lt;/NWAddr&gt;<br>
&lt;!-- Example address: //mydomain.acme.com:9998 --&gt;<br>
&lt;/T_DM_REMOTE_TDOMAIN&gt;<br>
&lt;T_DM_EXPORT ResourceName=&quot;TOLOWER&quot;<br>
LocalAccessPoint=&quot;TDOM2&quot;&gt;<br>
&lt;EJBName&gt;tuxedo.services.TOLOWERHome&lt;/EJBName&gt;<br>
&lt;/T_DM_EXPORT&gt;<br>
&lt;T_DM_IMPORT<br>
ResourceName=&quot;TOUPPER&quot;<br>
LocalAccessPoint=&quot;TDOM2&quot;<br>
RemoteAccessPointList=&quot;TDOM1&quot;&gt;<br>
&lt;TranTime&gt;600&lt;/TranTime&gt;<br>
&lt;/T_DM_IMPORT&gt;<br>
&lt;/BDMCONFIG&gt;<br>
&lt;/WTC_CONFIG&gt;<br>
<br>
(4)执行java weblogic.wtc.gwt.WTCValidateCF bdmconfig.xml监测xml是否正确。<br>
(5)在D:\SIMPAPP下执行build命令,然后在D:\weblogic\wtc1.0\examples\simpserv下执行build命令<br>
(6)启动welogic <br>
(7)察看wtc_tolower.jar、wtc_toupper.jar是否deploy成功<br>
(8)建立一个WEBLOGIC StartUp Class:<br>
classname为 weblogic.wtc.gwt.WTCStartup 参数为BDMCONFIG=D:\SIMPAPP\bdmconfig.xml,并设置其TARGET为EXAMPLESERVER<br>
(9)建立一个WEBLOGIC ShutDown Class:<br>
classname为weblogic.wtc.gwt.WTCShutdown,并设置其TARGET为EXAMPLESERVER<br>
(10)重新启动weblogic,并注意WEBLOGIC的启动日志看StartUp Class启动过程是否成功,失败会报错,成功没有提示信息<br>
如果失败没有检查config.xml中是否为<br>
&lt;StartupClass Arguments=&quot;BDMCONFIG=d:\wtc_load4\examples\simpapp\bdmconfig.xml&quot; ClassName=&quot;weblogic.wtc1.0.gwt.WTCStartup&quot; FailureIsFatal=&quot;false&quot; Name=&quot;MyWTCStartup Class&quot; Targets=&quot;myserver&quot;/&gt;<br>
&lt;ShutdownClass Arguments=&quot;&quot; ClassName=&quot;weblogic.wtc1.0.gwt.WTCShutdown&quot; Name=&quot;MyWTCShutdown Class&quot;/&gt;<br>
<br>
六、启动tuxedo<br>
<br>
七、运行例子：<br>
在d:/simpapp下执行run.cmd,这是WEBLOGIC 做CLIENT端调用Toupper ejb，由Toupper ejb调用TUXEDO的SERVICE：TOUPPER<br>
在d:/simpapp下执行run.cmd，这是TUXEDO做CLIENT端调用WEBLOGIC中的Tolower ejb，<br>
<br>
八、如果是WEBLOGIC6.1<br>
TUXEDO的配置不变<br>
WEBLOGIC中从(2)开始配置.其中:DMCONFIG.XML中的,因为WEBLOGIC6.1中找不到wtc_config_1_0.dtd,可从WEBLOGIC6.1拷贝一个到WEBLOGIC6.1的安装目录下:<br>
如D:\WEBLOGIC6.1,并在DMCONFIG.XML指定它的路径<br>
&lt;!DOCTYPE BDMCONFIG SYSTEM &quot;file:D:\weblogic6.1\wtc_config_1_0.dtd&quot;&gt;<br>
<br>
九、失败处理：<br>
如果失败,可设置weblogic.wtc.gwt.WTCStartup的跟踪选项，即把它的参数设置为： BDMCONFIG=D:\simpapp\bdmconfig.xml,TraceLevel=20000<br>
并请查看WEBLOGIC,TUXEDO的日志.做相应的处理。</div> <a href="http://hi.baidu.com/yungts/blog/item/476c89ec286b7f2063d09f57.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B9%A4%D7%F7">工作</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/476c89ec286b7f2063d09f57.html#comment">查看评论</a>]]></description>
        <pubDate>2008-11-11  16:03</pubDate>
        <category><![CDATA[工作]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/476c89ec286b7f2063d09f57.html</guid>
</item>

<item>
        <title><![CDATA[男人应该做的16件事&#60;转&#62;]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/87b39aa18342798c46106469.html]]></link>
        <description><![CDATA[
		
		<p>1.事业永远第一 <br>
虽然金钱不是万能的,但没有钱是万万不能的,虽然这句话很俗,但绝对有道理,所以30岁之前,请把你大部分精力放在你的事业上.</p>
<p>2,别把钱看得太重 　　 <br>
不要抱怨自己现在工资低,银行存款4位数以下,看不到前途,现在要做的就是努力学习,即使你文凭再高,怎么把理论运用到实践还是需要一个很长的锻炼过程,社会永远是一所最博大的大学,它让你学到的知识远比你在学校学到的重要得多,所以同样,你也别太介意学历低.30岁之前靠自己能力买车买房的人还是极少</p>
<p>3,学会体谅父母 　　 <br>
别嫌他们唠叨,等你为人父了你就知道可怜天下父母心,在他们眼里你还是个孩子,但他们真的老了,现在得你哄他们开心了,也许只要你的一个电话,一点小礼物,就可以让他们安心,很容易做到.</p>
<p>4,交上好朋友 　　 <br>
朋友对你一生都影响重大,不要去结识太多酒肉朋友,至少得有一个能在关键时刻帮助你的朋友,如果遇到这么一个人,就好好把握,日后必定有用,不管他现在是富还是穷.</p>
<p>5,别太相信爱情　(永远都会相信，即使不再需要．区别在于愿不愿意再付出感情而已．) 　　 <br>
心中要有爱,但请别说也别相信那些琼瑶阿姨小说里面的山盟海誓,世上本无永恒,重要的是责任,但女人心海底针,心变了,一切都成枉然,你要做的就是该出手时就出手,该放手时别犹豫.30岁之前的爱情不是假的,但只是大多数人都没有能真正把握好的能力,所以学会量力而行.</p>
<p>6,别担心至今还保留初吻（没担心过） <br>
爱情不在多而在精,别以为自己20多岁还没碰过女孩子就害怕自己永远找不到老婆.以后你会有很多机会认识女孩子,要知道这个社会虽然男人多于女人,但现实是女人其实比男人更担心这个问题.男人30一枝花,你在升值而不是贬值,成熟的爱情往往更美丽更长久,所以不要像疯狗一样看到女孩就想追,学会品味寂寞.</p>
<p>7,不要沉迷于任何东西 　　 <br>
所谓玩物而丧志,网络游戏是你在出校门之前玩的,你现在没有多余的时间和精力花费到这上面,否则你透支的东西以后都得偿还.一个人要有兴趣,爱好,但请分清楚轻重.</p>
<p><br>
8,年轻没有失败 　　 <br>
不要遇到挫折就灰心,年轻人要时刻保持积极向上的态度.失败了,重来过;失去了，再争取别的。错过了，要分析，下次来,要把握；幼稚了，下次，成熟点。不要紧，会好的，哪怕到了极点，也不要放弃，相信一定可以挺过去。不要消极，会好的。曾经的错，过去了，总不能回味在过去。现在的，很好，累完了，很舒服。不要伤心，总会有人在支撑你。</p>
<p>9,不要轻易崇拜或者鄙视一个人 <br>
人都有偶像,但请拥有你自己的个性.不要刻意去模仿一个人,因为你就是你,是唯一的,独一无二的,要有自信.也不要全盘否定一个人,每个人是有价值的,如果你不能理解他,也请学会接受.</p>
<p>10,要有责任心. 　　 <br>
不管你曾经怎样,但请从现在开始做一个正直的人.男人要有责任心,无论是工作还是生活上,一个有责任心的人才能让别人有安全感,才能让别人觉得你是一个值得信赖的人.我们不要懦弱,但请不要伤害爱你的人和你爱的人,尤其是善良的女孩,因为这个世界善良的女孩不多了,即使不想拥有,但也请让她保持她美丽的心.</p>
<p>11,男人的外貌并不重要. 　　 <br>
不要为自己的长相身高而过分担心,一个心地善良,为人正直的男人远比那些空有英俊相貌,挺拔身材但内心龌龊的男人要帅得多.如果有人以貌取人,请不要太在意,因为你不用去为一个低级趣味的人而难过.</p>
<p>12,学会保护身体 　　 <br>
不要以为现在抽烟喝酒,熬夜通宵也没什么事.那是因为你的身体正处于你一生的黄金时段.30岁以后你就能明白力不从心这个词的意义了,身体是革命的本钱,没有好的身体什么也做不了,所以要尽量让自己过有规律的健康生活.</p>
<p>13,别觉得一事无成. 　　 <br>
你现在还没有资格谈成功,当然如果你有千万资产的除外.一开始太固定的职业并不一定是好事,或许在不断的改行当中,你会学到更丰富的知识,而且可以挖掘出自己的潜能,找到最适合你的工作.</p>
<p>14,请认真工作 　　 <br>
即使你现在的工作再怎么无聊再怎么低级,也请你认真去对待,要知道任何成功人士都是从最小的事做起,或许你现在学不到多么了不起的知识,但起码你要学会良好的工作态度和工作方法,这对以后很重要.</p>
<p>15,请认真对待感情. 　　 <br>
不要羡慕那些换女人像换鞋一样的花花公子,逢场作戏的爱情只是让你浪费时间浪费精力,一个人最痛苦的不是找不到爱人,而是心中没有了爱,当你把我爱你3 个字变成你最容易说的一句话时,那么你在爱情的世界里已经很难找到真正的幸福了.爱情没有公平,总有一个人比对方付出得多,即使没有结果,也别觉得不值, 因为你的付出不光是为了她,也是为了你自己的爱,为爱付出是很可贵的,赞自己一下.</p>
<p>16.请留一点童心 　　 <br>
在内心深处,哪怕只是一个很小的角落里,请保持一份童心,不是幼稚,但有的时候单纯一点会让你很快乐.所以不要太计较得失,生活本无完美.</p> <a href="http://hi.baidu.com/yungts/blog/item/87b39aa18342798c46106469.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%CB%E6%CF%EB">随想</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/87b39aa18342798c46106469.html#comment">查看评论</a>]]></description>
        <pubDate>2008-11-03  19:23</pubDate>
        <category><![CDATA[随想]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/87b39aa18342798c46106469.html</guid>
</item>

<item>
        <title><![CDATA[Silverlight 2.0 八大亮点功能带来全新体验]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/e6cdea80628ef9d19023d914.html]]></link>
        <description><![CDATA[
		
		<p> </p>
<p>北京正式发布了Microsoft Silverlight 2.0。Silverlight 2.0是业界通过网络浏览器进行应用和媒体体验开发以及交付的最全面的强大解决方案。在Silverlight 1.0的基础上Silverlight 2.0 将新增包括.NET Framework子集、内置控件、丰富的样式模板、全面网络支持、.NET 语言支持以及DRM等一系列强大的新功能和工具，能够帮助设计及开发人员更好地进行合作，为用户带来最佳的跨平台、跨浏览器互联网体验。</p>
<p>作为新一代互联网多媒体及交互式内容播放应用插件，Silverlight是有史以来发展最快的浏览器插件之一，并得到了众多用户和合作伙伴的一致好评和大力推介，全球1/4的计算机用户已享受到其带来的全新体验。国内知名网络平台百度、淘宝、腾讯、新浪以及网络加速服务提供商蓝汛科技、社区平台与服务提供商康盛创想等合作伙伴均已采用Silverlight技术为用户带来了至酷至炫的跨平台、跨浏览器的互联网应用体验。伴随着Silverlight 2.0的发布，微软还将继续通过各种措施实现互操作性的承诺和对开源社区的支持。</p>
<p>面向新一代网络体验的功能<br>
Silverlight是微软公司于2007年9月正式推出的新一代跨平台、支持多种浏览器的互联网多媒体呈现技术。伴随互联网的迅猛发展，微软不断实现&ldquo;软件+服务&rdquo;战略。Silverlight 2.0的发布将会为用户带来跨平台、跨浏览器的丰富应用体验。</p>
<p>全新 Silverlight 2 的功能具有以下亮点：<br>
1.支持 .NET Framework，具有丰富的基类库。这是完整 .NET Framework 的兼容子集。</p>
<p>2. 强大的内置式控件，包括 DataGrid、ListBox、Slider、ScrollViewer、Calendar 控件等</p>
<p>3.支持先进的皮肤与模板功能。这使得用户能够轻松地自定义应用程序的外观与感觉。</p>
<p>4.深度缩放技术。实现了无与伦比的互动性以及超高分辨率图像的导航。</p>
<p>5.全面的网络支持。开箱即用支持实现了 REST、WS*/SOAP、POX、RSS 和标准 HTTP 服务的调用，使用户得以创建能够与现有后端系统轻松整合的应用程序。</p>
<p>6.拓展的 .NET Framework 语言支持。与其他运行时不同，Silverlight 2 支持各种编程语言，其中包括 Visual Basic、C#、JavaScript、IronPython 和 IronRuby，使熟悉其中一种语言的开发人员能够更轻松地重新定位其现有的技能。</p>
<p>7.先进的内容保护功能。目前包括 PlayReady 提供支持的 Silverlight DRM，针对 Silverlight 互联体验提供强大的内容保护。</p>
<p>8.服务器可扩展性提升，对广告客户的支持进一步扩大。包括全新的流下载和渐进式下载能力、卓越的搜索引擎优化技术，以及下一代流内（In-stream）广告支持。</p>
<p>广泛的普及与应用<br>
自Silverlight推出以来，其采用率持续快速提高, 一个包括150多个合作伙伴和数万应用产品的生态系统正日益壮大。在北京2008年奥运会期间，运用了 Silverlight 的 NBCOlympics.com 在全球范围内创造了超高访问量。与此同时，Silverlight在国内的应用也在如火如荼的展开。百度、淘宝、腾讯、新浪、蓝汛科技、商康盛创想等都已利用Silverlight 搭建起了新一代的互联网应用平台，所推出的百度音乐抢鲜族、淘宝商城店铺银光版、腾讯滔滔、新浪音乐频道等应用为用户带来了更加丰富的互联网体验。</p>
<p>微软 .NET 开发部门公司副总裁 Scott Guthrie 表示：&ldquo;一年前我们刚刚推出了 Silverlight，现在全球已有四分之一的个人用户在使用已安装 Silverlight 的电脑。Silverlight彻底改进了开发及设计人员在网络上开发应用产品的方式。此次发布将进一步加快我们使 Silverlight、Visual Studio 和 Microsoft Expression Studio 成为卓越的媒体和富互联网应用体验开发和交付解决方案的进程。&rdquo;</p>
<p>腾讯科技技术合作总监刘楠表示：&ldquo;腾讯致力于为用户提供一站式在线生活服务。我们在08年与微软进行了愉快的合作，同时期待通过全新的Silverlight 2技术，为滔滔和QQLive用户带来更加炫酷的在线体验。&rdquo;</p>
<p>开放性与互操作性的持续承诺<br>
微软宣布，计划通过向法国 IT 解决方案供应商和 Eclipse 基金会成员 Soyatec 提供资金为开发 Silverlight 应用提供更多工具支持，从而启动一个将先进的 Silverlight 开发能力整合进 Eclipse 集成开发环境的项目。Soyatec 计划在 SourceForge 上根据 Eclipse Public License 1.0 版本发布该项目，并将它提交给 Eclipse 基金会作为一个开放的 Eclipse 项目。</p>
<p>微软还将发布 Silverlight Control Pack ，并在 MSDN 上公布 Silverlight Extensible Application Markup Language (XAML) 词汇的技术规范。SCP 将扩大Silverlight强大的内置控制控件集。SCP将根据获得开放源代码促进会 (Open Source Initiative) 批准的许可证&ldquo;微软许可授权&rdquo;进行发布，SCP中包括 DockPanel、ViewBox、TreeView、Accordion 以及 AutoComplete 等控件。根据开放规格承诺书 (Open Specification Promise) 发布的 Silverlight XAML 词汇规范将更好地支持第三方独立软件开发商 (ISV) 为 Silverlight 开发能够读写 XAML 的产品。</p>
<p>除了为免费Eclipse IDE 集成开发环境的进一步开发提供资金以外，微软目前还为 Silverlight 提供 Visual Studio 2008 和 Expression Studio 2等先进工具。此外，微软还向可免费下载的 Visual Web Developer 2008 Express Edition提供支持。</p> <a href="http://hi.baidu.com/yungts/blog/item/e6cdea80628ef9d19023d914.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B6%C1%CD%F8%D5%AA%C2%BC">读网摘录</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/e6cdea80628ef9d19023d914.html#comment">查看评论</a>]]></description>
        <pubDate>2008-10-24  22:44</pubDate>
        <category><![CDATA[读网摘录]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/e6cdea80628ef9d19023d914.html</guid>
</item>

<item>
        <title><![CDATA[XUL]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/a1858fc39d8ea353b219a81e.html]]></link>
        <description><![CDATA[
		
		XUL是英文&ldquo;XML User Interface Language&rdquo;的首字母缩写。它是为了支持Mozilla系列的应用程序（如Mozilla Firefox和Mozilla Thunderbird）而开发的使用者界面标示语言。顾名思义，它是一种应用XML来描述使用者界面的标示语言。XUL可以读作&ldquo;zool&rdquo;，即类似&ldquo;cool&rdquo;的发音。 <br>
<div class="spctrl"> </div>
　　虽然XUL并不是一种公开的标准，但它重用了许多现有的标准和技术，包括CSS、JavaScript、DTD和RDF等。所以对于有网络编程和设计经验的人士来说，学习XUL比学习其他使用者界面标示语言相对简单。 <br>
<div class="spctrl"> </div>
　　使用XUL的主要好处在于它提供了一套简易和跨平台的widget定义。这节省了编程人员在开发软件时所付出的努力。 <br>
<div class="spctrl"> </div>
<br>
<div class="spctrl"> </div>
　　引言 <br>
<div class="spctrl"> </div>
　　一个XUL界面一般包含以下三个部份： <br>
<div class="spctrl"> </div>
　　内容: 定义使用者界面的XUL档 <br>
<div class="spctrl"> </div>
　　Skin: 定义程序外观的CSS和图像档 <br>
<div class="spctrl"> </div>
　　Locale: 定义界面字串的DTD档（为了软件本地化） <br>
<div class="spctrl"> </div>
<br>
<div class="spctrl"> </div>
　　应用 <br>
<div class="spctrl"> </div>
　　虽然XUL的设计原意是为了创做Mozilla程序及其扩充套件，但事实上人们也能利用它来编写基于HTTP的网络应用程序。基本安全性的原则，很多需要特权的XPCOM物件在无特权的XUL文件上都不能使用。唯有使用数码签署的脚本才享有此种特权。就算如此，这些文件亦受网页浏览器的限制，例如不能加载远端的XUL、DTD和RDF文件。 <a href="http://hi.baidu.com/yungts/blog/item/a1858fc39d8ea353b219a81e.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/web%C7%B0%B6%CB%BF%AA%B7%A2%D2%BB%D0%A9%B3%A3%D3%C3%B5%BD%B5%C4%D6%AA%CA%B6">web前端开发一些常用到的知识</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/a1858fc39d8ea353b219a81e.html#comment">查看评论</a>]]></description>
        <pubDate>2008-09-19  22:36</pubDate>
        <category><![CDATA[web前端开发一些常用到的知识]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/a1858fc39d8ea353b219a81e.html</guid>
</item>

<item>
        <title><![CDATA[成功人生三步走&#60;转&#62;]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/6399e65c7408c245fbf2c08e.html]]></link>
        <description><![CDATA[
		
		我们的人生的确也需要管理，这是我最近一两年才真正深刻体会到的事。国外讲人生规划，国外企业讲职业生涯规划，几年前听到时觉得新奇，有那么点新意，但听过就忘了，体会不深。最近一两年思考多了，凡事都能自己思考，有自己的独立见解了，阅历广阔一点了，成功失败都经历过一点了，人思想开始成熟了，这个原来一直没有关注的问题才一点点突现出其极其重要的现实价值。 <br>
<br>
　　成功人士之所以成功，多半是因为他们在有意识地管理他们的人生。当然，偶然因素即所谓的运气，永远是存在的，但运气是可遇不可求的，不在我们一般管理科学的研究范围。而且哪怕就是运气，也可以运用概率论来进行模拟研究。显然，一个从不买彩票的人是不可能中大奖的，当然，到底什么样的买彩票方法才能提高中奖机会，有人是在那里研究，与做股票一样，甚至形成了许多理论，也有不少人信奉，这也是事实。 <br>
　　 <br>
　　但从大的概率来讲，从事物发展变化的必然性来讲，从人们自己可以掌握控制的成功因素来讲，运气只是额外因素，不能够对之孜孜以求，更不能以之为成功主要因素和以其为成功基础（歹徒和冒险家除外，这些人正是以此为乐以此为生为死），因此，显然不能倚之为我们走向成功的可靠因素。可靠的因素主要是那些实实在在的将我们导向成功目标的综合性的现实努力。只有这些努力是我们可以确切把握，并且在正常情况下，必然有助于我们一步步接近成功目标。而如果我们所有这些努力都是有意识在做出的，那么，我们实际上就是在管理着我们的人生。 <br>
　　 <br>
　　综合许多伟大人物的经验，并结合我自己个人的人生体会，我感到管理好自己的人生不是一件容易或轻松的事。托尔斯泰说：人生是一桩沉重的工作，我很早就有体会了。当然，&ldquo;革命人永远是年轻，&rdquo;也是对的，人生也是一桩难得并且不可重复的乐事。正因为如此，人生的成功不能以苦乐来评价划分。人生可以是苦的但却是成功的，人生也可以是乐但却是失败的，相信我们身边不缺乏这样有趣的生动例子。 <br>
　　 <br>
　　就我个人而言，我是完全不同意流行的成功学所定义的成功概念的。我倾向于将人生的成功定义为人生的幸福。幸福更多地是一种主观感受，虽然以客观为基础，但是对客观的有效修正或提升。因此，我认为成功的人生就是幸福的人生，也只有幸福的人生才能真正称得上是成功的人生，你表面或在现实生活中再成功，但是你根本感觉不幸福，那么，在我看来，这就是失败的人生。做出这样的定义，我们就明确否定了&ldquo;有钱的人生就是幸福的人生&rdquo;、&ldquo;轻松的人生就是幸福的人生&rdquo;等一些错误理解。幸福和成功的人生是你实现了你自己想要的目标的人生，过着自己内心想要过的那种生活或人生。这也就是社会心理学家常说的实现自我。 <br>
<br>
这也就是为什么许多老革命人老红军觉得在延安那么艰苦的时期，反而是他们人生觉得最幸福的根本原因。他们追求并且慢慢接近着自己的理想，他们在为自己的理想而努力奋斗，他们除了自己的奋斗几乎一无所有，但他们根本不需要别的，他们已经足够。这样的人生，何尝不也是我们现在许多人想过的理想有人生？!有意义，有价值，而不是飘浮、随波逐流。 <br>
　　 <br>
　　 因此，拿破仑是幸福的，岳飞也是幸福的，做隐士不做皇帝的两位商朝古人伯夷叔齐是幸福的，文天祥是幸福的，毛泽东是幸福的，……因而他们也是成功的。 <br>
　　 <br>
　　那么，伟大人物是这样一个道理，凡人怎么样才能算是成功人生呢？道理是一样的，实现自己的能量，过上自己真正想过的生活。试举一个垃圾工为例来说明。垃圾工客观上是能力低下、社会地位低下、经济能力匮乏的低层城市居民的典型代表。这样的人能不能获得一个成功的人生？我个人认为是能的。能的关键在哪里？能的关键在于确认自我。确认自我是成功人生管理三步曲的起点。 <br>
　　 <br>
　　 <br>
　　老柏拉图说，&ldquo;没有经过思考的人生是不值得过的人生。&rdquo;但丁说，&ldquo;人不能象走兽一样活着，而应当追求知识和美德。&rdquo;歌德作为一代伟人在《浮士德》里，更是将创造和思考，为人类而不是为自己建功立业，视为人生的最高幸福，而整部《浮士德》作品更是可以看作是一部个人或人类集体的精神追寻史。在我看来，寻找什么是真正幸福的人生这一问题的答案，才是老歌德费时近六十年顽强写作这一巨著的根本冲动。 <br>
　　 <br>
　　在上一篇文章里，我们回答了成功人生到底是什么。最后我们谈到了伟人可以成功，凡人例如垃圾工能否也拥有成功人生？答案是能够拥有。能够拥有的前提是他能够确认他的自我。谈到自我，我们不能不谈到伟大的佛洛伊德先生。是他首先创立了完整的自我理论，把人的自我分成本我、他我和超我三大部分。这样子一个人就有了三个自我，那么，人们要确认自我和实现自我指的是哪个自我呢？ <br>
　　 <br>
　　这本是个纯精神分析学问题，我不是精神分析专家，但我有自己的一点见解。我个人认为是这样的：这三个概念的划分没有错，它们不仅在理论上是存在的，而且在现实中也是存在的，而且它们的划分在理论与实际上仍然是清晰的，这是其一；其二，我个人认为，确认自我，主要还是指确认本我，即我本来或真正是怎么样的，而实现自我则指的是在实现本我的同时，同时实现他我和超我。 <br>
　　 <br>
　　为什么会是这样的呢?这主要是因为人的个社会的存在，他不能够脱离了社会环境中的自我即超我与他我，而独立地实现本我。这使我想到了尼采这个经典的例子。尼采作为超时代的哲学家，他的本我一直与他我及超我无法协调地统一起来，这给他造成了极大的精神痛苦。所以他只能来往于巴黎和乡间别墅、孤家寡人和上流社会的红人之间，在众人中感受到自己本我的煎熬，在孤独中感受到自己必须属于某一群人。结果他的情绪变得反复无常和极其暴怒。但就是这样一个人，最终也确认了真正的自我，本我，一个卓越的哲学家和人类思想导师，他知道自己的价值，当所有人都否认他的时候，他仍然坚信自己的价值，并不为他人的错误见解和要求让步。 <br>
<br>
因此，有时我想，尼采大部分时候是痛苦的，他痛苦的不是他的思想和本我，而是他的思想和本我得不到社会应有的认同。但总体而言，尼采却也是幸福因而也是极其成功的。这个人具有如此巨大的才能和勇气，以致于可以独自自己一个人确认自己的价值，他采取的方法是将超我和他我硬性地融化、统一于本我，让不接受他本我的社会、他人惊诧和难受。虽然他最后忍受不了社会的误解和排斥，由于孤独而发疯，但他已经完成了自己的使命，他完成对于欧洲精神或欧洲灵魂的重塑，他强调和鼓吹的哲学的本质是人应该在精神上变得强壮和有力度，这个孤独可怜的人在思想的全过程中，必然会感到一阵阵智慧升腾的狂喜。我想，这就是他作为一个哲学家的成功和幸福。成功和幸福的评判在于他是否成为了他想成为的人，尼采显然已经成为了他想成为的人，尽管当时社会固执地不予以认同。 <br>
　　 <br>
　　这又引出了一个分命题，从本质上来讲，成功与否，与社会或他人评价无关，社会、他人评价有时与成功相符合，有时却正好相左。这就又重申了我们最早的成功定义，成功并非社会评价性质的，而是当事自我的感受。因此，我们又可以引出第二个分命题，从本质上讲，成功与他人或社会对你的期望或要求无关，只与你内心真正的愿望和理想有关。如果你恰好满足了他人或社会对你的期望，其根本原因不是因为社会、他人期望你如此，因而你就如此；而是因为你自己真心期望自己如此，或真心认同社会、他人对你的要求。完全认同于社会或他人如父母的期望，并以此为乐为成功，这也不失为成功人生之一种。 <br>
　　 <br>
　　一个人要真正确认自我不是一件易事。我们有许多人，活到老了，还不知道或者不能够按照自己内心的愿望活着，人生好象就真是一场梦。是不是这样我们就放弃了对自己的权利,象中国俗语所教导地&ldquo;糊糊涂涂做大官&rdquo;呢？我看不至于。事实上，无论在任何条件下，人并不总是处于被动地位而被社会洪流所左右，随着时代的进步，人们对于自己的人生有着越来越大的选择权和自由空间，因而能够基本把握自己的人生。这就给确认自我和实现自我提供了良好的社会基础。就是在奴隶社会，中外历史上也不乏出身卑贱而成功的著名例子。 <br>
　　 <br>
　　我们回到垃圾工人生的典型例子上来。垃圾工怎么也能够获得幸福呢？这是因为垃圾工这一身份或定位只是社会或他人看待某个从事垃圾清理工作的复杂的多面的人的一个超我与他我面具，而并不真正代表从事垃圾清理工作这个人真正的面目。这个人有可能还是个艺术家、科学家或其他的什么，这个人还是儿子或其他人的父母等等，垃圾工这一定义只看到了他复杂人生的一个面，以一个面来概括一个整体就会犯下以偏概全的错误。同理，农民也不一定就不幸福或不成功。关键在于他们能否正确地确认自我。 <br>
<br>
谈到确认自我，我们自然会追问怎么才能确认自我。帮助人们确认自我是西方成功学的核心内容和根本成就，可惜的是成功学片面地将成功局限于金钱上的获取和累积程度这一错误的向度。如果将成功正确定义为多方面地实现自我，那么，成功学绝对是一门非常重要、必要和有益的人生学问。怎么确认自我的确是一个复杂的问题，我打算在完成了这一小系列短文后，再做更加深入细致的研究。 <br>
<br>
　　 确认自我需要付出艰苦的努力和一定的时间成本。确认自我根本的工作在于做出以下几点基本分析。 <br>
　　 <br>
　　 一， 个人志趣分析 <br>
　　 <br>
　　 自我认识首先必须了解真正的思想和情绪方面的自己。要认真和实事求是地分析，自己的兴趣爱好和厌恶之物是什么，要分析自己内心真正的想法和愿望，明明白白地找出自己真正想要的、对自己来说有意义和价值的东西。 <br>
　　 <br>
　　 二， 社会需求分析 <br>
　　 <br>
　　任何人都不是孤立地存在于世上，而是生存于现实的特定的社会环境之中。个人的成功、幸福、发展，必须以社会的某些客观条件为前提，成功幸福的人生往往是领先超前或同步于、融合于当代社会发展大潮。个人人生的价值和意义，只有放在广阔真实的社会背景之下，才能显示出其真谛。 <br>
　　 <br>
　　 三， 家庭需求分析 <br>
　　 <br>
　　对于正常人来讲，成功人生还必须考虑一下家庭对自己人生的需求。尤其对于中国人来说，家庭对人生成功具有十分重要的意义。当然，事实上我们存在着对于家庭需求的多种处理方法。你可以选择独身，也可以选择特定的对于双方来说都有意义的婚姻。但绝不能因为家庭的需求，牺牲自我发展的基本方向。 <br>
　　 <br>
　　 四， 个人SWTO分析及人生定位 <br>
　　 <br>
　　 以上三点构成了我们确认自我的三个维度。如果我们把家庭纳入社会范围简化成个人和社会两个维度来考虑，那么，我们就可以对自己的人生发展进行一次战略规划常用的SWTO分析如下。 <br>
　　 <br>
　　很明显，人们一般应该选择图中A区，而尽量避免B区选择。A区为个人兴趣爱好及个人才智能力优势与社会、家庭所提供的发展机会相配合的区域，是人生定位的上选，成功的概率很高。B区则相反，个人处于劣势和排斥的区域，是人生发展应该避开的暗礁区，不宜于作为成功人生的定位。 <br>
<br>
确认自我必然引向人生定位。人生定位即表明在我们一生当中，我们希望自己并且能够使自己成为一个什么样的人。人生定位是人生发展规划的第一步，人生发展策略规划则是人生发展规划的第二步。分解人生发展阶段、制定各阶段目标措施则是完成人生发展规划的最后一步。 <br>
　　 <br>
　　 人生SWTO分析图 <br>
　　　　 <br>
　　人生定位是确认自己人生的理想和目标，即确认你自己应当成为什么样的人。不同的人不同的情形会有不同的定位。人生定位很重要的一个工作是找到你的理想人格、理想人生的榜样人物，即为自己树立一个代表追求目标的典型。比如说，我个人的偶像是孔子、歌德、莎士比亚、曹操、拿破仑和毛泽东。在这几个人的身上集中了我想要自己实现和达到的人生目标。 <br>
　　 <br>
　　人生发展策略规划也是人生规划很重要的一步。人生策略规划指的是人们通过什么样的方法或途径取得成功。空谈很难说清。举个例子，拿诸葛亮来说事。诸葛亮先是长期躬耕垄亩，然后是结交至友，借助师友和自我宣传推广自己，以便声播天下，择良主而侍。&ldquo;淡泊以明志，宁静以致远&rdquo;就集中概括了诸葛亮的成功人生策略。 <br>
　　 <br>
　　 光有人生规划还不行，还必须象战略规划一样，将人生的大目标大方向和大策略，分解成为人生不同发展阶段的阶段目标及其具体措施，整个人生规划才能初步完成。根据我个的经验，人生规划大体上可以分成以下几个阶段： <br>
　　 <br>
　　A，12-20岁：人生学习期 <br>
<br>
　　B，20-30岁：人生进修期 <br>
<br>
　　C，30-40岁：人生巩固期 <br>
<br>
　　D，40-70岁：智慧奉献期 <br>
<br>
　　E，70-80岁：人生总结期 <br>
　　 <br>
　　在以上时期划分清晰的前提下，我们还必须制定详细的年度奋斗计划。总体来说，在不同的时期，需要实现的阶段性目标不同，实现目标的措施也不同。我个人的建议是应该尽量将不同性质和类别的目标清晰化，分成技能学习目标、文化修养目标、职业目标、经济目标、生活目标、情感目标、政治目标等等，目标越清晰越好，对目标的界定越明确越好。如一年之内读哪些读多少书，一年之内在某一行业做到什么职位等等。长期和短期人生规划的目的是为了保证人生大的目标能够不沦为空想，而是一点点在一天天的推进中逐步落实。 <br>
　　 <br>
　　好的人生离不开好的规划，成功人生离不开成功的规划及在正确规划指导下的持续奋斗。人生如大海航行，人生规划就是人生的基本航线，有了航线，我们就不会偏离目标，更不会迷失方向，才能更加顺利和快速地驶向成功的彼岸。然而，有了规划，就一定会有成功的人生吗？也不一定。成功人生管理三步曲还缺少不了最后一步 知行合一，持之以恒地实施人生规划，方能真正创造出如你所愿的美好人生。 <br>
　　 <br>
　　 成功人生的第三步 如何实施人生规划，在市面上流传的各类成功学书籍里已经论述得十分详尽，因此我感到没有必要再重拾人牙慧。有兴趣的朋友可随便找本成功学书，均会得到大量&ldquo;如何行动起来&rdquo;的信息。 <a href="http://hi.baidu.com/yungts/blog/item/6399e65c7408c245fbf2c08e.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%D6%B0%B3%A1">职场</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/6399e65c7408c245fbf2c08e.html#comment">查看评论</a>]]></description>
        <pubDate>2008-09-08  14:28</pubDate>
        <category><![CDATA[职场]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/6399e65c7408c245fbf2c08e.html</guid>
</item>

<item>
        <title><![CDATA[获取标签文本内容的通用函数.]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/5a40f7ca3ed59b40f21fe7bc.html]]></link>
        <description><![CDATA[
		
		<p>获取文本内容在IE浏览器可以使用innerText，但FF不支持。</p>
<p>一个获取文本内容的通用函数。</p>
<p>function text(e){</p>
<p>var t=&quot;&quot;;</p>
<p>//如果传入的是标签，则继续遍历其子结点</p>
<p>//否则假定它是一个数组</p>
<p>e=e.childNode||e;</p>
<p>//遍历所有的字节点</p>
<p>for(var i=0;i&lt;e.length;i++)</p>
<p>//如果不是结点，追加其文本值</p>
<p>//否则，递归遍历所有的结点的子结点</p>
<p>t+=e[i].nodeType!=1?e[i].nodeValue:text(e[i].childNodes);</p>
<p>}</p>
<p>//返回匹配的文本</p>
<p>return t;</p>
<p>}</p>
<p>}</p> <a href="http://hi.baidu.com/yungts/blog/item/5a40f7ca3ed59b40f21fe7bc.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/web%C7%B0%B6%CB%BF%AA%B7%A2%D2%BB%D0%A9%B3%A3%D3%C3%B5%BD%B5%C4%D6%AA%CA%B6">web前端开发一些常用到的知识</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/5a40f7ca3ed59b40f21fe7bc.html#comment">查看评论</a>]]></description>
        <pubDate>2008-09-08  13:48</pubDate>
        <category><![CDATA[web前端开发一些常用到的知识]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/5a40f7ca3ed59b40f21fe7bc.html</guid>
</item>

<item>
        <title><![CDATA[通过类查找标签]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/c16e8144d843d584b3b7dc55.html]]></link>
        <description><![CDATA[
		
		<p>DOM中定义了通过ID获取节点，但实际的工作中常遇到需要通过Class获取标签。下面函数实现通过Class名称获取标签结点。</p>
<p>function hasClass(name,type){</p>
<p>var r=[];</p>
<p>//定位到类值上</p>
<p>var re=new RegExp(&quot;(^|\\s)&quot;+name+&quot;(<a href="file:///s:$">\\s|$</a>)&quot;);</p>
<p>//限制类型的查找，或者遍历所有的标签</p>
<p>var e=document.getElementsByTagName(type||&quot;*&quot;);</p>
<p>for(var i=0;i&lt;e.length;i++)</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;  //如果标签拥有指定类，把它添加到函数的返回值中</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;  if(re.test(e[i]))r.push(e[i]);</p>
<p>&nbsp;&nbsp;&nbsp;  返回符合的元素列表</p>
<p>&nbsp;&nbsp;&nbsp;  return r;</p>
<p>}</p>
<p> </p>
<p>name传递的是Class名称，type是标签的名称。</p> <a href="http://hi.baidu.com/yungts/blog/item/c16e8144d843d584b3b7dc55.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/web%C7%B0%B6%CB%BF%AA%B7%A2%D2%BB%D0%A9%B3%A3%D3%C3%B5%BD%B5%C4%D6%AA%CA%B6">web前端开发一些常用到的知识</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/c16e8144d843d584b3b7dc55.html#comment">查看评论</a>]]></description>
        <pubDate>2008-09-06  12:56</pubDate>
        <category><![CDATA[web前端开发一些常用到的知识]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/c16e8144d843d584b3b7dc55.html</guid>
</item>

<item>
        <title><![CDATA[Tuxedo]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/2d472ad1536a7ad5562c8409.html]]></link>
        <description><![CDATA[
		
		Tuxedo是一个客户机/服务器的&ldquo;中间件&rdquo;产品，它在客户机和服务器之间进行调节，以保证正确地处理事务。Tuxedo是一个事务处理(TP)监督器，它管理联机事务处理(OLTP)系统(参见&ldquo;事务处理&rdquo;)操作的事务。客户通过结构化查询语言(SQL)调用，或其它类型的请求，产生对服务器的请求。这个事务处理监督器确信，正确地进行了修改，以保证数据的完整性。这在一个事务可以改变多个位置的数据库的分布式数据库环境是非常重要的。这个事务处理监督器使用双阶段提交，以保证所有的数据库都已经接收和认可了这些数据的正确性。否则，这个数据库返回它的事务前状态。<br>
　　事务监督器从前都是与大的大型计算机系统联系在一起的，但是Tuxedo的设计是为了在不昂贵的基于UNIX的系统上运行。AT&amp;T最初是作为它自己使用的联机事务处理开发Tuxedo的。虽然Tuxedo必须在U-NIX系统上运行，但是它可以与DOS、OS/2、Windows和UNIX客户一起工作。它还使用通用的通信协议，如传输控制协议/因特网协议(TCP/IP)和网络基本输入输出系统(NetBIOS)，并且可以在这些环境提供分布式处理支持。例如，它可以根据请求的类型，服务请求从一个客户选择路由到一个特定的服务器。Tuxedo的基本特征是它的联机事务处理系统，但是，Tuxedo也工作于集成关系型的平面文件，以及层次数据库系统。<br> <a href="http://hi.baidu.com/yungts/blog/item/2d472ad1536a7ad5562c8409.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B9%A4%D7%F7">工作</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/2d472ad1536a7ad5562c8409.html#comment">查看评论</a>]]></description>
        <pubDate>2008-09-04  17:12</pubDate>
        <category><![CDATA[工作]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/2d472ad1536a7ad5562c8409.html</guid>
</item>

<item>
        <title><![CDATA[Portlet]]></title>
        <link><![CDATA[http://hi.baidu.com/yungts/blog/item/c73c80ecbd9f5e3b2797917b.html]]></link>
        <description><![CDATA[
		
		Portlet是基于java的web组件，由portlet容器管理，并由容器处理请求，生产动态内容。Portals使用portlets作为可插拔用户接口组件，提供信息系统的表示层。作为利用servlets进行web应用编程的下一步，portlets实现了web应用的模块化和用户中心化。portlet规范，即jsr（java specification request）168，是为了实现portal和portlet的互操作。它定义了portlet和portlet容器之间的和约，让portlet实现个性化、表示和安全的api集。规范还定义了怎样在portlets应用中打包portlets。 <br>
<br>
随着企业级portal的大量涌现，不同提供商创建了不同的portal组件api，即portlet。不同的不兼容给应用服务商，portal用户和portal server提供商都造成了问题。为了消除这些问题，jsr168，即portlet规范提出，从而提供portlet和portal间的互操作性。jsr168定义，portlet是基于java的web组件，portlet容器处理request并生成动态内容，管理portlet。portal使用portletportlet作为可插入用户接口组件，提供信息系统的表示层。 <br>
<br>
jsr168的目标是： <br>
<br>
定义portlet的运行时环境，即portlet容器 <br>
<br>
定义portlet和portlet容器之间的api集 <br>
<br>
提供portlet存储易失数据和持久数据的机制 <br>
<br>
提供portlet包含servlet和jsp的机制 <br>
<br>
定义方便部署的portlet打包方法 <br>
<br>
提供jsr168规范下的portal的二进制portlet便携性 <br>
<br>
通过WSRP（web service for remote portlet）协议运行符合jsr168规范的远程portlet <br>
<br>
IT界已经广泛的接受了jsr168规范。所有的portal领域主要公司都是jsr168专家组的成员：Apache,AGT,BEA,Boeing,Borland,Broadvision,Citrix,EDS, Fujitsu, Hitachi, IBM, Novell, Oracle, SAP, SAS Institute, Sun Microsystems, Sybase, TIBCO, and Vignette。官方支持列表甚至更长。 <br>
<br>
当前，jsr168正在进行公众审视，最终版本将在2003年九月发布。 <br>
<br>
本文中，首先定义了portal和portlet，然后解释了jsr168的概念，包括api的基本对象。接下来，深入到jsr的高级功能，比如用户信息，本地化和缓存。然后讲到了扩展，从而使portal提供者扩展当前portlet规范的函数功能。本文包含了portlet应用的打包和部署。 <br>
<br>
基本定义这部分中，讲讲述portlet规范中的基础定义，包括portal基本构架，portlet容器和portal页面。 <br>
<br>
portal <br>
<br>
portal是一个基于web的应用，它能提供个性化，单点登陆，不同源的内容聚合，和信息系统的表示曾集中。聚合是整合不同web页面源数据的过程。为了提供用户定制的内容，portal可能包含复杂的个性化特征。为不同用户创建内容的portal页，可能包含不同的portlet集。 <br>
<br>
<br>
图1表示了portal的基本架构。portal web应用处理客户请求，找回用户当前页中的portlet，然后调用portlet容器，从新获取各个portlet的内容。portlet容器提供portlet的运行时环境，并通过portlet api调用portlet。portal通过portlet invoker api调用portlet容器。portlet容器通过portlet provider spi（service provide interface）获取portal信息。 <br>
<br>
图2表示了基本的portal页面组件。portal页面本身代表一个完整的标记文档，并且聚集了一些portlet窗口。除portlet外，页面可能还包含导航区合标志区（navigation area and banners）。一个portlet窗口包含一个标题栏，装饰，和portlet产生的内容。装饰可以包括改变portlet窗口状态和模式的按钮（后文将解释这些概念）。 <br>
<br>
portlet <br>
<br>
正如上文所说，portlet是基于java的web组件，处理request并产生动态内容。portlet产生的内容称为片段，即一段遵守中心规则的标记（比如html, xhtml,wml(无线标记语言)）。如图三所示，多个片段可以聚合成一个完整的文档。多个portlet聚合在以期，组成portal页。portlet容器控制portlet的生命周期。 <br>
<br>
web客户通过portal实现的request/response范例与portlet交互。通常，portlet中的动作会被portal接受，从而用户与portlet中的内容交互（比如点击portlet中的链接，提交form），提交到portlet的目标。 <br>
<br>
对不同的用户，根据其配置，同一个portlet会产生不同的内容。 <br>
<br>
portlet容器 <br>
<br>
portlet容器提供它们需求的运行时环境并运行portlet。它包含portles并控制它们的生命周期。容器提供portlet参数的持久存储机制，它接受来之portal的request，并在其持有的portlet上执行request。容器不负责portlet产生内容的聚合，portal自己处理内容聚合。 <a href="http://hi.baidu.com/yungts/blog/item/c73c80ecbd9f5e3b2797917b.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/yungts/blog/category/%B9%A4%D7%F7">工作</a>&nbsp;<a href="http://hi.baidu.com/yungts/blog/item/c73c80ecbd9f5e3b2797917b.html#comment">查看评论</a>]]></description>
        <pubDate>2008-07-21  13:49</pubDate>
        <category><![CDATA[工作]]></category>
        <author><![CDATA[saishangyang]]></author>
		<guid>http://hi.baidu.com/yungts/blog/item/c73c80ecbd9f5e3b2797917b.html</guid>
</item>


</channel>
</rss>