<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>TRy HArD aT aNY TimE</title>
    <description></description>
    <link>http://anweixiao.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>TagLib的部署问题</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/224813" style="color:red;">http://anweixiao.javaeye.com/blog/224813</a>&nbsp;
          发表时间: 2008年08月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          如果在jsp中有使用自定义标签的需求，则不可避免的会发生如下的需求:<br />    1、使用到的标签是特殊的，当前没有具体的实现；<br />    2、使用到的标签已经存在于了.jar文件中, 但很不幸该.jar文件在.ear下面，并位于/WEB-INF/lib之外;<br />    3、使用到的.jar文件在单独的taglib.jar中,且位置可以由你自己决定随便放置；<br /><br />如果是 1 的情况, 最好的办法是自己实现一个标签, 这可以通过继承javax.servlet.jsp.tagext.TagSupport来完成, 并把生成的.class文件放置在/WEB-INF/classes下面,同时在合适的位置按照tld的规范来书写一个.tld文件即可，需要注意的是.tld文件需要放置在/WEB-INF/下面，当然按照jsp2.0的规范如下的路径也是可以的,/WEB-INF/tld/.....<br /><br />如果是第二种情况:<br />    需要做的工作和第一步唯一的不同就是,不用书写.java文件,但配置相关的.tld文件是必须的，因为规范中明确的指出了除了/WEB-INF/下的.tld都不被解析为标签描述定义;<br /><br />如果是第三种情况:<br />    如果这种情况下的.jar文件中在/META-INFO中有.tld文件,且其中有&lt;uri>&lt;/uri>的声明,那事情就是比较完美的了,需要做的就是把.jar文件放置到/WEB-INF/lib/下面, 同时选择是在页面中直接使用.jar文件中的.tld中定义的&lt;uri>还是，另外自己在web.xml中根据那个uri重新再定义新的&lt;taglib-uri>,这都不是问题;<br /><br />     如果在.jar中没有.tld文件,那只有增加这个.tld文件了，增加的.tld文件的位置可以在如下良种情况中做出选择:.jar文件的/META-INF/中, /WEB-INF/中，建议放置在.jar中，毕竟它已经是一个独立的资源包了，有什么理由不让它变的彻底通用呢？<br />     当然了,如果你要在页面中直接使用&lt;%@ taglib prefix="c" uri="/WEB-INF/lib/m.jar" %>这种变态形式的引用, 那需要遵守的一点就是这个.jar文件的/META-INF/中必须有一个名字为taglib.tld文件来描述标签。<br /><br />从上面的情况来看, 在根据jsp2.0规范，则可以知道，在部署tag的时候是需要严格遵守如下规范的:<br /><br /><br />   <span style="color: blue"> .tld文件出现的位置必须是如下两个中的一个:<br />            /WEB-INF/lib/下的.jar文件的/META-INF/下面<br />            /WEB-INF/下面，或者它的自目录下面</span><br /><br />只要明确了上面的.tld文件的位置问题, 其他的问题就是.class类能否成功加载的问题了。
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/224813#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 06 Aug 2008 00:23:25 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/224813</link>
        <guid>http://anweixiao.javaeye.com/blog/224813</guid>
      </item>
      <item>
        <title>圣火中原之历史回顾, 曾经的“吉鸿昌”</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/220021" style="color:red;">http://anweixiao.javaeye.com/blog/220021</a>&nbsp;
          发表时间: 2008年07月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">写在前面:
    奥运圣火中原咋现，引发了自己对那片土地上曾经发生了什么的好奇，可是突然觉得遗忘的太多，故搜索之，整理并记录之，just for myself。
    

史前:
    中原淮阳城的太昊陵，是中华子孙祭祀朝拜伏羲的圣地
    黄帝，仓颉，杜康
    治水神工大禹
哲学：
    思想家哲学家和道家学派的创始人老子、
    志行高洁的庄子、极高明而道中庸的冯友兰
    范缜：反佛斗士，《神灭论》
    
文学:
    浪漫主义:浪漫主义文学的早起代表庄子
    现实主义:
    嬉皮:竹林七贤之阮籍
    谢灵运:山水诗人鼻祖
    干宝:志怪小说创始人
    钟嵘:学理论批评家,《诗品》
    韩愈:唐宋八大家之一
    刘禹锡:诗豪
    杜甫:诗圣
    李贺:诗鬼
    李商隐:凌云诗才
    白居易:现实主义
文字:
    许慎:汉字字典创造者,&lt;&lt;说文解字>>
    王永民:当代毕升
历史:
    范晔:《后汉书》
政治:
    汤:商朝的建立者
    子产:春秋的著名政治家
    韩非:法家的集大成者
    范蠡:
    商鞅:商鞅变法之秦国七雄称霸
    李斯:辅佑秦王统一中国
    陈胜:秦末农民起义的领袖,领导了中国历史上第一次农民起义
    贾谊:西汉初期著名的政治家
    翟让:隋末 大规模的农民起义军——瓦岗军的创始人
    姚崇:唐王朝的“开元盛世”立下了汗马功劳
军事:
    吴起:《吴子兵法》
    司马懿:晋王朝的奠基人和开拓者
    邓艾:三国魏将
    谢玄:东晋帅星, 淝水之战
    岳飞:
    史可法:抗清名将
    曹谨:抗英保台
    陈星聚:抵御法国侵略者，取得了台北保卫战的胜利
    吉鸿昌, 彭雪枫, 杨靖宇, 许世友
历算:
    张苍:西汉初年历算学方面的突出代表
    张衡:浑天仪、地动仪、 测验风向的候风仪
    许衡:古代最优秀的历法——《授时历》
医学:
    张仲景:医圣
宗教:
    老子:道教创始人
    玄奘:
艺术:
     吴道子:画圣
     李诫:建筑学家之《营造法式》
     朱载育:音乐理论家、教学 家和天文学家，被西方赞誉为“东方百科艺术全书式的人物”
     王铎:书法家
教育:
     程颢:明道先生,北宋著名名的理学家和教育家

     </pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/220021#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 27 Jul 2008 02:41:54 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/220021</link>
        <guid>http://anweixiao.javaeye.com/blog/220021</guid>
      </item>
      <item>
        <title>一个LRU算法的实现</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/218799" style="color:red;">http://anweixiao.javaeye.com/blog/218799</a>&nbsp;
          发表时间: 2008年07月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          LRU是Least Recently Used的缩写，即最近最少使用页面置换算法，是为虚拟页式存储管理服务的。该算法的初衷是有内存管理而被提出来的，其目的是为解决“如何节省利用容量不大的内存为最多的进程提供资源”时如何减少过多的让进程去读取外存。<br />   这里以链表法来实现LRU:<br />   一点介绍<br />   操作系统为每个进程维护一条链表，链表的每个结点记录一张页面的地址。调用一次页面，则把该页面的结点从链中取出，放到链尾；要装入新页，则把链头的页面调出，同时生成调入页面的结点，放到链尾。<br />    LRU算法的理论基础是:局部性原理<br /><pre name="code" class="java">
/*
 *Created on 2008-7-24
 */
