??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品久久久久婷婷老年,精品国产亚洲一区二区三区,亚洲欧美一区二区三区日产http://www.tkk7.com/strive/category/17734.htmlzh-cnFri, 04 May 2007 04:00:57 GMTFri, 04 May 2007 04:00:57 GMT60我的|站开通了http://www.tkk7.com/strive/articles/115276.html一手的窝H?/dc:creator>一手的窝H?/author>Fri, 04 May 2007 02:25:00 GMThttp://www.tkk7.com/strive/articles/115276.htmlhttp://www.tkk7.com/strive/comments/115276.htmlhttp://www.tkk7.com/strive/articles/115276.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/115276.htmlhttp://www.tkk7.com/strive/services/trackbacks/115276.htmlhttp://www.oidn.net / http://www.oidn.cn 已经开通了..

]]>
?固定表头? 很好?http://www.tkk7.com/strive/articles/86081.html一手的窝H?/dc:creator>一手的窝H?/author>Thu, 07 Dec 2006 06:02:00 GMThttp://www.tkk7.com/strive/articles/86081.htmlhttp://www.tkk7.com/strive/comments/86081.htmlhttp://www.tkk7.com/strive/articles/86081.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/86081.htmlhttp://www.tkk7.com/strive/services/trackbacks/86081.html < html >
 
< body >
  
< div  style ="overflow:auto;height:100px;" >
     
< table  width ="100%" >
     
< TR  style ="position:relative;top:expression(this.offsetParent.scrollTop);background:navy;color:white;" >
     
< TH  nowrap > Header A </ TH >
     
< TH  nowrap > Header B </ TH >
     
< TH  nowrap > Header C </ TH >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
< TR >
     
< TD > A </ TD >
     
< TD > B </ TD >
     
< TD > C </ TD >
     
</ TR >
     
</ table >
  
</ div >
 
