<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[]]></title>
<link>http://www.greenload.net/blog/</link>
<description><![CDATA[]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[jimli109@yahoo.com.cn(burger)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title></title> 
	<url>http://www.greenload.net/blog/images/logos.gif</url> 
	<link>http://www.greenload.net/blog/</link> 
	<description></description> 
</image>

			<item>
			<link>http://www.greenload.net/blog/default.asp?id=49</link>
			<title><![CDATA[两种插入排序算法]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Tue,07 Aug 2007 21:48:04 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=49</guid>	
		<description><![CDATA[好久来这边了，今天上班看了下排序算法，弄了两个比较常见的算法出来，<br/>以前在学校没学数据结构，一直想补一补。<br/>先发两个上来，已备以后忘记了，好上来查，呵呵。后面再接着发其他算法。<br/>测了下性能shell排序比直接插入排序在排序数到2w的时候差不多速度相差一个数量级。<br/><br/>/*-----------------------&nbsp;&nbsp;&nbsp;插入排序&nbsp;&nbsp;&nbsp;&nbsp;---------------------------*/<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;直接插入排序&nbsp;<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;@param&nbsp;input<br/>&#160;&#160;&#160;&#160;&nbsp;*/<br/>&#160;&#160;&#160;&#160;public&nbsp;static&nbsp;void&nbsp;ins&#101;rtionSort(int[]&nbsp;input)&nbsp;<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int&nbsp;length&nbsp;=&nbsp;input.length;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int&nbsp;temp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;length;&nbsp;i++)&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;temp&nbsp;=&nbsp;input[i];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for&nbsp;(int&nbsp;j&nbsp;=&nbsp;i&nbsp;-&nbsp;1;j&gt;-1&amp;&amp;input[j]&nbsp;&gt;&nbsp;temp&nbsp;;&nbsp;j--)&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[j&nbsp;+&nbsp;1]&nbsp;=&nbsp;input[j];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[j]&nbsp;=&nbsp;temp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;带哨兵的直接插入排序,数组的第一个元素不用于存储有效数据<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;将input[0]作为哨兵，可以避免判定input[j]中，数组是否越界<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;因为在j--的过程中，当j减小到0时,变成了input[0]与input[0]<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;自身进行比较，很明显这个时候说明位置i之前的数字都比input[i]小<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;位置i上的数字不需要移动，直接进入下一轮的插入比较。<br/>&#160;&#160;&#160;&#160;&nbsp;*<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;@param&nbsp;input<br/>&#160;&#160;&#160;&#160;&nbsp;*/<br/>&#160;&#160;&#160;&#160;public&nbsp;static&nbsp;void&nbsp;ins&#101;rtionSortWithPiquet(int[]&nbsp;input)&nbsp;<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int&nbsp;length&nbsp;=&nbsp;input.length;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;2;&nbsp;i&nbsp;&lt;&nbsp;length;&nbsp;i++)&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[0]&nbsp;=&nbsp;input[i];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for&nbsp;(int&nbsp;j&nbsp;=&nbsp;i&nbsp;-&nbsp;1;&nbsp;input[j]&nbsp;&gt;&nbsp;input[0]&nbsp;;&nbsp;j--)&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[j&nbsp;+&nbsp;1]&nbsp;=&nbsp;input[j];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[j]&nbsp;=&nbsp;input[0];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;Shell排序<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;<br/>&#160;&#160;&#160;&#160;&nbsp;*&nbsp;@param&nbsp;input<br/>&#160;&#160;&#160;&#160;&nbsp;*/<br/>&#160;&#160;&#160;&#160;public&nbsp;static&nbsp;void&nbsp;shellSort(int[]&nbsp;input)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int&nbsp;temp,length;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;length&nbsp;=&nbsp;input.length;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int&nbsp;increment=length&gt;&gt;1;&nbsp;increment&gt;0&nbsp;;&nbsp;increment&nbsp;&gt;&gt;=1)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int&nbsp;n=0;&nbsp;n&lt;increment;&nbsp;n++)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int&nbsp;i=n+increment;&nbsp;i&lt;length;&nbsp;i+=increment)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;temp&nbsp;=&nbsp;input[i];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int&nbsp;j=i-increment;&nbsp;j&gt;-1&amp;&amp;input[j]&gt;temp&nbsp;;j-=increment)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[j+increment]&nbsp;=&nbsp;input[j];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;input[j]=temp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=48</link>
			<title><![CDATA[一个鱼赛跑的flash学习]]></title>
			<author>jimli109@yahoo.com.cn(睡神清崽)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Sun,08 Jul 2007 21:21:06 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=48</guid>	
		<description><![CDATA[<p>下面是这个小flash:</p>
<p><embed src="http://www.greenload.net/flash/fish.swf" width="550" height="200" type="application/x-shockwave-flash"></embed></p>
<p>这几天学了一个as语句，随机控制_x值得出谁先到目的地位置的函数。呵呵，很简洁实用，美化了一下改成了鱼赛跑，再加了一个AS控制的泡泡，也是blueidea上的教程。<br /></p>]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=47</link>
			<title><![CDATA[一个js窗口控件]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Tue,05 Jun 2007 20:15:29 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=47</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;经常会觉得windows自带的弹出窗口会给人不友好的感觉，也有很多人自己实现过类似windows中的弹出窗口控件，现在发上我今天写的一个弹出窗口控件，根前面的js树控件一样，我是在prototype&nbsp;version&nbsp;1.3.1下开发的，现在最新的prototype框架好像到了1.5版本，但是在1.3中继承的符号更像java，所以我依然用的1.3。这个树控件主体由两个js文件构成，一个是dialog.js,还有一个是drag.js，dialog是构建窗口的，drag是处理鼠标事件的。dialog中实现了两种windows中的弹出窗口，第一种是是弹出警示框，第二种是确认框，在js中分别可以用alert,和comfirm调出来。我这个js控件可以弹出更加友好的，操控性更好的窗口。弹出窗口后窗口后的内容会被锁定，直到关闭窗口后面窗口将被解除锁定。使用起来也比较简单，后面有附上一个例子供参考。（已经在IE6以及firfox下测试过，若还有发现什么bug请指正）<br/>下面是主要源码：<br/><br/>Dialog.js<br/>---------------------------------------------------------<br/>/**<br/>&nbsp;*&nbsp;Copyright&nbsp;(C),&nbsp;2004-2006,&nbsp;鬼艺诺帝工作室<br/>&nbsp;*&nbsp;File&nbsp;Name:&nbsp;<br/>&nbsp;*&nbsp;Encoding&nbsp;UTF-8<br/>&nbsp;*&nbsp;@author&nbsp;万毅&nbsp;(bestirwiny@163.com)<br/>&nbsp;*&nbsp;Date:&nbsp;2007-6-5<br/>&nbsp;*&nbsp;Version:&nbsp;1.0<br/>&nbsp;*/<br/>&nbsp;<br/>function&nbsp;generateBg()<br/>{<br/>&#160;&#160;&#160;&#160;var&nbsp;bgDiv&nbsp;=&nbsp;cr&#101;ateEle(&#34;DIV&#34;);<br/>&#160;&#160;&#160;&#160;bgDiv.className&nbsp;=&nbsp;&#34;bg_div&#34;;<br/>&#160;&#160;&#160;&#160;return&nbsp;bgDiv;<br/>}<br/><br/>var&nbsp;focusId&nbsp;=&nbsp;&#34;__focus_id__&#34;;<br/>Dialog&nbsp;=&nbsp;Class.cr&#101;ate();<br/>Dialog.id&nbsp;=&nbsp;&#34;__widget_dialog__&#34;;<br/>Dialog.prototype&nbsp;=&nbsp;{<br/>&#160;&#160;&#160;&#160;/*----------------&nbsp;initializer&nbsp;------------------*/<br/>&#160;&#160;&#160;&#160;initialize&nbsp;:&nbsp;function(_title,_msg,_options)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.options&nbsp;=&nbsp;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&#34;300px&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&#34;100px&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dialogClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&#34;dialog-box&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;titleClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&#34;dialog-title&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bodyClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&#34;dialog-body&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bottomClass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&#34;dialog-bottom&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;confirmBtnTxt&nbsp;&nbsp;&nbsp;:&nbsp;&#34;确定&#34;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;confirmCallback&nbsp;:&nbsp;null<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;};<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.init(_title,_msg,_options);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.cr&#101;ateDialog();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&nbsp;($(focusId))&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;try&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$(focusId).focus();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&nbsp;catch(e)&nbsp;{}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;/*----------------&nbsp;private&nbsp;method&nbsp;------------------*/<br/>&#160;&#160;&#160;&#160;init&nbsp;:&nbsp;function(_title,_msg,_options)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.title&nbsp;=&nbsp;_title&nbsp;||&nbsp;&#34;提示信息&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.msg&nbsp;=&nbsp;_msg&nbsp;||&nbsp;&#34;&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.setOptions(_options);<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;setOptions&nbsp;:&nbsp;function(_options)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.options.extend(_options&nbsp;||{});<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;cr&#101;ateDialog&nbsp;:&nbsp;function()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.bgDiv&nbsp;=&nbsp;generateBg();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;dialog&nbsp;=&nbsp;cr&#101;ateEle(&#34;DIV&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dialog.id&nbsp;=&nbsp;Dialog.id;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dialog.className&nbsp;=&nbsp;this.options.dialogClass;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;with(dialog.style)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;width&nbsp;=&nbsp;this.options.width;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;height&nbsp;=&nbsp;this.options.height;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;top&nbsp;=&nbsp;screen.availHeight/4;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;left&nbsp;=&nbsp;screen.availWidth/3.5;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;titleDiv&nbsp;=&nbsp;this.cr&#101;ateTitle();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;bodyDiv&nbsp;=&nbsp;this.cr&#101;ateBody();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;bottomDiv&nbsp;=&nbsp;this.cr&#101;ateBottom();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dialog.appendChild(titleDiv);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dialog.appendChild(bodyDiv);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dialog.appendChild(bottomDiv);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.init(dialog,titleDiv);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.bgDiv.appendChild(dialog);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;document.body.appendChild(this.bgDiv);<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;cr&#101;ateTitle&nbsp;:&nbsp;function(){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;titleDiv&nbsp;=&nbsp;cr&#101;ateEle(&#34;DIV&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;titleDiv.className&nbsp;=&nbsp;this.options.titleClass;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;titleDiv.innerHTML&nbsp;=&nbsp;this.title;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&nbsp;titleDiv;<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;cr&#101;ateBody&nbsp;:&nbsp;function()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;bodyDiv&nbsp;=&nbsp;cr&#101;ateEle(&#34;DIV&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bodyDiv.className&nbsp;=&nbsp;this.options.bodyClass;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bodyDiv.style.height&nbsp;=&nbsp;getInt(this.options.height)&nbsp;-&nbsp;50&nbsp;+&nbsp;&#34;px&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bodyDiv.style.width&nbsp;=&nbsp;this.options.width;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bodyDiv.innerHTML&nbsp;=&nbsp;this.msg;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&nbsp;bodyDiv;<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;cr&#101;ateBottom&nbsp;:&nbsp;function()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;bottomDiv&nbsp;=&nbsp;cr&#101;ateEle(&#34;DIV&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bottomDiv.className&nbsp;=&nbsp;this.options.bottomClass;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bottomDiv.appendChild(this.cr&#101;ateBtn((this.options.confirmBtnTxt&nbsp;||&nbsp;&#39;确&nbsp;定&#39;),this.options.confirmCallback));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&nbsp;bottomDiv;<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;cr&#101;ateBtn&nbsp;:&nbsp;function(txt,callBack)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;btn&nbsp;=&nbsp;cr&#101;ateEle(&#34;INPUT&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;btn.type&nbsp;=&nbsp;&#34;button&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;btn.className&nbsp;=&nbsp;&#39;comfirmBtn&#39;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;btn.value&nbsp;=&nbsp;txt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;btn.onclick&nbsp;=&nbsp;function(){this.closeDialog(callBack)}.bindAsEventListener(this);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;btn.id&nbsp;=&nbsp;focusId;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&nbsp;btn;<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;closeDialog&nbsp;:&nbsp;function(callBack)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(callBack)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;callBack();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;document.body.removeChild(this.bgDiv);<br/>&#160;&#160;&#160;&#160;}<br/>}<br/><br/>ComfirmDialog&nbsp;=&nbsp;Class.cr&#101;ate();<br/>ComfirmDialog.prototype.extend(Dialog.prototype).extend(<br/>{<br/>&#160;&#160;&#160;&#160;setOptions&nbsp;:&nbsp;function(_options)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.options.cancelBtnTxt&nbsp;=&nbsp;&#39;取&nbsp;消&#39;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.options.cancelCallback&nbsp;=&nbsp;null;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.options.extend(_options&nbsp;||{});<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;cr&#101;ateBottom&nbsp;:&nbsp;function()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;bottomDiv&nbsp;=&nbsp;cr&#101;ateEle(&#34;DIV&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bottomDiv.className&nbsp;=&nbsp;this.options.bottomClass;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bottomDiv.appendChild(this.cr&#101;ateBtn((this.options.confirmBtnTxt&nbsp;||&nbsp;&#39;确&nbsp;定&#39;),this.options.confirmCallback));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;bottomDiv.appendChild(this.cr&#101;ateBtn((this.options.cancelBtnTxt&nbsp;||&nbsp;&#39;取&nbsp;消&#39;),this.options.cancelCallback));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&nbsp;bottomDiv;<br/>&#160;&#160;&#160;&#160;}<br/>}<br/>);<br/><br/>function&nbsp;cr&#101;ateEle(tag)<br/>{<br/>&#160;&#160;&#160;&#160;return&nbsp;document.cr&#101;ateElement(tag);<br/>}<br/><br/>function&nbsp;getInt(str)<br/>{<br/>&#160;&#160;&#160;&#160;var&nbsp;tempStr&nbsp;=&nbsp;str.toString();<br/>&#160;&#160;&#160;&#160;var&nbsp;len&nbsp;=&nbsp;tempStr.length;<br/>&#160;&#160;&#160;&#160;var&nbsp;num&nbsp;=&nbsp;str.toString().substr(0,len-2);<br/>&#160;&#160;&#160;&#160;return&nbsp;parseInt(num);<br/>}<br/>-------------------------------------------<br/><br/>Drag.js<br/>-------------------------------------------<br/>/**<br/>&nbsp;*&nbsp;Copyright&nbsp;(C),&nbsp;2004-2006,&nbsp;鬼艺诺帝工作室<br/>&nbsp;*&nbsp;File&nbsp;Name:&nbsp;<br/>&nbsp;*&nbsp;Encoding&nbsp;UTF-8<br/>&nbsp;*&nbsp;@author&nbsp;万毅&nbsp;(bestirwiny@163.com)<br/>&nbsp;*&nbsp;Date:&nbsp;2007-6-5<br/>&nbsp;*&nbsp;Version:&nbsp;1.0<br/>&nbsp;*/<br/>&nbsp;<br/>var&nbsp;Drag&nbsp;=&nbsp;{<br/>&#160;&#160;&#160;&#160;obj&nbsp;:&nbsp;new&nbsp;Object(),<br/>&#160;&#160;&#160;&#160;init&nbsp;:&nbsp;function(_dialog,_title)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.obj.title&nbsp;=&nbsp;_title;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.obj.dialog&nbsp;=&nbsp;_dialog;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Event.observe(Drag.obj.title,&nbsp;&#39;mousedown&#39;,&nbsp;this.mouseDownHandler,&nbsp;true);<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;mouseDownHandler&nbsp;:&nbsp;function(evnt)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Event.observe(document,&nbsp;&#39;mousemove&#39;,&nbsp;Drag.mouseMoveHandler,&nbsp;true);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Event.observe(document,&nbsp;&#39;mouseup&#39;,&nbsp;Drag.mouseUpHandler,&nbsp;true);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Event.stop(evnt||event);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.obj.deltaX&nbsp;=&nbsp;(Event.pointerX(evnt||event)&nbsp;-&nbsp;Drag.obj.dialog.offsetLeft);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.obj.deltaY&nbsp;=&nbsp;(Event.pointerY(evnt||event)&nbsp;-&nbsp;Drag.obj.dialog.offsetTop);<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;mouseMoveHandler&nbsp;:&nbsp;function(evnt)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.obj.dialog.style.left&nbsp;=&nbsp;Event.pointerX(evnt||event)&nbsp;-&nbsp;Drag.obj.deltaX;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Drag.obj.dialog.style.top&nbsp;=&nbsp;Event.pointerY(evnt||event)&nbsp;-&nbsp;Drag.obj.deltaY;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Event.stop(evnt||event);<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;mouseUpHandler&nbsp;:&nbsp;function(evnt)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Event.stopObserving(document,&nbsp;&#34;mousemove&#34;,&nbsp;Drag.mouseMoveHandler,&nbsp;true);<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;Event.stopObserving(document,&nbsp;&#34;mouseup&#34;,&nbsp;Drag.mouseUpHandler,&nbsp;true);<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;Event.stop(evnt||event)<br/>&#160;&#160;&#160;&#160;}<br/>}<br/>--------------------------------------------------------<br/><br/>样式表<br/>widget.css<br/>------------------------------------------------------<br/>@CHARSET&nbsp;&#34;UTF-8&#34;;<br/>.bg_div<br/>{<br/>&#160;&#160;&#160;&#160;position:&nbsp;absolute;<br/>&#160;&#160;&#160;&#160;background-image:&nbsp;url(img/transparent.gif);<br/>&#160;&#160;&#160;&#160;width:&nbsp;100%;<br/>&#160;&#160;&#160;&#160;height:&nbsp;100%;<br/>&#160;&#160;&#160;&#160;margin-right:&nbsp;0px;<br/>&#160;&#160;&#160;&#160;top&nbsp;:&nbsp;0px;<br/>&#160;&#160;&#160;&#160;left&nbsp;:&nbsp;0px;<br/>}<br/>.dialog-box&nbsp;{<br/>&#160;&#160;&#160;&#160;position:&nbsp;absolute;<br/>&#160;&#160;&#160;&#160;border:&nbsp;1px&nbsp;solid&nbsp;#019ED8;<br/>&#160;&#160;&#160;&#160;background-color:&nbsp;#FCFCFC;<br/>&#160;&#160;&#160;&#160;top&nbsp;:&nbsp;50px;<br/>&#160;&#160;&#160;&#160;left&nbsp;:&nbsp;50px;<br/>}<br/><br/>.dialog-title&nbsp;{<br/>&#160;&#160;&#160;&#160;font-weight:&nbsp;bold;<br/>&#160;&#160;&#160;&#160;color:&nbsp;#000000;<br/>&#160;&#160;&#160;&#160;text-indent:&nbsp;10px;<br/>&#160;&#160;&#160;&#160;text-align&nbsp;:&nbsp;left;<br/>&#160;&#160;&#160;&#160;background-color:&nbsp;#EEEEEE;<br/>&#160;&#160;&#160;&#160;background-repeat:&nbsp;repeat-y;<br/>&#160;&#160;&#160;&#160;cursor:&nbsp;move;<br/>&#160;&#160;&#160;&#160;height&nbsp;:&nbsp;20px;<br/>}<br/><br/>.dialog-body&nbsp;{<br/>&#160;&#160;&#160;&#160;overflow:&nbsp;auto;<br/>&#160;&#160;&#160;&#160;text-align:&nbsp;left;<br/>&#160;&#160;&#160;&#160;text-indent:&nbsp;5px;<br/>}<br/><br/>.dialog-bottom{<br/>&#160;&#160;&#160;&#160;height&nbsp;:&nbsp;30px;<br/>&#160;&#160;&#160;&#160;text-align:&nbsp;center;<br/>&#160;&#160;&#160;&#160;margin-top:&nbsp;4px;<br/>}<br/>-------------------------------------------------------<br/><br/>例子<br/><br/>&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;&#34;-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN&#34;&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta&nbsp;http-equiv=&#34;Content-Type&#34;&nbsp;content=&#34;text/html;&nbsp;charset=UTF-8&#34;&gt;<br/>&lt;title&gt;Ins&#101;rt&nbsp;title&nbsp;here&lt;/title&gt;<br/>&lt;link&nbsp;href=&#34;widget.css&#34;&nbsp;rel=&#34;stylesheet&#34;&nbsp;type=&#34;text/css&#34;&nbsp;/&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;prototype.js&#34;&gt;&lt;/script&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;Drag.js&#34;&gt;&lt;/script&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;Dialog.js&#34;&gt;&lt;/script&gt;<br/>&lt;/head&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&gt;<br/>function&nbsp;openDialog(){<br/>var&nbsp;innerTxt&nbsp;=&nbsp;&#34;&lt;table&nbsp;border=1&nbsp;width=&#39;400&#39;&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#34;;<br/>var&nbsp;options&nbsp;=&nbsp;{<br/>height&nbsp;:&nbsp;&#34;200px&#34;,<br/>width&nbsp;&nbsp;:&nbsp;&#34;420px&#34;,<br/>confirmCallback&nbsp;:&nbsp;callB<br/>};<br/>function&nbsp;callB()<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;close&nbsp;it&#34;);<br/>}<br/>var&nbsp;dialog&nbsp;=&nbsp;new&nbsp;Dialog(&#34;Notice&#34;,innerTxt,options);<br/>}<br/><br/>function&nbsp;openComfirmDialog()<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;innerTxt&nbsp;=&nbsp;&#34;&lt;table&nbsp;border=1&nbsp;width=&#39;400&#39;&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dadasd&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#34;;<br/>&#160;&#160;&#160;&#160;var&nbsp;options&nbsp;=&nbsp;{<br/>&#160;&#160;&#160;&#160;height&nbsp;:&nbsp;&#34;200px&#34;,<br/>&#160;&#160;&#160;&#160;width&nbsp;&nbsp;:&nbsp;&#34;400px&#34;,<br/>&#160;&#160;&#160;&#160;confirmCallback&nbsp;:&nbsp;callB,<br/>&#160;&#160;&#160;&#160;cancelCallback&nbsp;:&nbsp;callA<br/>&#160;&#160;&#160;&#160;};<br/>function&nbsp;callB()<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;comfirm!&#34;);<br/>}<br/>function&nbsp;callA()<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;cancel!&#34;);<br/>}<br/>var&nbsp;dialog&nbsp;=&nbsp;new&nbsp;ComfirmDialog(&#34;Comfirm&#34;,innerTxt,options);<br/>}<br/>&lt;/script&gt;<br/>&lt;body&gt;<br/>&lt;input&nbsp;type=&#34;button&#34;&nbsp;onclick=&#34;openDialog()&#34;&nbsp;value=&#34;open&nbsp;a&nbsp;dialog&#34;&gt;<br/>&lt;input&nbsp;type=&#34;button&#34;&nbsp;onclick=&#34;openComfirmDialog()&#34;&nbsp;value=&#34;open&nbsp;a&nbsp;comfirmdialog&#34;&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=46</link>
			<title><![CDATA[痛苦！]]></title>
			<author>jimli109@yahoo.com.cn(睡神清崽)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Sun,03 Jun 2007 02:58:38 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=46</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;确切的说，是星期四的晚上开始失眠，我不喜欢这种时刻，那总是一些黑暗的日子才会光顾的夜晚。又一次，在深圳我被击倒，心里老是翻腾着，一幕幕往事和情景潮涌般的浮现出来，又梦靥般在恍惚中呼喊着离去，猛然醒来心痛的厉害。身体软的连咬紧牙关的力气都没有了，这一次是不是还能挺过去呢？甚至在星期四的晚上睡觉前我还对明天的工作心里默默规划着先干啥，再干什么，却在11点多的那几分钟之后，那是一个我没有预想到几分钟，改变了一切。灾难让人的心灵饱受重创，来源于它没有任何准备的突然和摧毁性的巨大力量，思绪乱了，脑袋空了，或许那需要很长时间才能让心恢复理智和秩序，但现在却必须去要面对这种可怕的感觉，当我敲下这些文字，希望能找到解决办法，让我明白为什么会发生，我想知道事情的真相，找到一个来自自己内心拷问的答案，为什么会这样，出路在那里？需要找个什么人谈谈，说说话。我在记忆里翻着过去发生这种事的时候自己是怎么办的，当时是怎样的感受，是怎么样走出来的，却像短路一样的想不起来了。通常都不是这样，到了关键时刻这脑袋就是反转起来了，像是要爆炸了一样。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;休克过后，是落下尘埃的安静，是一种仿佛相识却永远不会褪去的恐惧，更害怕在以后的日子里要去习惯这种恐惧，我发了几条短信给几个老朋友，按来按去就说了失眠了，最近难受。却发现并没有怎么好受一点，有些痛苦是需要你一个人承担，就像许多路必须你一个人去走，哪怕有人在看着你走，或许心理多少有点安慰，但还是必须你自己去走，你既不能害怕，也不能奢望别人能帮你一把。<br/>&nbsp;&nbsp;&nbsp;&nbsp;藏在心理深处的感情、痛苦、难受和委屈，通常我羞于把事情本身讲出来，或是不愿意，他痛苦也好，难受也好，委屈也好，那都是我曾经保护梦想一样去保护过的东西，去小心爱护过，自己有过努力的付出和追求。偶尔觉得太重了就自己拿出来写一写，让自己知道怎么回事。通常写完之后，就像醉酒吐了一样，当时总好受点。<br/>&nbsp;&nbsp;&nbsp;&nbsp;虽然有很多朋友，却总是觉得孤独，反而是在热闹散场之后对比起来更强烈了，神经质一样的数落着，检索着那些内心的收藏。曾经看到一个报道，有个日本人把他爸爸的尸体冷藏了10几年，他相信有天他老爸会再活过来。是的，活不来了，常常对自己这样说，说过之后自己的心却不上当受骗。人最大的弱点就是骗不了自己的内心。哪怕逻辑上无懈可击。那怕是已经成为过去式已经既成事实的东西他也不相信，你只能跟着他去熬，让时间来帮他去慢慢清除缓存。时间从1999走到2002，再走到2007，发现自己还是没有改变什么，只是像一只大口袋，把所有的东西都塞进去了，哪天提起来一抖，全在呢。<br/>&nbsp;&nbsp;&nbsp;&nbsp;小时候生病的时候，觉得生命就是一些细小的温暖组成的，长大以后希望有人也和我的认为一样，生活没有什么参考手册，来源于彼此之间的关爱、理解和共识。痛苦是人和人之间可以有办法去沟通和解决的，此刻就像小时候生病一样，我想去把事情都变的好起来，可是没有力气，脑子也迷糊了，那分明在说自己是不是挺不过这一关了。<br/>&nbsp;&nbsp;&nbsp;&nbsp;电影《勇敢的心》中华莱士在被砍头前，他也害怕，却不愿意服下麻醉药，他说要保持头脑清醒，是的，保持清醒是面对困难和痛苦的现实武器，也是给自己勇气，保持清醒意味着更痛苦和无奈，却也是唯一的出路和机会。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=45</link>
			<title><![CDATA[写了一个js树控件]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Sat,02 Jun 2007 02:18:46 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=45</guid>	
		<description><![CDATA[在做页面效果的时候经常会需要用到树型结构,完全可以做一个可以复用的控件出来供以后使用,根据这几天学的点儿js,写了一个树控件,由于对css的不熟悉,以致调css效果耗费了很长时间~~~<br/>帖出来供大家学习使用,若有发现什么bug请指证(注:使用该js控件需要有prototype.js库做支持),这个控件是在prototype框架下开发的.还需要一个css样式,单独写在css中,或者写在页面中也可以,<br/>如果写在页面中就是:<br/>&lt;style&nbsp;type=&#34;text/css&#34;&gt;<br/>._leaf<br/>{<br/>cursor:&nbsp;crosshair;<br/>display:&nbsp;block;<br/>}<br/>._branch<br/>{<br/>margin-left:&nbsp;15px;<br/>cursor:&nbsp;pointer;<br/>display:&nbsp;none;<br/>}<br/>&lt;/style&gt;<br/><br/>---------------------------------&nbsp;&nbsp;&nbsp;tree.js&nbsp;--------------------------------<br/>/**<br/>&nbsp;*&nbsp;Copyright&nbsp;(C),&nbsp;2007-2008,&nbsp;鬼艺诺帝工作室<br/>&nbsp;*&nbsp;File&nbsp;Name:&nbsp;tree.js<br/>&nbsp;*&nbsp;Encoding&nbsp;UTF-8<br/>&nbsp;*&nbsp;Version:&nbsp;1.0<br/>&nbsp;*&nbsp;Date:&nbsp;Jun&nbsp;2,&nbsp;2007&nbsp;&nbsp;2:04:37&nbsp;AM<br/>&nbsp;*&nbsp;History:&#160;&#160;&#160;&#160;version&nbsp;1.0<br/>&nbsp;*/<br/><br/>var&nbsp;shrinkSign&nbsp;=&nbsp;&#34;-&#34;;<br/>var&nbsp;extendSign&nbsp;=&nbsp;&#34;+&#34;;<br/>Tree&nbsp;=&nbsp;Class.cr&#101;ate();<br/>Tree.prototype&nbsp;=&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;initialize&nbsp;:&nbsp;function(containerId)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.container&nbsp;=&nbsp;$(containerId);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.branches&nbsp;=&nbsp;new&nbsp;Array();<br/>&nbsp;&nbsp;&nbsp;&nbsp;},<br/>&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;:&nbsp;function(branch)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;branchCount&nbsp;=&nbsp;this.branches.length;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.branches[branchCount]&nbsp;=&nbsp;branch;<br/>&nbsp;&nbsp;&nbsp;&nbsp;},<br/>&nbsp;&nbsp;&nbsp;&nbsp;write&nbsp;:&nbsp;function()<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;var&nbsp;treeStr&nbsp;=&nbsp;&#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;for(var&nbsp;i&nbsp;=&nbsp;0;i&lt;this.branches.length;i++)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;treeStr&nbsp;+=this.branches[i].write();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;this.container.innerHTML&nbsp;=&nbsp;treeStr;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>};<br/>Branch&nbsp;=&nbsp;Class.cr&#101;ate();<br/>Branch.prototype&nbsp;=&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;initialize&nbsp;:&nbsp;function(_id,_text)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;_id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.text&nbsp;=&nbsp;_text;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.leaves&nbsp;=&nbsp;new&nbsp;Array();<br/>&nbsp;&nbsp;&nbsp;&nbsp;},<br/>&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;:&nbsp;function(leaf)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;var&nbsp;leafCount&nbsp;=&nbsp;this.leaves.length;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;this.leaves[leafCount]&nbsp;=&nbsp;leaf;<br/>&nbsp;&nbsp;&nbsp;&nbsp;},<br/>&nbsp;&nbsp;&nbsp;&nbsp;write&nbsp;:&nbsp;function()<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;var&nbsp;treeStr&nbsp;=&nbsp;&#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;var&nbsp;leavesCount&nbsp;=&nbsp;this.leaves.length;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;treeStr&nbsp;+=&nbsp;&#34;&lt;span&nbsp;class=&#39;_leaf&#39;&nbsp;onclick=&#39;showBranch(\&#34;&#34;+this.id+&#34;\&#34;)&#39;&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;if(leavesCount&gt;0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;treeStr&nbsp;+=&nbsp;&#34;&lt;span&nbsp;id=&#39;T&#34;+this.id+&#34;&#39;&gt;&#34;+extendSign+&#34;&lt;/span&gt;&#34;+this.text&nbsp;+&#34;&lt;/span&gt;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;treeStr&nbsp;+=&nbsp;this.text&nbsp;&nbsp;+&#34;&lt;/span&gt;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treeStr&nbsp;+=&nbsp;&#34;&lt;span&nbsp;id=&#39;&#34;+this.id+&#34;&#39;&nbsp;class=&#39;_branch&#39;&gt;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=0;i&lt;leavesCount;i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;treeStr&nbsp;+=&nbsp;this.leaves[i].write();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treeStr&nbsp;+=&nbsp;&#34;&lt;/span&gt;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;treeStr;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>Leaf&nbsp;=&nbsp;Class.cr&#101;ate();<br/>Leaf.prototype&nbsp;=&nbsp;{<br/>&#160;&#160;&#160;&#160;initialize&nbsp;:&nbsp;function(_text,_link)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.text&nbsp;=&nbsp;_text;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.link&nbsp;=&nbsp;_link;<br/>&#160;&#160;&#160;&#160;},<br/>&#160;&#160;&#160;&#160;write&nbsp;:&nbsp;function()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&nbsp;treeStr&nbsp;=&nbsp;&#34;&lt;span&nbsp;class=&#39;_leaf&#39;&gt;&lt;a&nbsp;href=&#39;&#34;+this.link+&#34;&#39;&gt;&#34;+this.text+&#34;&lt;/a&gt;&lt;/span&gt;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&nbsp;treeStr;<br/>&#160;&#160;&#160;&#160;}<br/>}<br/>function&nbsp;showBranch(_id)<br/>{<br/>&#160;&#160;&#160;&#160;var&nbsp;branch&nbsp;=&nbsp;$(_id);<br/>&#160;&#160;&#160;&#160;if(branch.style.display==&#34;block&#34;)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;branch.style.display=&#34;none&#34;;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;branch.style.display=&#34;block&#34;;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;changeSign(_id);<br/>}<br/>function&nbsp;changeSign(_id)<br/>{<br/>&#160;&#160;&#160;&#160;var&nbsp;sign&nbsp;=&nbsp;&#34;T&#34;+_id;<br/>&#160;&#160;&#160;&#160;var&nbsp;sign_div&nbsp;=&nbsp;$(sign);<br/>&#160;&#160;&#160;&#160;if(sign_div.innerHTML.indexOf(extendSign)&gt;-1)<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;sign_div.innerHTML&nbsp;=&nbsp;shrinkSign;<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;sign_div.innerHTML&nbsp;=&nbsp;extendSign;<br/>}<br/>------------------------------------------------------------<br/>下面给出一个例子:<br/><br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta&nbsp;http-equiv=&#34;Content-Type&#34;&nbsp;content=&#34;text/html;&nbsp;charset=UTF-8&#34;&gt;<br/>&lt;title&gt;Ins&#101;rt&nbsp;title&nbsp;here&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;style&nbsp;type=&#34;text/css&#34;&gt;<br/>._leaf<br/>{<br/>cursor:&nbsp;crosshair;<br/>display:&nbsp;block;<br/>}<br/>._branch<br/>{<br/>margin-left:&nbsp;15px;<br/>cursor:&nbsp;pointer;<br/>display:&nbsp;none;<br/>}<br/>&lt;/style&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;js/prototype.js&#34;&gt;&lt;/script&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;js/tree.js&#34;&gt;&lt;/script&gt;<br/>&lt;body&gt;<br/>&lt;div&nbsp;id=&#34;treeDiv&#34;&gt;&lt;/div&gt;<br/>&lt;/body&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&gt;<br/>var&nbsp;tree&nbsp;=&nbsp;new&nbsp;Tree(&#34;treeDiv&#34;,&#34;root&#34;);<br/>var&nbsp;branch1&nbsp;=&nbsp;new&nbsp;Branch(&#34;branch1&#34;,&#34;LV1&#34;);<br/>var&nbsp;branch2&nbsp;=&nbsp;new&nbsp;Branch(&#34;branch2&#34;,&#34;LV2&#34;);<br/>var&nbsp;branch3&nbsp;=&nbsp;new&nbsp;Branch(&#34;branch3&#34;,&#34;LV1.1&#34;);<br/>var&nbsp;branch4&nbsp;=&nbsp;new&nbsp;Branch(&#34;branch4&#34;,&#34;LV1.2&#34;);<br/><br/>var&nbsp;leaf1&nbsp;=&nbsp;new&nbsp;Leaf(&#34;LV1.3&#34;,&#34;<a href="http://www.163.com" target="_blank">http://www.163.com</a>&#34;);<br/>var&nbsp;leaf2&nbsp;=&nbsp;new&nbsp;Leaf(&#34;LV1.4&#34;,&#34;<a href="http://www.sina.com" target="_blank">http://www.sina.com</a>&#34;);<br/>var&nbsp;leaf3&nbsp;=&nbsp;new&nbsp;Leaf(&#34;LV1.1.1&#34;,&#34;<a href="http://www.35.com" target="_blank">http://www.35.com</a>&#34;);<br/>var&nbsp;leaf4&nbsp;=&nbsp;new&nbsp;Leaf(&#34;LV1.1.2&#34;,&#34;<a href="http://www.tom.com" target="_blank">http://www.tom.com</a>&#34;);<br/>var&nbsp;leaf5&nbsp;=&nbsp;new&nbsp;Leaf(&#34;LV2.1&#34;,&#34;<a href="http://www.hbue.edu.cn" target="_blank">http://www.hbue.edu.cn</a>&#34;);<br/>var&nbsp;leaf6&nbsp;=&nbsp;new&nbsp;Leaf(&#34;LV2.2&#34;,&#34;<a href="http://www.csdn.net" target="_blank">http://www.csdn.net</a>&#34;);<br/><br/>branch3.add(leaf3);<br/>branch3.add(leaf4);<br/>branch1.add(branch3);<br/>branch1.add(branch4);<br/>branch1.add(leaf1);<br/>branch1.add(leaf2);<br/>branch2.add(leaf5);<br/>branch2.add(leaf6);<br/><br/>tree.add(branch1);<br/>tree.add(branch2);<br/><br/>tree.write();&lt;/script&gt;<br/>&lt;/html&gt;<br/><br/><br/>最后把prototype.js库传上来,有需要的可以下载了用.<br/>对了最后还有一点儿需要说的，这个控件在firefox下测试通过了，在IE7.0下会有问题，在IE6.0下不知道能否通过，由于我的机器上没有IE6.0，所以暂时不知道能否兼容。]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=44</link>
			<title><![CDATA[这两天学js的一点儿笔记，帖出来分享]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Fri,01 Jun 2007 21:28:25 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=44</guid>	
		<description><![CDATA[这两天学js的一点儿笔记，帖出来分享<br/>js基础<br/><br/>apply(object,arguments)<br/>该函数有些类似java反射中的method的invoke方法，第一个参数是指定调用该method的对象，第二个参数是该method需要的参数列表，arguments需要是一个数组<br/><br/>call(object[,&#34;arg1&#34;[,&#34;arg2&#34;][,&#34;arg3&#34;]...])<br/>该函数用法与apply用法一样，只是他的参数可以是以逗号隔开的形式<br/><br/>js中定义function的三种方法<br/>第一种：<br/>&nbsp;function&nbsp;funcName([&#34;arg1&#34;...[,&#34;argN&#34;]])<br/>&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;statement;<br/>&nbsp;}<br/>第二种：<br/>&nbsp;var&nbsp;func&nbsp;=&nbsp;new&nbsp;Function([&#34;arg1&#34;,...[&#34;argN&#34;],&#34;statement1;..[statementN]&#34;]);<br/>第三种：<br/>&nbsp;obj.handler&nbsp;=&nbsp;function([&#34;arg1&#34;...[,&#34;argN&#34;]])<br/>&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;statement;<br/>&nbsp;}<br/><br/>js中创建对象的二种方法<br/>第一种：<br/>&nbsp;function&nbsp;constructorName([&#34;arg1&#34;...[,&#34;argN&#34;]])<br/>&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statement;<br/>&nbsp;}<br/>&nbsp;var&nbsp;obj&nbsp;=&nbsp;new&nbsp;constructorName([&#34;arg1&#34;...[,&#34;argN&#34;]]);<br/>&nbsp;这种方式创建对象可以看到，就是new一个function<br/>第二种：<br/>&nbsp;var&nbsp;obj&nbsp;=&nbsp;{propName1:&nbsp;propValue1[,propName2:&nbsp;propValue2&nbsp;...&nbsp;[,propNameN:&nbsp;propValueN]]}<br/>以上两种方式定义的对象，对象的属性能够以obj.propName访问到，也能够以obj[propName]访问到。<br/><br/><br/>prototype源码学习<br/><br/>var&nbsp;Class&nbsp;=&nbsp;{<br/>&nbsp;&nbsp;cr&#101;ate:&nbsp;function()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;function()&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.initialize.apply(this,&nbsp;arguments);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}<br/>}<br/>当调用Class.cr&#101;ate()，返回一个function，该function中有一句this.initialize.apply(this,&nbsp;arguments);&nbsp;这时候new一下function得到一个实例，此处this就代表这个实例，第一个this的作用指定了一个命名空间,指出initialize的所在，第二个this是initialize方法运行时的当前对象设置为前面的实例。<br/><br/>Object.prototype.extend&nbsp;=&nbsp;function(object)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;for&nbsp;(property&nbsp;in&nbsp;object)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;this[property]&nbsp;=&nbsp;object[property];&nbsp;<br/>&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;return&nbsp;this;&nbsp;<br/>}&nbsp;<br/>此处模拟了java中的继承机制，由于js中所有对象都直接或者简介的继承自Object，所以任何Object的实例化对象都可以使用extend方法来继承其他的对象。<br/>例如：假设现在已经有function(类)Object1和Object2<br/>var&nbsp;obj1&nbsp;=&nbsp;new&nbsp;Object1();<br/>var&nbsp;obj2&nbsp;=&nbsp;new&nbsp;Object1();<br/>则可以运用obj1.extend(obj2);<br/>此时obj1将拥有obj2的所有属性(方法)。<br/>不仅仅可以直接再对象之间进行继承，也可以在更高一层的function(类)之间进行继承，因为所有的function(类)都有一个prototype对象，所以可以用Object1.prototype.extend(Object2.prototype)这样一来所有Object1的实例化对象都可以拥有Object2的属性(方法)。可以这样理解<br/>Object1.prototype是一个对象，这个对象是Object的实例，而现在给Object加入了一个extend方法，所以它也拥有了extend方法。<br/>注意：在prototype较新的版本中去掉了上面的方法，而是直接使用下列方法：<br/>Object.extend&nbsp;=&nbsp;function(destination,&nbsp;source)&nbsp;{<br/>&nbsp;&nbsp;for&nbsp;(property&nbsp;in&nbsp;source)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;destination[property]&nbsp;=&nbsp;source[property];<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;return&nbsp;destination;<br/>}<br/>所有需要运用到继承的地方都直接使用Object.extend方法，这个方法相当于一个静态的拷贝属性的方法，这个方法较之上面的方法的好处在于，它不会给继承的对象带来一个新的extend属性(方法)，能够比较干净的实现继承。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=43</link>
			<title><![CDATA[Linux下配置java环境]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Sun,27 May 2007 00:19:15 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=43</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;早就想玩儿玩儿linux了，最近从同事那儿弄来了一个redhat&nbsp;linux的安装好了的虚拟机映像回来，直接用vmware打开就可以用，省了很多事儿。redhat也有带一个xwindow界面，看上去也挺漂亮。由于是用虚拟机装的，玩儿起界面来还是有点儿卡，后来同事说把它启动起来了搞了一个SecureCRT连接上去用命令行操作会舒服很多，就又搞了一个SecureCRT，感觉是屌了很多。下面言归正传，开始装java环境。<br/>&nbsp;&nbsp;&nbsp;&nbsp;首先就是就是得下载rpm版本的jdk，因为用rpm来安装软件相对容易些，这个下载jdk的过程还是在xwnidow中操作相对容易些，下载下来过后是一个可以直接执行的bin文件，首先是得给这个文件授权，使用命令chmod&nbsp;755&nbsp;jdk-6u1-linux-i586-rpm.bin，这个里面chmod&nbsp;755看上去有点儿古怪，这三数字是用来给不同用户授权用的，第一位数字代表的是文件拥有者拥有的权限，第二位数字代表的是跟文件拥有者同属一个group的用户拥有的权限，第三位数字是表示其他人所拥有的权限。权限一共有三种：r读权限，w写权限，x执行权限，他们对应的数值分别是4，2，1，那么755代表的意思就弄明白了，对于文件拥有者拥有rwx权限（7=4+2+1），对于同一个群组和其他用户户拥有rx权限（5=4+1）。下面直接执行就好了。我下载是放到了/home/winywan/install/jdk目录下的，所以定位到该目录执行./jdk-6u1-linux-i586-rpm.bin即可得到一个rpm文件，这个rpm文件才是真正的安装文件，一定要注意前面的“./”代表当前目录，因为默认的搜索目录并不包含当前目录。下面直接执行rpm&nbsp;-ivh&nbsp;jdk-6u1-linux-i586.rpm就可以安装了。ivh参数我想i大概就是install的意思吧，v听同事说是verbose的意思（不知道单词有没有写错），h就猜不出来了。这些东西都搞好了差不多就成功了一半了。下面就是设置环境变量了，图个方便，我就直接修改了&#34;/etc/profile&#34;，这样可以对所有用户起作用。在最后面加上JAVA_HOME,CLASSPATH,PATH这些环境变量，最后export&nbsp;JAVA_HOME&nbsp;CLASSPATH&nbsp;PATH就好了。但是这个里面有一点儿要注意的东西，由于我的redhat里面有自带jre运行环境，虽然path我设置好了，用javac编译的时候也是用我自己安装的jdk进行编译的，可是执行的时候还是会用系统里面自带的低版本jre运行，于是老出现段错误，后来找同事过来帮忙才搞好，问题就在于系统的PATH里面有设置/usr/bin这个值，在这个目录下有一个java软链接，这个链接链接到了另外一个软链接上，另外一个软链接又链接到了一个真实的系统自带的JRE中的java命令上，问题症结就在这里，用ln命令修改一下那个软链接到我们自己安装的jdk中的java命令就搞定了，下面敲入“reboot”，等待系统重启，打开vi编辑器，编一个简单的HelloWorld,编译，运行，出现了“Hello&nbsp;World！”，一切搞定。&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=42</link>
			<title><![CDATA[[js学习系列]不同浏览器中的事件传播]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Tue,22 May 2007 23:21:10 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=42</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;今天看了些不同浏览器种js模型的差异，看的非常头大。下面简短记录一下js中不同浏览器中的事件传播模型。首先，在netscape公司的navigator中事件是从顶部往下传播的，也就是从window级别一直向下传递到目标地点，这个目标地点的任何上层都可以对事件进行捕获，NN中是用captureEvent来捕获事件，用releaseEvent来关闭对特定事件的捕获，而向指定目标传递事件则用routeEvent,由于没有navigator做实验，这些方法暂时都没有实验过。在IE和firefox中则相对好说了，事件直接从目标地向上传播，只要给传递过程中的对象注册事件处理程序，有事件传到就会触发事件处理程序，可以用cancelBubble方法来停止事件在某个对象上的传播，用fireEvent方法来直接将事件发送到某个对象上，做了一个实验发现，调用fireEvent后事件是会被发送到指定的对象上，但是之后事件会继续回到调用fireEvent的对象的下一个对象处继续向上冒泡。<br/>&nbsp;&nbsp;&nbsp;待续......]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=41</link>
			<title><![CDATA[[JS学习系列]js中全局变量与局部变量学习]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Thu,17 May 2007 23:32:22 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=41</guid>	
		<description><![CDATA[在js中如果用var来定义一个变量，如果该变量被定义在function或者其他循环体内，则变量为局部变量，并且该变量不会受到同名全局变量的影响，也不会影响同名的全局变量。如果不用var来定义变量而直接拿一个变量来使用则该变量会被自己定义为全局变量，无论该变量被定义在任何位置，如果在function或者循环体内用这种方式来定义变量，则该变量为全局变量若function或循环体外已经定义了同名的全局变量，则会直接引用function或循环体外定义的全局变量。<br/><br/>注意：js中，一个函数里面若有循环体，则在循环体中定义的变量作于域会是整个函数，这一点根其他高级语言不一样。下面例子中的testVar()，在for循环中定义了一个局部变量i，该i的作用域就为整个函数体。<br/><br/>例子：<br/><br/>function&nbsp;testNoVar()<br/>{<br/>&#160;&#160;&#160;&#160;for(i=0;i&lt;10;i++)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(i==5)&nbsp;break;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;alert(&#34;testNoVar&nbsp;&#34;+i);<br/>}<br/><br/>function&nbsp;testVar()<br/>{<br/>&#160;&#160;&#160;&#160;for(var&nbsp;i=0;i&lt;10;i++)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(i==6)&nbsp;break;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;alert(&#34;testVar&nbsp;&#34;+i);<br/>}<br/><br/><br/>testNoVar();<br/>try<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;behind&nbsp;testNoVar&nbsp;i&nbsp;value&nbsp;:&#34;+i);<br/>}<br/>catch(e)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;behind&nbsp;testNoVar&nbsp;i&nbsp;value&nbsp;:&#34;+e);<br/>}<br/>testVar();<br/>try<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;behind&nbsp;testVar&nbsp;i&nbsp;value&nbsp;:&#34;+i);<br/>}<br/>catch(e)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(&#34;behind&nbsp;testVar&nbsp;i&nbsp;value&nbsp;:&#34;+e);<br/>}<br/><br/>testNoVar中循环体内的i没有用var来定义，该i为全局变量。而testVar中的循环体用var定义了i，该i为局部变量，于是它不受到前面定义的全局变量的影响，所以该例子打印结果的先后循序为：<br/>&#34;testNoVar&nbsp;5&#34;&nbsp;-&gt;&nbsp;&#34;behind&nbsp;testNoVar&nbsp;i&nbsp;value&nbsp;:5&#34;&nbsp;-&gt;&nbsp;&#34;testVar&nbsp;6&#34;&nbsp;-&gt;&nbsp;&#34;behind&nbsp;testVar&nbsp;i&nbsp;value&nbsp;:5&#34;]]></description>
		</item>
		
			<item>
			<link>http://www.greenload.net/blog/default.asp?id=40</link>
			<title><![CDATA[研究MIME邮件的好处]]></title>
			<author>jimli109@yahoo.com.cn(bestirwiny)</author>
			<category><![CDATA[Life&amp;Design]]></category>
			<pubDate>Thu,19 Apr 2007 23:19:28 +0800</pubDate>
			<guid>http://www.greenload.net/blog/default.asp?id=40</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;由于现在在做一个邮局的项目，这段时间把MIME邮件协议了解了一下，说复杂不复杂，说简单也不简单，这玩意儿说起来还算是挺底层的，我们做java的一般都不会接触到这么底层的东西。这次算是一个机会吧。<br/>&nbsp;&nbsp;&nbsp;&nbsp;今天下午快下班的时候偶尔在自己用的机器上找到一个前面一个用我这个机器的人留下来的一篇chm格式的小说，上班不敢看，只看了一下开头儿，觉得挺和胃口的，就在下班的时候把它通过邮箱发回来了，一回来打开outlook，收到一封新邮件，打开邮件一看，outlook竟然自动的把这封邮件的附件给删掉了，我给气的～～～。上面说什么OE已经将对您有威胁的附件内容删除了，OE估计说的就是Outlook&nbsp;Express，郁闷。。。在郁闷了一阵子过后，冷静下来想了一想，我打开邮件，查看了一下邮件的原始信息，看到了邮件的原始MIME信息，一大堆的类似乱码一样的字符，刚好学了点儿MIME邮件协议，看到原始信息的最后面一段代码是一整片，而且根据段头信息分析估计就是我发回来的那个附件，于是把那复制了那一大段的乱码似的代码段到记事本中。打开了我的eclipse，新建了一个解码的类，写了一个针对Base64编码的解码方法，将记事本里面的代码读出来解码后再写回到一个新的chm文件中，编译运行，不到半秒钟就解码成功了。看到了一个chm格式的文件，心里满激动的，成不成功就在打开的那一刹那了。鼠标双击，成功的打开了，并且里面的内容丝毫没有错误。那真是叫一个激动啊。用自己学的东西来解决自己日常生活中的问题，那种感觉真的很微妙，难以形容。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;最后把这个电子书的MIME附件源码发上来，有兴趣，可以自己用Base64编码进行解码，把解码信息写到chm文件里面，这书真的挺好看，特别是对还没有取老婆的男人。哈哈<br/><img src="http://www.greenload.net/blog/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.greenload.net/blog/attachments/month_0704/d200741923254.txt" target="_blank">点击下载此文件</a><br/>]]></description>
		</item>
		
</channel>
</rss>