import java.io.Serializable;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Vector;

/**
 * @author anwx&lt;a href="mailto:luckyanzi@china.com.cn">An Weixiao&lt;/a>
 * @version $Id$
 */
public class LRUTest {
    protected HashMap&lt;Object, Serializable> cache;
    protected Vector&lt;Object> cacheList;
    protected int capacity = 3;
    
    private int getCapacity(){
        return this.capacity;
    }
    
    private int getSize(){
        return cache.size();
    }
    public LRUTest(){
        this.cache = new HashMap&lt;Object, Serializable>();
        this.cacheList = new Vector&lt;Object>();
    }
    private void moveToTop(Object identifier) {
        cacheList.insertElementAt(identifier,0);
        if ( getSize() >= getCapacity() ) {
            String toBeDeleted = (String)cacheList.lastElement();
            cache.remove(toBeDeleted);
            int lastElement = cacheList.size();
            cacheList.remove(lastElement-1);
        }
    }
    public Object get(Object identifier) {
        if ( cache.containsKey(identifier) ) {
            moveToTop(identifier);
            Serializable co = (Serializable)cache.get(identifier);
            return co;
        }
        else {
            return null;
        }
    }
    
    public void put(Object identifier, Serializable value) { 
        if (  getSize() &lt; getCapacity() ) {            
            if ( !cache.containsKey(identifier) ) {             
                cacheList.insertElementAt(identifier,0);
            }            
            cache.put(identifier,value);
        }
        else {
            cache.put(identifier,value);
            moveToTop(identifier);
        }
    }
    private void print(){
        System.out.println("data, key in cache");
        Object key = null;
        Serializable value = null;
        for(Iterator it = cache.keySet().iterator(); it.hasNext();){
            key = it.next();
            System.out.println(String.format("[%s, %s]", cache.get(key), key));
        }
        System.out.println("key info sequence");
        for(Object o: cacheList){
            System.out.println(o);
        }
    }
    public static void main(String args[]){
        LRUTest test = new LRUTest();
        test.put("1", "a");
        test.put("2", "b");
        test.put("3", "c");
        test.print();
        test.put("4", "d");
        test.put("5", "e");
        test.print();
    }
}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/218799#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Jul 2008 00:50:36 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/218799</link>
        <guid>http://anweixiao.javaeye.com/blog/218799</guid>
      </item>
      <item>
        <title>JavaScript 模拟marquee效果</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/184047" style="color:red;">http://anweixiao.javaeye.com/blog/184047</a>&nbsp;
          发表时间: 2008年04月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这段代码主要实现了一个具有渐变滚动效果的marquee，当其获得焦点的时候会出现停顿效果<br />javascript代码如下:<br /><pre name="code" class="java">
/**
 *@author anwx &lt;a href="mailto:luckyanzi@china.com.cn">An Weixiao&lt;/a>
 *@version $Id$
 */
var m_iInterval;
var m_Height;
var iScroll=0;

var SnowMarquee = function(){}
SnowMarquee.prototype = {
    //其实其应该具有 timeout count objects
    startRotate:function(){ //startRotate
        if( !this.count ){ //数据的总量
            this.count = 0;
        }
        if( !this.cursor ){ //当前元素
            this.cursor = 0;
        }
        if( !this.objects ){
            alert("这个部分的数据容器信息出现了错误!"); //{key:'', value:''}
            return;
        }
        var self_ = this;
        m_iInterval = setInterval(function(){self_.ontimer(self_);}, 10);
        var base = document.getElementById("marquee_base");
        m_Height = base.offsetHeight;

        var divi = parseInt(m_Height/5);
        m_Height = divi*5;

        var td1 = document.getElementById("td1");
        var td2 = document.getElementById("td2");
        var td3 = document.getElementById("td3");
        td1.height = m_Height-5;
        td2.height = m_Height-5;
        td3.height = m_Height-5;
        this.count = this.objects.length-1;
        this.setContents();
    },
    setContents:function(){
        var ilink = document.getElementById("marquee_contents");
        var nextObj = this.objects[this.cursor];
        for ( var key in nextObj ) { //TODO
            ilink[key] = nextObj[key];
        }
    },
    ontimer:function(o){
        var self_ = o;
        var base = document.getElementById("marquee_base");
        iScroll += 1;
        if (iScroll>(m_Height*2)) {
            iScroll=0;
            self_.cursor++;
            if (self_.cursor > self_.count)
                self_.cursor = 0;
            self_.setContents();
        }
        if (iScroll==m_Height) {
            self_.pause();
            m_iInterval = setTimeout(function(){self_.resume(self_);}, 4000);
        }
        base.scrollTop=iScroll;
    },
    pause:function(){
        clearInterval(m_iInterval);
    },
    resume:function(o){
        var self_ = o; 
        m_iInterval = setInterval(function(){self_.ontimer(self_)}, 10);
    }
}</pre><br /><br />HTML页面代码:<br /><pre name="code" class="java">&lt;div id="marquee_base" class="news" onmouseover="mar__.pause()" onmouseout="mar__.resume(mar__)">
  &lt;table class="areas_">
    &lt;tr>&lt;td id="td1" style="">&lt;/td>&lt;/tr>
    &lt;tr>&lt;td id = "td2" valign="middle" align="center">&lt;div id="marquee_contents">&lt;/div>&lt;/td>&lt;/tr>
    &lt;tr>&lt;td id="td3">&lt;/td>&lt;/tr>
  &lt;/table>
&lt;/div>
&lt;/center>
&lt;/div></pre><br /><br />CSS简单样式:<br /><pre name="code" class="java">
#marquee_base {
  overflow-y:hidden;
  width: 200px;
  height: 20px;
  border: 2px dotted #000099;
  margin: auto;
  padding: 0 10px 0 10px;
  font-size: .9em;
  font-family: Verdana, Arial, sans-serif;
}