</ body >
</ html >  


]]>
天天学习才有q步http://www.tkk7.com/strive/articles/85659.html一手的窝H?/dc:creator>一手的窝H?/author>Tue, 05 Dec 2006 11:43:00 GMThttp://www.tkk7.com/strive/articles/85659.htmlhttp://www.tkk7.com/strive/comments/85659.htmlhttp://www.tkk7.com/strive/articles/85659.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/85659.htmlhttp://www.tkk7.com/strive/services/trackbacks/85659.html    对于M事情Q都要设w处地地思考,在考虑事情的时候,要顾虑到他h的利益?br />   表示反对意见的时候,不应该伤宛_他h?br />   对于事情的好坏,要有q速的辨别能力Q必要时Q作必要的让步?br />   切勿固执已见Q你要记住,你的意见只是千万U意见中的一U?br />   要有真挚仁慈的态度Q这U态度Q能够化敌ؓ友?br />   无论怎样隑֠的事Q要乐意承受?br />   最重要的,便是有温和,快乐Q和诚恳的态度?img src ="http://www.tkk7.com/strive/aggbug/85659.html" width = "1" height = "1" />

]]>
做hq是有问?/title><link>http://www.tkk7.com/strive/articles/85654.html</link><dc:creator>一手的窝H?/dc:creator><author>一手的窝H?/author><pubDate>Tue, 05 Dec 2006 10:59:00 GMT</pubDate><guid>http://www.tkk7.com/strive/articles/85654.html</guid><wfw:comment>http://www.tkk7.com/strive/comments/85654.html</wfw:comment><comments>http://www.tkk7.com/strive/articles/85654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/strive/comments/commentRss/85654.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/strive/services/trackbacks/85654.html</trackback:ping><description><![CDATA[L在反省:L不会做h。也许是太年M吧?img src ="http://www.tkk7.com/strive/aggbug/85654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/strive/" target="_blank">一手的窝H?/a> 2006-12-05 18:59 <a href="http://www.tkk7.com/strive/articles/85654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学数据结构遇到的 q义表问?之前没学q?/title><link>http://www.tkk7.com/strive/articles/85181.html</link><dc:creator>一手的窝H?/dc:creator><author>一手的窝H?/author><pubDate>Sun, 03 Dec 2006 06:11:00 GMT</pubDate><guid>http://www.tkk7.com/strive/articles/85181.html</guid><wfw:comment>http://www.tkk7.com/strive/comments/85181.html</wfw:comment><comments>http://www.tkk7.com/strive/articles/85181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/strive/comments/commentRss/85181.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/strive/services/trackbacks/85181.html</trackback:ping><description><![CDATA[ <p style="LINE-HEIGHT: 150%"> <font size="4"> <b>q义表的概念</b> </font> <br /> <br />     q义?ListsQ又U列?是线性表的推qѝ即q义表中放松对表元素的原子限Ӟ容许它们h其自w结构?br /><font color="#ff0000"><br /></font><b>1、广义表定义</b><br />     <b>q义?/b>是n(n?)个元素a<sub>1</sub>Qa<sub>2</sub>Q…,a<sub>i</sub>Q…,a<sub>n</sub>的有限序列?br />  其中Q?br />     ①a<sub>i</sub>--或者是原子或者是一个广义表?br />    ②广义表通常CQ?br />              Ls=( a<sub>1</sub>Qa<sub>2</sub>Q…,a<sub>i</sub>Q…,a<sub>n</sub>)?br />    ③Ls是广义表的名字,n为它?b>长度</b>?br />    ④若a<sub>i</sub>是广义表Q则U它为Ls?b>子表</b>?br />  <font color="#ff0000">注意Q?/font><br />     ①广义表通常用圆括号括v来,用逗号分隔其中的元素?br />     ②ؓ了区分原子和q义表,书写时用大写字母表示<b>q义?/b>Q用写字母表示<b>原子</b>?br />     ③若q义表Ls非空(n?)Q则a<sub>l</sub>是LS的表_其余元素l成的表(a<sub>1</sub>Qa<sub>2</sub>Q…,a<sub>n</sub>)UCؓLs的表?br />     ④广义表是递归定义?br /><font color="#ff0000"><br /></font><b>2、广义表表示</b><br /><font color="#0000ff">Q?Q广义表常用表示</font><br />  ?E=()<br />      E是一个空表,光度ؓ0?br />  ?L=(aQb)<br />      L是长度ؓ2的广义表Q它的两个元素都是原子,因此它是一个线性表<br />  ?A=(xQL)=(xQ?aQb))<br />      A是长度ؓ2的广义表Q第一个元素是原子xQ第二个元素是子表L?br />  ?B=(AQy)=((xQ?aQb))Qy)<br />      B是长度ؓ2的广义表Q第一个元素是子表AQ第二个元素是原子y?br />  ?C=(AQB)=((xQ?aQb))Q?(xQ?aQb))Qy))<br />      C的长度ؓ2Q两个元素都是子表?br />  ?D=(aQD)=(aQ?aQ?aQ??)))<br />      D的长度ؓ2Q第一个元素是原子Q第二个元素是D自nQ展开后它是一个无限的q义表?br /><br /><b>Q?Q广义表的深?/b><br />  一个表?深度"是指表展开后所含括L(fng)层数?br />  【例】表L、A、B、C的深度ؓ分别????Q表D的深度ؓ∞?br /><br /><font color="#0000ff">Q?Q带名字的广义表表示</font><br />     如果规定M表都是有名字的,Z既表明每个表的名字,又说明它的组成,则可以在每个表的前面冠以该表的名字,于是上例中的各表又可以写成:<br />①E()<br />②L(aQb)<br />③A(xQL(aQb))<br />④B(A(xQL(aQb))Qy)<br />⑤C(A(xQl(aQb))QB(A(xQL(aQb))Qy))<br />⑥D(aQD(aQD(?))<br /><br /><font color="#0000ff">Q?Q广义表的图形表C?/font><br /><b>QaQ广义表的图形表C:</b><br />     ①图中的分支l点对应q义?br />     ②非分支l点一般是原子<br />     ③但I对应的也是非分支l点?br />  <br /><b>QbQ广义表的图形Ş状划分:</b><font color="#ff00ff"><br /></font>   ①与树对应的q义表称为纯表,它限制了表中成分的共享和递归<br />   ②允许结点共享的表称再入?br />  【例】上?d),子表A是共享结点,它既是C的一个元素,又是子表B的元素;<br />   ③允?dng)R归的表UCؓ递归?br />  【例】上?e)Q表D是其自n的子表?/p> <p style="LINE-HEIGHT: 150%"> <font color="#0000ff">Q?Q递归表、再、纯表、线性表之间的关pLI</font> <br />      <span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><span style="mso-text-raise: -4.0pt"><img height="21" src="http://student.zjzk.cn/course_ware/data_structure/web/guangyibiao/guangy1.gif" width="237" v:shapes="_x0000_i1025" /></span></span><br />     q义表不仅是U性表的推q,也是树的推广?br /><font color="#ff0000"><br /></font><b>3、广义表q算</b><br />     ׃q义表是对线性表和树的推q,q且h׃n和递归Ҏ(gu)的q义表可以和有向?见第7?建立对应Q因此广义表的大部分q算与这些数据结构上的运类伹{?br />     在此Q只讨论q义表的两个Ҏ(gu)的基本运:取表头head(Ls)和取表尾tail(Ls)?br />     Ҏ(gu)表头、表定义可知QQ何一个非I广义表的表头是表中W一个元素,它可以是原子Q也可以是子表,而其表尾必定是子表?br />  【例?br />      head(L)=aQ?tail(L)=(b)<br />      head(B)=AQ?tail(B)=(y)<br />  ׃tail(L)是非IQ可l箋分解得到Q?br />      head(tail(L))=bQ?tail(tail(L))=()<br />  寚wIA?y)Q也可l分解?br />  <font color="#ff0000">注意:</font><br />     q义?)?())不同。前者是长度?的空表,对其不能做求表头和表q算Q而后者是长度为l的非I(只不q该表中惟一的一个元素是I)Q对其可q行分解Q得到的表头和表֝是空?)?br /></p> <img src ="http://www.tkk7.com/strive/aggbug/85181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/strive/" target="_blank">一手的窝H?/a> 2006-12-03 14:11 <a href="http://www.tkk7.com/strive/articles/85181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Name ?id 的区?/title><link>http://www.tkk7.com/strive/articles/85087.html</link><dc:creator>一手的窝H?/dc:creator><author>一手的窝H?/author><pubDate>Sat, 02 Dec 2006 13:04:00 GMT</pubDate><guid>http://www.tkk7.com/strive/articles/85087.html</guid><wfw:comment>http://www.tkk7.com/strive/comments/85087.html</wfw:comment><comments>http://www.tkk7.com/strive/articles/85087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/strive/comments/commentRss/85087.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/strive/services/trackbacks/85087.html</trackback:ping><description><![CDATA[name原来是ؓ了标识之用,但是现在Ҏ(gu)规范Q都用id来标识元素。但是name在以下用途是不能替代的:   <br />  1.   表单QformQ的控g名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控Ӟ比如checkbox和radioQ而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用idQ服务器是无法得到数据的。 ?<br />  2.   frame和window的名字,用于在其他frame或window指定target。 ?<br />    <br />  以下两者可以通用Q但是强烈徏议用id不要用nameQ ?<br />  锚点Q通常以前写作<a   name="myname">Q现在可以用M的元素id来指定:<div   id="myid">。 ?<br />    <br />  以下只能用idQ ?<br />  1.   label与form控g的关联,   <br />  <label   for="MyInput">My   Input</label>   <br />  <input   id="MyInput"   type="text">   <br />  for属性指定与label兌的元素的idQ不可用name替代。 ?<br />  2.   CSS的元素选择机制Q以#MyId的方式指定应用样式的元素Q不能用name替代。 ?<br />  3.   脚本中获得对象:   <br />  IE支持在脚本中直接以idQ而不是nameQ引用该id标识的对象。例如上面的inputQ要在脚本中获得输入的内容,可以直接以MyInput.value来获得。 ?<br />  如果用DOM的话Q则用document.getElementById("MyInput").valueQ如果要用name的话Q通常先得到包含控件的formQ例如document.forms[0]Q然后从form再引用nameQ注意这样得到的是经q计后发送给服务器的倹{ ?<br />    <br />  name与id的还有区别是Qid要符合标识的要求Q比如大写敏感Q最好不要包含下划线Q因Z兼容CSSQ。而name基本上没有什么要求,甚至可以用数字?br /><img src ="http://www.tkk7.com/strive/aggbug/85087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/strive/" target="_blank">一手的窝H?/a> 2006-12-02 21:04 <a href="http://www.tkk7.com/strive/articles/85087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows下配|邮仉知 http://www.tkk7.com/strive/articles/85083.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:35:00 GMThttp://www.tkk7.com/strive/articles/85083.htmlhttp://www.tkk7.com/strive/comments/85083.htmlhttp://www.tkk7.com/strive/articles/85083.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/85083.htmlhttp://www.tkk7.com/strive/services/trackbacks/85083.html在一个多人协作的环境中,每个人提交代码后Q应该能通知其他个变化,邮g是一个最常见的方法?/p>

׃windows下不像linux一样都随机配备了sendmail{发送邮件的工具Q所以我们需要在windows上选择一Usmtp服务器,q里我用了JamesQ一个Java的开源的开源项目,实现了完整的邮gpȝ?/p>

 本教E是 Windows下Subversion配置理员指?/font>pd教程的一部分Q各个教E采用相同的目录l构和\径,有助于大安诅R?/p>

版本库根目录: d:\svnroot Q其中有project1和project2两个版本库?br />Subversion安装目录: d:\subversion

 

1Q下载安?/h3>

a. 下蝲安装JDK

因ؓJames是JavaE序Q首先你的系l必LJavaq行环境Q我们可以从Sun的官方网站下载,地址?a >http://java.sun.com/javase/downloads/index.jsp。下载直接按照默认安装即可,我选择安装的位|是D:\jdk1.5.0_09Q教E后面将会用这个\径?/p>

b. 下蝲安装James

James的官方网站是http://james.apache.org/Q我们可以在http://java.sun.com/javase/downloads/index.jsp下蝲James的服务器版本Q目前的最新版本是http://apache.justdn.org/james/server/binaries/james-2.3.0.zip?/p>

下蝲后直接解压羃?yu)p了,然后打开james-2.3.0\bin\run.batQ在@echo off后面增加下面的代码:
    set JAVA_HOME=D:\jdk1.5.0_09
然后直接q行一下run.batQ就会提C启动了邮g服务器,其中我们使用的就是smtp服务Q这说明James安装成功?/p>

c. 下蝲安装perl

