<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Guitarbean.com &#187; 网络技术</title>
	<atom:link href="http://guitarbean.com/category/%e7%bd%91%e7%bb%9c%e6%8a%80%e6%9c%af/feed" rel="self" type="application/rss+xml" />
	<link>http://guitarbean.com</link>
	<description>WPTheme Java JavaScript...Yeah~!</description>
	<lastBuildDate>Tue, 18 Mar 2008 08:51:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>newsxp内幕之二：在实践中磨炼自己</title>
		<link>http://guitarbean.com/2007/05/23/newsxp-2-learning-in-working.html</link>
		<comments>http://guitarbean.com/2007/05/23/newsxp-2-learning-in-working.html#comments</comments>
		<pubDate>Wed, 23 May 2007 05:32:47 +0000</pubDate>
		<dc:creator>ejialin@gmail.com</dc:creator>
				<category><![CDATA[网络技术]]></category>

		<guid isPermaLink="false">http://www.guitarbean.com/2007/05/23/newsxp-2-learning-in-working/.html</guid>
		<description><![CDATA[　　为了实现这个学校史无前例的页面，我开始走上一条无边无际的技术旅程。正是这个旅程，让我开阔了眼界，学习到更多的知识，得到了很好的锻炼。
（注：下面所写的JS等同与JavaScript，不论大小写，意义相同）
　　在这里主要概要的回忆一当时下在技术方面的思考。

　　一、Thinking In Java

　　我们的服务器是java的，这方面还好，在程序编写方面，有一个让人快速上手的IDE：netBeans。

　　当时没有项目规划这个概念，也不画什么UML流程图，只是简单的认为：兼容性和可扩充性很重要，讨厌写JSP，最好用tag，用Strut或JSF实现MVC。但因为某些原因，MVC框架用不了，连JSTL也不支持。我没有权力去改变这个现实，所以就只有将就现有运行环境，不用Struts了，EL语法也行不通，所以至今我还不熟悉Struts或在JSTL中使用EL。但我还会写Tag，没有EL语法的JSTL就不好玩了，所以自己写Tag。
　　用不了的新技术还有很多，特别要求JDK6的就更加免提了。因为当时在学习阶段，只有学习最新最前沿的技术才有可能对以后的工作有帮助。我向一些网友提问怎么办，他们唯一的答案是&#8221;升级jdk和tomcat &#8220;，还热心的提供了一些简单的升级方法和经验。我很感谢他们，但权力和影响力这问题不是简简单单就能升级的。

　　但实际上也用不着那些东西，因为就是个拉数据，只要把底层的连接池和数据读取部分做好就行了。说到组件，那就是在连接池方面的Proxool和java Ajax方面的DWR了。Proxool更新得很慢，但口碑非常好，网友力荐，而且很早之前就准备好了的；DWR向下兼容很好，在服务器上稍稍配置一下就OK了。DWR好呀，在以后的Ajax应用是中杆力量。
　　二、Ajax Frame
　　在2006年6月，Ajax框架已经多得像满天的星星，Ajax之流行非比寻常。google、yahoo、微软等大公司也先后推出自己的Ajax框架。这里有一个Ajax Frame的列表。
　　Ajax框架存在的目的是为开发者提供高效率的开发。B/S开发还须顾及浏览器的兼容性，为此实现一个简单的行为可能要写上一大段代码，而且做测试也需要更多的条件。所以借助富有开发经验的公司或个人的已有成果十分有必要。
　选择什么框架呢？

它必须能最大限度地兼容浏览器；
方便地实现丰富的效果；
自定制性强；
有一定口碑。

在Ajax数据输送方面，我早就选定了DWR(请看&#8221;DWR，让Ajax如此简单&#8221;)，所以下面要找的就是能满足UI需求的框架。当时满足要求的有下面几个：

YUI
GWT
Dojo
Prototype.js+scriptaculous

　　前三者都有丰富的UI。GWT把java写的代码转换成JS，让开发者只要懂java而不用懂JS。这样做的结果生成的JS晦涩难懂，前后台无法分开。我最无法忍受的就是要在自己的网上放一堆看不懂的代码，何况当时还传出这个框架有BUG呢。
　　YUI和Dojo是被最有希望被选中的了，它们的UI最多，好评也很多。
　　Dojo看上去很专业，而且Dojo里面的东西很多，但没有一个UI是我想要的，而且框架太庞大，不易学习；YUI很好，它提供的Pop窗口和拖动效果很炫，很适合要求。于是我用YUI做了一些Demo，做个试验。因此YUI是我研究得最多的Ajax框架了。
　　YUI提供了一些接口，只要把自定义的行为提供上去，它就可以利用自己的事件驱动去实现你的行为。如一个pop的DIV浮动层，你可以定义它在鼠标点击时干些什么，鼠标拖动是干些什么，鼠标停止时又做些什么，只要你把这些过程事件堆给它就行了，置于怎样个弹出浮动DIV，你完全不用管。但这样做的缺点是可定制性差。你提供的行为只能像一条链似的逐个的执行下去，而这条链的基本行为是定死了的，接口再多也无法满足我的野蛮要求，除非修改它的内核代码，但我不会放弃我的要求！Byebye!
　　说到酷效果，不得不提BackBase，这个也不用你懂JS，但有一套语言叫bxml的语言等你去学习 。论新意，它最特别，从不提起JavaScript这个词，但要你编写bxml，而非HTML。可是殊途同归，它最终也得用JS去解析这些xml，所以它不能得到我的青睐，更不能颠覆根基深厚xHtml。像这类在开发者和JS/HTML之间隔上层纱的Ajax框架都被我除名了。
　　现在只剩下Prototype.js+scriptaculous了。


　　Scriptaculous的效果很基础，基本是一个效果一个实现，如果想完成一系列行为，必须整合起来。它的代码里很少直接出现HTML，基本是算法，让你控制页面元素。因为页面的HTML结构与美工有关，最好的CSS技巧也离不开良好的HTML结构，所以我认为这种UI制作方式非常合理，自定制性非常强悍。为了实现DIV浮动，我又发现了prototype-window组件，同样基于Prototype.js。
　　Prototype.js要求开发者有一定的JavaScript编写能力，正好可以学习一下。在当时，文档不是Prototype.js的强项，文档不像YUI那样丰富，官方没有提供Prototype.js的文档。但使用Prototype.js的人都喜欢将其代码看一遍，研究它的技巧，换个角度说，使用Prototype.js的人都是喜欢JS的人。所以网上所找到的文档都是网友的读源码心得。
　　而Prototype.js能有像scriptaculous的组件，可见其可扩充性是如此之强，或者干脆的说，Prototype.js为我们提供两样东西：

丰富、便捷而又具有高度浏览兼容性对HTML的操作的；
Ruby的效率为先的编程方法。

如果说YUI和Dojo都把JS当Java来写，那么Prototype.js就是把JS当Ruby来写了，而JS的灵活性真好被它发挥得淋漓尽致。
　　现在的Prototype.js官方已经提供了丰富的文档。而我之前使用的还是一网友的prototype.js开发笔记，还把这个笔记做打包CHM文档供随时翻阅呢；另外还有一个国外网友制作的可以作为桌面图片的1.4.0的图片文档、1.5.0的图片文档，不过我从未这样做，因为放在桌面上没有做成CHM阅读方便，但这也反映出Prototype.js的流行度和追捧度是如此之高了。
Demo:使用prototype-window组件把橙色方块中的蓝色移到浮动DIV中

点击一下，就可以改变DIV的内容

JavaScript模拟线程与线程锁
　　三、DWR，让Ajax如此简单　

　　Ajax的目的就是让数据传送的时候不出现页面刷新，所说的无刷新页面也就不过如此，DWR完全做到满足了要求。DWR有如下优点：


易于学习，无须再学习大量的API。或者DWR提供了一系统对DHTML的操作，也可以用java编写函数来实现，其自带的JS也有很多有用的函数，但你可以完全不用他们，只要它的数据传送分部足已。

数据与页面完全分离。DWR返回的数据干干净净，而且支持从java到JavaScript的转换，双向通信容易实现。无论是Java的一个ArrayList还是JavaScript的Array，都能够顺利转换，数据封装容易实现。
安装容易。无须特定的IDE，因为它就是一个普通的jar，只要在需要的类中导入几个包，然后配置几个xml就可以了。这里和Strut、JSF等差不多，让你专心写好javaBean，但不用学习新API，所以就更简单。某些Ajax框架可能须要特定的插件你才可以方便地编写它，如GWT就有一个Eclipse插件。


　　DWR很干脆，没有太多的UI组件，更专注于服务端开发，与前台分离，工作分配明细。DWR与Prototype.js及Prototype.js的系列延伸框架配合可谓是如虎添翼。
小结
　　上面所写的关于选择Ajax框架的内容不太严谨。在选择Ajax 框架时，我们还应当考虑它的文件大小对用户的浏览影响、对团队合作的利弊、能否有效促进开发者的工作效率以及与现在条件资源的配合等。
]]></description>
			<content:encoded><![CDATA[<p>　　为了实现这个学校史无前例的页面，我开始走上一条无边无际的技术旅程。正是这个旅程，让我开阔了眼界，学习到更多的知识，得到了很好的锻炼。</p>
<p><strong style="FONT-SIZE: 1em">（注：下面所写的JS等同与JavaScript，不论大小写，意义相同）</strong></p>
<p>　　在这里主要概要的回忆一当时下在技术方面的思考。</p>
<p><span id="more-75"></span></p>
<p><strong>　　一、Thinking In Java</strong></p>
<p style="TEXT-ALIGN: center"><img height="240" width="181" alt="Thinking in Java" title="Thinking in Java" src="http://farm1.static.flickr.yahoo8.akadns.net/226/509492204_9db7909205_m.jpg"/></p>
<p>　　我们的服务器是java的，这方面还好，在程序编写方面，有一个让人快速上手的IDE：netBeans。</p>
<p style="TEXT-ALIGN: center"><a href="http://www.netbeans.org/" target="_blank"><img width="159" height="60" src="http://farm1.static.flickr.yahoo8.akadns.net/204/509512938_fac334c6df_o.gif"/></a></p>
<p>　　当时没有项目规划这个概念，也不画什么UML流程图，只是简单的认为：兼容性和可扩充性很重要，讨厌写JSP，最好用tag，用Strut或JSF实现MVC。但因为某些原因，MVC框架用不了，连JSTL也不支持。我没有权力去改变这个现实，所以就只有将就现有运行环境，不用Struts了，EL语法也行不通，所以至今我还不熟悉Struts或在JSTL中使用EL。但我还会写Tag，没有EL语法的JSTL就不好玩了，所以自己写Tag。</p>
<p>　　用不了的新技术还有很多，特别要求JDK6的就更加免提了。因为当时在学习阶段，只有学习最新最前沿的技术才有可能对以后的工作有帮助。我向一些网友提问怎么办，他们唯一的答案是&#8221;升级jdk和tomcat &#8220;，还热心的提供了一些简单的升级方法和经验。我很感谢他们，但权力和影响力这问题不是简简单单就能升级的。</p>
<p style="TEXT-ALIGN: center"><a href="http://struts.apache.org/" target="_blank"><img height="86" width="244" alt="struts" title="struts" src="http://farm1.static.flickr.yahoo8.akadns.net/199/509568759_058394694f_m.jpg"/></a><br/></p>
<p>　　但实际上也用不着那些东西，因为就是个拉数据，只要把底层的连接池和数据读取部分做好就行了。说到组件，那就是在连接池方面的<a href="http://proxool.sourceforge.net/" target="_blank">Proxool</a>和java Ajax方面的<a href="http://getahead.org/dwr/" target="_blank">DWR</a>了。<a href="http://proxool.sourceforge.net/" target="_blank">Proxool</a>更新得很慢，但口碑非常好，网友力荐，而且很早之前就准备好了的；DWR向下兼容很好，在服务器上稍稍配置一下就OK了。DWR好呀，在以后的Ajax应用是中杆力量。</p>
<p>　　<strong>二、Ajax Frame</strong></p>
<p>　　在2006年6月，Ajax框架已经多得像满天的星星，Ajax之流行非比寻常。google、yahoo、微软等大公司也先后推出自己的Ajax框架。这里有一个<a href="http://www.duduwolf.com/post/AJAX_Frameworks.asp" target="_blank">Ajax Frame的列表</a>。</p>
<p>　　Ajax框架存在的目的是为开发者提供高效率的开发。B/S开发还须顾及浏览器的兼容性，为此实现一个简单的行为可能要写上一大段代码，而且做测试也需要更多的条件。所以借助富有开发经验的公司或个人的已有成果十分有必要。</p>
<p>　选择什么框架呢？</p>
<ul>
<li>它必须能最大限度地兼容浏览器；</li>
<li>方便地实现丰富的效果；</li>
<li>自定制性强；</li>
<li>有一定口碑。</li>
</ul>
<p>在Ajax数据输送方面，我早就选定了DWR(<a href="http:///#dwr_in_ajax">请看&#8221;DWR，让Ajax如此简单&#8221;</a>)，所以下面要找的就是能满足UI需求的框架。当时满足要求的有下面几个：</p>
<ul>
<li><a href="http://developer.yahoo.com/yui/" target="_blank">YUI</a></li>
<li><a href="http://code.google.com/webtoolkit/" target="_blank">GWT</a></li>
<li><a href="http://dojotoolkit.org/" target="_blank">Dojo</a></li>
<li><a href="http://www.prototypejs.org/" target="_blank">Prototype.js</a>+<a href="http://script.aculo.us/" target="_blank">scriptaculous</a></li>
</ul>
<p>　　前三者都有丰富的UI。GWT把java写的代码转换成JS，让开发者只要懂java而不用懂JS。这样做的结果生成的JS晦涩难懂，前后台无法分开。我最无法忍受的就是要在自己的网上放一堆看不懂的代码，何况当时还传出这个框架有BUG呢。</p>
<p>　　YUI和Dojo是被最有希望被选中的了，它们的UI最多，好评也很多。</p>
<p>　　Dojo看上去很专业，而且Dojo里面的东西很多，但没有一个UI是我想要的，而且框架太庞大，不易学习；YUI很好，它提供的Pop窗口和拖动效果很炫，很适合要求。于是我用YUI做了一些Demo，做个试验。因此YUI是我研究得最多的Ajax框架了。</p>
<p>　　YUI提供了一些接口，只要把自定义的行为提供上去，它就可以利用自己的事件驱动去实现你的行为。如一个pop的DIV浮动层，你可以定义它在鼠标点击时干些什么，鼠标拖动是干些什么，鼠标停止时又做些什么，只要你把这些过程事件堆给它就行了，置于怎样个弹出浮动DIV，你完全不用管。但这样做的缺点是可定制性差。你提供的行为只能像一条链似的逐个的执行下去，而这条链的基本行为是定死了的，接口再多也无法满足我的野蛮要求，除非修改它的内核代码，但我不会放弃我的要求！Byebye!</p>
<p>　　说到酷效果，不得不提<a href="http://www.backbase.com/" target="_blank">BackBase</a>，这个也不用你懂JS，但有一套语言叫bxml的语言等你去学习 。论新意，它最特别，从不提起JavaScript这个词，但要你编写bxml，而非HTML。可是殊途同归，它最终也得用JS去解析这些xml，所以它不能得到我的青睐，更不能颠覆根基深厚xHtml。像这类在开发者和JS/HTML之间隔上层纱的Ajax框架都被我除名了。</p>
<p>　　现在只剩下Prototype.js+scriptaculous了。</p>
<p style="TEXT-ALIGN: center"><a href="http://www.prototypejs.org/" target="_blank"><img width="186" height="106" src="http://farm1.static.flickr.yahoo8.akadns.net/217/510391540_dc29cbdc81_m.jpg"/></a></p>
<p style="TEXT-ALIGN: center"><a href="http://script.aculo.us/" target="_blank"><img width="240" height="45" src="http://farm1.static.flickr.yahoo8.akadns.net/194/510371949_03ce835358_m.jpg"/></a></p>
<p>　　Scriptaculous的效果很基础，基本是一个效果一个实现，如果想完成一系列行为，必须整合起来。它的代码里很少直接出现HTML，基本是算法，让你控制页面元素。因为页面的HTML结构与美工有关，最好的CSS技巧也离不开良好的HTML结构，所以我认为这种UI制作方式非常合理，自定制性非常强悍。为了实现DIV浮动，我又发现了<a href="http://prototype-window.xilinus.com/" target="_blank">prototype-window</a>组件，同样基于Prototype.js。</p>
<p>　　Prototype.js要求开发者有一定的JavaScript编写能力，正好可以学习一下。在当时，文档不是Prototype.js的强项，文档不像YUI那样丰富，官方没有提供Prototype.js的文档。但使用Prototype.js的人都喜欢将其代码看一遍，研究它的技巧，换个角度说，使用Prototype.js的人都是喜欢JS的人。所以网上所找到的文档都是网友的读源码心得。</p>
<p>　　而Prototype.js能有像scriptaculous的组件，可见其可扩充性是如此之强，或者干脆的说，Prototype.js为我们提供两样东西：</p>
<ul>
<li>丰富、便捷而又具有高度浏览兼容性对HTML的操作的；</li>
<li>Ruby的效率为先的编程方法。</li>
</ul>
<p>如果说YUI和Dojo都把JS当Java来写，那么Prototype.js就是把JS当Ruby来写了，而JS的灵活性真好被它发挥得淋漓尽致。</p>
<p>　　现在的Prototype.js官方已经提供了丰富的文档。而我之前使用的还是一网友的<a href="https://compdoc2cn.dev.java.net/prototype/html/prototype.js.cn.html" target="_blank">prototype.js开发笔记</a>，还把这个笔记做打包CHM文档供随时翻阅呢；另外还有一个国外网友制作的可以作为桌面图片的<a href="http://www.snook.ca/archives/javascript/prototype_disse/">1.4.0的</a><a href="http://www.snook.ca/archives/javascript/prototype_disse/" target="_blank">图片文档</a>、<a href="http://www.snook.ca/archives/javascript/prototype_1_5_0_cheatsheet/" target="_blank">1.5.0的图片文档</a>，不过我从未这样做，因为放在桌面上没有做成CHM阅读方便，但这也反映出Prototype.js的流行度和追捧度是如此之高了。</p>
<p style="TEXT-ALIGN: center"><img width="213" alt="Demo" height="240" src="http://farm1.static.flickr.yahoo8.akadns.net/214/509568767_26e9583382_m.jpg"/><br/><span style="COLOR: #808080">Demo:使用prototype-window组件把橙色方块中的蓝色移到浮动DIV中</span></p>
<p style="TEXT-ALIGN: center"><img width="232" height="207" src="http://farm1.static.flickr.yahoo8.akadns.net/189/510361170_87dce4793b_m.jpg"/></p>
<p style="TEXT-ALIGN: center"><span style="COLOR: #808080">点击一下，就可以改变DIV的内容</span></p>
<p style="TEXT-ALIGN: center"><img width="399" height="125" src="http://farm1.static.flickr.yahoo8.akadns.net/211/510361168_69aacc0837.jpg?v=0"/></p>
<p style="TEXT-ALIGN: center"><span style="COLOR: #808080">JavaScript模拟线程与线程锁</span><br/></p>
<p><br/>　　<strong>三、DWR，让Ajax如此简单<a id="dwr_in_ajax" name="dwr_in_ajax">　</a></strong></p>
<p style="TEXT-ALIGN: center"><a href="http://getahead.org/" target="_blank" title="DWR"><img height="169" width="200" alt="DWR" title="DWR" src="http://farm1.static.flickr.yahoo8.akadns.net/189/509102834_d806c7de64_o.gif"/></a></p>
<p style="TEXT-ALIGN: left">　　Ajax的目的就是让数据传送的时候不出现页面刷新，所说的无刷新页面也就不过如此，DWR完全做到满足了要求。DWR有如下优点：</p>
<ul>
<li>
<div style="TEXT-ALIGN: left">易于学习，无须再学习大量的API。或者DWR提供了一系统对DHTML的操作，也可以用java编写函数来实现，其自带的JS也有很多有用的函数，但你可以完全不用他们，只要它的数据传送分部足已。</div>
</li>
<li>数据与页面完全分离。DWR返回的数据干干净净，而且支持从java到JavaScript的转换，双向通信容易实现。无论是Java的一个ArrayList还是JavaScript的Array，都能够顺利转换，数据封装容易实现。</li>
<li>安装容易。无须特定的IDE，因为它就是一个普通的jar，只要在需要的类中导入几个包，然后配置几个xml就可以了。这里和Strut、JSF等差不多，让你专心写好javaBean，但不用学习新API，所以就更简单。某些Ajax框架可能须要特定的插件你才可以方便地编写它，如GWT就有一个Eclipse插件。</li>
</ul>
<p><br/></p>
<p>　　DWR很干脆，没有太多的UI组件，更专注于服务端开发，与前台分离，工作分配明细。DWR与Prototype.js及Prototype.js的系列延伸框架配合可谓是如虎添翼。<br/></p>
<p><strong>小结</strong></p>
<p><br/>　　上面所写的关于选择Ajax框架的内容不太严谨。在选择Ajax 框架时，我们还应当考虑它的文件大小对用户的浏览影响、对团队合作的利弊、能否有效促进开发者的工作效率以及与现在条件资源的配合等。<br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://guitarbean.com/2007/05/23/newsxp-2-learning-in-working.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>newsxp内幕之一：网络狂想</title>
		<link>http://guitarbean.com/2007/05/16/newsxp-1-crazy-mind-of-internet.html</link>
		<comments>http://guitarbean.com/2007/05/16/newsxp-1-crazy-mind-of-internet.html#comments</comments>
		<pubDate>Wed, 16 May 2007 00:22:00 +0000</pubDate>
		<dc:creator>ejialin@gmail.com</dc:creator>
				<category><![CDATA[网络技术]]></category>

		<guid isPermaLink="false">http://www.guitarbean.com/2007/05/16/newsxp-1-crazy-mind-of-internet/.html</guid>
		<description><![CDATA[　　2005年9月，我们学校搬进了大学城，各个校区终于聚集在一起！

　　新地点，新气象，万象更新！可不是吗，为了适应新时期的发展，学校各学院、部门网站都已不约而同的换上了新装，其中最大的特点就是在自己在网站banner上添加大学城的相片，如外国语学院、经济与管理学院、纪委等。而早在搬入大学城前，就有网站率先使用了大学城的图片，如：高职处。
　　那我们新闻网呢？

　　我们需要一个新版面！至少也得在banner放上大学城校区[注1]的图片！
　　&#8221;不，我们要一个彻头彻尾的新版面！&#8221;
　　于是，我们开始对未来的新版面进行网络畅想……

　　首先，这个版面得跟得上潮流。现在流行什么？WEB2.0。WEB2.0包含什么？当时据我所知，就是下面几样内容：

Ajax；
DIV+CSS；
与用户更多的交互，更丰富的用户体验；
有很多很多的javascript。

　　什么是2.0？当时我们还不太清楚，但我想，如果一个人在浏览我们的网站时应该是这样的：
　　早上来到办公室，打开电脑，第一时间就是打开http://news.gzhu.edu.cn，然后很赏心悦目的查找最新的消息，关注我们学校的动态。他浏览的新闻网并不是一成不变结构和布局，他可以随意的拖动上面的新闻频道内容，把自己最关注的内容放在前面，不感兴趣的就入在后面，或者干脆隐藏它。也可以自定义自己的频道或模块，如我关注学生宿舍的新闻，于是就添加一个模块，把内容设定为&#8221;学生宿舍&#8221;，然后这个模块就会把所有以&#8221;学生宿舍&#8221;为关键字的新闻全部显示到这个模块上。
　　好了，左边是图片新闻，中间是要闻，右边是&#8221;学生宿舍&#8221;，下面是&#8221;党建&#8221;，再下面就是&#8221;科教广角&#8221;，&#8221;OK，所有内容已经设置完毕，我可以津津有味的喝上一口香浓的咖啡啦！&#8221;然后他每天守在电脑旁时，就让我们的网站开着，这样就可以随时看到我们学校的最新情况啦，因为每个频道或模块都可以自动更新新闻数据，这样你不必手动点击浏览器的&#8221;刷新&#8221;按钮也可以看到最新的消息。
　　但当没有最新消息的时候又怎样呢？没关系，我们也可以添加一个RSS订阅的频道，这样你就可以阅读其它资讯了。当然，我们还提供了好些方便实用的频道和模块，如天气、网络记事本、通讯录等，总之这是一个充满&#8221;2.0风格&#8221;的，非常自由非常有用的页面。
　　看到这里，有人可能会问：&#8221;这些功能怎么那么眼熟啊？&#8221;
　　如果阁下还有记忆，在2006年google已经有了一个叫&#8221;个性化主页的东西&#8221;，就是现在的iGoogle，可以随意设定和拖放频道。但我觉得做得最漂亮的还是微软的live.com。可惜两个我都不怎么使用，因为google我只要搜索就够了，而live.com，我基本是拿它当Demo，从来没有真正使用过。
　　可见这里的一切创新都源于网络，包括美工在内。在韩国网站风格使千万中国人产生审美疲劳时，我看到了国网的DIV+CSS，看到了cssbueauty.com，看到了欧美的大胆而又清新风格，才明白什么叫做&#8221;惊艳&#8221;！
　　于是我们新版面在脑海中成形了：这是一个像google个性主页功能的，做得像live.com那样漂亮的，然后用欧美大胆清新风格美工的网站&#8211;那里有很多像桌面操作系统那样的关闭和刷新按钮，有很多飘来飘去的东西手感很好，充满自由的定制性能得让你爱不惜手，大红大紫的色彩让你惊艳！
]]></description>
			<content:encoded><![CDATA[<p>　　2005年9月，我们学校搬进了大学城，各个校区终于聚集在一起！</p>
<p style="TEXT-ALIGN: center"><a href="http://govo.yo2.cn/wp-content/uploads/13/1344/2007/05/newsschool.jpg" rel="lightbox" title="新校园"><img src="http://govo.yo2.cn/wp-content/uploads/13/1344/2007/05/newsschool-tn.jpg" style="WIDTH: 200px; HEIGHT: 113px; TEXT-ALIGN: center" name="urn:zoundry:jid:newsSchool.JPG" title="新校园" height="113" width="200" alt="新校园" border="0" id="urn:zoundry:jid:newsSchool.JPG"/></a></p>
<p>　　新地点，新气象，万象更新！可不是吗，为了适应新时期的发展，学校各学院、部门网站都已不约而同的换上了新装，其中最大的特点就是在自己在网站banner上添加大学城的相片，如<a href="http://wgx.gzhu.edu.cn/" target="_blank">外国语学院</a>、<a href="http://em.gzhu.edu.cn/" target="_blank">经济与管理学院</a>、<a href="http://jjb.gzhu.edu.cn/" target="_blank">纪委</a>等。而早在搬入大学城前，就有网站率先使用了大学城的图片，如：<a href="http://gzc.gzhu.edu.cn/" target="_blank">高职处</a>。</p>
<p>　　那我们新闻网呢？</p>
<p style="TEXT-ALIGN: center"><a href="http://govo.yo2.cn/wp-content/uploads/13/1344/2007/05/old-logo.gif" rel="lightbox" title="旧版面banner图片"><img src="http://govo.yo2.cn/wp-content/uploads/13/1344/2007/05/old-logo-tn.jpg" style="WIDTH: 200px; HEIGHT: 88px; TEXT-ALIGN: center" name="urn:zoundry:jid:old_logo.GIF" title="旧版面banner图片" height="88" width="200" alt="旧版面banner图片" border="0" id="urn:zoundry:jid:old_logo.GIF"/></a></p>
<p style="TEXT-ALIGN: left">　　我们需要一个新版面！至少也得在banner放上大学城校区[注1]的图片！</p>
<p style="TEXT-ALIGN: left">　　&#8221;不，我们要一个彻头彻尾的新版面！&#8221;</p>
<p style="TEXT-ALIGN: left">　　于是，我们开始对未来的新版面进行网络畅想……</p>
<p><span id="more-46"></span></p>
<p>　　首先，这个版面得跟得上潮流。现在流行什么？WEB2.0。WEB2.0包含什么？当时据我所知，就是下面几样内容：<br/></p>
<ol>
<li>Ajax；</li>
<li>DIV+CSS；</li>
<li>与用户更多的交互，更丰富的用户体验；</li>
<li>有很多很多的javascript。</li>
</ol>
<p>　　什么是2.0？当时我们还不太清楚，但我想，如果一个人在浏览我们的网站时应该是这样的：</p>
<p>　　早上来到办公室，打开电脑，第一时间就是打开<a href="http://news.gzhu.edu.cn">http://news.gzhu.edu.cn</a>，然后很赏心悦目的查找最新的消息，关注我们学校的动态。他浏览的新闻网并不是一成不变结构和布局，他可以随意的拖动上面的新闻频道内容，把自己最关注的内容放在前面，不感兴趣的就入在后面，或者干脆隐藏它。也可以自定义自己的频道或模块，如我关注学生宿舍的新闻，于是就添加一个模块，把内容设定为&#8221;学生宿舍&#8221;，然后这个模块就会把所有以&#8221;学生宿舍&#8221;为关键字的新闻全部显示到这个模块上。</p>
<p>　　好了，左边是图片新闻，中间是要闻，右边是&#8221;学生宿舍&#8221;，下面是&#8221;党建&#8221;，再下面就是&#8221;科教广角&#8221;，&#8221;OK，所有内容已经设置完毕，我可以津津有味的喝上一口香浓的咖啡啦！&#8221;然后他每天守在电脑旁时，就让我们的网站开着，这样就可以随时看到我们学校的最新情况啦，因为每个频道或模块都可以自动更新新闻数据，这样你不必手动点击浏览器的&#8221;刷新&#8221;按钮也可以看到最新的消息。</p>
<p>　　但当没有最新消息的时候又怎样呢？没关系，我们也可以添加一个RSS订阅的频道，这样你就可以阅读其它资讯了。当然，我们还提供了好些方便实用的频道和模块，如天气、网络记事本、通讯录等，总之这是一个充满&#8221;2.0风格&#8221;的，非常自由非常有用的页面。</p>
<p>　　看到这里，有人可能会问：&#8221;这些功能怎么那么眼熟啊？&#8221;</p>
<p>　　如果阁下还有记忆，在2006年google已经有了一个叫&#8221;个性化主页的东西&#8221;，就是现在的iGoogle，可以随意设定和拖放频道。但我觉得做得最漂亮的还是微软的live.com。可惜两个我都不怎么使用，因为google我只要搜索就够了，而live.com，我基本是拿它当Demo，从来没有真正使用过。</p>
<p>　　可见这里的一切创新都源于网络，包括美工在内。在韩国网站风格使千万中国人产生审美疲劳时，我看到了国网的DIV+CSS，看到了cssbueauty.com，看到了欧美的大胆而又清新风格，才明白什么叫做&#8221;惊艳&#8221;！</p>
<p>　　于是我们新版面在脑海中成形了：这是一个像google个性主页功能的，做得像live.com那样漂亮的，然后用欧美大胆清新风格美工的网站&#8211;那里有很多像桌面操作系统那样的关闭和刷新按钮，有很多飘来飘去的东西手感很好，充满自由的定制性能得让你爱不惜手，大红大紫的色彩让你惊艳！</p>
]]></content:encoded>
			<wfw:commentRss>http://guitarbean.com/2007/05/16/newsxp-1-crazy-mind-of-internet.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单说说几个新闻网二级列表形式</title>
		<link>http://guitarbean.com/2007/05/12/talk-about-the-style-of-list-in-some-news-site.html</link>
		<comments>http://guitarbean.com/2007/05/12/talk-about-the-style-of-list-in-some-news-site.html#comments</comments>
		<pubDate>Sat, 12 May 2007 13:42:55 +0000</pubDate>
		<dc:creator>ejialin@gmail.com</dc:creator>
				<category><![CDATA[网络技术]]></category>
		<category><![CDATA[12]]></category>

		<guid isPermaLink="false">http://www.guitarbean.com/2007/05/12/talk-about-the-style-of-list-in-some-news-site/.html</guid>
		<description><![CDATA[一个好新闻二级列表能让读者最大可能地获取所需信息，其列表形式也体现了这个网的思想，下面选取了几个以新闻为主的网站为例，简单分析其二级列表的表现形式。他们分别是：新华网、金洋网　、南方网及大洋网。
1、新华网 




每页显示量大，不提供翻页，页面长，不严格按时间分类，但近段时间的新闻会都会靠前显示，新闻标题以每组5条或10条分组显示，焦点新闻的列表以每组10条显示，且有部分新闻加粗显示表示权重大。
2、金洋网


不严格按时间排列，权重大的新闻会用实心方块在前面标识，其它的则以空心方块标识，列表前面四条新闻显示摘要，之后以每组约5条的方式分组显示，提供分页和按时间查看操作，每页的信息量也很大。
3、大洋网


严格按时间排列，最新的排最前，不分组显示，不分页，但信息量同样很大。
4、南方网

不严格按时间排列，但最近发面的新闻也能排在前面，不分页不分组，信息量大。
　　观察上面的几个新闻网，只有新华网和金洋网在列表这方面做得最细致。
　　新闻是一个具有时效性的事物，所以新闻网站都把时间考虑为第一因素，但新闻也有它的权，所以结合时效性，适当的把权重比较大的新闻放在前面。但因为这些网站的新闻量非常之大，分组显示新闻能帮助读者进行信息快速筛选，把“一目十行”改为“一目一组”，减少视觉疲劳。如果当中有特别新闻，则可特别进行显示，如加粗标题。
　　新闻二级列表的目的就是让读者从中取得更多索引，而新闻的标题就已经概括了新闻的主要内容，这是一个基本的新闻写作常识，所以在二级列表中加入新闻摘要是多余的。
]]></description>
			<content:encoded><![CDATA[<p>一个好新闻二级列表能让读者最大可能地获取所需信息，其列表形式也体现了这个网的思想，下面选取了几个以新闻为主的网站为例，简单分析其二级列表的表现形式。他们分别是：<a target="_blank" href="http://www.xinhuanet.com">新华网</a>、<a href="http://www.ycwb.com/" target="_blank">金洋网　</a>、<a href="http://www.southcn.com/" target='_blank'>南方网</a>及<a href="http://dailynews.dayoo.com/" target="_blank">大洋网</a>。</p>
<p><strong>1、新华网 </strong></p>
<p class='center'>
<img src="http://farm1.static.flickr.yahoo8.akadns.net/196/494563998_9813eb4296.jpg?v=0" alt="www.xinhuanet.com" /></p>
<p><img src="http://farm1.static.flickr.yahoo8.akadns.net/223/494735517_e440e0ad44_m.jpg" alt="新华网 焦点新闻列表" />
</p>
<p>每页显示量大，不提供翻页，页面长，不严格按时间分类，但近段时间的新闻会都会靠前显示，新闻标题以每组5条或10条分组显示，焦点新闻的列表以每组10条显示，且有部分新闻加粗显示表示权重大。</p>
<p><strong>2、金洋网</strong></p>
<p class='center'>
<img src="http://farm1.static.flickr.yahoo8.akadns.net/202/494564002_35be754151.jpg?v=0" alt="金洋网" /></p>
<p>不严格按时间排列，权重大的新闻会用实心方块在前面标识，其它的则以空心方块标识，列表前面四条新闻显示摘要，之后以每组约5条的方式分组显示，提供分页和按时间查看操作，每页的信息量也很大。</p>
<p><strong>3、大洋网</strong></p>
<p class='center'><img src="http://farm1.static.flickr.yahoo8.akadns.net/232/494563994_2c91811718.jpg?v=0" alt="大洋网" />
</p>
<p>严格按时间排列，最新的排最前，不分组显示，不分页，但信息量同样很大。</p>
<p><strong>4、南方网</strong><br />
<img src="http://farm1.static.flickr.yahoo8.akadns.net/223/494564000_6153a86f41.jpg?v=0" alt="南方网" /><br />
不严格按时间排列，但最近发面的新闻也能排在前面，不分页不分组，信息量大。</p>
<p>　　观察上面的几个新闻网，只有新华网和金洋网在列表这方面做得最细致。<br />
　　新闻是一个具有时效性的事物，所以新闻网站都把时间考虑为第一因素，但新闻也有它的权，所以结合时效性，适当的把权重比较大的新闻放在前面。但因为这些网站的新闻量非常之大，分组显示新闻能帮助读者进行信息快速筛选，把“一目十行”改为“一目一组”，减少视觉疲劳。如果当中有特别新闻，则可特别进行显示，如加粗标题。</p>
<p>　　新闻二级列表的目的就是让读者从中取得更多索引，而新闻的标题就已经概括了新闻的主要内容，这是一个基本的新闻写作常识，所以在二级列表中加入新闻摘要是多余的。</p>
]]></content:encoded>
			<wfw:commentRss>http://guitarbean.com/2007/05/12/talk-about-the-style-of-list-in-some-news-site.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA判断是否ISBN号</title>
		<link>http://guitarbean.com/2006/05/16/java-validating-isbn-number.html</link>
		<comments>http://guitarbean.com/2006/05/16/java-validating-isbn-number.html#comments</comments>
		<pubDate>Tue, 16 May 2006 06:35:57 +0000</pubDate>
		<dc:creator>ejialin@gmail.com</dc:creator>
				<category><![CDATA[网络技术]]></category>

		<guid isPermaLink="false">http://www.guitarbean.com/2006/05/16/java-validating-isbn-number/.html</guid>
		<description><![CDATA[今晚因为有QQ群上有位网友问到如何判断ISBN号，于是就研究一下，结果写了一个JAVA方法出来，经过多本书籍ISBN号的验证，嘿嘿，正确无误！
[code:java]
/**
     * 判断是否ISBN号。
     *

     * 国际标准书号ISBN是英文International Standard Book Number的缩写，
     * 1971年国际标准化组织ISO(International Organization for Standardization)
     * 批准了国际标准书号在世界范围内实施，迄今已经有30多年的历史，参加国家有159个。
     * 国际标准书号由十位数字组成。由三条短横线分为四段，第一段都有不同的含义。
     * 第一段号码是地区号，又叫组号，
     * 由设在德国柏林国立普鲁士文化遗产图书馆的国际标准书号中心分配。
  [...]]]></description>
			<content:encoded><![CDATA[<p>今晚因为有QQ群上有位网友问到如何判断ISBN号，于是就研究一下，结果写了一个JAVA方法出来，经过多本书籍ISBN号的验证，嘿嘿，正确无误！</p>
<p>[code:java]<br />
/**<br />
     * 判断是否ISBN号。<br />
     *
<pre>
     * 国际标准书号ISBN是英文International Standard Book Number的缩写，
     * 1971年国际标准化组织ISO(International Organization for Standardization)
     * 批准了国际标准书号在世界范围内实施，迄今已经有30多年的历史，参加国家有159个。
     * 国际标准书号由十位数字组成。由三条短横线分为四段，第一段都有不同的含义。
     * 第一段号码是地区号，又叫组号，
     * 由设在德国柏林国立普鲁士文化遗产图书馆的国际标准书号中心分配。
     * 最短的是一位数字，最长的达五位数字，大体上兼顾文种、国别和地区。
     * 把全世界自愿申请参加国际标准书号体系的国家和地区，划分成若干组，
     * 各有固定的编码，如0、1代表英文出版物，7代表中国出版物等。
     * 第二段号码是出版社代码，由其隶属的国家或地区ISBN中心分配，
     * 允许取值范围为2-5位数字。出版社的规模越大，出书越多，其号码就越短。
     * 第三段是书序号，由出版社自己给出，每个出版社的书序号是定长的。
     * 最短的一位，最长的六位。出版社的规模越大，出书越多，序号越长。
     * 第四段是校验位，用10至2这9个数分别去乘标准书号的前9位数然后以11为模计算得到。
     * 取值范围为0-10，10由X代替。
     * 10位ISBN：0-393-04002-?</pre>
<p>     * @param s 待判断的字符串<br />
     * @return 如果是ISBN号，返回true，否则返回false。<br />
     */<br />
public static boolean isISBN(String s){<br />
        final String regex="\d{1,5}\-\d{2,5}\-\d{1,6}\-([0-9]|x|X)";<br />
        if(!s.matches(regex)) return false;<br />
        String regexSp[]=s.split("\-");<br />
        int leng=regexSp[0].length()+regexSp[1].length()+regexSp[2].length();<br />
        if(leng!=9) return false;<br />
        int check=0,ten_two=10;//检验数<br />
        for(int ii=0;ii&lt;3;ii++){<br />
            for(int i=0;i<regexsp [ii].length();i++){<br />
                check=check+Integer.parseInt(String.valueOf(regexSp[ii].charAt(i)))*ten_two;<br />
                ten_two--;<br />
            }<br />
        }<br />
        int last="x".equals(regexSp[3].toLowerCase())? 10 : Integer.parseInt(regexSp[3]);<br />
        if((check+last)%11!=0) return false;<br />
        return true;<br />
    }<br />
[/code]</p>
]]></content:encoded>
			<wfw:commentRss>http://guitarbean.com/2006/05/16/java-validating-isbn-number.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