.areas_ {
  background-color: #DDDDDD;
  color: inherit;
  line-height:22px;
}
</pre><br /><br />调用:<br /><pre name="code" class="java">&lt;script language="javascript" type="text/javascript">
var mar__ = new SnowMarquee();
mar__.objects = [
{'innerHTML':'data1'},{'innerHTML':'data2'},{'innerHTML':'data3'} 
]
mar__.startRotate();
&lt;/script></pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/184047#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 18 Apr 2008 12:03:14 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/184047</link>
        <guid>http://anweixiao.javaeye.com/blog/184047</guid>
      </item>
      <item>
        <title>关于setTimeout我来说两句</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/181390" style="color:red;">http://anweixiao.javaeye.com/blog/181390</a>&nbsp;
          发表时间: 2008年04月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          关键点：<br />   1、在类中如何使用setTiemout 注意代码中var self = this.<br />   2、使用setTimeout模拟setInterval <br />   3、避免一些错误  如too much recursion<br />错误的代码尝试<br /><pre name="code" class="java">var SnowSetTimeoutTest = function(){
    this.count = 0;
}
SnowSetTimeoutTest.prototype.testIt = function(){
    var self = this;
    alert(this.count++);
    /**
     *但是这个方法在FF下面提示too much recursion
     *setTimeout(self.testIt(),100); 
     *
     *下面也是两个比较典型的调用错误
     *setTimeout("self.testIt()",3000);
     *setTimeout(self.testIt, 3000);
     */
}</pre><br />正点的解法：<br /><pre name="code" class="java">var SnowSetTimeoutTest = function(){
    this.count = 0;
}
SnowSetTimeoutTest.prototype.testIt = function(){
    var self = this;
    alert(this.count++);
    /**
     *但是这个方法在FF下面提示too much recursion
     *
     */
    setTimeout(setTimeout(function(){self.testIt()},3000);,100); 
}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/181390#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 10 Apr 2008 17:51:16 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/181390</link>
        <guid>http://anweixiao.javaeye.com/blog/181390</guid>
      </item>
      <item>
        <title>病毒测试</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/150952" style="color:red;">http://anweixiao.javaeye.com/blog/150952</a>&nbsp;
          发表时间: 2007年12月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          把下面这段代码复制到记事本里，保存为(测试文件)，然后静观杀毒软件之变。<br /><br />X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* <br /><br />特等:复制完代码后便提示内存有病毒 　//杀毒软件很强悍啊！<br />优等:刚保存完就提示病毒(或者直接删除) //很不错啊！ <br />中等:保存后几秒提示病毒(或者直接删除) //还凑合啊！ <br />下等:需自己启动病毒扫描查杀才提示病毒(或者直接删除) //是时候了，该换了！ <br />劣等:无论怎么扫描都无法提示病毒(或者直接删除) //不换就等死吧
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/150952#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Dec 2007 14:55:21 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/150952</link>
        <guid>http://anweixiao.javaeye.com/blog/150952</guid>
      </item>
      <item>
        <title>发现一个绝对的“两袖清风”的网站一角</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/149255" style="color:red;">http://anweixiao.javaeye.com/blog/149255</a>&nbsp;
          发表时间: 2007年12月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个页面也太“素”了把，绝对和“荤”不沾边，正可谓两袖清风…………<br />http://yfj.mos.gov.cn/yfj/suggestion/suggestion.jsp
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/149255#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 18 Dec 2007 22:03:48 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/149255</link>
        <guid>http://anweixiao.javaeye.com/blog/149255</guid>
      </item>
      <item>
        <title>JavaScript 中this关键字的一点解释</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/148171" style="color:red;">http://anweixiao.javaeye.com/blog/148171</a>&nbsp;
          发表时间: 2007年12月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在早先的一篇blog中说event的时候有些关于方法中this使用的问题讨论，这里整理单独出来。<br />---------首先解释一下，这里说明的this的用法主要涉及到方法的调用问题。<br />1、this代表了什么?<br /><pre name="code" class="java">function doSomething() {
   this.style.color = '#cc0000';
}</pre><br />这个方法中this代表了什么呢？它试图改变谁的样式呢？<br />     <span style="color: green">可以很不负责任的告诉你谁调用了它就代表谁!</span><br />以一段代码说明如下:<br /><pre name="code" class="java">&lt;html>
&lt;head>&lt;title>&lt;/title>
  &lt;script language="javascript" type="text/javascript">
   function doSomething() {
       this.style.color = '#cc0000';
   }
   doSomething();
  &lt;/script>
&lt;/head>
&lt;body>
&lt;div id="clickme" onclick="doSomething()">&lt;/div>
&lt;/body>
&lt;/html></pre><br /><br />上面的代码中定义了doSomething方法，并且调用了2次，一次直接调用，另外一次使用onclick事件触发，可惜很不幸，浏览器总是说this.style has no properties!这是为什么呢，这里的关键就是我们并没有明确的给定this所代表的对象[或者说我们明确的把this分配给了一个我们不清楚的对象],在这种情况下this所代表的就是window对象。如果我们非要把doSomething中的this分配给ID为clickme的div的话，则需要做的就是把doSomething复制给传统的事件onchick，处理方法为<pre name="code" class="java">document.getElementById("clickme").onclick = doSomething;</pre><br />修改后的代码为:<br /><pre name="code" class="java">&lt;html>
&lt;head>&lt;title>&lt;/title>
  &lt;script language="javascript" type="text/javascript">
   function doSomething() {
       this.style.color = '#cc0000';
   }   
  &lt;/script>
&lt;/head>
&lt;body>
&lt;div id="clickme">123&lt;/div>
&lt;script language="javascript" type="text/javascript">
   document.getElementById("clickme").onclick = doSomething;