我们q个教程会借用subversion官方|站提供的发送邮件脚本,是用perl~写Q所以我们需要下载perl的运行环境?a >http://www.activestate.com/store/productdetail.aspx?prdGuid=81fbce82-6bd5-49bc-a915-08d58c2648ca下的http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.819-MSWin32-x86-267479.msi。perl的安装位|与后面的教E无养I可以随意安装?/p>

d. 下蝲commit-email.pl.in

官方|站?a >http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/下提供了一些有用的钩子脚本下蝲Q我们下?a >http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.pl.in?/p>


2Q配|验证James

在上一节q行了run.bat后,可以看到如下的提C:

Using PHOENIX_HOME:   D:\tools\james-2.3.0
Using PHOENIX_TMPDIR: D:\tools\james-2.3.0\temp
Using JAVA_HOME:      D:\jdk1.5.0_09
Phoenix 4.2
James Mail Server 2.3.0
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled

它告诉我们可以用启动正常(不要关闭H口Q,q且可以使用telnetq行理Qؓ此,我们在一个新命o行窗口中q行Q?/p>

telnet 127.0.0.14555

注意Q这?27.0.0.1代表了我的本机地址Q如果是在局域网中,可能q里是运行James服务器的ip地址?/p>

然后出现输入用户名和密码的提C,用户名和密码都输入root卛_Q提C登陆成功后Q直接输入下面的命oQ就可以d一个帐P

adduser rocksun rocksun

完成q个操作后,我们可以用我们的邮g客户端(outlook, foxmailQ验证我们的James服务器,我想配置都不是问题,smtp和pop3服务器都输入?27.0.0.1”或q行James服务器主机的IP卛_Q用户名和密码都是rocksunQ设|smtp发送无需认证?/p>

然后可以发送一个测试邮ӞҎ(gu)上面d的用户信息,我们的邮件的目的地址? rocksun@127.0.0.1

Q发送后你在选择攉Ӟ应该能得到自己发送的邮gQ然后我们可以l进行了?h3>3Q编写钩?/h3>

剩下的工作就很简单了Q将commit-email.pl.in重命名ؓcommit-email.plQ存攑֜D:\svnroot\下,然后扑ֈ下面q一行:

my $svnlook = "@SVN_BINDIR@/svnlook";

修改为:

my $svnlook = "D:/Subversion/bin/svnlook.exe";

然后来到D:\svnroot\project1\hooks下,创徏一个post-commit.bat文gQ内容如下:

set REPOS=%1
set REV=%2
D:\svnroot\commit-email.pl "%REPOS%" "%REV%" rocksun@127.0.0.1--from daijun@gmail.com

好了Q在project1的工作拷贝里提交吧,然后看看你刚才配|的邮g客户端,有没有受到这ơ变更的邮g?/p>

 



]]>
Subversion的权限控?http://www.tkk7.com/strive/articles/85082.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:34:00 GMThttp://www.tkk7.com/strive/articles/85082.htmlhttp://www.tkk7.com/strive/comments/85082.htmlhttp://www.tkk7.com/strive/articles/85082.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/85082.htmlhttp://www.tkk7.com/strive/services/trackbacks/85082.html在阅L文之前,L(fng)定你已经知道了Subversion基本的服务器理Q知道了svnserve或Apache的配|,清楚如何讄用户和密码。关于svnserve的配|可以看我们的?a class="mostread" >Subversion快速入门教E?/a>》和?a class="mostread" >用Apache 和Subversion 搭徏安全的版本控制环?/a>》,对于一些细节情参?a >《用Subversionq行版本控制》?/a>

作ؓ一个配|管理员Q需要管理用L(fng)权限Q本文主要介l了使用Subversion的授权文件“authz-db”,同时Z叙述的清晎ͼ我首先澄清一些概c?/p>

1Q认证(AuthenticationQ和授权QAuthorizationQ?/h3>

q两个术语经怸起出现。其中认证的意思就是鉴别用L(fng)w䆾Q最常见的方式就是用用户名和密码,授权?yu)是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文Ӟ实现了以路径为基的授权,也就是判断用h否有操作对应路径的权限,在Subversion 1.3之后Qsvnserve和Apache一样都可以使用“authz-db”文件?/p>


2. svnserve下的配置文g

因ؓ本文是以svnserveZ的,所以先介绍一下版本库目录的结构:

D:\SVNROOT\PROJECT1
├─conf
├─dav
├─db
│?├─revprops
│?├─revs
│?└─transactions
├─hooks
└─locks

其中conf下面有三个文Ӟ

    authz
    passwd
    svnserve.conf

其中的“svnserve.conf”是q个版本库的配置文gQ当使用svnserveӞq个配置文g军_了用什么认证和授权文gQ?/p>

    password-db = passwd
    authz-db = authz

上面的配|说明用“svnserve.conf”同目录的passwd和authzQ其中的password-db指定了用户密码文Ӟauthz-db是我们的授权文gQ也是我们本文主要介绍的文件?/p>

注意Q用Apache作ؓ服务器时Q根本就不会参考“svnserve.conf”文件的内容Q而是会参考Apache的配|?/font>


3Q基于svnserve的版本库文g布局

使用svnserveӞZ理的方便,应该使用相同的认证和授权文gQ所以应该让所有版本库的配|文件svnserve.conf指向同一个password-db和authz-db文g。下面是一个多版本库的目录Q?br />D:\SVNROOT
├─project1
│?├─conf
│?├─dav
│?├─db
│?│?├─revprops
│?│?├─revs
│?│?└─transactions
│?├─hooks
│?└─locks
└─project2
    ├─conf
    ├─dav
    ├─db
    │?├─revprops
    │?├─revs
    │?└─transactions
    ├─hooks
    └─locks
   
D:\SVNROOT下有两个目录project1和project2Q都已经创徏了版本库Q所以我们修Ҏ(gu)个conf目录下的svnserve.confQ之指向同一个password-db和authz-db文g?/p>

password-db = ..\..\passwd
authz-db = ..\..\authz

q样QD:\SVNROOT\passwd和D:\SVNROOT\authz控制了所有版本库的svnserve讉K。另外在后面的操作中要关闭匿名访问,应该L“anon-access = none”前的?”号Q保证只有认证用户可以访问?/p>

注意Q还有一炚w要注意,那就是svnserve的“realm”的|在上面的讄下,应该保证所有的版本库用相同的realm|q样Q对版本库的密码~存可以在多个版本库之间׃nQ更多细节见客户端凭证缓?/font>?/font>

4Q测试用户和l说?/h3>

版本库禁止Q何匿名用L(fng)讉KQ只对认证用h效?/p>

root:配置理理员,对版本库有完全的理权限?/p>

p1_admin1:project1的管理员Q对project1有完全权限?br />p1_d1:project1的开发者,对project1的trunk有完全的权限Q但是对其中?trunk/admin目录没有M权限?br />p1_t1:project1的测试者,对project1的trunk有完全的L限,但是对其中的/trunk/admin目录没有M权限?/p>

p2_admin1:project2的管理员Q对project2有完全权限?br />p2_d1:project2的开发者,对project2的trunk有完全的权限Q但是对其中?trunk/admin目录没有M权限?br />p2_t1:project2的测试者,对project2的trunk有完全的L限,但是对其中的/trunk/admin目录没有M权限?/p>


对应的组及组的用P
p1_group_a:p1_admin1
p1_group_d:p1_d1
p1_group_t:p1_t1
p2_group_a:p2_admin1
p2_group_d:p2_d1
p2_group_t:p2_t1


5Q修改D:\SVNROOT\passwd文g

