<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>CSS + jQuery 个性化的下拉框效果 by www.865171.cn</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
body { font-family:Arial, Helvetica, Sans-Serif; font-size:0.75em; color:#000;}
.desc { color:#6b6b6b;}
.desc a {color:#0092dd;}
.dropdown dd, .dropdown dt, .dropdown ul { margin:0px; padding:0px; }
.dropdown dd { position:relative; }
.dropdown a, .dropdown a:visited { color:#816c5b; text-decoration:none; outline:none;}
.dropdown a:hover { color:#5d4617;}
.dropdown dt a:hover { color:#5d4617; border: 1px solid #d0c9af;}
.dropdown dt a {background:#e4dfcb url(arrow.png) no-repeat scroll right center; display:block; padding-right:20px;
border:1px solid #d4ca9a; width:150px;}
.dropdown dt a span {cursor:pointer; display:block; padding:5px;}
.dropdown dd ul { background:#e4dfcb none repeat scroll 0 0; border:1px solid #d4ca9a; color:#C5C0B0; display:none;
left:0px; padding:5px 0px; position:absolute; top:2px; width:auto; min-width:170px; list-style:none;}
.dropdown span.value { display:none;}
.dropdown dd ul li a { padding:5px; display:block;}
.dropdown dd ul li a:hover { background-color:#d0c9af;}
.dropdown img.flag { border:none; vertical-align:middle; margin-left:10px; }
.flagvisibility { display:none;}
</style>
<script type="text/javascript">
$(document).ready(function() {
$(".dropdown img.flag").addClass("flagvisibility");
$(".dropdown dt a").click(function() {
$(".dropdown dd ul").toggle();
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
$(".dropdown dt a span").html(text);
$(".dropdown dd ul").hide();
$("#result").html("Selected value is: " + getSelectedValue("sample"));
});
function getSelectedValue(id) {
return $("#" + id).find("dt a span.value").html();
}
$(document).bind('click', function(e) {
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
$(".dropdown dd ul").hide();
});
$("#flagSwitcher").click(function() {
$(".dropdown img.flag").toggleClass("flagvisibility");
});
});
</script>
</head>
<body>
<h1>CSS + jQuery 个性化的下拉框效果</h1>
<h3><a href="http://www.865171.cn/css-code/">更多CSS代码实例</a></h3>
<dl id="sample" class="dropdown">
<dt><a href="#"><span>Please select the country</span></a></dt>
<dd>
<ul>
<li><a href="#">Brazil<img class="flag" src="br.png" /><span class="value">BR</span></a></li>
<li><a href="#">France<img class="flag" src="fr.png" /><span class="value">FR</span></a></li>
<li><a href="#">Germany<img class="flag" src="de.png" /><span class="value">DE</span></a></li>
<li><a href="#">India<img class="flag" src="in.png" /><span class="value">IN</span></a></li>
<li><a href="#">Japan<img class="flag" src="jp.png" /><span class="value">JP</span></a></li>
<li><a href="#">Serbia<img class="flag" src="cs.png" /><span class="value">CS</span></a></li>
<li><a href="#">United Kingdom<img class="flag" src="gb.png" /><span class="value">UK</span></a></li>
<li><a href="#">United States<img class="flag" src="us.png" /><span class="value">US</span></a></li>
</ul>
</dd>
</dl>
<span id="result"></span>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>CSS + jQuery 个性化的下拉框效果 by www.865171.cn</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
body { font-family:Arial, Helvetica, Sans-Serif; font-size:0.75em; color:#000;}
.desc { color:#6b6b6b;}
.desc a {color:#0092dd;}
.dropdown dd, .dropdown dt, .dropdown ul { margin:0px; padding:0px; }
.dropdown dd { position:relative; }
.dropdown a, .dropdown a:visited { color:#816c5b; text-decoration:none; outline:none;}
.dropdown a:hover { color:#5d4617;}
.dropdown dt a:hover { color:#5d4617; border: 1px solid #d0c9af;}
.dropdown dt a {background:#e4dfcb url(arrow.png) no-repeat scroll right center; display:block; padding-right:20px;
border:1px solid #d4ca9a; width:150px;}
.dropdown dt a span {cursor:pointer; display:block; padding:5px;}
.dropdown dd ul { background:#e4dfcb none repeat scroll 0 0; border:1px solid #d4ca9a; color:#C5C0B0; display:none;
left:0px; padding:5px 0px; position:absolute; top:2px; width:auto; min-width:170px; list-style:none;}
.dropdown span.value { display:none;}
.dropdown dd ul li a { padding:5px; display:block;}
.dropdown dd ul li a:hover { background-color:#d0c9af;}
.dropdown img.flag { border:none; vertical-align:middle; margin-left:10px; }
.flagvisibility { display:none;}
</style>
<script type="text/javascript">
$(document).ready(function() {
$(".dropdown img.flag").addClass("flagvisibility");
$(".dropdown dt a").click(function() {
$(".dropdown dd ul").toggle();
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
$(".dropdown dt a span").html(text);
$(".dropdown dd ul").hide();
$("#result").html("Selected value is: " + getSelectedValue("sample"));
});
function getSelectedValue(id) {
return $("#" + id).find("dt a span.value").html();
}
$(document).bind('click', function(e) {
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
$(".dropdown dd ul").hide();
});
$("#flagSwitcher").click(function() {
$(".dropdown img.flag").toggleClass("flagvisibility");
});
});
</script>
</head>
<body>
<h1>CSS + jQuery 个性化的下拉框效果</h1>
<h3><a href="http://www.865171.cn/css-code/">更多CSS代码实例</a></h3>
<dl id="sample" class="dropdown">
<dt><a href="#"><span>Please select the country</span></a></dt>
<dd>
<ul>
<li><a href="#">Brazil<img class="flag" src="br.png" /><span class="value">BR</span></a></li>
<li><a href="#">France<img class="flag" src="fr.png" /><span class="value">FR</span></a></li>
<li><a href="#">Germany<img class="flag" src="de.png" /><span class="value">DE</span></a></li>
<li><a href="#">India<img class="flag" src="in.png" /><span class="value">IN</span></a></li>
<li><a href="#">Japan<img class="flag" src="jp.png" /><span class="value">JP</span></a></li>
<li><a href="#">Serbia<img class="flag" src="cs.png" /><span class="value">CS</span></a></li>
<li><a href="#">United Kingdom<img class="flag" src="gb.png" /><span class="value">UK</span></a></li>
<li><a href="#">United States<img class="flag" src="us.png" /><span class="value">US</span></a></li>
</ul>
</dd>
</dl>
<span id="result"></span>
</body>
</html>
前面是原文件,第二参数是软链接的符号链接文件:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form) #man ln
ln -s /etc/issue /tmp/issue.soft :创建/etc/issue文件的软链接/tmp/issue.soft
ln /etc/issue /tmp/issue.hard:创建/etc/issue文件的硬链接/tmp/issue.hard
ln -sf /home/xiangdong/spec/centos7 SPECS #不用建SPECS,是源链接、新的目录, SPECS -> /home/xiangdong/spec/centos7
备注:软链接是左边是存在待被指向的实体文件,右边是软链接的软链接文件(仅仅是一个链接文件)。
-f, --force remove existing destination files
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl/include/openssl/ /usr/include/openssl
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。
1.连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。 软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理。
Shell代码
1. ln -s source dist # 建立软连接
ln -s source dist # 建立软连接
2. 硬连接可以看作是同一个文件的不同命名。 硬联接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。 不可以对文件夹建立硬连接的,通常用的还是软连接比较多。
Shell代码
1. ln source dist # 建立硬连接
ln [OPTION]... [-T] TARGET LINK_NAME (1st form) #man ln
ln -s /etc/issue /tmp/issue.soft :创建/etc/issue文件的软链接/tmp/issue.soft
ln /etc/issue /tmp/issue.hard:创建/etc/issue文件的硬链接/tmp/issue.hard
ln -sf /home/xiangdong/spec/centos7 SPECS #不用建SPECS,是源链接、新的目录, SPECS -> /home/xiangdong/spec/centos7
备注:软链接是左边是存在待被指向的实体文件,右边是软链接的软链接文件(仅仅是一个链接文件)。
-f, --force remove existing destination files
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl/include/openssl/ /usr/include/openssl
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。
1.连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。 软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理。
Shell代码
1. ln -s source dist # 建立软连接
ln -s /home/jackxiang/mhxy20*hn.act/htdocs mhxy20*hn.act //实际目录 ,软目录 的顺序
ln -s source dist # 建立软连接
2. 硬连接可以看作是同一个文件的不同命名。 硬联接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。 不可以对文件夹建立硬连接的,通常用的还是软连接比较多。
Shell代码
1. ln source dist # 建立硬连接
------Finger
一般来说,tcp正常关闭需要四个包。比如a和b关闭连接,a先 给b发一个fin,b会进行确认ack,然后b也会发出fin,当a接受到这个fin,并发出最后一个ack后,就会处于time_wait状态。这个时 间长短跟操作系统有关,一般会在1-4分钟,也就是两倍的数据包(2msl)最大生存时间。TCP主动关闭方采用TIME_WAIT主要是为了实现终止 TCP全双工连接的可靠性及允许老的重复分节在网络中消逝,等过了2msl(大约1~4分钟)后TIME_WAIT就会消失。
TIME_WAIT状态的目的是为了防止最后a发出的ack丢失,让b处于LAST_ACK超时重发FIN
所以说,主动发起关闭连接的一方会进入time_wait状态,这个时候,进程所占用的端口号不能被释放。除非在你的程序中用setsockopt设置端口可重用(SOCK_REUSE)的选项,但这不是所有操作系统都支持的
解决TIME_WAIT的办法主要有以下几种:
1、修改LINGER值,缩短关闭时间
LINGER lingerStruct;
lingerStruct.l_onoff = 1;
lingerStruct.l_linger = 0;
setsockopt(m_socket,SOL_SOCKET,SO_LINGER,(char *)&lingerStruct,sizeof(lingerStruct));
不过这种办法不是很安全的,不过现在网络都很好啦,不会有问题的。
2、修改注册表
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:00000005
这个值好像是300秒到30秒之间,改成30秒后你会发现TIME_WAIT很快就会消失了。
3、禁用LINGER
//如果你使用的是Socket API,可以这样
BOOL bDontLinger=FALSE;
setsockopt(m_socket,SOL_SOCKET,SO_DONTLINGER,(LPCTSTR)&bDontLinger,sizeof(BOOL));
closesocket(s);
//如果你使用的是CAsyncSocket,需要响应的修改,例如禁用LINGER可以这样
BOOL bDontLinger=FALSE;
m_socket->SetSockOpt(SO_DONTLINGER,(const char *)&bDontLinger,sizeof(bDontLinger),SOL_SOCKET);
m_socket->Close();
4、客户端可以不BIND(),这样,即使断开连接后再次连接,SOCKET将使用不同的端口(1025-5000),
等几分钟后,原有的端口就会自动关闭。
关闭BITCOMET后系统出现的几个TCP状态
一般来说,tcp正常关闭需要四个包。比如a和b关闭连接,a先 给b发一个fin,b会进行确认ack,然后b也会发出fin,当a接受到这个fin,并发出最后一个ack后,就会处于time_wait状态。这个时 间长短跟操作系统有关,一般会在1-4分钟,也就是两倍的数据包(2msl)最大生存时间。TCP主动关闭方采用TIME_WAIT主要是为了实现终止 TCP全双工连接的可靠性及允许老的重复分节在网络中消逝,等过了2msl(大约1~4分钟)后TIME_WAIT就会消失。
TIME_WAIT状态的目的是为了防止最后a发出的ack丢失,让b处于LAST_ACK超时重发FIN
所以说,主动发起关闭连接的一方会进入time_wait状态,这个时候,进程所占用的端口号不能被释放。除非在你的程序中用setsockopt设置端口可重用(SOCK_REUSE)的选项,但这不是所有操作系统都支持的
解决TIME_WAIT的办法主要有以下几种:
1、修改LINGER值,缩短关闭时间
LINGER lingerStruct;
lingerStruct.l_onoff = 1;
lingerStruct.l_linger = 0;
setsockopt(m_socket,SOL_SOCKET,SO_LINGER,(char *)&lingerStruct,sizeof(lingerStruct));
不过这种办法不是很安全的,不过现在网络都很好啦,不会有问题的。
2、修改注册表
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:00000005
这个值好像是300秒到30秒之间,改成30秒后你会发现TIME_WAIT很快就会消失了。
3、禁用LINGER
//如果你使用的是Socket API,可以这样
BOOL bDontLinger=FALSE;
setsockopt(m_socket,SOL_SOCKET,SO_DONTLINGER,(LPCTSTR)&bDontLinger,sizeof(BOOL));
closesocket(s);
//如果你使用的是CAsyncSocket,需要响应的修改,例如禁用LINGER可以这样
BOOL bDontLinger=FALSE;
m_socket->SetSockOpt(SO_DONTLINGER,(const char *)&bDontLinger,sizeof(bDontLinger),SOL_SOCKET);
m_socket->Close();
4、客户端可以不BIND(),这样,即使断开连接后再次连接,SOCKET将使用不同的端口(1025-5000),
等几分钟后,原有的端口就会自动关闭。
关闭BITCOMET后系统出现的几个TCP状态
在日常的软件开发当中,我们一般都是采用了分层的方式来架构系统,但是为什么我们需要分层进行架构呢?在此之前,我觉得需要搞明白两个概念,什么是软件的伸缩性,什么是性能。
首先,什么是软件的伸缩性(Scalability)?我们都知道设计良好的系统可以应对不断增加的系统访问量,但是我们如何能在系统用户增多的时候,来提高系统的吞吐量呢?这就是伸缩性之魅力所在。
伸缩性可以有两个方面,垂直伸缩性和水平伸缩性,垂直伸缩性是通过在同一个业务单元中增加资源来提高系统的吞吐量,比如增加服务器cpu的数量,增加服务器的内存等。水平伸缩性是通过增加多个业务单元资源,使得所有的业务单元逻辑上就像是一个单元一样。比如EJB分布式组件模型,集群配置等都属于此种方式。
下面我说一下,我对性能的理解,我们在日常的开发当中,当说到性能的时候,一般都会首先想到系统有多“快”,我想说的就是性能还涉及到另一个方面,那就是系统有“多少”,也就是说系统的吞吐量。我们在考虑性能的时候,一般都会考虑到这两方面。
理解了伸缩性和性能这两个概念以后,我们来看看系统为什么需要分层架构。
首先采用分层架构的好处,我想大家肯定都会普遍接受的是,系统分层有利于系统的维护,系统的扩展。这其实就是系统的可维护性和可扩展性。
其次,我围绕伸缩性以及性能来说一下,为什么需要分层架构。比如在目前的J2EE系统开发当中,我们普遍采用了分层构架的方式,一般分为表现层,业务层和持久层,当然了我们还可以对各层进行进一步的划分,但是层次划分也不能太细,具体项目要具体对待,原因下面讨论。我们想想,采用分层以后会带来什么不好的地方?想这个问题,我们可以先反过来想一下,不采用分层有什么好处,这当然是每个业务处理速度会更快,因为层与层之间通信会引来额外的开销,所以采用分层后,给我们软件系统带来的就是每个业务处理开销会变大。
好了,既然采用分层会带来额外的开销,那么我们为什么还要进行分层呢?这就涉及到了伸缩性和性能的问题。
如果不采用分层的话,系统的扩展和伸缩也主要靠垂直伸缩,但是垂直伸缩是有限度的,随着系统规模的扩大,垂直伸缩带来的代价也将变得非常昂贵。当采用了分层以后,虽然带来了层与层之间的通信开销(这得益于计算机硬件的飞快发展,如果计算机硬件的发展水平不足以抵消分层以后带来的额外的开销,那么分层架构也会有一个巨大的问号,所以从某种程度上来说,分层架构也利用了一点垂直伸缩性),但是它有利于层的水平伸缩性,并且各个层都可以进行独立的伸缩而不会影响到其它的层,比如EJB分布式组件模型以及目前采用的分成架构的方式就有利于水平伸缩性,
对于性能方面,我上面也说了,性能存在两个方面,一是“快”,二是“多少”,采用分层架构,当然会影响到性能快的方面,因为层次之间通信会带来额外的开销,但是采用了分层架构后,我们的软件系统可以更容易变大(“多少”的问题),也就是说当系统要应对更大的访问量的时候,我们可以通过增加多个业务单元资源(此时的多个业务单元逻辑上看起来就像一个逻辑单元,这对外界是透明的)来增加系统吞吐量。所以对于那些实时性比较高的系统,层的划分不应该太细,太细必然带来实时性的减低,而对于实时性不高,而需要高度的伸缩性的系统,我们可以通过引入不同的层来达到系统水平伸缩的目的。
以上是有关伸缩性和性能,以及它们与分层架构之间的联系,下面我再说一下另外一个问题,这就是Amdahl law(阿姆达尔定律),这个定理主要说明了系统中串行部分对系统速度提升的影响,假设程序中串行部分占a%的比例,那么程序最多提升1/a%的速度。我从这个定律也看出了,软件垂直伸缩的局限性,因为无论增加多少个cpu,如果程序中有串行化的部分,那么程序的速度的提升是有一个极限的,是不能靠增加硬件来无限度的增强系统性能的。所以对于我们软件工程师来说,我们更加需要关注系统的水平伸缩性。
首先,什么是软件的伸缩性(Scalability)?我们都知道设计良好的系统可以应对不断增加的系统访问量,但是我们如何能在系统用户增多的时候,来提高系统的吞吐量呢?这就是伸缩性之魅力所在。
伸缩性可以有两个方面,垂直伸缩性和水平伸缩性,垂直伸缩性是通过在同一个业务单元中增加资源来提高系统的吞吐量,比如增加服务器cpu的数量,增加服务器的内存等。水平伸缩性是通过增加多个业务单元资源,使得所有的业务单元逻辑上就像是一个单元一样。比如EJB分布式组件模型,集群配置等都属于此种方式。
下面我说一下,我对性能的理解,我们在日常的开发当中,当说到性能的时候,一般都会首先想到系统有多“快”,我想说的就是性能还涉及到另一个方面,那就是系统有“多少”,也就是说系统的吞吐量。我们在考虑性能的时候,一般都会考虑到这两方面。
理解了伸缩性和性能这两个概念以后,我们来看看系统为什么需要分层架构。
首先采用分层架构的好处,我想大家肯定都会普遍接受的是,系统分层有利于系统的维护,系统的扩展。这其实就是系统的可维护性和可扩展性。
其次,我围绕伸缩性以及性能来说一下,为什么需要分层架构。比如在目前的J2EE系统开发当中,我们普遍采用了分层构架的方式,一般分为表现层,业务层和持久层,当然了我们还可以对各层进行进一步的划分,但是层次划分也不能太细,具体项目要具体对待,原因下面讨论。我们想想,采用分层以后会带来什么不好的地方?想这个问题,我们可以先反过来想一下,不采用分层有什么好处,这当然是每个业务处理速度会更快,因为层与层之间通信会引来额外的开销,所以采用分层后,给我们软件系统带来的就是每个业务处理开销会变大。
好了,既然采用分层会带来额外的开销,那么我们为什么还要进行分层呢?这就涉及到了伸缩性和性能的问题。
如果不采用分层的话,系统的扩展和伸缩也主要靠垂直伸缩,但是垂直伸缩是有限度的,随着系统规模的扩大,垂直伸缩带来的代价也将变得非常昂贵。当采用了分层以后,虽然带来了层与层之间的通信开销(这得益于计算机硬件的飞快发展,如果计算机硬件的发展水平不足以抵消分层以后带来的额外的开销,那么分层架构也会有一个巨大的问号,所以从某种程度上来说,分层架构也利用了一点垂直伸缩性),但是它有利于层的水平伸缩性,并且各个层都可以进行独立的伸缩而不会影响到其它的层,比如EJB分布式组件模型以及目前采用的分成架构的方式就有利于水平伸缩性,
对于性能方面,我上面也说了,性能存在两个方面,一是“快”,二是“多少”,采用分层架构,当然会影响到性能快的方面,因为层次之间通信会带来额外的开销,但是采用了分层架构后,我们的软件系统可以更容易变大(“多少”的问题),也就是说当系统要应对更大的访问量的时候,我们可以通过增加多个业务单元资源(此时的多个业务单元逻辑上看起来就像一个逻辑单元,这对外界是透明的)来增加系统吞吐量。所以对于那些实时性比较高的系统,层的划分不应该太细,太细必然带来实时性的减低,而对于实时性不高,而需要高度的伸缩性的系统,我们可以通过引入不同的层来达到系统水平伸缩的目的。
以上是有关伸缩性和性能,以及它们与分层架构之间的联系,下面我再说一下另外一个问题,这就是Amdahl law(阿姆达尔定律),这个定理主要说明了系统中串行部分对系统速度提升的影响,假设程序中串行部分占a%的比例,那么程序最多提升1/a%的速度。我从这个定律也看出了,软件垂直伸缩的局限性,因为无论增加多少个cpu,如果程序中有串行化的部分,那么程序的速度的提升是有一个极限的,是不能靠增加硬件来无限度的增强系统性能的。所以对于我们软件工程师来说,我们更加需要关注系统的水平伸缩性。
C51RF-WSN-CC2430教学系统:
http://www.rfidworld.com.cn/blog/u/83192/archives/2009/4390.html
做好的半成品ds18B20:
http://www.dongfangic.com/product/8000%5Cfae60cd3bcceaa76.html
http://hi.baidu.com/liweidiy/blog/item/0760e901348fdf071c9583e7.html
http://www.rfidworld.com.cn/blog/u/83192/archives/2009/4390.html
做好的半成品ds18B20:
http://www.dongfangic.com/product/8000%5Cfae60cd3bcceaa76.html
http://hi.baidu.com/liweidiy/blog/item/0760e901348fdf071c9583e7.html
有贴子说httpd和mysql在FREEBSD下的性能远不如在LINUX下?
但是很多论坛都有前辈说啊…… 说什么线程啊,什么 的…… MYSQL什么的………
--------------------------------------------------------------------------------
好象没有听说啊,只知道FreeBSD的文件系统性能要差一点
为什么要用它,这怎么说,它存在就有它存在的理由,一般它较为保守,不具有象LINUX那么多的新特性
--------------------------------------------------------------------------------
完全不懂…… 这个MySQL with LinuxThreads 在FREEBSD下性能好的和在LINUX下一样的说??
关键是稳定性!我还是这个观点,再不同的帖子里给你说同样的话,BSD的性能也许不是最好的,但是他的稳定性绝对是最好的!!!
而且BSD的性能到底如何也不是一个人说了算,不同的系统可以根据不同的需要来进行不同的优化.
This is an issue that comes up all the time at work. It is an issue for roughly four reasons:
Yahoo is a FreeBSD shop
Someone has heard that MySQL runs better on Linux
Someone knows that we run some of our servers on Linux rather than FreeBSD, and Yahoo is a FreeBSD shop (see #1), so they start to infer #2.
Most of the MySQL development is done on Linux and Windows. The only "FreeBSD guy" at MySQL AB seems to have left sometime in the last year or so.
This is an attempt to answer that question for folks at work and elsewhere.
The Short Version阅读全文
但是很多论坛都有前辈说啊…… 说什么线程啊,什么 的…… MYSQL什么的………
--------------------------------------------------------------------------------
好象没有听说啊,只知道FreeBSD的文件系统性能要差一点
为什么要用它,这怎么说,它存在就有它存在的理由,一般它较为保守,不具有象LINUX那么多的新特性
--------------------------------------------------------------------------------
完全不懂…… 这个MySQL with LinuxThreads 在FREEBSD下性能好的和在LINUX下一样的说??
关键是稳定性!我还是这个观点,再不同的帖子里给你说同样的话,BSD的性能也许不是最好的,但是他的稳定性绝对是最好的!!!
而且BSD的性能到底如何也不是一个人说了算,不同的系统可以根据不同的需要来进行不同的优化.
This is an issue that comes up all the time at work. It is an issue for roughly four reasons:
Yahoo is a FreeBSD shop
Someone has heard that MySQL runs better on Linux
Someone knows that we run some of our servers on Linux rather than FreeBSD, and Yahoo is a FreeBSD shop (see #1), so they start to infer #2.
Most of the MySQL development is done on Linux and Windows. The only "FreeBSD guy" at MySQL AB seems to have left sometime in the last year or so.
This is an attempt to answer that question for folks at work and elsewhere.
The Short Version阅读全文
http://www.cnblogs.com/meil/archive/2007/09/14/875874.html
正则表达式再次让我震撼,寥寥数行代码就可以完成普通代码不易实现的功能,至少是实现起来比较复杂的功能。
一、清楚内容中的Javsscript 代码
1 Function ClearJSCode(originCode)
2
3 Dim reg
4
5 set reg = New RegExp
6
7 reg.Pattern = "<SCRIPT[^<]*</SCRIPT>"
8 reg.IgnoreCase = True
9 reg.Global = True
10
11 clearJSCode = reg.Replace(originCode, "")
12
13 End Function
14
二、清除内容中的HTML代码
1 Function ClearHTMLCode(originCode)
2
3 Dim reg
4 set reg = new RegExp
5
6 reg.Pattern = "<[^>]*>"
7 reg.IgnoreCase = True
8 reg.Global = True
9
10 ClearHTMLCode = reg.Replace(originCode, "")
11
12 End Function
13
现在好多网站的内容都是使用采集程序生成的,使用上边的代码就可以轻松的将内容中的HTML和JS代码清除掉。
正则表达式再次让我震撼,寥寥数行代码就可以完成普通代码不易实现的功能,至少是实现起来比较复杂的功能。
一、清楚内容中的Javsscript 代码
1 Function ClearJSCode(originCode)
2
3 Dim reg
4
5 set reg = New RegExp
6
7 reg.Pattern = "<SCRIPT[^<]*</SCRIPT>"
8 reg.IgnoreCase = True
9 reg.Global = True
10
11 clearJSCode = reg.Replace(originCode, "")
12
13 End Function
14
二、清除内容中的HTML代码
1 Function ClearHTMLCode(originCode)
2
3 Dim reg
4 set reg = new RegExp
5
6 reg.Pattern = "<[^>]*>"
7 reg.IgnoreCase = True
8 reg.Global = True
9
10 ClearHTMLCode = reg.Replace(originCode, "")
11
12 End Function
13
现在好多网站的内容都是使用采集程序生成的,使用上边的代码就可以轻松的将内容中的HTML和JS代码清除掉。
html为checkBox和radio添加label
为checkbox或者radio加上label,让对label中文字的点击也同时对checkbox/radio生效:
<input type="checkbox" name="tstCheckBox" id="cbox"><label for="cbox">for checkbox</lable>
<br />
<input type="radio" name="tstradio" id="radio"><label for="radio">for radio</label>
参考:http://blog.longwin.com.tw/2005/04/html_label_radio_bottom/
真正的用PHP的smarty来做是这样的:
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Label标识有两个属性,一个是FOR,一个是ACCESSKEY。
FOR的意思是,这个Lable是为哪个控件服务的;
ACCESSKEY则定义了访问这个控件的热键。
比如,有一个名字叫Name的文本框,<INPUT TYPE="TEXT" ID="Name" SIZE=30>,
那么,<label>就可以定义成:<LABEL FOR="Name" ACCESSKEY="N">姓 名(<U>N</U>):</LABEL>。
可以看见,这个<Label>是为那个ID为“Name”控件服务的,而ACESSKEY则定义了,这访问这个控件的热键为“Alt+N”。
1<LABEL FOR="txtName" ACCESSKEY="N">姓 名(<U>N</U>):</LABEL>
2<INPUT TYPE="TEXT" ID="txtName" SIZE=30>Meil<br>
3
4<LABEL FOR="txtUrl" ACCESSKEY="U">个人主页(<U>U</U>):</LABEL>
5<INPUT TYPE="TEXT" ID="txtUrl" SIZE=30>http://www.livebaby.cn<br>
6
7<LABEL FOR="txtPhonebox" ACCESSKEY="P">联系电话(<U>P</U>):</LABEL>
8<INPUT TYPE="TEXT" ID="txtPhonebox" SIZE=30> <br>
9
10<LABEL FOR="areabox" ACCESSKEY="S" >留 言(<U>S</U>):</LABEL>
11<TEXTAREA ID="areabox" COLS="30" ROWS="3"></TEXTAREA>
单选钮、复选框都要点击控件才能选中控件,而如果使用<label>标识就可以实现点击文字选取。
点击文字可以选取的多项选择框:
1<input type="CHECKBOX" id="chk1" value="often" name="chkoften">
2<label for="chk1" >经常来这里</label>
3<input type="CHECKBOX" id="chk2" value="seldom" name="chkseldom">
4<label for="chk2" >偶尔来看看</label>
带热键的多项选择框:
1<input type="CHECKBOX" id="chk3" value="often" name="chkoften">
2<label for="chk3" ACCESSKEY="H">经常来这里(<U>H</U>)</label>
3<input type="CHECKBOX" id="chk4" value="seldom" name="chkseldom">
4<label for="chk4" ACCESSKEY="L">偶尔来看看(<U>L</U>)</label>
===========================
例如,在 XHTML 中:
显式的联系:
<label for="SSN">Social Security Number:</label>
<input type="text" name="SocSecNum" id="SSn" />
隐式的联系:
<label>Date of Birth: <input type="text" name="DofB" /></label>
为checkbox或者radio加上label,让对label中文字的点击也同时对checkbox/radio生效:
<input type="checkbox" name="tstCheckBox" id="cbox"><label for="cbox">for checkbox</lable>
<br />
<input type="radio" name="tstradio" id="radio"><label for="radio">for radio</label>
参考:http://blog.longwin.com.tw/2005/04/html_label_radio_bottom/
真正的用PHP的smarty来做是这样的:
---------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------
Label标识有两个属性,一个是FOR,一个是ACCESSKEY。
FOR的意思是,这个Lable是为哪个控件服务的;
ACCESSKEY则定义了访问这个控件的热键。
比如,有一个名字叫Name的文本框,<INPUT TYPE="TEXT" ID="Name" SIZE=30>,
那么,<label>就可以定义成:<LABEL FOR="Name" ACCESSKEY="N">姓 名(<U>N</U>):</LABEL>。
可以看见,这个<Label>是为那个ID为“Name”控件服务的,而ACESSKEY则定义了,这访问这个控件的热键为“Alt+N”。
1<LABEL FOR="txtName" ACCESSKEY="N">姓 名(<U>N</U>):</LABEL>
2<INPUT TYPE="TEXT" ID="txtName" SIZE=30>Meil<br>
3
4<LABEL FOR="txtUrl" ACCESSKEY="U">个人主页(<U>U</U>):</LABEL>
5<INPUT TYPE="TEXT" ID="txtUrl" SIZE=30>http://www.livebaby.cn<br>
6
7<LABEL FOR="txtPhonebox" ACCESSKEY="P">联系电话(<U>P</U>):</LABEL>
8<INPUT TYPE="TEXT" ID="txtPhonebox" SIZE=30> <br>
9
10<LABEL FOR="areabox" ACCESSKEY="S" >留 言(<U>S</U>):</LABEL>
11<TEXTAREA ID="areabox" COLS="30" ROWS="3"></TEXTAREA>
单选钮、复选框都要点击控件才能选中控件,而如果使用<label>标识就可以实现点击文字选取。
点击文字可以选取的多项选择框:
1<input type="CHECKBOX" id="chk1" value="often" name="chkoften">
2<label for="chk1" >经常来这里</label>
3<input type="CHECKBOX" id="chk2" value="seldom" name="chkseldom">
4<label for="chk2" >偶尔来看看</label>
带热键的多项选择框:
1<input type="CHECKBOX" id="chk3" value="often" name="chkoften">
2<label for="chk3" ACCESSKEY="H">经常来这里(<U>H</U>)</label>
3<input type="CHECKBOX" id="chk4" value="seldom" name="chkseldom">
4<label for="chk4" ACCESSKEY="L">偶尔来看看(<U>L</U>)</label>
===========================
例如,在 XHTML 中:
显式的联系:
<label for="SSN">Social Security Number:</label>
<input type="text" name="SocSecNum" id="SSn" />
隐式的联系:
<label>Date of Birth: <input type="text" name="DofB" /></label>
FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。
FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中
-v:显示远程服务器的所有响应信息;
-n:限制ftp的自动登录,即不使用;
.n: etrc文件;
-d:使用调试方式;
-g:取消全局文件名。
FTP内部命令格式(中括号表示可选项):
1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.
2.$ macro-ame[args]:执行宏定义macro-name.
3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,
如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。
第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3。
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help。
FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中
-v:显示远程服务器的所有响应信息;
-n:限制ftp的自动登录,即不使用;
.n: etrc文件;
-d:使用调试方式;
-g:取消全局文件名。
FTP内部命令格式(中括号表示可选项):
1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.
2.$ macro-ame[args]:执行宏定义macro-name.
3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,
如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。
第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3。
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help。
51NET以太网开发板
1.系统介绍
51NET是一个具有10Mbps以太网接口和RS232串行接口的51系列单片机的嵌入式开发学习板,它采用WINBOND公司生产的W78E58B微控制器为核心处理器,包括TCP/IP协议栈和相应的应用程序。实现了ARP、ICMP、TCP、UDP协议,可应用于HTTP Web服务器、Mail客户机、网络协议转换(如Ethernet-RS232接口转换、Ethernet-SPI接口转换等)、基于Internet的远程控制、基于Internet的远程数据采集等嵌入式网络应用
新款设计2008隆重上市,产品更新,价格不变(做了一些设计更新,修正了一些硬件上的BUG)
与市场同类产品相比,开发板上的资源极为丰富,板子本身可以完成以太网通讯的同时,还可以利用以太网板上的资源来实时监控通讯情况,也是我们设计该板时为广大工程师方便开发考虑到的问题,您可以通过数码管显示数字,蜂鸣器鸣音,继电器吸合来更直观地给开发者讯息。
板上带19PIN的外扩展端口,供用户进行扩展开发、试验。
接口齐全,从左至右为:电源口,RJ45 10M以太网接口,RS232串口。
网络通讯核心芯片选用RealTek的RTL8019AS芯片。
2.系统说明
● CPU采用W78E58BP-40,工作频率可达到40MHz,完全满足运行多种网络协议的要求;也可根据需要将CPU替换为其它8052兼容微控制器
● HM62256 32Kx8 CMOS静态RAM
● X5045 上电复位、可编程看门狗定时器、4Kb SPI EEPROM
● 多组LED用来指示系统运行情况
● 系统扩展标准RJ45以太网接口,3针串行RS232接口,1组可供用户自由扩展的系统资源接口
● 输入电压范围为7-30VDC
● 支持在系统编程,方便二次开发
● 支持各种通用的8052兼容编译器,如Keil C等
● TCP/IP协议栈、独立RTOS和应用软件支持
3.主要应用领域
● 智能仪器、仪表
● 远程控制
● 嵌入式以太网接入
● 嵌入式网络开发、实验
4.用户光盘上提供的源代码及资料
● ARP、ICMP、TCP、UDP协议,ARP中实现了缓存,发包电路实现了缓存,上位机可以ping这块板子,下位机也可以ping上位机(通过上位机小程序,连串口),可以用tcp进行数据传送
● 详细使用说明文档
● 电路PDF格式的原理图
● 所有芯片data sheet
5.套件组成
● 51NET开发板1块
● 稳压电源1只
● 串口电缆1根
● 资料光盘1份(内含系统详细说明文档、RTOS、TCP/IP协议软件、元器件手册、应用文档等)
这是51NET以太网开发板工作时的瞬间照片(上图是老款开发板的样子,现在出售的都为新款了),上面两个LCD为电源指示,网络连接指示,右下方的红色LED为程序运行指示,具体表现为不停地闪烁则程序正常运行。该图中,我们可以看到,我们通过RS232接口来对开发板进行网络参数的设置,如IP地址,子网掩码,服务器端口号等等。
这是三块51NET以太网开发板同时工作时的瞬间照片,三块开发板通过HUB集线器,连在一起,预先通过RS232串口设置好各板的网络参数,然后插上电源适配器,RJ45网线,打开电源开关即可。
1.系统介绍
51NET是一个具有10Mbps以太网接口和RS232串行接口的51系列单片机的嵌入式开发学习板,它采用WINBOND公司生产的W78E58B微控制器为核心处理器,包括TCP/IP协议栈和相应的应用程序。实现了ARP、ICMP、TCP、UDP协议,可应用于HTTP Web服务器、Mail客户机、网络协议转换(如Ethernet-RS232接口转换、Ethernet-SPI接口转换等)、基于Internet的远程控制、基于Internet的远程数据采集等嵌入式网络应用
新款设计2008隆重上市,产品更新,价格不变(做了一些设计更新,修正了一些硬件上的BUG)
与市场同类产品相比,开发板上的资源极为丰富,板子本身可以完成以太网通讯的同时,还可以利用以太网板上的资源来实时监控通讯情况,也是我们设计该板时为广大工程师方便开发考虑到的问题,您可以通过数码管显示数字,蜂鸣器鸣音,继电器吸合来更直观地给开发者讯息。
板上带19PIN的外扩展端口,供用户进行扩展开发、试验。
接口齐全,从左至右为:电源口,RJ45 10M以太网接口,RS232串口。
网络通讯核心芯片选用RealTek的RTL8019AS芯片。
2.系统说明
● CPU采用W78E58BP-40,工作频率可达到40MHz,完全满足运行多种网络协议的要求;也可根据需要将CPU替换为其它8052兼容微控制器
● HM62256 32Kx8 CMOS静态RAM
● X5045 上电复位、可编程看门狗定时器、4Kb SPI EEPROM
● 多组LED用来指示系统运行情况
● 系统扩展标准RJ45以太网接口,3针串行RS232接口,1组可供用户自由扩展的系统资源接口
● 输入电压范围为7-30VDC
● 支持在系统编程,方便二次开发
● 支持各种通用的8052兼容编译器,如Keil C等
● TCP/IP协议栈、独立RTOS和应用软件支持
3.主要应用领域
● 智能仪器、仪表
● 远程控制
● 嵌入式以太网接入
● 嵌入式网络开发、实验
4.用户光盘上提供的源代码及资料
● ARP、ICMP、TCP、UDP协议,ARP中实现了缓存,发包电路实现了缓存,上位机可以ping这块板子,下位机也可以ping上位机(通过上位机小程序,连串口),可以用tcp进行数据传送
● 详细使用说明文档
● 电路PDF格式的原理图
● 所有芯片data sheet
5.套件组成
● 51NET开发板1块
● 稳压电源1只
● 串口电缆1根
● 资料光盘1份(内含系统详细说明文档、RTOS、TCP/IP协议软件、元器件手册、应用文档等)
这是51NET以太网开发板工作时的瞬间照片(上图是老款开发板的样子,现在出售的都为新款了),上面两个LCD为电源指示,网络连接指示,右下方的红色LED为程序运行指示,具体表现为不停地闪烁则程序正常运行。该图中,我们可以看到,我们通过RS232接口来对开发板进行网络参数的设置,如IP地址,子网掩码,服务器端口号等等。
这是三块51NET以太网开发板同时工作时的瞬间照片,三块开发板通过HUB集线器,连在一起,预先通过RS232串口设置好各板的网络参数,然后插上电源适配器,RJ45网线,打开电源开关即可。
http://sjolzy.cn/post-265.html
jQuery CS4 , CS3 Dreamweaver Extension
I've been getting more and more into jQuery. You can expect most of the effects on this website to be moved to jQuery soon. While learning and exploring this new Javascript Framework, I thought there must be a jQuery Dreamweaver Extension and it turns out there was. However, it took a long time to find, and many of mirrors were dead. So I figured it was my civic duty to provide a real dependable source for downloading this Dreamweaver jQuery Extension.
A note: there seems to have been some confusion, this does work on CS3 and CS4 of Adobe Dreamweaver.
Download jQuery Dreamweaver Extension Now!
Feeling generous? Give us a link somewhere on your site linking the words "Minneapolis Web Design".
DOwnLoad:
http://himmdesign.com/assets/files/jQuery_API.mxp.zip
官方:http://xtnd.us/dreamweaver/jquery
Dreamweaver CS3的Ext 2.0.2智能提示.它提供了非常准确的Ext API提示。
如图:
下载地址:
http://extjs.org.cn/files/spketdwcs-ext-2.0.2.zip
引用方法:
1、将下载回来的文件解压,并安裝.(双击.mpx文件,默认会以Adobe Extension Manager打开)。
如果还没有安装 Adobe Extension Manager 请到百度或者迅雷下载。
2、打开Dreamweaver CS3点击菜单 "Spket" -> "ExtJS Source...", 在打开的对话框中选择ExtJs源代码中的"ext.jsb".
3、新建一个html文件,打开菜单 "Spket" -> "Show Code Hints", 或者按下 Ctrl+Alt+Space 组合键.出来的效果如上图所示.
打算为dreamweaver装一个扩展,但用的是精简版,执行“命令”>“扩展管理”,弹出"扩展管理器不可用"信息,看来精简版的确够精简的!
前往ADOBE公司下载最新的扩展管理器,网址:http://www.adobe.com/cn/exchange/em_download/
注意:不同的dreamweaver版本应该下载不同的扩展,我用的是Dreamweaver CS4,于是我就选择下载Extension Manager CS4 2.0。
下载后,安装,一路回车到底。没有出现什么错误。直到安装完成。
运行dreamweaver cs4,再次执行“命令”>“扩展管理”,一切OK。
I've been getting more and more into jQuery. You can expect most of the effects on this website to be moved to jQuery soon. While learning and exploring this new Javascript Framework, I thought there must be a jQuery Dreamweaver Extension and it turns out there was. However, it took a long time to find, and many of mirrors were dead. So I figured it was my civic duty to provide a real dependable source for downloading this Dreamweaver jQuery Extension.
A note: there seems to have been some confusion, this does work on CS3 and CS4 of Adobe Dreamweaver.
Download jQuery Dreamweaver Extension Now!
Feeling generous? Give us a link somewhere on your site linking the words "Minneapolis Web Design".
DOwnLoad:
http://himmdesign.com/assets/files/jQuery_API.mxp.zip
官方:http://xtnd.us/dreamweaver/jquery
Dreamweaver CS3的Ext 2.0.2智能提示.它提供了非常准确的Ext API提示。
如图:
下载地址:
http://extjs.org.cn/files/spketdwcs-ext-2.0.2.zip
引用方法:
1、将下载回来的文件解压,并安裝.(双击.mpx文件,默认会以Adobe Extension Manager打开)。
如果还没有安装 Adobe Extension Manager 请到百度或者迅雷下载。
2、打开Dreamweaver CS3点击菜单 "Spket" -> "ExtJS Source...", 在打开的对话框中选择ExtJs源代码中的"ext.jsb".
3、新建一个html文件,打开菜单 "Spket" -> "Show Code Hints", 或者按下 Ctrl+Alt+Space 组合键.出来的效果如上图所示.
打算为dreamweaver装一个扩展,但用的是精简版,执行“命令”>“扩展管理”,弹出"扩展管理器不可用"信息,看来精简版的确够精简的!
前往ADOBE公司下载最新的扩展管理器,网址:http://www.adobe.com/cn/exchange/em_download/
注意:不同的dreamweaver版本应该下载不同的扩展,我用的是Dreamweaver CS4,于是我就选择下载Extension Manager CS4 2.0。
下载后,安装,一路回车到底。没有出现什么错误。直到安装完成。
运行dreamweaver cs4,再次执行“命令”>“扩展管理”,一切OK。
我估计还有不少人被蒙在鼓里,我也是刚刚装完 Aptana Studio 2.0 后才知道的。详情请见 http://aptana.org/php
我对博客做了点调整,然后决定要经常更新了。很多在 RIM 所学的 Eclipse 开发知识我想很有必要分享给大家
在侧边栏加了 Twitter 小工具,像我这种本来就不爱写很长东西的人,Twitter 上反而比较活跃
又换了个新外观,很强,用 Ext JS library 实现了大部分的 UI。不过我还是更喜欢 jQuery,所以已经开始构思一个用它的风格模板了
我对博客做了点调整,然后决定要经常更新了。很多在 RIM 所学的 Eclipse 开发知识我想很有必要分享给大家
在侧边栏加了 Twitter 小工具,像我这种本来就不爱写很长东西的人,Twitter 上反而比较活跃
又换了个新外观,很强,用 Ext JS library 实现了大部分的 UI。不过我还是更喜欢 jQuery,所以已经开始构思一个用它的风格模板了
细心的phper们都发现了,自从zend studio升级到7.0以后,代码自动提示功能(Code Assist)变得非常慢,慢的让人无法承受,写代码也搞的不顺畅了,本来一提高敲代码速度,提高工作效率的集成开发工具,一下子成了拖累,这谁还用IDE呀?
是的,经过证实,这是zend studio 7.0的固有bug,zend官方对此也作出了修正,在新版的zend studio 7.1中,代码提示慢的问题已不复存在,那么为什么还有朋友不断的反映说自从用上了7.0以后,代码提示就是比6.x的时候慢很多呢?我总结了一下,原因有两条:
1、很多同学下载的是zend studio 7.0,7.0.1,7.0.2,并因此而找到bug穷追猛打;
2、下载了zend studio 7.1的同学没有进行一处默认设置,导致代码提示比6.1稍微慢而被其感觉了出来;
关于代码自动提示慢的第一点,没有办法,请各位同学速速升级到zend studio 7.1,第二点,请看下面的截图:
(上张win7下的截图,吼吼~)上图中Auto activation delay就是提示窗口出现的延迟时间,刚刚安装的时候默认是500毫秒,据本人实际测试,这个值改成200即可与zend studio 6.1.2的提示速度相媲美,再小于200似乎没有什么效果,当然,如果仔细比较,此代码自动提示速度还是稍微慢于6.1.2,但这已经完全不影响我们的编程工作了,因为7.1在代码提示上做了很不错的优化,6.1.2时候代码提示时的疯狂读硬盘情况已经有了很好的改善,如果还有人蹦出来说zend studio 7.1的代码提示比6.1.2的慢,那我想你不是要代码提示了,你要的是一台自动敲代码、自动编程的机器。
阴谋陷害别人的人,自己会首先遭到不幸。 —— 伊索
是的,经过证实,这是zend studio 7.0的固有bug,zend官方对此也作出了修正,在新版的zend studio 7.1中,代码提示慢的问题已不复存在,那么为什么还有朋友不断的反映说自从用上了7.0以后,代码提示就是比6.x的时候慢很多呢?我总结了一下,原因有两条:
1、很多同学下载的是zend studio 7.0,7.0.1,7.0.2,并因此而找到bug穷追猛打;
2、下载了zend studio 7.1的同学没有进行一处默认设置,导致代码提示比6.1稍微慢而被其感觉了出来;
关于代码自动提示慢的第一点,没有办法,请各位同学速速升级到zend studio 7.1,第二点,请看下面的截图:
(上张win7下的截图,吼吼~)上图中Auto activation delay就是提示窗口出现的延迟时间,刚刚安装的时候默认是500毫秒,据本人实际测试,这个值改成200即可与zend studio 6.1.2的提示速度相媲美,再小于200似乎没有什么效果,当然,如果仔细比较,此代码自动提示速度还是稍微慢于6.1.2,但这已经完全不影响我们的编程工作了,因为7.1在代码提示上做了很不错的优化,6.1.2时候代码提示时的疯狂读硬盘情况已经有了很好的改善,如果还有人蹦出来说zend studio 7.1的代码提示比6.1.2的慢,那我想你不是要代码提示了,你要的是一台自动敲代码、自动编程的机器。
阴谋陷害别人的人,自己会首先遭到不幸。 —— 伊索
Eclipse的WTP支持Javascript的代码补全功能
但是很简单,而且不支持jQuery
jQueryWTP的目的就是让Eclipse WTP支持jQuery
需要说明的是该插件对于MyEclipse等基于Eclipse WTP的工具也是支持的
项目主页是
http://www.langtags.com/jquerywtp/index.html
下载地址:http://sourceforge.net/project/showfiles.php?group_id=202840
安装方法:
step1:download jqueryWTP_version.jar
step2:find you Eclipse Plugin org.eclipse.wst.javascript.ui_xxxxxxx.jar,backup the plugin.
step3:double click the jar file or run with command java -jar jqueryWTP.version.jar
step4:on the opened swing UI,choose org.eclipse.wst.javascript.ui_xxxxxxx.jar,and output dir.
step5:click generate button.
step6:replace old org.eclipse.wst.javascript.ui_xxxxxxx.jar file with the generated file.
step7:restart eclipse.
step8:open a html file,edit js content.
1.请用jdk6
2.运行命令是 java -jar jqueryWTP.version.jar
它的意识就是根据原有文件(org.eclipse.wst.javascript.ui_xxxxxxx.jar),生成一个新文件,其中加入jQuery 功能,然后我们再手动替代原有文件。
3.安装成功,就是能显示函数,能点(.)出来。但仅限html,如附件。
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> quickSearch jQuery plug-in - Large table</title>
<script src="../../js/jquery-1[1].2.6.js" type="text/javascript"
charset="utf-8"></script>
<script src="../../js/jquery.quicksearch.js" type="text/javascript"
charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('table#large tbody tr').quicksearch({
attached: "table#large",
position: "before",
stripeRowClass: ['r1', 'r2', 'r3'],
labelText: 'Please input the search word...',
loaderText: 'Is searching...',
inputText: 'Search table'
});
});
</script>[/code]
但是很简单,而且不支持jQuery
jQueryWTP的目的就是让Eclipse WTP支持jQuery
需要说明的是该插件对于MyEclipse等基于Eclipse WTP的工具也是支持的
项目主页是
http://www.langtags.com/jquerywtp/index.html
下载地址:http://sourceforge.net/project/showfiles.php?group_id=202840
安装方法:
step1:download jqueryWTP_version.jar
step2:find you Eclipse Plugin org.eclipse.wst.javascript.ui_xxxxxxx.jar,backup the plugin.
step3:double click the jar file or run with command java -jar jqueryWTP.version.jar
step4:on the opened swing UI,choose org.eclipse.wst.javascript.ui_xxxxxxx.jar,and output dir.
step5:click generate button.
step6:replace old org.eclipse.wst.javascript.ui_xxxxxxx.jar file with the generated file.
step7:restart eclipse.
step8:open a html file,edit js content.
1.请用jdk6
2.运行命令是 java -jar jqueryWTP.version.jar
它的意识就是根据原有文件(org.eclipse.wst.javascript.ui_xxxxxxx.jar),生成一个新文件,其中加入jQuery 功能,然后我们再手动替代原有文件。
3.安装成功,就是能显示函数,能点(.)出来。但仅限html,如附件。
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> quickSearch jQuery plug-in - Large table</title>
<script src="../../js/jquery-1[1].2.6.js" type="text/javascript"
charset="utf-8"></script>
<script src="../../js/jquery.quicksearch.js" type="text/javascript"
charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('table#large tbody tr').quicksearch({
attached: "table#large",
position: "before",
stripeRowClass: ['r1', 'r2', 'r3'],
labelText: 'Please input the search word...',
loaderText: 'Is searching...',
inputText: 'Search table'
});
});
</script>[/code]
zendStudio创建的项目如何支持Jquery?
有两种方法,第一种:再你创建项目的时侯到最后一步名为Libraries(库)时,先择JQuery Library
第二种:已经创建的项目如何增加Query Library,选中你创建的项目,点击右键点选Configure(配置),再出来的菜单中选择Add JQuery,这时会弹出一个窗口,有三个选项都是默认选中的,要把这三个选项前面的勾都去掉(全都不选)。点击完成。
From:ZendStudio 解答QQ群。
有两种方法,第一种:再你创建项目的时侯到最后一步名为Libraries(库)时,先择JQuery Library
第二种:已经创建的项目如何增加Query Library,选中你创建的项目,点击右键点选Configure(配置),再出来的菜单中选择Add JQuery,这时会弹出一个窗口,有三个选项都是默认选中的,要把这三个选项前面的勾都去掉(全都不选)。点击完成。
From:ZendStudio 解答QQ群。
1. 下载安装 Aptana Studio
官方下载:http://www.aptana.com/
2.安装JQuery 插件:按下图打开插件管理器,点击绿色加号图标,按提示步骤添加即可,由于网络原因可能速度很慢,请耐心等待...
文章源自:烈火网,原文:http://www.liehuo.net/a/200911/1810725.html
3.安装成功后,在菜单window->preferences->General->aptana->editors->javascript->code assist
将jquery 1.3选中即可
注意:有时候可能你可能新建Js文件输入却没有相关的提示,请按下面操作方式修改
用记事本打开安装目录:Aptana\Aptana Studio 2.0\configuration\.settings下的org.eclipse.ui.ide.prefs,文件中找到 SHOW_WORKSPACE_SELECTION_DIALOG=false 这句话,将false改为true,保存。重启aptana程序,设置orkspace,JS文件上code便可智能提示了。
文章源自:烈火网,原文:http://www.liehuo.net/a/200911/1810725.html
必看:https://aptanastudio.tenderapp.com/discussions/questions/175-jquery-support-not-working-in-aptana-20
官方下载:http://www.aptana.com/
2.安装JQuery 插件:按下图打开插件管理器,点击绿色加号图标,按提示步骤添加即可,由于网络原因可能速度很慢,请耐心等待...
文章源自:烈火网,原文:http://www.liehuo.net/a/200911/1810725.html
3.安装成功后,在菜单window->preferences->General->aptana->editors->javascript->code assist
将jquery 1.3选中即可
注意:有时候可能你可能新建Js文件输入却没有相关的提示,请按下面操作方式修改
用记事本打开安装目录:Aptana\Aptana Studio 2.0\configuration\.settings下的org.eclipse.ui.ide.prefs,文件中找到 SHOW_WORKSPACE_SELECTION_DIALOG=false 这句话,将false改为true,保存。重启aptana程序,设置orkspace,JS文件上code便可智能提示了。
文章源自:烈火网,原文:http://www.liehuo.net/a/200911/1810725.html
必看:https://aptanastudio.tenderapp.com/discussions/questions/175-jquery-support-not-working-in-aptana-20