&lt;/script>
&lt;/body>
&lt;/html></pre><br />这里唯一要注意的一点就是<span style="color: red">document.getElementById("clickme").onclick = doSomething;</span>的位置要出现在&lt;div id="clickme">之后！为什么就不解释了哈<br /><br />下面简单解释一下一个元素触发事件的差别，如上面的两中形式:<br />1:<br />&lt;div id="clickme" onclick="doSomething()">这个据说叫<span style="color: green">inline event registration</span><br />2:<br /> element.onclick = doSomething;<br />方式一只是做了一个引用，并没有做复制方法的处理，而2则不同，引用并做了复制方法的处理，所以方式1只是简单的call doSomething。我们可以使用如下的方式来用一种看得件的方式理解这个问题;<br />使用方法一:&lt;div id="clickme" onclick="doSomething()"><br />我们alert(document.getElementById("clickme").onclick);我们得到的代码为:<br /><pre name="code" class="java">
//这里只给出firefox下的形式，至于IE那个烂东东，就先不管了……
function onclick(event){
   doSomething(); //firefox下，IE下应该是个匿名函数anonymous(){...}
}</pre><br />而使用方法二我们得到的却是doSomething的定义:<br /><pre name="code" class="java">function doSomething(){
   this.style.color ="#cc0000";
}</pre><br /><br />需要注意的一些问题是:<br />如下的使用都只是做了引用的:<br /><pre name="code" class="java">element.onclick = function () {doSomething()}
element.attachEvent('onclick',doSomething)
&lt;element onclick="doSomething()"></pre><br />而下面的这些则做了复制:<br /><pre name="code" class="java">element.onclick = doSomething
element.addEventListener('click',doSomething,false)
element.onclick = function () {this.style.color = '#cc0000';}
&lt;element onclick="this.style.color = '#cc0000';"></pre><br /><br />一个简单的避免this出错的方法就是传递并使用它，修改方法doSomething的定义为:<br /><pre name="code" class="java">function doSomething(o){
   o.style.color="#cc0000";
}
//然后
&lt;div onclick="doSomething(this)"></pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/148171#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Dec 2007 20:47:18 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/148171</link>
        <guid>http://anweixiao.javaeye.com/blog/148171</guid>
      </item>
      <item>
        <title>Windows 2000下运行oracle的worksheet问题</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/133299" style="color:red;">http://anweixiao.javaeye.com/blog/133299</a>&nbsp;
          发表时间: 2007年10月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个问题的起因主要是:<br />    On windows platforms the maximum length of a command line is approximately 2052<br />characters.<br />解决办法:<br />建立一个虚拟盘符来映射oracle的安装目录<br />subst p: oracle_home <br /><br />然后使用p:替换掉\bin\oemapp.bat中关于oracle_home的字符<br /><br />一切就OK了,<br /><br />推荐做法是在安装oracle时,目录的路径不要太长,最好小于24个字符.<br /><br />就先这样了,不做过多的描述了,都加班好长时间了,休息对我已经成了奢侈品;
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/133299#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 18 Oct 2007 23:25:12 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/133299</link>
        <guid>http://anweixiao.javaeye.com/blog/133299</guid>
      </item>
      <item>
        <title>Oracle中关于用户的一些操作</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/131792" style="color:red;">http://anweixiao.javaeye.com/blog/131792</a>&nbsp;
          发表时间: 2007年10月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          查看当前用户的角色<br />SQL>select * from user_role_privs;<br />SQL>select * from session_privs<br />查看当前用户的系统权限和表级权限<br />SQL>select * from user_sys_privs;<br />SQL>select * from user_tab_privs;
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/131792#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 14 Oct 2007 19:55:56 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/131792</link>
        <guid>http://anweixiao.javaeye.com/blog/131792</guid>
      </item>
      <item>
        <title>TCP/IP protocol</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/129530" style="color:red;">http://anweixiao.javaeye.com/blog/129530</a>&nbsp;
          发表时间: 2007年10月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          什么是TCP/IP协议<br /><br /><br />　　TCP/IP协议(Transfer Controln Protocol/Internet Protocol)叫做传输控制/网际协议，又叫网络通讯协议，这个协议是Internet国际互联网络的基础。<br /><br />    TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议，传输控制协议(TCP)和网际协议(IP)，但TCP/IP实际上是一组协议，它包括上百个各种功能的协议，如：远程登录、文件传输和电子邮件等，而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说 TCP/IP是Internet协议族，而不单单是TCP和IP。<br /><br />    TCP/IP是用于计算机通信的一组协议，我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准，以它为基础组建的INTERNET是目前国际上规模最大的计算机网络，正因为INTERNET的广泛使用，使得TCP/IP成了事实上的标准。<br /><br />    之所以说TCP/IP是一个协议族，是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、 TFTP等许多协议，这些协议一起称为TCP/IP协议。以下我们对协议族中一些常用协议英文名称和用途作一介绍：<br /><br />TCP(Transport Control Protocol)传输控制协议<br />IP(Internetworking Protocol)网间网协议<br />UDP(User Datagram Protocol)用户数据报协议<br />ICMP(Internet Control Message Protocol)互联网控制信息协议<br />SMTP(Simple Mail Transfer Protocol)简单邮件传输协议<br />SNMP(Simple Network manage Protocol)简单网络管理协议<br />FTP(File Transfer Protocol)文件传输协议<br />ARP(Address Resolation Protocol)地址解析协议<br /><br />    从协议分层模型方面来讲，TCP/IP由四个层次组成：网络接口层、网间网层、传输层、应用层。<br />其中：<br /><br />    网络接口层 这是TCP/IP软件的最低层，负责接收IP数据报并通过网络发送之，或者从网络上接收物理帧，抽出IP数据报，交给IP层。<br /><br />    网间网层 负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求，收到请求后，将分组装入IP数据报，填充报头，选择去往信宿机的路径，然后将数据报发往适当的网络接口。二、处理输入数据报：首先检查其合法性，然后进行寻径--假如该数据报已到达信宿机，则去掉报头，将剩下部分交给适当的传输协议；假如该数据报尚未到达信宿，则转发该数据报。三、处理路径、流控、拥塞等问题。<br /><br />    传输层 提供应用程序间的通信。其功能包括：一、格式化信息流；二、提供可靠传输。为实现后者，传输层协议规定接收端必须发回确认，并且假如分组丢失，必须重新发送。<br /><br />    应用层 向用户提供一组常用的应用程序，比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。 TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。<br />前面我们已经学过关于OSI参考模型的相关概念，现在我们来看一看，相对于七层协议参考模型，TCP/IP协议是如何实现网络模型的。<br />    <br />    <br />    数据链路层包括了硬件接口和协议ARP，RARP，这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息； <br /><br />    网络层中的协议主要有IP，ICMP，IGMP等，由于它包含了IP协议模块，所以它是所有机遇TCP/IP协议网络的核心。在网络层中，IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务，如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。<br /><br />    传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递，传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式：TCP是一个基于连接的协议（还记得我们在网络基础中讲到的关于面向连接的服务和面向无连接服务的概念吗？忘了的话，去看看）；UDP则是面向无连接服务的管理方式的协议。<br /><br />    应用层位于协议栈的顶端，它的主要任务就是应用了。上面的协议当然也是为了这些应用而设计的，具体说来一些常用的协议功能如下：<br /><br />Telnet：提供远程登录（终端仿真）服务，好象比较古老的BBS就是用的这个登陆。<br />FTP ：提供应用级的文件传输服务，说的简单明了点就是远程文件访问等等服务；<br />SMTP：不用说拉，天天用到的电子邮件协议。<br />TFTP：提供小而简单的文件传输服务，实际上从某个角度上来说是对FTP的一种替换（在文件特别小并且仅有传输需求的时候）。<br />SNTP：简单网络管理协议。看名字就不用说什么含义了吧。<br />DNS：域名解析服务，也就是如何将域名映射城IP地址的协议。<br />HTTP：不知道各位对这个协议熟不熟悉啊？这是超文本传输协议，你之所以现在能看到网上的图片，动画，音频，等等，都是仰仗这个协议在起作用啊！<br /><br />    另外我们还需要注意的一点是我们前面已经交代过的一个问题，协议是"对等实体"的数据进行交互时起作用的。<br /><br />source:  http://www.jswl.cn/course/a1013/wljczs/tcpip.htm
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/129530#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 07 Oct 2007 15:54:22 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/129530</link>
        <guid>http://anweixiao.javaeye.com/blog/129530</guid>
      </item>
      <item>
        <title>恐怖的想法</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/129383" style="color:red;">http://anweixiao.javaeye.com/blog/129383</a>&nbsp;
          发表时间: 2007年10月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          计算机是很方便，但是却给我留下了太多的迷惑，写代码也有很久了，可是真的不知道这段代码在计算机中的来龙去脉，<br /><pre name="code" class="java">public class Hello{
    public static void main(String[] args){
         System.out.println("糊涂哈！");
    }
}</pre><br />就象不知道我吃到肚子里的饭怎么就从口-胃-肠-%%%%被排出一样？<br /><br />难道是因为高级语言比低级语言更加抽象、简洁：<br />　　 一条高级语言的指令相当于几条机器语言的指令。<br />　　 用高级语言编写的程序同自然英语语言非常接近，易于学习。<br />　　 用高级语言编写程序并不需要某种计算机的专门知识。
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/129383#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 06 Oct 2007 23:36:51 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/129383</link>
        <guid>http://anweixiao.javaeye.com/blog/129383</guid>
      </item>
      <item>
        <title>Programming Language</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/129381" style="color:red;">http://anweixiao.javaeye.com/blog/129381</a>&nbsp;
          发表时间: 2007年10月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. The term programming language usually refers to high-level languages, such as BASIC, C, C++, COBOL, FORTRAN, Ada, and Pascal. Each language has a unique set of keywords (words that it understands) and a special syntax for organizing program instructions.<br /><br />High-level programming languages, while simple compared to human languages, are more complex than the languages the computer actually understands, called machine languages. Each different type of CPU has its own unique machine language.<br /><br />Lying between machine languages and high-level languages are languages called assembly languages. Assembly languages are similar to machine languages, but they are much easier to program in because they allow a programmer to substitute names for numbers. Machine languages consist of numbers only.<br /><br />Lying above high-level languages are languages called fourth-generation languages (usually abbreviated 4GL). 4GLs are far removed from machine languages and represent the class of computer languages closest to human languages.<br /><br />Regardless of what language you use, you eventually need to convert your program into machine language so that the computer can understand it. There are two ways to do this:<br /># compile the program<br /><br />    * interpret the program <br /><br />See compile and interpreter for more information about these two methods.<br /><br />The question of which language is best is one that consumes a lot of time and energy among computer professionals. Every language has its strengths and weaknesses. For example, FORTRAN is a particularly good language for processing numerical data, but it does not lend itself very well to organizing large programs. Pascal is very good for writing well-structured and readable programs, but it is not as flexible as the C programming language. C++ embodies powerful object-oriented features, but it is complex and difficult to learn.<br /><br />The choice of which language to use depends on the type of computer the program is to run on, what sort of program it is, and the expertise of the programmer.
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/129381#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 06 Oct 2007 23:23:14 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/129381</link>
        <guid>http://anweixiao.javaeye.com/blog/129381</guid>
      </item>
      <item>
        <title>Traversal content</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/129131" style="color:red;">http://anweixiao.javaeye.com/blog/129131</a>&nbsp;
          发表时间: 2007年10月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          traversal<br />  <br />     &lt;data> Processing {nodes} in a {graph} one at a time, usually<br />     in some specified order.  Traversal of a tree is {recursive}ly<br />     defined to mean visiting the {root node} and traversing its<br />     children.  Visiting a node usually involves transforming it in<br />     some way or collecting data from it.<br />  <br />     In "pre-order traversal", a node is visited _before_ its<br />     children.  In "post-order" traversal, a node is visited<br />     _after_ its children.  The more rarely used "in-order"<br />     traversal is generally applicable only to binary trees, and is<br />     where you visit first a node's left child, then the node<br />     itself, and then its right child.<br />  <br />     For the binary tree:<br />  <br />          T<br />         / \<br />        I   S<br />       / \<br />      D   E<br />  <br />     A pre-order traversal visits the nodes in the order T I D E S.<br />     A post-order traversal visits them in the order D E I S T.  An<br />     in-order traversal visits them in the order D I E T S.
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/129131#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 04 Oct 2007 23:09:52 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/129131</link>
        <guid>http://anweixiao.javaeye.com/blog/129131</guid>
      </item>
      <item>
        <title>使用javascript制作一个menu效果</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/127018" style="color:red;">http://anweixiao.javaeye.com/blog/127018</a>&nbsp;
          发表时间: 2007年09月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          特效介绍:<br />   当鼠标划过某个链接的时候展开一个下拉菜单供选择:<br />   菜单描述:<br />   <pre name="code" class="java">  &lt;ul id="haulMenu_menu">
		  &lt;li>&lt;a href="#" class="cBlack">点评&lt;/a> 
            &lt;ul>
              &lt;li>&lt;a href="">呵呵&lt;/a>&lt;/li>
              &lt;li>&lt;a href="#">呵呵呵&lt;/a>&lt;/li>
              &lt;li>&lt;a href="#">呵呵呵呵&lt;/a>&lt;/li>
              &lt;li>&lt;a href="#">呵呵呵呵呵&lt;/a>&lt;/li>
              &lt;li>&lt;a href="#">呵呵呵呵呵呵&lt;/a>&lt;/li>
            &lt;/ul>
          &lt;/li>
    &lt;/ul></pre><br />IE6下的脚本控制，否则IE6下不好用:<br /><pre name="code" class="java">function buildEventsForIE() {
		//IE6 can't handle css menu. this adds mouse events for IE6.
		majVer = navigator.appVersion.charAt(navigator.appVersion.indexOf('MSIE ')+5);
		if (majVer>=6) {	
			navRoot = document.getElementById("haulMenu_menu");
			stuff="";
			for (i=0; i&lt;navRoot.childNodes.length; i++) {
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					node.onmouseover=function() {
						this.children[1].style.display = "block";
					}
					node.onmouseout=function() {
						this.children[1].style.display = "none";
					}
					
					subNode = node.childNodes[2].childNodes;
					for (x=0; x&lt;subNode.length; x++) {
						if (subNode[x].children[1] && 
subNode[x].children[1].nodeName=="ul") { 
// find nested lists
							subNode[x].onmouseover=function() {
								this.children[1].style.display = "block";
							}
							subNode[x].onmouseout=function() {
								this.children[1].style.display = "none";
							}
						}
					}
				}
			}
			//CSS tweaks
			document.write("&lt;style type='text/css'>");
			document.write("#haulMenu ul ul {top: 20px 
!important; top:18px; margin-left: 22px;}");
			document.write("#haulMenu ul ul ul {top: -1px;}");
			document.write("&lt;/style>");
		 }		 
	}	
	if (document.all) buildEventsForIE();</pre><br />CSS样式:<br /><pre name="code" class="java">&lt;style>