前面已经说过了,用户和密码文件应该是在D:\SVNROOT\passwdQ所以我们ؓ每一位用戯|权限,文g内容如下Q?/p>

						[users]
p1_admin1 = p1_admin1
p1_d1 = p1_d1
p1_t1 = p1_t1
         
p2_admin1 = p2_admin1
p2_d1 = p2_d1
p2_t1 = p2_t1

Z便于验证Q所有密码和用户名一_如果你用的是其他认证方式,q一步可能不同,但是用户名应该都是一L(fng)?/p>

6Q配|授权,修改D:\SVNROOT\authz

[groups]
# 定义l信?/p>

p1_group_a = p1_admin1
p1_group_d = p1_d1
p1_group_t = p1_t1

p2_group_a = p2_admin1
p2_group_d = p2_d1
p2_group_t = p2_t1


[/]
# 指定所有的版本库默认只读,root可读?br />* = r
root = rw


[project1:/]
# 指定对版本库project1根目录的权限
@p1_group_a = rw
@p1_group_d = rw
@p1_group_t = r

[project1:/trunk/admin]
# 指定对版本库project1?trunk/admin根目录的权限Q?br /># p1_group_adQp1_group_d和p1_group_t没有M权限?br />@p1_group_a = rw
@p1_group_d =
@p1_group_t =

[project2:/]
# 指定对版本库project2根目录的权限
@p2_group_a = rw
@p2_group_d = rw
@p2_group_t = r

[project2:/trunk/admin]
# 指定对版本库project1?trunk/admin根目录的权限
@p2_group_a = rw
@p2_group_d =
@p2_group_t =


l过以上讄以后Q你会发C些有的事情。当使用用户“p1_d1”,出project1的trunkӞ目录是空的,好像admin目录Ҏ(gu)不存在一P当用p1_d1用户览版本库时Q能够看到admin目录Q但是其中的内容却无法看到?/p>

关于中文目录Q也是没有问题的Q只是注意要把authz文g转化为UTF-8格式Q在我的WINXP的UltraEdit里显C的文g格式为U8-DOSQ具体的做法是用UltraEdit打开authz文gQ然后选择“文?>转换->ASCII转UTF-8”,然后保存?/p>

再复杂的情况也不q如此,在实际的工作中要首先规划好权限,只赋l用h的权限Q保证以最的配置实现最复杂的权限控制?/p>

]]>Subversion安装成service http://www.tkk7.com/strive/articles/85079.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:33:00 GMThttp://www.tkk7.com/strive/articles/85079.htmlhttp://www.tkk7.com/strive/comments/85079.htmlhttp://www.tkk7.com/strive/articles/85079.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/85079.htmlhttp://www.tkk7.com/strive/services/trackbacks/85079.html以前的svnserve要想成ؓwindows服务Q必M赖于svnservice或其他工兗从Subversion1.4开始,Subversion本n集成Windows服务的工兗?br />

1Q安装svnservice

在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 ServerQ本w包含了一个安装服务的工具Q叫?Service Control"Q也是sc.exe?/p>

例如我的Subversion安装?D:\Subversion"Q版本库?D:\svnroot"Q而我希望对应的Subversion服务名ؓsvnserviceQ安装这个svn服务的命令就可以q样写:

      sc create svnservice
      binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
     
h意,因ؓ便于察看Q上面的命o分ؓ多行Q但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项Q也是守护q程模式Q在q里不能使用Q会D服务无法启动。同P"-i"?-t"选项也不能用?/p>

在命令行H口执行完这个命令之后,服务q没有启动,你可以l运?net start svnservice"启动q个服务Q然后?net stop svnservice"停止服务?/p>

另外q有两点需要小心处理。首先,如果路径中包括空|一定要用“\”处理?”号Q例如上面的例子中如果svnserve.exe在“c:\program files\subversion\”中Q则命o应该写ؓ“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容)Q整个命令如下,U色部分是改变部分:

      sc create svnservice
      binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
     
其次Qsc寚w项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是?”前不能有空各,而后面必LI格?/p>


2Q删除服?/h3>

如果服务安装的有问题Q你可能需要删除服务。要删除前面d的服务,只需要运?sc delete svnservice"Q?svnservice"是我们创徏服务时用的名字?/p>


3Q配|服务是自动启动

默认情况下安装的服务不会随Windows的启动而启动,Z使svn服务能够随Windows启动而启动,需要修改一?sc create"命oQ首先要删除Q,增加"start= auto"选项Q?/p>

      sc create svnservice
      binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
      start= auto
     
当然你也可以使用囑Ş化的工具修改服务的属性,你可以在“开?>q行...”中执行"services.msc"Q然后在界面中修攏V?/p>


链接Q?/p>

关于sc安装svn服务的详l信息,可以看看q篇文章Q?br />http://svn.collab.net/repos/svn/tags/1.4.0/notes/windows-service.txt



]]>
Subversion备䆾 http://www.tkk7.com/strive/articles/85081.html一手的窝H?/dc:creator>一手的窝H?/author>Sat, 02 Dec 2006 12:33:00 GMThttp://www.tkk7.com/strive/articles/85081.htmlhttp://www.tkk7.com/strive/comments/85081.htmlhttp://www.tkk7.com/strive/articles/85081.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/85081.htmlhttp://www.tkk7.com/strive/services/trackbacks/85081.html版本控制最关键的一件事是保证数据的安全性,不能因ؓ盘损坏Q程序故障造成版本库无可挽回的错误Qؓ此必d定较完备的备份策略。在Subversion中,我们有三U备份方式:完全备䆾Q增量备份和同步版本库?br />

1, 完全备䆾

最常见和简单的备䆾是直接使用拯命oQ将版本库目录拷贝到备䆾目录上,可以了。但是这样不是很安全的方式,因ؓ如果在拷贝时版本库发生变化,会造成备䆾的结果不够准,失去备䆾的作用,为此Subversion提供了“svnadmin hotcopy”命令,可以防止q种问题?/p>

q记得我们的版本库目录吗Q?/p>

D:\SVNROOT
├─project1
│?├─conf
│?├─dav
│?├─db
│?│?├─revprops
│?│?├─revs
│?│?└─transactions
│?├─hooks
│?└─locks
└─project2
    ├─conf
    ├─dav
    ├─db
    │?├─revprops
    │?├─revs
    │?└─transactions
    ├─hooks
    └─locks
   

如果要把project1备䆾到d:\svnrootbak目录下,只需要运行:

svnadmin hotcopy d:\svnroot\project1 d:\svnrootbak\project1

但是我们作ؓ配置理员,必须惛_法优化这个过E,如果我们q个目录下有许多版本库,需要ؓ每个版本库写q样一条语句备份,为此我写了下面的脚本Q实现备份一个目录下的所有版本库。我们在D:\SVNROOT下创Z两个文gQsimpleBackup.batQ?/p>

@echo 正在备䆾版本?1......
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本?1成功备䆾C%2Q?/p>

q个文g仅仅是对“svnadmin hotcopy”的包装Q然后是backup.batQ?/p>

echo off

rem Subversion的安装目?br />set SVN_HOME="D:\Subversion"

rem 所有版本库的父目录
set SVN_ROOT=D:\svnroot

rem 备䆾的目?br />set BACKUP_SVN_ROOT=D:\svnrootbak

set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立备䆾目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log

mkdir %BACKUP_DIRECTORY%

rem 验证目录是否为版本库Q如果是则取出名U备?br />for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI
goto end

