<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>xxpniu</title>
    <description>寻求技术的突破,汗与泪具洒电脑桌.

有对操作系统数据结构有兴趣的同志，希望能一起讨论!</description>
    <link>http://xxpniu.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>小鸟杂谈</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/242952" style="color:red;">http://xxpniu.javaeye.com/blog/242952</a>&nbsp;
          发表时间: 2008年09月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          参加工作两年了,虽然一直做的不是java但是对java也有很大的兴趣,一直在努力吧java学习好,不过一直以来公司是用asp也就是大家常见的过时语言.<br />不过语言这东西是相通的,在程序的设计思路上是一样的.在现在来看asp(js)的程序也是很有学问的一个后台语言,为什么当时没有流行呢. 哈哈,可能是 js的原因吧.太灵活而且内存上也不是一个好控制处理的鸟.<br />技术方面也了解些了,不过一直在追求怎么让后台和前台完美的分离,显示和数据控制的绝对划分,从年初开始了解ext,不过在之前了解过prorotype和juery都用的还可以.后来一直梦想着用json来实现数据的层之间的通信,期间了解了json.org提供的java包.有个很伟大的想法就是实现数据提供的blog不过后来实现的也只是后台json生成,在这中间的又了解了jpa1.0哈哈,toplink的包还不错,感觉very好.处理起来比hibernate好多了.用的也很省事.<br />年初的时候不知不觉的当上了组长,不过压力好大啊,,真不知道为什么会是我..因为公司来说我是最小的,到现在来说中间走了两个老程序,说他们老是因为他们至少比我大5岁.呵呵,到现在团队基本稳定,或者说我的位置基本上能发挥些作用.公司的作业方式一直是作坊式,这个你想改变你也没有这个能力.提供给你的角色就是好好做好自己的工作,设计好合理点的数据结构文档,安排整个部门的程序工作.<br />现在部门都是年轻人了,不过来说我还是最小的,好有压力的,有时候给大家分配工作的时候还是很谦让的听大家的意见,工作分配的过程好像是一种无意识的帮助而已.不知道这样的方式好不,不过现在来说没有找到比个更合适的方法了. 要做到让大家都很高兴真的很累. 前几天fire了一个新人,其实对于新人来说我觉得不是老说这个问题有难度.而且很多话都不给我说直接找经理,然而经理在技术方面的权利其实已经放给我了.所以最后自己吃了自己的果子,让经理给fire了.不过说实话很想带好个新来公司的人,毕竟我也是从那样走过来的.不过我很讨厌夸着级别去沟通,不过也证明了这样的做法是错误的.<br />最近在招人,找个合适程序员很难,碰到牛人了价钱又谈不来,即使人家愿意我还觉得耽误人家前途呢,哈哈. 有些有经验的人能不能给点指点啊.<br />不过我来说更希望的是有经验的来配合我,或者说我来配合他.这样的人很难找啊,呵呵.现在压在身上的担子还是有点的.整个公司的ao系统还是很复杂的.而且现在人手又很少.经理的观念又是能小改绝不大动,能翻新绝不新做.所以很都东西在之前的系统上嫁接哈哈.<br />最近整体在学习ext2.0,也做了不少ext的学习交流了,处理asp.net,asp程序共同应用开发方面也做了不少工作.解决了很多实际问题呢.有时候员工对技术的认识是很可怕的.开始没人愿意做asp都想做asp.net的活 只能我一个人吧整个后台处理下来.那时候那个程序编写速度啊 快惊人啊.有段时间一天能写2k行的代码.哈哈 不过后来证明了有些代码是重复的.<br />在公司快两年了,学了不少东西,也感觉到了一些问题.开始吧一个美工带好了div+css人家就跳了而且工资是我的1.5倍.程序方面也带的大家学会了ajax框架现在来说整个团队的js水平都不错.现在大家都在用ext也是我给大家带出来的.呵呵.<br />做了两年的技术,现在还在北大混本科文凭哈哈.感觉有时候人生还是很没有目标.不知道技术路上自己能走多远,也不知道项目协调管理方面自己能做的怎么样.现在写文档多起来了,同时协调4个程序做事情不是很简单.不过还要考虑asp和asp.net之前的问题也不是很轻松.不过这些都要自己先弄明白然后带着大家一起弄明白,那个时候应该能好些.一个团队真的不能有一个工作不积极的人.之前fire了不少人.不过都是我fire的嘿嘿.
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/242952#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 17 Sep 2008 00:59:32 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/242952</link>
        <guid>http://xxpniu.javaeye.com/blog/242952</guid>
      </item>
          <item>
        <title>JS 杂谈</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/214635" style="color:red;">http://xxpniu.javaeye.com/blog/214635</a>&nbsp;
          发表时间: 2008年07月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近很多人问我js的问题,总结下问的问题,整理了整体思路来给大家看看,希望能有帮助.<br />JS :<br />学习的基础知识:<br />知道下面几种操作相同的功能!<br /><br />new Array() == [];<br />new Object() == {} ;<br />function a (){} == var a = function(){};<br /><br />所有的对象都是对 Object 的继承(注意这个Object不是我们看到Object 但是Object提供了多Object 的构造)<br />要知道 for(var a in {})的循环的作用`<br />要知道 clone的实现方法和 extend是实现方法.<br />function clone(father)(<br />&nbsp; var a = {};<br />&nbsp; for(var p in father){<br />&nbsp;&nbsp; a[p] = father[p];<br />&nbsp; }<br />&nbsp; return a;<br />)<br /><br />function extend(obj,sup){<br />&nbsp;&nbsp;&nbsp; var a = obj;<br />&nbsp; for(var p in father){<br />&nbsp;&nbsp; a[p] = father[p];<br />&nbsp; }<br />&nbsp; return a;<br />}<br /><br />要知道 在js中的this的作用 和所代表的对象` <br />要知道 function 对象都有的 prototype 的作用`<br />apply 和 call的作用~ 哈哈 基本上就这些了 相当基础的``
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/214635#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Jul 2008 16:58:56 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/214635</link>
        <guid>http://xxpniu.javaeye.com/blog/214635</guid>
      </item>
          <item>
        <title>民族情绪</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/183703" style="color:red;">http://xxpniu.javaeye.com/blog/183703</a>&nbsp;
          发表时间: 2008年04月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          近来很多事激发了我们的爱国情绪的波动,波动的同时也显出我们不理智的思绪.就抵制法国货来说矛头指向家乐福未免过于草率,家乐福固然为法国有关系,但是谁有分析其中原由?我们去买东西最终是买的是商品不是店面,考虑过后或许你能想出其中损失出有何方了.爱国很高尚,如果脱离实际,过多的是一种冲动行为,而没有冷静理智的思考.爱国就会被人利用.<br />放眼当前世界,战争早已转向经济战争,谁把握经济的流向谁就能把握最终的世界的格局.大家有没有想过这样一个简单的问题?中国那么多商品为什么要远走海外而不在国内销售?就简单的是为了赚钱吗?人们应该静下心来想想.社会缺的不是一腔热血,社会更需要冷静的思维.有则报道大家是否看过?在人民币值钱的同时我们丧失了3000亿的美圆.美国人给了我们美圆,但是不值钱的美圆能给我们换回什么?大家是否想过这个简单的数字背后是藏有极大的阴谋.资本主义强国一直在阴谋颠覆我们的国家,并且这已经从最初的武力颠覆转向了经济控制上了.中国人能怎么办?我们不是小国我们是一个大国我们不能有韩国等一些小国的情绪. 制约经济的杠杆是把握在人们的手中,不要抵制外国产品,要尽量在生活中使用外国的一些产品,从经济上制约外国.中国是世界上唯一的人口大国,只要我们的购买力上,大量用我们的人民币换取外国的商品,外国自然就会保护中国,就像大家现在保护美国一样,到那个时候他们是依靠中国而不是排斥中国.<br />爱国不是一种冲动,更多的是一种理智的思索,冷静的思考,要知道我们是大国,我们不能有小国小民族的排外思想,我们要以中华民族的庞大包容来影响同化整个世界.
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/183703#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Apr 2008 11:31:10 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/183703</link>
        <guid>http://xxpniu.javaeye.com/blog/183703</guid>
      </item>
          <item>
        <title>JS 相关</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/182451" style="color:red;">http://xxpniu.javaeye.com/blog/182451</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="javascript">
  var _Person = {
    name :'',
    age:0
  };
  var Person = new Function();
  Person.prototype = _Person;
  //构造器
</pre><br /><pre name="code" class="javascript">
Object.clone = function(obj){
var _son = {};
for(var pro in obj){
_son[pro]=obj[pro];
}
return _son;
}
Object.extends = function(son,fat){
for(var pro in fat){
son[pro]=fat[pro];
}
return son;
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/182451#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 01:06:22 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/182451</link>
        <guid>http://xxpniu.javaeye.com/blog/182451</guid>
      </item>
          <item>
        <title>JS 构造器的研究</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/170482" style="color:red;">http://xxpniu.javaeye.com/blog/170482</a>&nbsp;
          发表时间: 2008年03月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          自从写JS开始一直在研究他与Java的共同点.<br />JAVA是模版复制的代码运行.<br />我们写的JAVA代码都是以类来封装,一个JAVA程序就是在不停从类模版中获取数据表示形式然后让进内存.<br />然而JAVASCRIPT却是直接解析语言,所有都是直接构建在代码之上.所以就没有所谓的模版之说了. 那怎么让我们的写的对象 复制成多个内存中位置不一样的命名空间呢? 这就需要构造器:(下面是ME研究了的心得);<br /><br />构造器在JS中一个 Function 对象. 你当然可以使用函数的定义方法来创建 <br />var _f=function(){}<br />也可以用对象的构造方法来创建了 <br />var _f=new Function();<br />两个是一样的.<br />创建完后 我们的_f对象就有prototype属性了 <br />prototype属性本身又是一个对象.<br />在JS中提供从function对象构造对象的接口 具体使用是这样的<br />var myOb= new _f();<br />在使用new 构造的时候 是把 _f 中的prototype所有的属性和方法复制进 构造出来的对象中.<br />所以我们可以这样<br />var _a = {id:'xxx'}<br />_f.prototype=_a;<br />然后在使用new<br />那么构造出来myOb 就有 id = 'xxx'这个属性了.<br /><br />其实就是对象复制,我们可以这样来复制<br /><br />var _a={id:'xxx'}<br /><br />var a = (function(){<br />&nbsp; var _t={};<br />&nbsp; for(var p in _a){<br />&nbsp;&nbsp; _t[p]=_a[p];<br />&nbsp; }<br />return a;<br />})();<br />大家研究下哈哈
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/170482#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 12 Mar 2008 12:05:46 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/170482</link>
        <guid>http://xxpniu.javaeye.com/blog/170482</guid>
      </item>
          <item>
        <title>Js AutoComplete Data User Json </title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/163609" style="color:red;">http://xxpniu.javaeye.com/blog/163609</a>&nbsp;
          发表时间: 2008年02月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">

/*
* author xxp 2008-12-2-19
*/

/*
   {
	   responseInfo:{success:true,message:'返回数据!'},
	   data : [
			     {title:'&lt;html>',completeData:'auto'},..
			   ]
	   }
  
*/

var AutoComplete = Class.create({
							   initialize:function(url,input,div){
								    
									this.url=url;
									this.input=input;
									this.div=div;
									var _in = $(input);
									var _div= $(div);
									this.fix = null;
									$(this.input)._autoComplete=this;
									$(this.input).onkeyup=function(){
										  
										  if(!event) event = window.event;
											  switch(event.keyCode) {
											   case Event.KEY_ESC:
												 this._autoComplete.doHide();
												 return;
											}
											this._autoComplete.doPost(); 
										};
							    },
								//getData
								data:null,
								doPost:function(){
									var obj=this;
									new Ajax.Request(
													  this.url+'?k='+$(this.input).value,
													  {
														  onSuccess:function(r){
															    try{
																 var _d = r.responseText.evalJSON();
																 if(_d.responseInfo.success&amp;&amp;_d.data.length>0){
																	 obj.data=_d;
																	 obj.doDisplay();
																	 }
																}catch(ex){
																	 //do nothing 
																	 //for test please use this code 
																	 alert("process data :"+ex.message);
																	}
															  }
														  }
													 );
									},
								doDisplay : function(){
									 this.doShow();
									 try{
									 var obj =this;
									 var id = new Date().getTime();
									  var html='&lt;div id="'+id+'fix" style="position:absolute; border:1px #000000 solid;background:#FFFFFF">&lt;/div>';
									  $(this.div).innerHTML=html;
									  this.fix=$(id+'fix');
									  var _ul = new Element('ul');
									  this.fix.appendChild(_ul);
									  this.data.data.each(
											  function(i){
												  //process
												  var _li = new Element('li');
												  _li._autoComplete = obj;
												  _li.innerHTML = i.title;
												  _li._data =  i.completeData;
												  _li.onclick = function (){
													     this._autoComplete.doEnter(this);
													  }
												  _li.onmouseover=function(){this.setStyle({background:"#E6ECFB"})};
												  _li.onmouseout=function(){this.setStyle({background:""})};	 
												  _li.setStyle({cursor:'pointer'});	  
												  _ul.appendChild(_li);
												  }			  
											);
									 }catch(ex){
										 alert(ex.message);
										 }
									},//doDisply	
								doEnter  : function(obj){
									$(this.input).value=obj._data;
									this.doHide();
									},
								doShow   : function(){
									if($(this.div).getStyle('display')=='none'){
										$(this.div).setStyle({'display':'block'});
										}
									
									},	
								doHide   : function(){
									if($(this.div).getStyle('display')=='block'){
										$(this.div).setStyle({'display':'none'});
										}
									if(this.fix)	
									this.fix.remove();		
									}	
								}
							  );












</pre><br /><br /><pre name="code" class="java">

    &lt;input  type="text" name="user" id="user" value="&lt;%=User%>"  autocomplete="off"  />
    &lt;div id="userNoAuto" class="autoComplete">&lt;/div>
      &lt;script>
        new AutoComplete('json/User.asp','user','userNoAuto');
      &lt;/script>
    &lt;/div>
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/163609#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Feb 2008 13:33:32 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/163609</link>
        <guid>http://xxpniu.javaeye.com/blog/163609</guid>
      </item>
          <item>
        <title>语言的速度优化</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/149834" style="color:red;">http://xxpniu.javaeye.com/blog/149834</a>&nbsp;
          发表时间: 2007年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          For 语句可能是我们最常用的。大家习惯可能是这样。<br />比如对一个数据屡遍<br />for(int i=0;i&lt;array.length;i++){<br />} <br />这样写有什么不好呢？先看下面这段代码<br />for(int i=0,len=array.length;i&lt;len;i++){<br />}<br />显然两种写法的效果一样 <br />但是就第一种写法而言<br />循环中不得不对内存的两次查询<br />首先在当前作用域中查询到array然后在在array作用域中找到length(也可以说是指针的使用C/C++)<br />而下面的写法呢？多一个变量 少一次查询作用域 在循环次数非常大的时候相对于一来说二的代码更优化。
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/149834#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 21 Dec 2007 01:34:28 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/149834</link>
        <guid>http://xxpniu.javaeye.com/blog/149834</guid>
      </item>
          <item>
        <title>国人的技术和老外的差距</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/149831" style="color:red;">http://xxpniu.javaeye.com/blog/149831</a>&nbsp;
          发表时间: 2007年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          目前我们使用的技术都是国外一年前使用的。<br />就说比较新Ajax技术来说也是国外几年前的技术<br /><br />造成原因：<br />1，国内很多学子以为计算机语言就是软件唯一，把软件看成计算机语言的集合。从不想软件是表达人的思维，语言是表达的时候所用的工具。没有一个系统的逻辑的思维，纯粹为代码而写代码。<br />2，很多人痛恨EN，因为学计算机的往往是理科学生，而EN不好都是理科生的通病，所以出现许多人见EN文档就痛恨老美。造成技术依靠翻译者来支持。从而失去了原味的技术。（翻译人往往会进行语言加工）<br />3，学习计算机的到很多毕业后转行计算机的都没有研究过算法，不了解数据结构，不清楚程序编译执行的过程，造成代码编写极其不规范，为单一实现功能而写代码。<br />4，国内虽然存在很多技术高手，可是很自以为是，很少乐心帮助别人，同时可能也存在初学者不礼貌的提问，造成技术缺少交流，因此我们很容易理解编程三年的人为什么会变的孤言寡语了。<br />5，国内硬件技术相对落后，无有成熟的核心技术（CUP），造成一直依靠外国的CUP，从而限制了国内的核心技术发展。（数据库，操作系统等）。<br /><br />就目前技术来看，我们至少需要走20年或者更长，不过国人能人无数，相信计算机技术也能想国内经济奇迹一样20年走国外50年的路。
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/149831#comments" style="color:red;">已有 <strong>4</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 21 Dec 2007 01:22:35 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/149831</link>
        <guid>http://xxpniu.javaeye.com/blog/149831</guid>
      </item>
          <item>
        <title>JS + Div +CSS 实现类 windows 树</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/148149" style="color:red;">http://xxpniu.javaeye.com/blog/148149</a>&nbsp;
          发表时间: 2007年12月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Js 类 文件 <br /><pre name="code" class="java">
//author xxp 
//Email 54249636@qq.com
//deploy
var AddOnclick=Class.create({
							   initialize:function(_oc){
								   if(typeof _oc == 'function'){
								   this.beforeOnclick=_oc;
								   }else{
									this.beforeOnclick=function (){return;}   
									   }
								   }
							  }
							  );
//TreeNote
var TreeNote=Class.create({
					  //树的子节点,
					  //初始化 参数 textValue,rank,onclick,deployBottom
					  initialize:function(textValue,onclick,deployBottom){
						  this.textValue=textValue,this.onclick=onclick,this.deployBottom=deployBottom;
						  //父节点
						  this.superNote=null;
						  //包含div
						  this.outerDiv=null;
						  //树的DIV
						  this.superDiv=null;
						  },
					  appendChildNote:function (/*TreeNote*/_obj){
						  //不存在子节点包含数组则创建
						  if(!this.childNote)this.childNote=[];
						  this.childNote[this.childNote.length]=_obj;
						  _obj.superNote=this;
						  },
					  //是否存在子节点	  
					  haveChildNote:function(){
						  return !(!this.childNote);
						  },
					  haveSuperNote:function(){
						  return !(!this.superNote);
						  },
					  isLast:function(){
						   //是否有父节点
						   if(this.haveSuperNote()){
							     return this.superNote.childNote[this.superNote.childNote.length-1]==this;
							   }
						    return true;	   
						  }	  
					  });
//TreeStyle
var TreeStyle=Class.create({
						  //数的样式 
						  initialize:function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10){
							  this._1=_1,this._2=_2,this._3=_3,this._4=_4,this._5=_5,this._6=_6,this._7=_7,this._8=_8,this._9=_9,this._10=_10;
							  }	  
						   });
var Tree=Class.create({
					  initialize:function(_container,root){
						  this.container=_container;//容器div
						  this.root=root;//最高节点
						  this.style=new TreeStyle("C1","C2","C3","C4","C5","C6","C7","C8","C9","C10");
						  var _t=new Element("div");
						  this.container.appendChild(_t);
						  this.display(_t,this.root);
						  },
					  addNote:function(_root){
						  this.root=_root;
						  },
					  display:function(_outerDiv,_note){
						  var _s=this.style;
						  //该层容器DIV
						  var _root=_outerDiv;
						  //该节点容器DIV
						  var _t_r_d=new Element("div");
						  _root.appendChild(_t_r_d);
						  //捆绑进对象
						  _note.outerDiv=_t_r_d;
						  _note.superDiv=_root;
						  //创建行DIV
						  var _t_r_c=new Element("div");
						  _t_r_d.appendChild(_t_r_c);
						  //临时变量一
						  var _t1=null;
						  var _t_s_o=null; //上层对象
						  //获取层
						  var rank=0;
						  _t_s_o=_note;
						  for(;;){
							 if(!_t_s_o.haveSuperNote()) break;
							 _t_s_o=_t_s_o.superNote;
							 rank++;
							//if(rank>10)break;
							}
						  //显示前面的div	  
						  for(var i=rank;i>0;i--){
							  _t_s_o=_note;
							  for(var j=i-1;j>=0;j--){
								  _t_s_o=_t_s_o.superNote;;
								  }
							  _t1=new Element("div");
							  if(_t_s_o.isLast()){
							  _t1.className=_s._8;
							  }else{
							  _t1.className=_s._4;
							  }
							  _t_r_c.appendChild(_t1);
							  }
						   //显示前面的展开Or Not
						   _t1=new Element("div");
						   _t_r_c.appendChild(_t1);
						   _t1._bindNote=_note;
						   _t1._tree=this;
						   _t1._isOpen=false;
						   _t1.onclick=function(){
							   this._bindNote.deployBottom.beforeOnclick();
							   if(this._bindNote.haveChildNote()){
								this._tree.showNext(this);
								this._isOpen=!this._isOpen;
								this._tree.changeCss(this,
								 this._isOpen?this._tree.style._6:this._tree.style._7
								 );
								}
							   }
						   if(_note.haveChildNote()){
							  if(_note.isLast()){
								  _t1.className=_s._7;
								  }else{
								  _t1.className=_s._5;	  
									  }
							}else{
								 if(_note.isLast()){
								  _t1.className=_s._3;
								  }else{
								  _t1.className=_s._2;	  
									  }
							}
						   _t1=new Element("div");
						   _t_r_c.appendChild(_t1);
						   _t1._bindNote=_note;
						   _t1._tree=this;
						   _t1.className=_s._9;
						   _t1.onclick=function(){
							   this._bindNote.onclick.beforeOnclick();
							   }
						   _t1.update(_note.textValue)   
						   },
						 showNext:function(_obj){
							  //_t = true
							  if(_obj._isOpen){
								  _obj._bindNote.childNote[0].superDiv.remove();
								  return;
								  }
							  var _t=new Element("div");
							  _obj._bindNote.outerDiv.appendChild(_t);
							  for(var i=0;i&lt;_obj._bindNote.childNote.length;i++){
							  this.display(_t,_obj._bindNote.childNote[i]);
							  }
							 },
						 changeCss:function(_obj,_className){
							  _obj.className=_className;
							 }	 
							 
					  });

</pre><br />测试 页<br /><pre name="code" class="java">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&lt;html xmlns="http://www.w3.org/1999/xhtml">
&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
&lt;script src="prototype.js">&lt;/script>
&lt;script src="tree.js">&lt;/script>
&lt;script>
var rootNote=new TreeNote("测试树Root",new AddOnclick(function(){alert("root")}),new AddOnclick(function(){})); 
rootNote.appendChildNote(new TreeNote("测试树_---t",new AddOnclick(function(){}),new AddOnclick(function(){})));
t= new TreeNote("测试树111t",new AddOnclick(function(){}),new AddOnclick(function(){}));
t.appendChildNote(new TreeNote("测试树1t",new AddOnclick(function(){}),new AddOnclick(function(){})));
t.appendChildNote(new TreeNote("测试树1t",new AddOnclick(function(){}),new AddOnclick(function(){})));
t.appendChildNote(new TreeNote("测试树1t",new AddOnclick(function(){}),new AddOnclick(function(){})));
rootNote.appendChildNote(t);
rootNote.appendChildNote(new TreeNote("测试树_---t",new AddOnclick(function(){}),new AddOnclick(function(){})));
function init(){
new Tree($("tree"),rootNote)
}&lt;/script>
&lt;title>无标题文档&lt;/title>
&lt;style>
  #tree div{ clear:both; font-size:12px;}
  #tree .C1{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 0 no-repeat;cursor:pointer;}
  #tree .C2{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -16px no-repeat;cursor:pointer;}
  #tree .C3{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -32px no-repeat;cursor:pointer;}
  #tree .C4{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -48px no-repeat;cursor:pointer;}
  #tree .C5{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -64px no-repeat;cursor:pointer;}
  #tree .C6{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -80px no-repeat;cursor:pointer;}
  #tree .C7{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -96px no-repeat;cursor:pointer;}
  #tree .C8{ float:left; clear:none; height:16px; width:15px; cursor:pointer;}
  #tree .C9{ float:left; clear:none; height:16px; width:200px;cursor:pointer; overflow:hidden; line-height:16px; text-indent:3px;}
&lt;/style>
&lt;/head>

&lt;body onload="init()">
&lt;div id="tree">
&lt;div>测试&lt;/div>
&lt;/div>
&lt;/body>
&lt;/html>
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/148149#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Dec 2007 17:34:33 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/148149</link>
        <guid>http://xxpniu.javaeye.com/blog/148149</guid>
      </item>
          <item>
        <title>说说JS</title>
        <author>xxpniu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://xxpniu.javaeye.com">xxpniu</a>&nbsp;
                    链接：<a href="http://xxpniu.javaeye.com/blog/147566" style="color:red;">http://xxpniu.javaeye.com/blog/147566</a>&nbsp;
          发表时间: 2007年12月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JS 算最灵活的语言吧` 虽然走着JAVA的代码风格?但是实属两种语言.<br />JS 编译器管理着不同于JAVA的数据结构，所有的都是对象。JAVA的代码是一切为了对象而写代码,JS的是一切都是对象。<br />在JAVA里面必须为每一个对象写个摸版,编译器对摸版进行特殊处理形成了JAVA B CODE,简单一看两个原理其实是一样的?怎么说? JAVA 也是需要解析后才能用,js也是解析后才能用.只是两种语言,Java是从B Code 开始解析,而JS是针对源代码执行解析. 思想一样,在B/S中服务器的资源是有限的,而CLIENT资源是无限的,把JAVA写成需要经过编译后的语言有好处B CODE 给JAVA性能留了非常大的提升空间,而JAVA语言则实现了最好的面向对象的语言规范。<br /><br />Js不用考虑资源问题,即使是C的1000分之一在CLIENT上也是看不出任何速度快慢的,所以JS这个语言存在了许多的灵活使用.<br />从数据上理解来说:<br />Js 的代码是架设在对象之上的,代码是一个特殊的对象,既然是对象就可以任意附值.<br />function 是对象. 当你写函数的时候 <br />function a(){}; 实际上是创建了个新的&nbsp; Function 对象<br />所有的Function 对象都有prototype这个属性 然而 Function 又可以提供给new 来创建新对象并且把函数作为新对象的构造方法用.在NEW创建对象的时候所有prototype对象中的属性都会在新的对象中存在。所以new 在js中提供的是一种比java更复杂的接口`<br />在JAVA中只是在内存中按模版创建，而jS中则是对对象的一个特殊的CLONE。在JS中{}就是创建对象,等同于一 new Object();两者在JS解析器里面是影射相同的操作,[]就是new Array();两者也一样。<br />所以千万不要把js中的function等同于c中的函数调用,c中的函数名称存的是函数的接入地址，而js中的函数名称是存的一个Function对象的句柄。两者实现功能一样，原理却相差很大。<br /><br />所以在js里面代码就是程序,程序就是代码` 而在C，C++,JAva里面代码就是代码程序就是编译后的代码!
          <br/><br/>
          <span style="color:red;">
            <a href="http://xxpniu.javaeye.com/blog/147566#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 11 Dec 2007 15:09:48 +0800</pubDate>
        <link>http://xxpniu.javaeye.com/blog/147566</link>
        <guid>http://xxpniu.javaeye.com/blog/147566</guid>
      </item>
      </channel>
</rss>