body { text-align:center;margin:0;padding:0; background: #FFF; font-size:12px; 
color:#000;}
/*链接颜色*/
a:link {color: #000; text-decoration:none;}
a:visited {color: #83006f;text-decoration:none;}
a:hover {color: #bc2931; text-decoration:underline;}
a:active {color: #bc2931;}
/* 下拉菜单 */
.haulMenu{float:left;width:40px;  background:url(i4_1.gif) 0 10px no-repeat;}
.haulMenu ul { margin:0; padding:0; }
.haulMenu ul li {list-style-type:none; margin:0; width:40px; 
position: relative;  }/*修改子菜单*/
.haulMenu li a {display: block;}
.haulMenu .s1{ padding:3px 0 0 !important;padding:5px 0 0;}
.haulMenu ul ul {background: #ecf3f9; border:1px solid  #b2b2b2; 
 width:38px;position: relative;  }
/* function */
.haulMenu ul li ul li a{display:block; padding:0 0 !important;}
.haulMenu ul li ul li a:hover{background:#1f3a87; color:#fff;}
.haulMenu ul li:hover > ul {display: block;}
.haulMenu ul ul {display: none;  position: absolute; }/*修改子菜单*/
&lt;/style></pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/127018#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 25 Sep 2007 23:46:33 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/127018</link>
        <guid>http://anweixiao.javaeye.com/blog/127018</guid>
      </item>
      <item>
        <title>使用中文搜索很难找到有深度的内容</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/126450" style="color:red;">http://anweixiao.javaeye.com/blog/126450</a>&nbsp;
          发表时间: 2007年09月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          以前找了好久才知道有javaeye，据说是个不错的技术站点:深度。可以现在看来深度从何说器呢…………，然后就尝试着在网络上搜索了以下，很是失望哈…………
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/126450#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 23 Sep 2007 21:56:47 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/126450</link>
        <guid>http://anweixiao.javaeye.com/blog/126450</guid>
      </item>
      <item>
        <title>对j2me say hello</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/126252" style="color:red;">http://anweixiao.javaeye.com/blog/126252</a>&nbsp;
          发表时间: 2007年09月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          晚上没什么事情可做，就尝试了下j2me的东东。我使用的开发环境是：eclipse3.2.0+nds_jme_v3_0+jdk5+eclipseme1.2.3<br />下载并安装完nds_jme_v3_0和eclipseme1.2.3之后,可以在eclipse的window|preferences中找到J2ME选项中的Platform components，在这里的右侧窗口选择nds_jme_v3_0的安装目录后apply就算搞定了开发环境的安装和配置。<br />接下来建立一个HelloWorld工程:具体的内容可参考附件的抓图
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/126252#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 23 Sep 2007 05:05:34 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/126252</link>
        <guid>http://anweixiao.javaeye.com/blog/126252</guid>
      </item>
      <item>
        <title>Java DecimalFormat and other</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/126066" style="color:red;">http://anweixiao.javaeye.com/blog/126066</a>&nbsp;
          发表时间: 2007年09月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这里首先介绍如何使用DecimalFormat，给出一段代码如下:<br /><pre name="code" class="java">double d = Math.PI;
    	String pattern = "###.###";
        DecimalFormat formatter = new DecimalFormat(pattern);
        String hitRate = formatter.format(d);
        assertTrue("3.142".equals(hitRate));</pre><br /><br />这里需要注意的是“四舍五入”
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/126066#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 21 Sep 2007 23:41:39 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/126066</link>
        <guid>http://anweixiao.javaeye.com/blog/126066</guid>
      </item>
      <item>
        <title>Prototype之Ajax.Updater不能正确引入脚本的问题</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/122924" style="color:red;">http://anweixiao.javaeye.com/blog/122924</a>&nbsp;
          发表时间: 2007年09月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          应该清楚的一点是对使用:<br /><pre name="code" class="java">new Ajax.Updater(
                    {success: divname},
                    uri,
                    {
                        method: 'get',       
                        parameters: pars,                 
                        evalScripts: true,
                        onFailure: reportError
                    })</pre><br />这里正确的设置了evalScript:true表示加载的内容不会过滤掉&lt;script...等。但是不表示能加载<pre name="code" class="java">&lt;script language="javascript" type="text/javascript" src="path for js file">&lt;/script></pre><br />所对应的js资源，因为prototype在执行<pre name="code" class="java">&lt;script>alert("123")&lt;/script)</pre>中的脚本的时候使用的是eval.为此上面脚本的执行结果为eval('alert("123")')。那么怎么来解决关于存在于独立的文件中的js脚本问题，则可以参看如下的实现:<br /><pre name="code" class="java">/**
 *prototype-exp.js
 *Used for load the css or js code in div area..
 *for the prototype not support the js code in dep.. file
 */
var View_load;
(function(){
    if (View_load == null)
        View_load = new Object();
    var UNDEFINED;
    
	View_load.loadjs = function (scriptid,jsurl){
       var scriptTag = document.getElementById(scriptid);
       if(scriptTag) document.body.removeChild(scriptTag);
       script = document.createElement('script');
       script.setAttribute("src",jsurl);
       script.type = 'text/javascript';
       script.id = scriptid;
       document.body.appendChild(script);
    }

    View_load.loadcss = function(cssid,cssurl){
       var scriptTag = document.getElementById(cssid);
       if(scriptTag) document.body.removeChild(scriptTag);
       css_ = document.createElement('link');
	   css_.rel="stylesheet";
       css_.setAttribute("href",cssurl);
       css_.type = 'text/css';
       css_.id = cssid;
       document.body.appendChild(css_);
     }  
})();</pre><br /><br />这里主要解决了引入也面中不能正常加载js和css文件的问题.可以使用如下方式调用。<br /><pre name="code" class="java">&lt;script language="javascript" type="text/javascript">
View_load.loadjs("","/js/sayhello.js");
View_load.loadcss("","css/cssa.css");
&lt;/script></pre><br /><br />需要注意的一点是prototype-exp.js需要放置到框架页面中来。
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/122924#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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 Sep 2007 16:29:55 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/122924</link>
        <guid>http://anweixiao.javaeye.com/blog/122924</guid>
      </item>
      <item>
        <title>尝试一下aptana</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/122056" style="color:red;">http://anweixiao.javaeye.com/blog/122056</a>&nbsp;
          发表时间: 2007年09月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天浏览了下网上的信息，发现有人推荐使用aptana来调试javascript效果不错,对于我这个急于发现一个上手的工具的人来说这不能算一个坏的消息，就下载了一个来亲自体验。安装完成后的启动画面和eclipse类似，这让我感到亲切了许多（虽然这段时间的空闲时间不多，且周末的空闲时间都花在了matlab上面，已经很久没有在关心过javascript的东西了）。然后就把使用eclipse的一点经验照着搬过来，幸运的是它确实符合使用eclipse的用户。选择新建立一个工程后的效果为:project.png。<br />    这里主要是使用它的debug功能，以前我总是使用firefox的firebug，感觉firebug发现错误的能力还算不错，同时还有一些其他比较好用的地方，但感觉它的出发点是页面制作人员，而对于程序的设计来说总存在一定程度的不足，不能深入到代码的里面，调试起来也不方便，完全靠个人的应验和细心度。而aptana则不同了(至少10分钟的体验就是这样的。虽然它总是在输入的过程中会提示一些不爽的错误信息，同时换行，引号等的视觉效果也不爽)，我们可以象使用eclipse来调试java程序那样来调试javascript（当然，在使用它的debug的时候需要做一些配置，如果您遇到了什么解决不了的可以问下google）。调试的效果如图debug.png和view.png。<br /><br />  需要说明一下的是我这里调试的时候使用的Server是use build-in server<br />       如果你要调试的代码位于first下面，且工程部署的访问路径为/first<br />       （这个概念在tomcat下面就是部署的配置为&lt;Context displayName="Welcome to Tomcat" docBase="first" path="/first"  这里的path不是"/"如果是 则上面的配置为http://localhost:8080）<br />       则可以配置debug时的路径为:http://localhost:8080/first 8080(端口视你自己的情况而定)<br /><br />  当然调试时需要的配置问题，可以自行解决。
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/122056#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 09 Sep 2007 01:26:57 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/122056</link>
        <guid>http://anweixiao.javaeye.com/blog/122056</guid>
      </item>
      <item>
        <title>Matlab行程之自定义方法</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/122037" style="color:red;">http://anweixiao.javaeye.com/blog/122037</a>&nbsp;
          发表时间: 2007年09月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这里介绍下如何定义一个属于自己的方法。在程序设计上做为例子出现的“斐波那契数”总是扮演了悲剧的角色，因为没有人说出它代表了什么，而只是作为定义函数时(方法)的一个载体。Fibonacci 的描述为:<br />    <br /><pre name="code" class="java">F1=1                  (n=1)
 F2=1                  (n=2)
Fn=Fn-1+Fn-2           (n>=3)</pre><br /><br />这里首先给出matlab的实现:<br /><pre name="code" class="java">function f = fibrec(n)
%FIBREC Recursive function for n Fibonacci numbers.
if ~isscalar(n) | ~isreal(n) | n&lt;0 | fix(n)~=n
    error('ArtBlog:fibrec:MBRealPosInt','N must be a real positive integer')
end
if n == 1,
    f = 1;   % First element is 1.
    return;
elseif n == 2
    f = [1 1];  % First two elements are 1.
else
    % Call fibrec with previous result and compute next one from it.
    fm1 = fibrec(n-1); 
    f = [fm1 fm1(end)+fm1(end-1)];
end</pre><br />运行的结果如下:<br /><pre name="code" class="java">>> fibrec(10)
ans =
     1     1     2     3     5     8    13    21    34    55</pre><br />这里需要注意的就是定义的方法必须单独的保存在一个.m文件中且名字应该为fibrec。这类似与java中如果定义了一个类是public的则文件的名字就需要是类名字一样。<br />    当然如过你需要运行上面的程序的话。需要做合适的处理比如isscalar等方法可能在你的环境中找不到，不过没有关系，你可以使用%把其注释掉。<br /><br />    单纯的知识是枯燥的，借助于工具我才有时间来读一下数学的野史（对于社会的野史我不喜欢，因为社会可能本身就是一部很好的野史，不然怎么回有八卦！）。<br />    可以知道的是fibonacci的通项是用无理数来表示的:<br />        (1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】<br /><br />    他的奇妙的性质:<br />        1,随着数列项数的增加，前一项与后一项之比越逼近黄金分割0.6180339887……<br />        2,从第二项开始，每个奇数项的平方都比前后两项之积少1，每个偶数项的平方都比前后两项之积多1 <br /><br />    把火药用于做烟花的一个例子:<br />        某人把一个8*8的方格切成四块，拼成一个5*13的长方形，故作惊讶地问你：为什么64＝65？其实就是利用了斐波那契数列的这个性质：5、8、13正是数列中相邻的三项，事实上前后两块的面积确实差1，只不过后面那个图中有一条细长的狭缝，一般人不容易注意到
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/122037#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sat, 08 Sep 2007 22:32:16 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/122037</link>
        <guid>http://anweixiao.javaeye.com/blog/122037</guid>
      </item>
      <item>
        <title>关系与逻辑运算</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/120779" style="color:red;">http://anweixiao.javaeye.com/blog/120779</a>&nbsp;
          发表时间: 2007年09月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在执行关系及逻辑运算时，MATLAB 将输入的不为零的数值都视为真 (True)而为零的数值则视为否 (False)。 运算的输出值将判断为真者以 1表示 而判断为否者以 0 表示。MATLAB 提供以下的关系判断及逻辑的运算 元：<br />符号 关系的意义<br /><pre name="code" class="java">&lt; 小于
&lt;= 小于等于
> 大于
>= 大于等于
== 等于
~= 不等于
& 逻辑 and
| 逻辑 or
~ 逻辑 not</pre> <br />上述的各个运算元须用在二个大小相同的阵列或是矩阵的比较<br /><br />使用逻辑运算产生一个不连续的信号:<br /><pre name="code" class="java">x=linspace(0,10,100); % 产生数据
y=sin(x); % 产生 sine 函数
z=(y>=0).*y; % 将 sin(x) 的负值设为零
z=z + 0.5*(y&lt;0); % 再将上式的值加上0.5
z=(x&lt;8).*z; % 将大于 x=8 以后的值设为零
hold on
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('A discontinuous signal')
hold off</pre><br />执行结果参看luoji_.png<br /><br />逻辑关系函数：xor(x,y), any(x), all(x), isnan(x), isinf(x), finite(x), find(x)<br />查看find的解释:<br /><div class="quote_title">引用</div><div class="quote_div">>> help find<br />FIND   Find indices of nonzero elements.<br />    I = FIND(X) returns the indices of the vector X that are<br />    non-zero. For example, I = FIND(A>100), returns the indices<br />    of A where A is greater than 100. See RELOP.<br />  <br />    [I,J] = FIND(X) returns the row and column indices of<br />    the nonzero entries in the matrix X.  This is often used<br />    with sparse matrices.<br />  <br />    [I,J,V] = FIND(X) also returns a vector containing the<br />    nonzero entries in X.  Note that find(X) and find(X~=0)<br />    will produce the same I and J, but the latter will produce<br />    a V with all 1's.</div>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/120779#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 05 Sep 2007 22:33:51 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/120779</link>
        <guid>http://anweixiao.javaeye.com/blog/120779</guid>
      </item>
      <item>
        <title>Matlab行程之数据分析函数</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/120765" style="color:red;">http://anweixiao.javaeye.com/blog/120765</a>&nbsp;
          发表时间: 2007年09月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          将工程及科学实验所量测的数据做分析，是实验评估一项的极重要的工作。这样的分析工作可以从从简单 的运算例如计算平均值，到繁复的矩阵运算例如计算标准差(deviation)。这些量测可称为统计量测，因为量 测这些数据即含有统计性质。比方说我们量测每日的相对湿度，它的变化是和气温高低、晴天或是下雨、 地形、纬度等息息相关，这些因素都会不时的改变。就像我们可以从统计资料中计算其特性，我们亦可以 利用电脑依照预设的统计特性来产生特定的数据（例如乱数）<br /><br />    一些简单的分析函数已经在这里得到了说明，这里不再重复<br />        http://anweixiao.javaeye.com/blog/119936<br />这里举几个在阵列上的操作<br /><pre name="code" class="java">>> x = [1,2;3,4;5,6];
>> mean(x)%平均值
ans =
     3     4

>> max(x)%最大值
ans =
     5     6
>> cumsum(x)%加法
ans =
     1     2
     4     6
     9    12

>> cumprod(x) %乘法
ans =
     1     2
     3     8
    15    48</pre><br />可以看到这些操作都是列上的运算,下面给出prod的取值，以区别comprod的取值<br /><pre name="code" class="java">>> prod(x)
ans =
    15    48</pre><br /><br />这里介绍一个比较重要的概念:标准差。内容见std_.png,std_exp.png是对应的例子<br />这里给出例子中标准差的计算:<br /><pre name="code" class="java">>> x =[173,165,154,180,175,170,166,162,158,169,160,174,179,177,168,157,160,163]
>>std(x)
ans =
    7.9303</pre><br /><br />长条分布函数::<br />     有一个绘图函数与数据分析有关，称为长条分布函数 (histogram)，我们可以用它画出一组数据的范围及其 如何分布。它是将数据中的极小到极大值标示在横轴（即是数据的范围），再将各个数据出现的次数对 应该数据值（横轴）来画在纵轴（即是数据分布的比例）。histogram之所以称为长条分布函数是它以长条 来表示数据的分布，预设值为10个长条。MATLAB 用来产生长条分布函数指令为 hist<br /><br />举个例子,<br /><pre name="code" class="java">x=-3:0.1:3;
y=sin(x); % 注意x是径度
hist(y) % 画出sin(y)的histogram，横轴代表y的极值[-1,1]，纵轴代表y的个数
hist(y,25) % 将预设10个长条改为25个，注意纵轴的值改变，
hist(y,x) % 将横轴上下限改为-3到3，注意纵轴的值也改变，</pre><br />运行后的结果参见hist.png
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/120765#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 05 Sep 2007 21:31:13 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/120765</link>
        <guid>http://anweixiao.javaeye.com/blog/120765</guid>
      </item>
      <item>
        <title>Matlab行程之多项式的解</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/120763" style="color:red;">http://anweixiao.javaeye.com/blog/120763</a>&nbsp;
          发表时间: 2007年09月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          多项式是比较容易计算和直观的一种算式,也是比较容易被感知的,这里介绍多项式的解法。<br />例如:<br />        p(x) = x^3+4*x^2-7*x-10<br />此多项式的matlab的表示方法为:<br />    多项式 p=[1 4 -7 -10]，其中的数值是多项式的各阶项（从高到低）的各个系数。<br /><br />如果要计算一个多项式可以使用指令完成,polyval直接做运算:<br /><pre name="code" class="java">x=linspace(-1,3);
p=[1 4 7 -10];
v=polyval(p,x);</pre><br /><br />多项式的加法、减法、乘法、除法<br />例如有两个多项式:<br />   a(x) = x^3+2x^2+3x+4<br />   b(x) = x^3+4x^2+9x+16<br />很显然的是加法、减法相对的比较的简单，但是乘法、除法就显得有些麻烦。需要借助与指令来完成，主要是乘法conv、除法deconv。二多项式相乘，在数学上等于二个阵列做旋积(convolution)运算。而二多项式相除就相 当于反旋积(de-convolution) 运算。deconv 函数，其语法稍有不同[q,r]=deconv(a,b)，其中q,r分别代表整除多项式及余数多项式。<br /><br /><pre name="code" class="java">%加法:
a=[1 2 3 4]; b=[1 4 9 16];
c = a+b
c =
     2     6    12    20
</pre><br /><pre name="code" class="java">%减法
d = a-b
d =
     0    -2    -6   -12</pre><br /><br /><pre name="code" class="java">%乘法
e=conv(a,b)
e =
1 6 20 50 75 84 64 </pre><br /><pre name="code" class="java">%除法
>> [f,r]=deconv(e,b)
f =
1 2 3 4
r =
0 0 0 0 0 0 0 % 因为是整除所以余数多项式的各系数皆为零 </pre><br /><br />多项式的根视阶数而定，它的根可以有一个到数个，可能为实数也可能是复数。但在matlab下面求多项式的根就比较的简单，尤其是高介的多项式，我们不必要借助数值方法，而一概使用roots(p);只要输入多项式的各阶系数（以p代表）即可求解到对应的根。<br />比如:x^2+3x+2=0我们知道它的两个根为-2，-1。那么使用matlab来确认一下就是:<br /><pre name="code" class="java">>> p=[1 3 2];
r=roots(p) 
r =
    -2
    -1</pre><br /><pre name="code" class="java">%有实根与复根的多项式的解
>> p=[1 -12 0 25 116]; % 注意二阶项系数为零须要输入，否则多项式的阶数就不对
r=roots(p) % 有实数根及复数根 
r =
  11.7473          
   2.7028          
  -1.2251 + 1.4672i
  -1.2251 - 1.4672i</pre><br /><br />与 roots 相关的函数尚有 poly, real，这二个函数的用途是要验算求解的根展开能求得原多项式。<br /><pre name="code" class="java">>> r=[-2 -1];
pp=poly(r) % pp=(x+2)(x+1)=x^2+3x+2 
pp =
     1     3     2</pre><br /><br />产生虚假根部的情况<br /><pre name="code" class="java">>> pp=[1 7 12 9]; % 多项式
>> r=roots(pp)
r =
-4.9395
-1.0303 + 0.8721i
-1.0303 - 0.8721i
>> pp=poly(r) % 注意因计算的误差会有假虚部产生
pp =
1.0000 7.0000 12.0000 9.0000 + 0.0000i
>> pp=real(pp) % 可以real将假虚部去除，将原多项式还原
pp =
1.0000 7.0000 12.0000 9.0000</pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/120763#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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, 05 Sep 2007 20:59:17 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/120763</link>
        <guid>http://anweixiao.javaeye.com/blog/120763</guid>
      </item>
      <item>
        <title>matlab行程之简单的图形</title>
        <author>anweixiao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://anweixiao.javaeye.com">anweixiao</a>&nbsp;
          链接：<a href="http://anweixiao.javaeye.com/blog/120360" style="color:red;">http://anweixiao.javaeye.com/blog/120360</a>&nbsp;
          发表时间: 2007年09月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这里简单体验以下matlab绘制图形的问题，让matlab来代替我感知数学美的能力吧。<br />    这里首先绘制一个y = sin(x)的图形见附件 y_sin_x.png<br /><pre name="code" class="java">
x=linspace(0,2*pi,20); vy=sin(x); % 建立 v1 及 v2 阵列
plot(x,y) % 利用 plot，输入的变数为 x 轴接著的变数为 y 轴 </pre><br /><br />  从上面的代码我们可以知道plot实现了图形的绘制,<br />plot(x,y,'.')表示使用‘.’来绘制图形<br />plot(x,y,'g')表示绘出来的图形y_sin_x的颜色是green,对于第三个参数的不同取值可以使用help plot来查看说明<br /><br />  如果要为绘出来的图形添加说明就需要使用:<br /><pre name="code" class="java">>> plot(v1,v2,'g'); %这里使用shift+回车
xlabel('x-axis') % 加上 x 轴的说明，在二个单引号 ' 之间键入文字的说明
ylabel('y-axis') % 加上 y 轴的说明
title('2D plot') % 加上图的说明 </pre><br />为绘制的图形添加网格:<br /><pre name="code" class="java">plot(v1,v2,'g');grid</pre><br /><br />现在使用plot绘制上次提到的f = f(x)的那个函数的样子见附件f_nume_deno.png:<br /><pre name="code" class="java">
%--------------------------------------
%     x.^3 - 2*x.^2 + x - 6.3
%  f=--------------------------
%     x.^2 + 0.05*x - 3.14
%--------------------------------------

x=1:100; % 注意 x 是一阵列  
nume = x.^3 - 2*x.^2 + x - 6.3;
deno = x.^2 + 0.05*x - 3.14;
f = nume./deno;
plot(x,f,'g');grid</pre>
          <br/>
          <span style="color:red;">
            <a href="http://anweixiao.javaeye.com/blog/120360#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Sep 2007 22:39:49 +0800</pubDate>
        <link>http://anweixiao.javaeye.com/blog/120360</link>
        <guid>http://anweixiao.javaeye.com/blog/120360</guid>
      </item>
  </channel>
</rss>