:checkBack
echo 备䆾目录%BACKUP_DIRECTORY%已经存在Q请清空?br />goto end

:end

你在使用的时候,只需要修改backup.bat开头的三个路径Q将两个脚本拯到“SVN_ROOT”下可以了。根据以上的配置Q你只需要运行backup.batQ就可以把“SVN_ROOT”下的版本库都备份到“BACKUP_SVN_ROOT”里Qƈ且存攑֜备䆾所在日的目录里Q例如“D:\svnrootbak\2006-10-22”?/p>

虽然q部分工作很单,可是必须有h定时地去执行q个操作Q例如每周一凌晨Q,Z避免发生遗忘的情况,我们可以这个操作加入到pȝ的atd当中去,例如q是上面的环境,Z安装atdQ我们运行:

at 1:00 /every:M D:\svnroot\backup.bat

q样在每周一凌晨1:00都会执行q个备䆾q程。当然备份在本机也是不安全的Q你也许需要上传到别的机器Q这个就要靠你自己去实现了?/p>


2, 增量备䆾

管完全备䆾非常单,但是也是有代L(fng)Q当版本库非常巨大时Q经常进行完全备份是不现实的Q也q不必要Q但是一旦版本库在备份之间发生问题,该如何呢Q这里我们就用到了增量备份?/p>

增量备䆾通常要与完全备䆾l合使用Q就像oracle数据库的归档日志Q记录着每次Subversion提交的变化,然后在需要恢复时能够回到最新的可用状态。在我们q个例子中我们用的是,svnadmin dump命oq行增量的备份,使用Ҏ(gu)是:

svnadmin dump project1 --revision 15 --incremental > dumpfile2

上面的命令实C对修订版?5q行增量的备份,其中的输出文件dumpfile2只保存了修订版本15更改的内宏V?/p>

Z记录每次提交的结果,我们需要用一Subversion的特?-钩子QhookQ?/font>Q看看我们的project1目录Q?/p>

├─project1
│?├─conf
│?├─dav
│?├─db
│?│?├─revprops
│?│?├─revs
│?│?└─transactions
│?├─hooks
│?└─locks

其中的hooks目录里存攄是钩子脚本Q我们在此处只用post-commit钩子Q这个钩子会在每ơ提交之后执行,Z实现我们的备份功能,我们在hooks下徏立一个文件post-commit.batQ内容如下:

echo off
set SVN_HOME="C:\Program Files\Subversion"
set SVN_ROOT=D:\svnroot
set UNIX_SVN_ROOT=D:/svnroot
set DELTA_BACKUP_SVN_ROOT=D:\svnrootbak\delta
set LOG_FILE=%1\backup.log
echo backup revision %2 >> %LOG_FILE%
for /r %SVN_ROOT% %%I in (.) do if D:/svnroot/%%~nI == %1 %SVN_ROOT%\%%~nI\hooks\deltaBackup.bat %%~nI %2
goto end
:end

通过q个脚本Q可以实现D:\svnroot下的版本库提交时自动增量备䆾到D:\svnrootbak\deltaQ确定这个目录存在)Q其中用的deltaBackup.bat其实可以攑֜M地方Q只是对脚本的svnadmin dump的包装,内容如下Q?/p>

@echo 正在备䆾版本?2......
%SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%1 --incremental --revision %2 >> %DELTA_BACKUP_SVN_ROOT%\%1.dump
@echo 版本?2成功备䆾C%3Q?/p>

以上两个脚本可以直接拯到project2的hooks目录下,不需要修改就可以实现project2的自动备份?/p>

以上的操作已lOK了,现在需要做的是完全备份和增量备䆾l合hQ也是在完全备份后清理增量备䆾的结果,使之只保存完全备份后的结果?/p>

当果真出现版本库的故障,p求我们实现版本库的恢复操作了Q这是用要用svnadmin load命oQ同时也需要上ơ的完全备䆾例如要把上次完全备䆾backuprepoQ和之后的增量备份dumpfileQ?/p>

svnadmin load backuprepo < dumpfile

最后的l果Q可以下?a >svnroot.rarQ将之解压羃到d:\下,然后修改几个bat文g的SVN_HOME可以用了?/p>

3, 版本库同?/h3>

Subversion 1.4增加了同步机Ӟ可以实现一个版本库同另一个版本库的同步(但好像只是单向的Q,我们可以用来实现版本库的备䆾或镜像?/p>

3.1. 对目标库初始?/h5>
svnsync init svn://localhost/project2 svn://localhost/project1 
 

其中project2是目标的版本库,而project1是源版本库。其中的目标版本库必MؓI,而且必须允许修订版本属性的修改Q也是在目标的版本库的hooks目录里添加一个文件pre-revprop-change.batQ内容ؓI即可?/font>

3.2. 同步project2到project1
svnsync sync svn://localhost/project2 
 

q时候你update一下你的project2的一个工作拷贝,׃发现有了project1的所有内宏V如果project1又有提交Q这时候project2的版本库无法看到最新的变化Q还需要再q行一遍sync操作Q这h能将最新的变化同步。需要注意的是,目标版本库只能做成只ȝQ如果目标版本库发生了变_则无法l同步了?/p>

3.3. 同步历史属性的修改

因ؓ同步不会更新对历史属性的修改Q所以svnsyncq有子命令copy-revpropsQ可以同步某个版本的属性?/p>

3.4. 钩子自动同步

希望在每ơ提交时同步Q则需要在源版本库增加post-commit脚本Q内容如下:

						
								echo
						 off
set SVN_HOME="D:\Subversion"
%SVN_HOME%\bin\svnsync sync  --non-interactive svn://localhost/project2 
 

把以上内容存放ؓpost-commit.batQ然后放到版本库project1下的hooks目录下,q样project1每次提交Q都会引起project2的同步?br />



]]>有必要准备一?Eclipse 快捷键大全呵http://www.tkk7.com/strive/articles/83829.html一手的窝H?/dc:creator>一手的窝H?/author>Mon, 27 Nov 2006 08:54:00 GMThttp://www.tkk7.com/strive/articles/83829.htmlhttp://www.tkk7.com/strive/comments/83829.htmlhttp://www.tkk7.com/strive/articles/83829.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/83829.htmlhttp://www.tkk7.com/strive/services/trackbacks/83829.html俗话?工欲善其事,必先利其?如果大家对开发程序稍微有点发烧的?都知道快捷键对编E中有多大的作用?当然当年Dos用natepad开发程序的除外?,我就是这样一个发烧友?对各UIDE中的快捷功能颇感兴趣,其是对快捷键这一部分乐此不彼?再加上Eclipse又是本h的最?因此Eclipse中的快捷键就是本人重视的重点?当然,Eclipse的快捷键暂时不是最强的,本h见过快捷键最优秀的IDEq是当属IDEA?里面的快捷键为程序员考虑的面面俱?几乎C只要你想不到,没有按不到的地步??好像l它做广告了).不过说实话很多功能都是Eclipse借鉴Ideaq来的了.但至今我发现在快捷键q方面和别的开发方面Eclipseq是E逊一{了(q仅仅是从Java IDE的角?,废话说,直接切入正题了.

  今天写的q些快捷键都是本人在实际q用中ȝ出来?自己感觉很实?都是以自q喜好E度来排列了,对于的Eclipse如果没有特别说明都用有Eclipse3.0.X以上?个别如果出现不符合的话要么是版本的问?要么是和别的pȝU的快捷键有冲突,譬如输入法的冲突?q时需要修改输入法?下面的快捷键都是EclipseҎ(gu)?其是针对Java Editer?但有些对Eclipse里面的Text也是实用的了,下面是q些快捷键了(?q些快捷键随着自己学习不断的深入和Eclipse版本不断的提高会慢慢的完善的,有些太普通的没有列出来,如Ctrl+A一c?:

Ctrl+1 快速修?最l典的快捷键,׃用多说了)

Ctrl+D: 删除当前行    ?

Ctrl+Alt+?复制当前行到下一?复制增加)

Ctrl+Alt+?复制当前行到上一?复制增加)

Alt+↓?当前行和下面一行交互位|?特别实用,可以省去先剪?再粘贴了)

Alt+↑ ?当前行和上面一行交互位|?同上)

Alt+←?前一个编辑的面

Alt+→?下一个编辑的面(当然是针对上面那条来说了)

Alt+Enter 昄当前选择资源(工程,or 文g or文g)的属?/p>

Shift+Enter 在当前行的下一行插入空?q时鼠标可以在当前行的Q一位置,不一定是最?

Shift+Ctrl+Enter 在当前行插入I(原理同上?

Ctrl+Q   定位到最后编辑的地方

Ctrl+L  定位在某行?(对于E序过100的h有音?

Ctrl+M 最大化当前的Edit或View (再按则反?

Ctrl+/   注释当前?再按则取消注?/p>

Ctrl+O   快速显C?OutLine

Ctrl+T   快速显C当前类的承结?/p>

Ctrl+W  关闭当前Editer

Ctrl+K   参照选中的Word快速定位到下一?/p>

Ctrl+E 快速显C当前Editer的下拉列?如果当前面没有昄的用黑体表示)

Ctrl+/(键? 折叠当前cM的所有代?/p>

Ctrl+×(键? 展开当前cM的所有代?/p>

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代?

Ctrl+Shift+E 昄理当前打开的所有的View的管理器(可以选择关闭,Ȁzȝ操作)

Ctrl+J  正向增量查找(按下Ctrl+J?你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显C没有找C,查一个单词时,特别实用,q个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相?只不q是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X   把当前选中的文本全部变呛_?/p>

Ctrl+Shift+Y   把当前选中的文本全部变为小?/p>

Ctrl+Shift+F  格式化当前代?/p>

Ctrl+Shift+P 定位到对于的匚wW?譬如{}) (从前面定位后面时,光标要在匚wW里?后面到前?则反?

下面的快捷键是重构里面常用的,本hp己喜Ƣ且常用的整理一??一般重构的快捷键都是Alt+Shift开头的?

Alt+Shift+R 重命?(是我自己最q的一个了,其是变量和cȝRename,比手工方法能节省很多力_?

Alt+Shift+M 抽取Ҏ(gu) (q是重构里面最常用的方法之一?其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数l构(比较实用,有N个函数调用了q个Ҏ(gu),修改一ơ搞?

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变?其是多处调用的时?

Alt+Shift+F 把Class中的local变量变ؓfield变量 (比较实用的功?

Alt+Shift+I 合ƈ变量(可能q样说有点不妥Inline)

Alt+Shift+V Ud函数和变?不怎么常用)

Alt+Shift+Z 重构的后(zhn)药(Undo)




另一?br />

~辑
作用域 功q快捷键 
全局 查找q替换 Ctrl+F 
文本~辑器 查找上一个 Ctrl+Shift+K 
文本~辑器 查找下一个 Ctrl+K 
全局 撤销 Ctrl+Z 
全局 复制 Ctrl+C 
全局 恢复上一个选择 Alt+Shift+↓?br />全局 剪切 Ctrl+X 
全局 快速修正 Ctrl1+1 
全局 内容辅助 Alt+/ 
全局 全部选中 Ctrl+A 
全局 删除 Delete 
全局 上下文信息 Alt+Q?br />Alt+Shift+?
Ctrl+Shift+Space 
Java~辑器 显C工hC描qWF2 
Java~辑器 选择装元素 Alt+Shift+↑?br />Java~辑器 选择上一个元素 Alt+Shift+←?br />Java~辑器 选择下一个元素 Alt+Shift+→?br />文本~辑器 增量查找 Ctrl+J 
文本~辑器 增量逆向查找 Ctrl+Shift+J 
全局 _脓(chung) Ctrl+V 
全局 重做 Ctrl+Y 


查看
作用域 功q快捷键 
全局 攑֤ Ctrl+= 
全局 ~小 Ctrl+- 


H口
作用域 功q快捷键 
全局 Ȁzȝ辑器 F12 
全局 切换~辑器 Ctrl+Shift+W 
全局 上一个编辑器 Ctrl+Shift+F6 
全局 上一个视图 Ctrl+Shift+F7 
全局 上一个透视图 Ctrl+Shift+F8 
全局 下一个编辑器 Ctrl+F6 
全局 下一个视图 Ctrl+F7 
全局 下一个透视图 Ctrl+F8 
文本~辑器 显C标Z下文菜单 Ctrl+W 
全局 昄视图菜单 Ctrl+F10 
全局 昄pȝ菜单 Alt+- 


D
作用域 功q快捷键 
Java~辑器 打开l构 Ctrl+F3 
全局 打开cd Ctrl+Shift+T 
全局 打开cd层次l构 F4 
全局 打开声明 F3 
全局 打开外部javadoc Shift+F2 
全局 打开资源 Ctrl+Shift+R 
全局 后退历史记录 Alt+←?br />全局 前进历史记录 Alt+→?br />全局 上一个 Ctrl+, 
全局 下一个 Ctrl+. 
Java~辑器 显C大U Ctrl+O 
全局 在层ơ结构中打开cd Ctrl+Shift+H 
全局 转至匚w的括号 Ctrl+Shift+P 
全局 转至上一个编辑位| Ctrl+Q 
Java~辑器 {至上一个成员 Ctrl+Shift+↑?br />Java~辑器 {至下一个成员 Ctrl+Shift+↓?br />文本~辑器 {臌 Ctrl+L 


搜烦
作用域 功q快捷键 
全局 出现在文件中 Ctrl+Shift+U 
全局 打开搜烦对话框 Ctrl+H 
全局 工作Z的声明 Ctrl+G 
全局 工作Z的引用 Ctrl+Shift+G 


文本~辑
作用域 功q快捷键 
文本~辑器 改写切换 Insert 
文本~辑器 上滚行 Ctrl+↑?br />文本~辑器 下滚行 Ctrl+↓?br />

文g
作用域 功q快捷键 
全局 保存 Ctrl+X 
Ctrl+S 
全局 打印 Ctrl+P 
全局 关闭 Ctrl+F4 
全局 全部保存 Ctrl+Shift+S 
全局 全部关闭 Ctrl+Shift+F4 
全局 属性 Alt+Enter 
全局 新徏 Ctrl+N 



作用域 功q快捷键 
全局 全部构徏 Ctrl+B 


源代?br />作用域 功q快捷键 
Java~辑器 格式化 Ctrl+Shift+F 
Java~辑器 取消注释 Ctrl+\ 
Java~辑器 注释 Ctrl+/ 
Java~辑器 添加导入 Ctrl+Shift+M 
Java~辑器 组l导入 Ctrl+Shift+O 
Java~辑器 用try/catch块来包围 未设|,太常用了Q所以在q里列出,自己讄?br />也可以用Ctrl+1自动修正。?br />

q行
作用域 功q快捷键 
全局 单步q回 F7 
全局 单步跌 F6 
全局 单步跛_ F5 
全局 单步跛_选择 Ctrl+F5 
全局 调试上次启动 F11 
全局 l箋 F8 
全局 使用qo器单步执行 Shift+F5 
全局 d/去除断点 Ctrl+Shift+B 
全局 昄 Ctrl+D 
全局 q行上次启动 Ctrl+F11 
全局 q行臌 Ctrl+R 
全局 执行 Ctrl+U 


重构
作用域 功q快捷键 
全局 撤销重构 Alt+Shift+Z 
全局 抽取Ҏ(gu) Alt+Shift+M 
全局 抽取局部变量 Alt+Shift+L 
全局 内联 Alt+Shift+I 
全局 Ud Alt+Shift+V 
全局 重命名 Alt+Shift+R 
全局 重做 Alt+Shift+Y 

热键:TemplateQAlt + /修改处:H口->喜好讑֮->工作?>按键->~辑->内容辅助。个Z惯:Shift+SPACE(I白)。简易说明:~辑E序代码Ӟ打sysout +Template启动键,׃自动出现QSystem.out.println(); 。设定Template的格式:H口->喜好讑֮->Java->~辑?>模板。程序代码自动排版:Ctrl+Shift+F修改处:H口->喜好讑֮->工作?>按键->E序代码->格式。个Z惯:Alt+Z。自动排版设定:H口->喜好讑֮->Java->E序代码格式制作E序。样式页?>插入tab(而非I格?以内~,该选项取消N,下面I格数目?Q这样在自动~排时会以空?作羃排。快速执行程序:Ctrl + F11个h习惯QALT+X修改处:H口->喜好讑֮->工作?>按键->执行->启动前一ơ的启动作业。简易说明:W一ơ执行时Q它会询问?zhn)执行模式Q设|好后,以后只要按这个热键,它就会快速执行?br />..我觉得很手^___^自动汇入所需要的cdQCtrl+Shift+O易说明:假设我们没有ImportMcdӞ当我们在E序里打入:

BufferedReader buf =
new BufferedReader(new InputStreamReader(System.in));

此时Eclipse会警C没有汇入cdQ这时我们只要按下Ctrl+Shift+OQ它?yu)׃自动帮我们Importcd。查看用类别的原始码:Ctrl+鼠标左键点击易说明:可以看到(zhn)所使用cd的原始码。将选取的文字批注v来:Ctrl+/易说明:Debug时很方便。修改处Q窗?>喜好讑֮->工作?>按键->E序代码->Ҏ(gu)视景切换QCtrl+F8个h习惯QAlt+S。修改处Q窗?>喜好讑֮->工作?>按键->H口->下一个视景。简易说明:可以方便我们快速切换编辑、除错等视景。密技:一套Eclipse可同时切换,英文、繁体、简体显C:
1.首先要先安装完中文化包?br />2.在桌面的快捷方式后面加上参数卛_Q英?> -nl "zh_US"J体-> -nl "zh_TW"?> -nl "zh_CN"?br />(其它语系以此cL)像我2.1.2中文化后Q我在我桌面的Eclipse快捷方式加入参数-n1 "zh_US"?br />"C:\Program Files\eclipse\eclipse.exe" -n "zh_US"接口׃变回英文语系噜。利用EclipseQ在Word~辑文书时可不必程序代码重新编排:EclipseE序~辑区的E序代码整个复制下来(Ctrl+C)Q直接脓(chung)(Ctrl+V)?br />Word或WordPad上,(zhn)将会发现在Word里的E序代码格式Q跟Eclipse所讑֮的完全一P包括字型、羃排、关键词颜色。我曾试qJBuilder、GEL、NetBeans...使用复制贴上Ӟ只有~排格式一P字型、颜色等都不会改变。外挂篇Q外挂安装:外挂包下蝲回来后,其解压~后Q?zhn)会发现features?br />pluginsq?个数据夹Q将里面的东襉K复制或移动到Eclipse的features、plugins数据夹内后,重新启动Eclipse卛_。让Eclipse可以像JBuilderX一样用拖拉方式徏构GUI的外挂:
1.Jigloo SWT/Swing GUI Builder Q?a >http://cloudgarden.com/jigloo/index.html下蝲此版本:Jigloo plugin for Eclipse (using Java 1.4 or 1.5)安装后即可由档案->新徏->其它->GUI Form选取要徏构的GUIcd?br />
2.Eclipse Visual Editor ProjectQ?a >http://www.eclipse.org/vep/炚w下方Download PageQ再炚wLatest Release 0.5.0q入下蝲。除了VE-runtime-0.5.0.zip要下载外Q以下这2个也要:
EMF build 1.1.1: (build page) (download zip) 
GEF Build 2.1.2: (build page) (download zip) 

3.0 M8版本Q请下蝲Q?br />EMF build I200403250631
GEF Build I20040330
VE-runtime-1.0M1安装成功后,便可由File->New->Visual Class开始UI设计。安装成功后Q即可由新徏->Java->AWT与Swing里选择所要徏构的GUIcd开始进行设计。VE必须配合着对应版本Q才能正怋用,否则即安装成功Q用上仍会有问题。用Eclipse来开发JSPE序Q外挂名Uͼlomboz(下蝲面)http://forge.objectweb.org/project/showfiles.php?group_id=97请选择适合自己版本的lomboz下蝲Qlomboz.212.p1.zip表示2.1.2版,
lomboz.3m7.zip表示M7版本....以此cL?br />lomboz安装以及讄教学QEclipse开发JSP-教学文g

Java转exe:实现方式QEclipse搭配JSmooth(免费)?br />1.先由Eclipse制作包含Manifest的JAR。制作教?br />2.使用JSmooth做好的JAR包装成EXE?br />JSmooth下蝲面Q?a >http://jsmooth.sourceforge.net/index.php
3.制作完成的exe文gQ可在有装置JRE的Windows上执行?br />
Eclipse-Java~辑器最佌定:~辑器字型设定:工作?>字型->Java~辑器文字字型?br />(讑֮Courier New -regular 10)~辑器相兌定:H口->喜好讑֮->Java->~辑器外观:昄行号、强调对U显C的Ҏ(gu)受强调显C现行行、显C打印边距,其N,Tab宽度?Q打印编距字D设80。程序代码协助:采预讑֍可。语法:可设定关键词、字W串{等的显C颜艌Ӏ附注:采预讑֍可。输入:全部字段都勾选。Q动说明:采预讑֍可。导览:采预讑֍可。自动排版排出来的效果Q最W合Java设计惯例的设定:自动排版讑֮Q窗?>喜好讑֮->Java->E序代码制作格式。换行:全部不勾选。分行:行长度上限设Q?0。样式:只将强制转型后插入空白勾选。内~空格数目:设ؓ4?br />
l常用到的Eclipse快捷?br />存盘 Ctrl+s(一定记?
注释代码 Ctrl+/
取消注释 Ctrl+\(Eclipse3已经都合q到Ctrl+/?
代码辅助 Alt+/
快速修复 Ctrl+1
代码格式化 Ctrl+Shift+f
整理导入 Ctrl+Shift+o
切换H口 Ctrl+f6<可改为ctrl+tab方便>
ctrl+shift+M 导入未引用的?br />ctrl+w 关闭单个H口
F3 跌{到类、变量的声明
F11 q行上次E序
Ctrl + F11 调试上次E序
Alt + 回下一个编辑点
ctrl+shift+T 查找工程中的c?br />



]]>
JavaScript中的正则表达http://www.tkk7.com/strive/articles/83656.html一手的窝H?/dc:creator>一手的窝H?/author>Sun, 26 Nov 2006 12:11:00 GMThttp://www.tkk7.com/strive/articles/83656.htmlhttp://www.tkk7.com/strive/comments/83656.htmlhttp://www.tkk7.com/strive/articles/83656.html#Feedback0http://www.tkk7.com/strive/comments/commentRss/83656.htmlhttp://www.tkk7.com/strive/services/trackbacks/83656.htmlJavaScript中的正则表达?/h1>

正则表达?regular expression)对象包含一个正则表辑ּ模式(pattern)。它h用正则表辑ּ模式d配或代替一个串(string)中特定字W?或字W集?的属?properties)和方?methods)?要ؓ一个单独的正则表达式添加属?可以使用正则表达式构造函?constructor function)Q无Z时被调用的预讄的正则表辑ּ拥有静态的属?the predefined RegExp object has static properties that are set whenever any regular expression is used, 我不知道我翻得对不对Q将原文列出Q请自行译)?

  • 创徏Q?
    一个文本格式或正则表达式构造函?
    文本格式Q?/pattern/flags
    正则表达式构造函敎ͼ new RegExp("pattern"[,"flags"]);
  • 参数说明Q?
    pattern -- 一个正则表辑ּ文本
    flags -- 如果存在Q将是以下|
    g: 全局匚w
    i: 忽略大小?
    gi: 以上l合

[注意] 文本格式的参C用引P而在用构造函数时的参数需要引受如Q?ab+c/i new RegExp("ab+c","i")是实CL(fng)功能。在构造函CQ一些特D字W需要进行{?在特D字W前?\")。如Qre = new RegExp("\\w+")

正则表达式中的特D字W?

字符 含意
\

做ؓ转意Q即通常?\"后面的字W不按原来意义解释,?b/匚w字符"b"Q当b前面加了反斜杆后/\b/Q{意ؓ匚w一个单词的边界?
-?
Ҏ(gu)则表辑ּ功能字符的还原,?*"匚w它前面元字符0ơ或多次Q?a*/匹配a,aa,aaaQ加?\"后,/a\*/只匚w"a*"?

^ 匚w一个输入或一行的开_/^a/匚w"an A"Q而不匚w"An a"
$ 匚w一个输入或一行的l尾Q?a$/匚w"An a"Q而不匚w"an A"
* 匚w前面元字W?ơ或多次Q?ba*/匹配b,ba,baa,baaa
+ 匚w前面元字W?ơ或多次Q?ba*/匹配ba,baa,baaa
? 匚w前面元字W?ơ或1ơ,/ba*/匹配b,ba
(x) 匚wx保存x在名?1...$9的变量中
x|y 匚wx或y
{n} _匚wn?
{n,} 匚wnơ以?
{n,m} 匚wn-m?
[xyz] 字符?character set)Q匹配这个集合中的Q一一个字W?或元字符)
[^xyz] 不匹配这个集合中的Q何一个字W?
[\b] 匚w一个退格符
\b 匚w一个单词的边界
\B 匚w一个单词的非边?/td>
\cX q儿QX是一个控制符Q?\cM/匚wCtrl-M
\d 匚w一个字数字W,/\d/ = /[0-9]/
\D 匚w一个非字数字符Q?\D/ = /[^0-9]/
\n 匚w一个换行符
\r 匚w一个回车符
\s 匚w一个空白字W,包括\n,\r,\f,\t,\v{?
\S 匚w一个非I白字符Q等?[^\n\f\r\t\v]/
\t 匚w一个制表符
\v 匚w一个重直制表符
\w 匚w一个可以组成单词的字符(alphanumericQ这是我的意译,含数?Q包括下划线Q如[\w]匚w"$5.98"中的5Q等于[a-zA-Z0-9]
\W 匚w一个不可以l成单词的字W,如[\W]匚w"$5.98"中的$Q等于[^a-zA-Z0-9]?/td>

说了q么多了Q我们来看一些正则表辑ּ的实际应用的例子Q?

E-mail地址验证:
 function test_email(strEmail) {
  var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
  if(myReg.test(strEmail)) return true;
  return false;
 }
HTML代码的屏?
 function mask_HTMLCode(strInput) {
   var myReg = /<(\w+)>/;
   return strInput.replace(myReg, "&lt;$1&gt;");
 }


 

正则表达式对象的属性及Ҏ(gu)
  预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext, rightContext?1?9。其中input和multiline可以预设|。其他属性的值在执行qexec或testҎ(gu)后被Ҏ(gu)不同条g赋以不同的倹{许多属性同时拥有长和短(perl风格)的两个名字,q且Q这两个名字指向同一个倹{?JavaScript模拟perl的正则表辑ּ)
正则表达式对象的属?

属?/td> 含义
$1...$9 如果??存在Q是匚w到的子串
$_ 参见input
$* 参见multiline
$& 参见lastMatch
$+ 参见lastParen
$` 参见leftContext
$'          参见rightContext
constructor    创徏一个对象的一个特D的函数原型
global       是否在整个串中匹?bool?
ignoreCase     匚w时是否忽略大写(bool?
input        被匹配的?
lastIndex     最后一ơ匹配的索引
lastParen     最后一个括hh的子?
leftContext    最q一ơ匹配以左的子串
multiline     是否q行多行匚w(bool?
prototype     允许附加属性给对象
rightContext    最q一ơ匹配以右的子串
source       正则表达式模?
lastIndex     最后一ơ匹配的索引

正则表达式对象的Ҏ(gu)
Ҏ(gu) 含义
compile      正则表达式比?
exec        执行查找
test        q行匚w
toSource      q回特定对象的定?literal representing)Q其值可用来创徏一个新的对象。重载Object.toSourceҎ(gu)得到的?
toString      q回特定对象的串。重载Object.toStringҎ(gu)得到的?
valueOf      q回特定对象的原始倹{重载Object.valueOfҎ(gu)得到
例子
<script language = "JavaScript">
var myReg = /(w+)s(w+)/;
var str  = "John Smith";
var newstr = str.replace(myReg, "$2, $1");
document.write(newstr);
</script>
输?Smith, John"

]]>
վ֩ģ壺 ĻѲ| þѾƷƵ| ŮƵaŮȫƤ| a뾫Ʒɫҹ| ޹Ʒۺɫ| Ļ޳AƬ| ˬĻ| 츾AV| ŮˬƵѲ| һػ¼Ƶ| ѿƵijAPP| þùѾƷ| ӰҹƵ| ߹ۿձaƵ| ɫĻ߹ۿ| ˳վ߲2019| Ʒһ߹ۿ| þav޾Ʒɫҹ| HƬaaaֱ| ƷһƵ| պһѸ| ߹ۿƵ| ˳վ| 츾ҹƵ| ȫëƬ߲| 2021þþƷѹۿ| ձÿӰѿ| ޾ƷŮþþþ99С˵| ޹˸߹ۿ| ɫ͵ר| ĻӰѹۿ| һ| þþƷav鶹ɫ| ĻAV| ߲˳Ƶվ| һëƬ**Ѳ| Ů18ëƬѹۿ| һAV| һ| ԭƷav| ޳a޳av |