﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Eric Yih's Blog</title><link>http://www.cnblogs.com/EricYih/</link><description>Do what you like, like what you do.</description><language>zh-cn</language><lastBuildDate>Wed, 03 Dec 2008 00:52:22 GMT</lastBuildDate><pubDate>Wed, 03 Dec 2008 00:52:22 GMT</pubDate><ttl>60</ttl><item><title>Regular Expression</title><link>http://www.cnblogs.com/EricYih/archive/2008/11/02/1324586.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Sat, 01 Nov 2008 17:30:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/11/02/1324586.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1324586.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/11/02/1324586.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1324586.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1324586.html</trackback:ping><description><![CDATA[<p><img style="float: right;" src="http://farm4.static.flickr.com/3200/2991731249_daf497f60f.jpg?v=0" alt="Regular Expression" width="100" height="41" />Regular expressions is the term used for a codified method of searching <em>invented</em> or <em>defined</em> by the American mathematician Stephen Kleene. You can think of regular expressions as wildcards on steroids. Such as particular characters, words, or patterns of characters. A very similar regular expression can be used by a programmer, and you don't need to attention whether that code is written in Perl, PHP, Java, .Net language or a multitude&nbsp;of other languages.</p>
<p>For the detailed information from Internet, you can refer to the following links, include chinese and english verison.</p>
<p><strong>English version:</strong></p>
<p>Regular-Expressions.info(<a href="http://www.regular-expressions.info/">http://www.regular-expressions.info/</a>)</p>
<p>Regular Expression--Wikipedia(<a href="http://en.wikipedia.org/wiki/Regular_expression">http://en.wikipedia.org/wiki/Regular_expression</a>)</p>
<p>Regular Syntax Summary(<a href="http://www.greenend.org.uk/rjk/2002/06/regexp.html">http://www.greenend.org.uk/rjk/2002/06/regexp.html</a>)</p>
<p>Introduction to Regular Expressions(<a href="http://msdn.microsoft.com/en-us/library/28hw3sce.aspx">http://msdn.microsoft.com/en-us/library/28hw3sce.aspx</a>)</p>
<p><strong>Chinese version:</strong></p>
<p>正则表达式--Wikipedia(<a href="http://zh.wikipedia.org/w/index.php?title=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;variant=zh-cn">http://zh.wikipedia.org/w/index.php?title=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;variant=zh-cn</a>)</p>
<p>正则表达式参考文档(<a href="http://www.regexlab.com/zh/regref.htm">http://www.regexlab.com/zh/regref.htm</a>)</p>
<p>正则表达式三十分钟入门教程(<a href="http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm">http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm</a>)</p><img src ="http://www.cnblogs.com/EricYih/aggbug/1324586.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43761/" target="_blank">[新闻]谷歌地图中国版开始显示Panoramio地理标记图片</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>High CPU usage in db2fm when run "db2sampl" to create a sample database</title><link>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322558.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Wed, 29 Oct 2008 15:32:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322558.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1322558.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1322558.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1322558.html</trackback:ping><description><![CDATA[<p><span style="font-size: x-small; font-family: Courier New;"><img style="float: right;" src="http://farm4.static.flickr.com/3285/2991770887_bff3aae494.jpg?v=0" alt="IBM DB2" width="200" height="52" />When I want to run "db2sampl" to create a sample database, I found many <span style="color: #ff0000">db2fm</span> processes via "top" command and the CPU usage rate was 100%.<br /></span></p>
<pre><span style="font-size: x-small;">The problem is caused by db2fm consuming a great deal of CPU resource, which leads to <br />
unexpectedly high CPU usage on the system.</span></pre>
<pre><span style="font-size: x-small;">I found out two approaches to solve it from <span style="color: #274306;"><span style="color: #3366ff"><span style="font-size: x-small;"><a href="http://www-1.ibm.com/support/docview.wss?uid=swg1IY64683"><span style="color: #274306;">http://www-1.ibm.com/support/docview.wss?uid=swg1IY64683</span></a> </span></span></span></span></pre>
<pre><span style="font-size: x-small;">and <pre><span style="font-size: x-small;"><a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0008306.htm">http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0008306.htm</a></span></pre>
</span><a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0008306.htm"></a>
<p><br />1. Restart the system after comment out the the db2fmcd entry in /etc/inittab to prevent <br />it from respawning automatically as below:<br />--------------------------------------<br /># end of /etc/inittab<br />#fmc:2345:respawn:/opt/IBM/db2/V8.1/bin/db2fmcd #DB2 Fault Monitor Coordinator<br />--------------------------------------<br /><br />2. Install the DB2 V8.2 fixpak 3 later.<span style="font-size: x-small;"><br />Here is the solution approach&nbsp;from internet, please refer to: <a href="http://www.oceanboo.cn/read.php/158.htm" target="_blank"><span style="color: #274306;">db2fm usage rate was 100%</span></a></span></p>
</pre><img src ="http://www.cnblogs.com/EricYih/aggbug/1322558.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" target="_blank">[新闻]谷歌李开复:我的传奇人生源于十句箴言</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>The man page of mount_afp</title><link>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322551.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Wed, 29 Oct 2008 15:23:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322551.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1322551.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1322551.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1322551.html</trackback:ping><description><![CDATA[<pre><tt><tt>MOUNT_AFP(8)              BSD System Manager's Manual             MOUNT_AFP(8)<br />
<br />
<strong>NAME</strong><br />
<strong>mount_afp</strong> -- mount an afp (AppleShare) filesystem<br />
<br />
<strong>SYNOPSIS</strong><br />
<strong>mount_afp</strong> [<strong>-i</strong>] [<strong>-o</strong> <u>options</u>] <u>afp</u><strong>_</strong><u>url</u> <u>node</u><br />
<br />
<strong>DESCRIPTION</strong><br />
The <strong>mount_afp</strong> command mounts the AFP volume denoted by the afp_url<br />
<u>afp://[user[;AUTH=uamname][:password]@]host[:port]/volumename</u> at the mount point indicated by <u>node.</u><br />
<br />
This command is normally executed by <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/mount.8.html#//apple_ref/doc/man/8/mount"><font color="#274306">mount(8)</font></a> when the -t afp option is used. If the -i option is not<br />
used, all the required information to establish a login to the remote server must be available in the<br />
afp URL, including username &amp; password if needed.<br />
<br />
The arguments and options are:<br />
<br />
<strong>-i</strong>      Interactive mode, you are prompted for the password if you did not supply one in the url.<br />
<br />
<strong>-o</strong>      Options passed to <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/mount.2.html#//apple_ref/doc/man/2/mount"><font color="#274306">mount(2)</font></a> are specified with the <strong>-o</strong> option followed by a comma separated<br />
string of options. See the <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/mount.8.html#//apple_ref/doc/man/8/mount"><font color="#274306">mount(8)</font></a> man page for possible options and their meanings. Addi-<font color="#ffffff">tional&nbsp;Additional</font><br />
tional options supported by the AFP Client are as follows:<br />
<br />
nobrowse<br />
Indicate to the Carbon subsystem that this volume is not to be displayed to the user.<br />
<br />
automounted<br />
Set flags on the mountpoint to indicate that the volume has been mounted by the auto-<font color="#ffffff">mounter.&nbsp;automounter.</font><br />
mounter.<br />
<br />
<u>afp</u><strong>_</strong><u>url</u><br />
There are two forms of afp URL, one for TCP/IP and one for AppleTalk:<br />
<br />
afp://[user[;AUTH=uamname][:password]@]host[:port]/volume<br />
<br />
afp:/at/[user[;AUTH=uamname][:password]@]servername[:zonename]/volume<br />
<br />
Denotes the afp server and sharepoint to mount. It may also contain the username &amp; password<br />
required to log into the server. uamname is the protocol name of the authentication method.  If<br />
port is not specified, then port 548 is used.<br />
<br />
<u>node</u>    Path to mount point, which must be a directory that the user has write permissions for.<br />
<br />
<strong>EXAMPLES</strong><br />
The following example illustrates how to mount the afp volume server.company.com/volumename/ at the<br />
mount point /Volumes/mntpnt:<br />
<br />
mkdir /Volumes/mntpnt<br />
mount_afp afp://username:userpass@server.company.com/volumename/ /Volumes/mntpnt<br />
<br />
This example shows the proper url to use to mount the volume guestVolume from the afp server myserver<br />
as guest:<br />
<br />
mkdir /Volumes/guest<br />
mount_afp "afp://;AUTH=No%20User%20Authent@myserver/guestVolume" /Volumes/guest<br />
<br />
This example shows the proper url to use to mount the volume myVolume from the afp server myserver<br />
using Kerberos authentication:<br />
<br />
mkdir /Volumes/myVolume<br />
<span style="font-weight: bold">mount_afp "afp://;AUTH=Client%20Krb%20v2@myserver/myVolume" /Volumes/myVolume</span><br />
<br />
<br />
<strong>SEE</strong> <strong>ALSO</strong><br />
<a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/mount.2.html#//apple_ref/doc/man/2/mount"><font color="#274306">mount(2)</font></a>, <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/unmount.2.html#//apple_ref/doc/man/2/unmount"><font color="#274306">unmount(2)</font></a>, <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/mount.8.html#//apple_ref/doc/man/8/mount"><font color="#274306">mount(8)</font></a><br />
<br />
<strong>HISTORY</strong><br />
The <strong>mount_afp</strong> command first appeared Mac OS X version 10.0. Kerberos authentication was added in Mac OS<br />
X version 10.2<br />
<br />
<strong>RETURN</strong> <strong>VALUES</strong><br />
0                  <strong>mount_afp</strong> successfully mounted the volume directory.<br />
<br />
[ENODEV (19)]      The server volume could not be mounted by <strong>mount_afp</strong> because the server was not found<br />
or because the sharepoint does not exist, or because node does not have proper<br />
access.<br />
<br />
[EACCES (13)]      The volume could not be mounted by <strong>mount_afp</strong> because the user did not provide proper<br />
authentication credentials.<br />
<br />
[ENOTDIR (20)]     The volume could not be mounted by <strong>mount_afp</strong> because the mountpoint was not a direc-<font color="#ffffff">tory.&nbsp;directory.</font><br />
tory.<br />
<br />
Mac OS X                          May 8, 2002                         Mac OS X</tt></tt></pre>
  <img src ="http://www.cnblogs.com/EricYih/aggbug/1322551.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" target="_blank">[新闻]谷歌李开复:我的传奇人生源于十句箴言</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>How to change the HostName of Mac OS/X Server</title><link>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322543.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Wed, 29 Oct 2008 15:17:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322543.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1322543.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1322543.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1322543.html</trackback:ping><description><![CDATA[<p><img style="float: right;" src="http://farm4.static.flickr.com/3038/2991804263_51094429a0.jpg?v=0" alt="Mac OS X Leopard" width="250" height="288" />I have used "hostname -s &lt;name&gt;" to change the hostname of server, but the settings are lost after reboot. And I have checked the link from Apple Support:<strong> <a href="http://docs.info.apple.com/article.html?artnum=303697"><span style="color: #274306;">http://docs.info.apple.com/article.html?artnum=303697</span></a>.<br /><br /><span style="font-weight: normal">Here I have some way to fix this requirement, please refer to:<br /><br /></span></strong>This would have several implications, especially if the server is an Open Directory Master.<br /><br />Generally, I recommend setting the hostname with <strong>scutil</strong> or <strong>hostname</strong>, but I also suggest checking <strong>/etc/hostconfig</strong> for errors. Specifically, you're looking for:<br /><br />HOSTNAME=-AUTOMATIC- or no entry for HOSTNAME at all.<br /><br />In 10.4 Server, you can change that to HOSTNAME= <em>specific name</em>, but I don't recommend that for 10.5.<br /><br />Essentially what happens upon startup is the server does a reverse lookup (address-to-name) by querying its PTR record in your DNS zone. So the first things to check would be:<br /><br />1. Is your server using the correct DNS name server?<br />2. Does the server have both a valid A and PTR record?<br /><br />But if you changed your server's hostname or IP address, you need to update the entries in its shared LDAP directory and Kerberos realm if it's also an Open Directory Master:<br /><br />1. Update the LDAP directory: Use <strong>slapconfig -changeip</strong> like this:<br /><br /><strong>sudo slapconfig -changeip <em>old IP</em> <em>new IP</em> <em>old hostname</em> <em>new hostname</em></strong><br /><br />If the IP didn't change, enter it twice. Now your LDAP directory knows about the new hostname.<br /><br />2. You'll also have to update your Kerberos configuration <em>if the realm changed</em>. By default, the Kerberos realm is the server's hostname in uppsercase. An example would be HOSTNAME.DOMAIN.EXTENSION.<br /><br />Perhaps the easiest way to do this would be to destroy and recreate the Kerberos realm:<br /><br />a. First, stop all services, and use <strong>sso_util</strong> to "de-Kerberize" all services, destroying the Kerberos realm:<br /><br /><strong>sudo sso_util remove -r <em>server's old REALM</em> -k -a <em>diradmin</em></strong><br /><br />The <strong>-a</strong> switch attempts to destroy the realm. If that fails, you'll need to remove the /Local/Default/Config/KerberosKDC and /Local/Default/Config/KerberosClient records in your server's local LDAP domain (10.5). For 10.4, those paths are /NetInfo/Config/ instead of /Local/Default/Config.<br /><br />b. Re-Kerberize your server. I've got a pretty good response with how-to here:<br /><br /><a href="http://discussions.apple.com/message.jspa?messageID=5917575#5917575"><span style="color: #274306;">http://discussions.apple.com/message.jspa?messageID=5917575#5917575</span></a><br /><br />Have you tried setting the hostname manually with <strong>scutil</strong> command like these examples:<br /><br /><strong>sudo scutil --set HostName <em>full DNS name<br /></em></strong><em style="color: #0070c0">mbp105svrx86v16:~ root# scutil --set HostName <span style="color: #ff0000">mbp105svrx86v16.local</span></em><strong><em><br /></em></strong><br />I suggest using <strong>scutil</strong>, because that informs the <strong>hostname</strong> BSD command of changes; it doesn't work the other way around!<br /><br />When the name is set by <strong>scutil</strong>, the hostname is stored in /Library/Preferences/SystemConfiguration/preferences.plist:<br /><br /><strong>defaults read /Library/Preferences/SystemConfiguration/preferences System<br /></strong><span style="color: #0070c0; font-style: italic">mbp105svrx86v16:~ root# defaults read /Library/Preferences/SystemConfiguration/</span><span style="color: #0070c0; font-style: italic">preferences System</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">{</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp; Network =&nbsp;&nbsp;&nbsp;&nbsp; {</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HostNames =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LocalHostName = mbp105svrx86v16;</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp; };</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp; System =&nbsp;&nbsp;&nbsp;&nbsp; {</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ComputerName = mbp105svrx86v16;</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ComputerNameEncoding = 0;</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HostName = "<span style="color: #ff0000">mbp105svrx86v16.local</span>";</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">&nbsp;&nbsp;&nbsp; };</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">}</span><br style="color: #0070c0; font-style: italic" /><span style="color: #0070c0; font-style: italic">mbp105svrx86v16:~ root#</span><strong><br /></strong><br />As you know, starting with 10.4.6, /etc/hostconfig should have the HOSTNAME variable set to -AUTOMATIC-. In 10.5, as you've noticed, there doesn't need to be any HOSTNAME variable, because /etc/hostconfig is going away anyway.<br /><br />Normally, the automatic PTR to IP lookup is done by <strong>servermgrd</strong> if a hostname is not set. See <a href="http://docs.info.apple.com/article.html?artnum=303697"><span style="color: #274306;">http://docs.info.apple.com/article.html?artnum=303697</span></a> for more.</p><img src ="http://www.cnblogs.com/EricYih/aggbug/1322543.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" target="_blank">[新闻]谷歌李开复:我的传奇人生源于十句箴言</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>How to enable crontab on Mac OS/X</title><link>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322538.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Wed, 29 Oct 2008 15:11:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322538.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1322538.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1322538.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1322538.html</trackback:ping><description><![CDATA[<p><img style="float: right;" src="http://farm4.static.flickr.com/3038/2991804263_51094429a0.jpg?v=0" alt="Mac OS X Leopard" width="250" height="288" />1. Create a new crontab file for your user, Type the following into the terminal:<br />&nbsp;&nbsp;&nbsp; <span style="font-weight: bold">#crontab -e </span><br /><br />2. Choose when you would like the job to run. Every jod is a line in your crontab file. The first 5 arguments specify the time to run the job, and the 6th argument is the command to run.<br />&nbsp;&nbsp;&nbsp; Argument 1: Minute (0 - 59)<br />&nbsp;&nbsp;&nbsp; Argument 2: Hour (0 - 23)<br />&nbsp;&nbsp;&nbsp; Argument 3: Day of Month (1 - 31)<br />&nbsp;&nbsp;&nbsp; Argument 4: Month (1-12)<br />&nbsp;&nbsp;&nbsp; Argument 5: Day of Week (0 - 6) Sunday = 0<br />&nbsp;&nbsp;&nbsp; Argument 6: Command <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; e.g: <br />&nbsp;&nbsp;&nbsp; 0,20,40 * * * * cat /var/log/system.log &gt;&gt; /home/user/logfile.txt 2&gt;&amp;1<br />&nbsp;&nbsp;&nbsp; will get the log file on system.log at the 0th, 20th, 40th of per hour, and redirect the content to logfile under /home/user.<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 30 12 * * * touch testfile<br />&nbsp;&nbsp;&nbsp; will touch a file which name is testfile at 12:30 everyday<br /><br />&nbsp;&nbsp;&nbsp; Save the file, and crontab should report:<br />&nbsp;&nbsp;&nbsp; crontab: installing new crontab <br /><br />&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; color: #ff0000">Notes: </span>On Mac OS, don't restart the cron service after edit crontab of user<br /><br />3. To see a list of your crontabs, run this command:<br />&nbsp;&nbsp;&nbsp; <span style="font-weight: bold"># crontab -l </span><br /><br />4. To remove crontabs, run this command:<br />&nbsp;&nbsp;&nbsp;<span style="font-weight: bold"> # crontab -r</span></p>
<p><span style="font-weight: bold">For more detailed-chinese information about Cron, please refer to <a title="Cron用法说明" href="http://blog.htmlor.com/2006/07/25/cron_guide/" target="_blank"><span style="color: #274306;">Cron用法说明</span></a>&nbsp;and <strong><a title="Cron Help Guide" href="http://www.linuxhelp.net/guides/cron/" target="_blank"><strong>Cron Help Guide</strong></a></strong></span></p><img src ="http://www.cnblogs.com/EricYih/aggbug/1322538.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" target="_blank">[新闻]谷歌李开复:我的传奇人生源于十句箴言</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Automation Testing</title><link>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322511.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Wed, 29 Oct 2008 14:27:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322511.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1322511.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/10/29/1322511.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1322511.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1322511.html</trackback:ping><description><![CDATA[<p>&nbsp; </p>
<p><strong><span style="font-size: 12pt; font-family: 'Arial','sans-serif'">1. Record/ Playback Testing Tools</span></strong></p>
<p><strong>&nbsp;</strong></p>
<p><span style="font-family: 'Arial','sans-serif'">Record the actions of manual test execution, allowing tests to run unattended, thereby greatly increasing productivity and eliminating manual testing mind-numbing repetition. However, even small changes to the application under test require manual re-recording of the test. This first generation of tools, therefore, is neither efficient nor scalable.</span></p>
<p>&nbsp;</p>
<p>
<table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Pros</span></strong></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Cons</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;No programming skill necessary! </span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; Allows users to quickly generate automated tests based on existing manual test cases</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; Little or no training needed to start creating </span></p>
            <p><span style="font-family: 'Arial','sans-serif'">test automation</span></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; &nbsp;Often times the scripts recorded scripts don&#8217;t work correctly, so you must edit them manually (you end up programming!) </span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; &nbsp;Recorded scripts are very vulnerable to UI changes. </span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; &nbsp;Little or no reuse of scripts, which makes future updates difficult or impossible.</span></p>
            </td>
        </tr>
    </table>
</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 12pt; font-family: 'Arial','sans-serif'">2. Scripting</span></strong></p>
<p><strong>&nbsp;</strong></p>
<p><span style="font-family: 'Arial','sans-serif'">Scripting, a form of programming in computer languages specifically developed for software test automation, solves many of the problems of capture/playback tools. </span></p>
<p><span style="font-family: 'Arial','sans-serif'">Script developers, however, must be highly technical, specialized programmers working in isolation from the actual testers. Additionally, scripts are best-suited for GUI testing and don&#8217;t lend themselves to embedded, batch, or other systems. And as&nbsp;changes to the application under test require complex changes to associated automation scripts, maintaining ever-larger script libraries becomes overwhelmingly challenging.</span></p>
<p>&nbsp;</p>
<p>
<table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Pros</span></strong></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Cons</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Higher level of re-use, easier updates than record and playback.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; &nbsp;More maintainable and manageable (less code than recorded scripts).</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;In practice, you generally can record actions to generate code and then modify it to suit your needs. This technique saves time.</span></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Tests live in the code. To update a test, an automation engineer must update the code (high maintenance cost).</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Testers have very little&nbsp;involvement in the creation of test automation in this approach.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;This approach relies almost entirely on automation engineers.</span></p>
            </td>
        </tr>
    </table>
</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 12pt; font-family: 'Arial','sans-serif'">3. Data Driven Testing</span></strong></p>
<p><span style="font-family: 'Arial','sans-serif'">&nbsp;</span></p>
<p><span style="font-family: 'Arial','sans-serif'">Separates automation scripts and data, decreasing testers&#8217; reliance on automation engineers, and vastly increasing the possible variations&nbsp;and amount of test data. While greatly extending the usefulness of scripted test automation, data-driven testing remains maintenance-intensive.</span></p>
<p>&nbsp;</p>
<p>
<table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Pros</span></strong></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Cons</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;A parameterized test can be run many times with different input data.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Test data is now separated from the test scripts(lower maintenance cost)</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Testers can update the data.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Automation engineers can update the scripts.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Test data can be created before the test have been completely developed, as long as you know the correct format for the data.</span></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Takes more planning and management than previous approaches.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Development of tests will usually take longer since mechanisms to access data must be created.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Tests still must be scripted by the automation engineer. Testers only have control over the data.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;In this approach, tests are broken down into a series of actions representing the business processes of the SUT, such as enter client, transfer and check balance.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Individual actions are automated, not the tests.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;The tests are now stored externally from the test scripts, typically in a spreadsheet.</span></p>
            </td>
        </tr>
    </table>
</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 12pt; font-family: 'Arial','sans-serif'">4. Keyword Based Testing Automation</span></strong></p>
<p><span style="font-family: 'Arial','sans-serif'">&nbsp;</span></p>
<p><span style="font-family: 'Arial','sans-serif'">Keyword-based test automation&#8217;s elegant, structured approach simplifies work even further, reducing the time and expense of test design, automation, and execution by allowing team members to focus on their areas of individual expertise. Non-technical testers and business analysts can develop executable test automation from keywords representing recognizable end-user actions such as &#8220;login,&#8221; while automation engineers devote their energy to coding the low-level steps comprising those keyword actions, such as click, find text box A in window B , enter User Name etc.</span></p>
<p><span style="font-family: 'Arial','sans-serif'">Using this keyword-based method, test design are developed based on documents created by business analysts or marketing departments while the final details of the software to be tested are still unknown. This test automation process removes bottlenecks and facilitates effective use of highly-trained professionals&#8217; expensive time.</span></p>
<p><span style="font-family: 'Arial','sans-serif'">The testing process further magnifies the keyword method&#8217;s cost benefits, as changes to the application under test typically necessitate revision of automation scripts. Using a keyword-based framework, changes to the application under test often require no new automation whatsoever or require merely simple alterations easily made by non-technical testers or business analysts, greatly reducing an organization&#8217;s maintenance needs. When necessary, automation engineers can make changes to the automated keywords without affecting the rest of the test.</span></p>
<p><span style="font-family: 'Arial','sans-serif'">Action-Based Testing, the foundation of TestArchitect, embodies the continued evolution of the keyword-based approach under the guidance of its original creator. Test design and automation organized around TestArchitect&#8217;s built-in actions and keywords often make possible automation of tests without scripting.</span></p>
<p>&nbsp;</p>
<p>
<table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Pros</span></strong></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #bfbfbf; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p align="center"><strong><span style="font-family: 'Arial','sans-serif'">Cons</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; Highest possible level of reusability and maintain abilities</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Tests are separate from the automation, so testers can create and modify tests without having to change the underlying automation.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226; Testers can create the tests before the &nbsp;application is ready for testing (just like manual test cases), based on requirements, &nbsp;specifications, use cases, and other information.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;One automation engineer can support many testers.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Testers can effectively create test automation without having to learn to write scripts in a test automation tool.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Automation test cases&nbsp;for the automation tool can also be used as manual test cases since they are easily readable and stored in a spreadsheet format that many testers are comfortable with.</span></p>
            </td>
            <td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 213.05pt; padding-top: 0cm; border-bottom: black 1pt solid" valign="top" width="284">
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;Setup time can be longer than other approaches.</span></p>
            <p><span style="font-family: 'Arial','sans-serif'">&#8226;&nbsp;May require a change in the way you approach testing and test automation.</span></p>
            </td>
        </tr>
    </table>
</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 12pt; font-family: 'Arial','sans-serif'">5. Multi Level Keyword Test Automation</span></strong></p>
<p><span style="font-family: 'Arial','sans-serif'">&nbsp;</span></p>
<p><span style="font-family: 'Arial','sans-serif'">Multi-level keyword automation, a unique feature of TestArchitect, creates new higher-level actions from lower-level actions simply by typing names or dragging and dropping icons. </span></p>
<p><span style="font-family: 'Arial','sans-serif'">For example, the action Add Product To Inventory might be created by three simple, low-level actions: click, enter and click, to open a window by clicking on a button, copy text into a textbox in that window and click on a button to close the window. </span></p>
<p><span style="font-family: 'Arial','sans-serif'">Combining two or more high-level actions creates&nbsp;even more powerful actions, such as combining&nbsp;Add Product To Inventory and Check Product into one action called Update and Verify Inventory.</span></p>
 <img src ="http://www.cnblogs.com/EricYih/aggbug/1322511.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43760/" target="_blank">[新闻]谷歌李开复:我的传奇人生源于十句箴言</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>The Perfect Setup - Debian Etch (Debian 4.0) (一)</title><link>http://www.cnblogs.com/EricYih/archive/2008/05/28/1209352.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Wed, 28 May 2008 09:06:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/05/28/1209352.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1209352.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/05/28/1209352.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1209352.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1209352.html</trackback:ping><description><![CDATA[<p><img style="float: right;" src="http://farm4.static.flickr.com/3069/2992691704_f0d6b6c715.jpg?v=0" alt="Debian" width="293" height="250" />This tutorial shows how to set up a Debian Etch (Debian 4.0) based server that offers all services needed by ISPs and hosters: Apache web server (SSL-capable), Postfix mail server with SMTP-AUTH and TLS, BIND DNS server, Proftpd FTP server, MySQL server, Courier POP3/IMAP, Quota, Firewall, etc. This tutorial is written for the 32-bit version of Debian Etch, but should apply to the 64-bit version with very little modifications as well.</p>
<p>I will use the following software:</p>
<ul>
<li>Web Server: Apache 2.2 </li>
<li>Database Server: MySQL 5.0 </li>
<li>Mail Server: Postfix </li>
<li>DNS Server: BIND9 </li>
<li>FTP Server: proftpd </li>
<li>POP3/IMAP: I will use Maildir format and therefore install Courier-POP3/Courier-IMAP. </li>
<li>Webalizer for web site statistics </li>
</ul>
<p>In the end you should have a system that works reliably, and if you like you can install the free webhosting control panel <a href="http://www.ispconfig.org/" target="_blank">ISPConfig</a> (i.e., ISPConfig runs on it out of the box).</p>
<p>I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!</p>
<h3>1 Requirements 
<hr />
</h3>
<p>To install such a system you will need the following:</p>
<ul>
<li>the Debian Etch Netinstall CD (the list of mirrors is available here: <a href="http://www.debian.org/CD/http-ftp/" target="_blank">http://www.debian.org/CD/http-ftp/</a> - I downloaded this one: <a href="http://ftp.de.debian.org/debian-cd/4.0_r0/i386/iso-cd/debian-40r0-i386-netinst.iso" target="_blank">http://ftp.de.debian.org/debian-cd/4.0_r0/i386/iso-cd/debian-40r0-i386-netinst.iso</a>) </li>
<li>a fast internet connection. </li>
</ul>
<h3>2 Preliminary Note 
<hr />
</h3>
<p>In this tutorial I use the hostname <span class="system">server1.example.com</span> with the IP address <span class="system">192.168.0.100</span> and the gateway <span class="system">192.168.0.1</span>. These settings might differ for you, so you have to replace them where appropriate. </p>
<h3>3 The Base System 
<hr />
</h3>
<p>Insert your Debian Etch Netinstall CD into your system and boot from it. Press <span class="system">ENTER</span> to boot: </p>
<p><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-1.png" border="0" alt="" width="550" height="413" /><br /><br />The installation starts, and first you have to choose your language:
<script type="text/javascript"><!--
 document.write('<div align="center">');
// --></script>
</p>
<p><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-2.png" border="0" alt="" width="550" height="413" /><br /><br />Then select your location:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-3.png" border="0" alt="" width="550" height="413" /><br /><br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-4.png" border="0" alt="" width="550" height="413" /><br /><br />Choose a keyboard layout:</p>
<p><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-5.png" border="0" alt="" width="550" height="413" /><br /><br />The installer checks the installation CD, your hardware, and configures the network with DHCP if there is a DHCP server in the network:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-6.png" border="0" alt="" width="550" height="413" /><br /><br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-7.png" border="0" alt="" width="550" height="413" /><br /><br />Enter the hostname. In this example, my system is called <span class="system">server1.example.com</span>, so I enter <span class="system">server1</span>:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-8.png" border="0" alt="" width="550" height="413" /><br /><br />Enter your domain name. In this example, this is <span class="system">example.com</span>:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-9.png" border="0" alt="" width="550" height="413" /><br /><br />Now you have to partition your hard disk. For simplicity's sake I will create one big partition (with the mount point <span class="system">/</span>) and a little swap partition so I select <span class="system">Guided - use entire disk</span> (of course, the partitioning is totally up to you - if you like, you can create more than just one big partition, and you can also use LVM):<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-10.png" border="0" alt="" width="550" height="413" /><br /><br />Select the disk that you want to partition:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-11.png" border="0" alt="" width="550" height="413" /><br /><br />Then select the partitioning scheme. As mentioned before, I select <span class="system">All files in one partition (recommended for new users)</span> for simplicity's sake - it's up to your likings what you choose here:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-12.png" border="0" alt="" width="550" height="413" /><br /><br />When you're finished, select <span class="system">Finish partitioning and write changes to disk</span>:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-13.png" border="0" alt="" width="550" height="413" /><br /><br />Select <span class="system">Yes</span> when you're asked <span class="system">Write changes to disks?</span>:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-14.png" border="0" alt="" width="550" height="413" /><br /><br />Afterwards, your new partitions are created and formatted:<br /><img src="http://www.cnblogs.com/images/cnblogs_com/ericyih/Debian%204.0%20Setup/debian_4.0-15.png" border="0" alt="" width="550" height="413" /></p>
<!-- BEGIN NetShelter Ad Tag for HowtoForge 300x250,336x280 -->
<p>
<script type="text/javascript"><!--
if (!window.netshel_ord) { netshel_ord=Math.random()*10000000000000000;
}
if (!window.netshel_tile) { netshel_tile=1; }
document.write('<script language="JavaScript" src="http://ad.doubleclick.net/adj/ns.howtoforge/howtos;sz=300x250,336x280;tile='+netshel_tile+';ord=' + netshel_ord + '?" mce_src="http://ad.doubleclick.net/adj/ns.howtoforge/howtos;sz=300x250,336x280;tile='+netshel_tile+';ord=' + netshel_ord + '" type="text/javascript"></scr' + 'ipt>');
netshel_tile++;
// --></script>
<script src="http://ad.doubleclick.net/adj/ns.howtoforge/howtos;sz=300x250,336x280;tile=3;ord=3498275747611218" type="text/javascript"></script>
</p><img src ="http://www.cnblogs.com/EricYih/aggbug/1209352.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43759/" target="_blank">[新闻]Twitter杀手Pownce被收购 两周内关闭服务</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Installing DB2 UDB Version 8.2</title><link>http://www.cnblogs.com/EricYih/archive/2008/05/06/1185055.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Tue, 06 May 2008 06:01:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/05/06/1185055.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1185055.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/05/06/1185055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1185055.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1185055.html</trackback:ping><description><![CDATA[<p><span style="font-family: Arial;">
<div>
<h2><img style="float: right;" src="http://farm4.static.flickr.com/3285/2991770887_bff3aae494.jpg?v=0" alt="IBM DB2" width="200" height="52" />db2setup installation</h2>
<div>
<p><strong>Prerequisites. </strong></p>
<ul>
<li>
<p>Ensure that your system meets the installation, memory, and disk requirements outlined in Section 3. </p>
</li>
<li>
<p>Review the installation considerations for IBM Developer Kit for Java 1.4.1.</p>
</li>
<li>
<p>You require root authority to perform the installation.</p>
</li>
<li>
<p>The DB2 UDB Setup wizard is a graphical installer. You must have X Window System software capable of rendering a graphical user interface for the DB2 UDB Setup wizard to run on your machine.</p>
</li>
<li>
<p>For 2.6 kernels, ensure that Asynchronous I/O (AIO) has been installed. To use AIO you must install libaio-0.3.96 or later, and have a kernel that supports AIO. AIO can be enabled and disabled at run time by issuing the db2set command. To enable AIO for DB2 UDB after installation, execute the command <strong>db2set DB2LINUXAIO=true</strong> and restart DB2 UDB.</p>
<p>For additional 2.6 kernel performance enhancements, see <em>DB2 UDB and the 2.6 kernel</em>.</p>
</li>
</ul>
</div>
<div>
<p><strong>Procedure. </strong>To install DB2 UDB ESE (single-partition): </p>
<ol type="1">
<li>
<p>Log on to the system as a user with root authority.</p>
</li>
<li>
<p>Enter the command to mount the DB2 UDB installation CD: </p>
<table border="0" width="100%" bgcolor="#e0e0e0">
<tbody>
<tr>
<td><span style="color: #000000;">mount /mnt/cdrom
<pre></pre>
</span></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>Change to the <tt>/mnt/cdrom</tt> directory.</p>
</li>
<li>
<p>Run the <strong>db2setup</strong> command.</p>
</li>
<li>
<p>When the IBM DB2 UDB Launchpad opens, select Install Products.</p>
</li>
<li>
<p>Select the DB2 UDB Enterprise Server Edition button on the next window. Click Next. The DB2 Information Management Software splash screen will appear as the DB2 UDB installer prepares your system for the installation of DB2 UDB.</p>
</li>
<li>
<p>When the Welcome to the DB2 Setup Wizard window appears, click Next.</p>
</li>
<li>
<p>On the Software License Agreement window, read the license agreement and select the Accept button if you accept the terms (the Decline button is selected by default). Click Next.</p>
</li>
<li>
<p>On the Select the installation type window, select the kind of installation you want to perform. You have three installation options: </p>
<ul>
<li>
<p>Typical: 370&ndash;480 MB. This option installs most of the DB2 UDB components, using a typical configuration with default values. This option includes all of the required features, ODBC support, and commonly used tools such as the Control Center. This option does not install the Application Development and Business Intelligence tools. If you want to install these tools, then you should choose the Custom installation type. You can select the View Features button to see what components get installed with this option.</p>
</li>
<li>
<p>Compact: 320&ndash;390 MB. This option installs only the basic DB2 UDB components, with minimal configuration performed on your computer. With this option you get server support, client support, and getting started functionality. The DB2 UDB Setup wizard creates an instance and customizes it to use the communication protocols that are detected on your system. Click the View Features button for more information.</p>
</li>
<li>
<p>Custom: 320&ndash;890 MB. This option allows you to install only those components that you select, and to create and customize an instance to use communication protocols that are detected on your system.</p>
</li>
</ul>
Click Next. (The rest of these instructions are based on the Custom installation option).</li>
<li>
<p>On the Select the installation action window, select the Install DB2 UDB Enterprise Server Edition on this computer check box. You can also choose to save your installations settings in a response file by selecting the Save your settings in a response file check box. You should choose this option if you plan to install DB2 UDB, with these same settings, on other computers in your environment.</p>
</li>
<li>
<p>Select the features you want installed on the <span>Select the features to install</span> window. You can preview each component by selecting it and reading the corresponding description in the Description section on the window. Once you have decided what features you want to install, click Next.</p>
</li>
<li>
<p>Select what languages you want installed on your computer on the Languages window. English is selected by default in the Selected languages section of the window. Click Next.</p>
</li>
<li>
<p>In the Specify the location of the DB2 Information Center window, select how you want to access the DB2 UDB Information Center. The DB2 UDB Information Center contains documentation for DB2 UDB and other related DB2 products. The <span>On the IBM Web site</span> button is selected by default. By choosing this option DB2 UDB is configured to access documentation on the Web using your browser. However, if you want to install a copy of the DB2 UDB Information Center on your local computer, then select the <span>Install the DB2 Information Center separately after this DB2 product installation</span> button (refer to the section on Installing the DB2 UDB Information Center in this HOWTO for more information). If you have a copy of the DB2 UDB Information Center installed elsewhere on an intranet server, you can choose the On the following intranet server button to gain access to DB2 UDB documentation. Specify the values in the Host name and Port number text fields (the default value for the port number is <tt>51000</tt>). Click the Help button for more information. Click Next.</p>
</li>
<li>
<p>Fill out the information for the user that will administer the Database Administration Server on the Set user information for the DB2 Administration Server window. Select either the New user button, or the Existing user button. The Password and Confirm password text boxes are outlined in red indicating required fields that must be filled in for the installation to continue. Click Next.</p>
</li>
<li>
<p>If you want to create a new DB2 UDB instance, then select the Create a DB2 instance button on the Set up a DB2 instance window. Otherwise, select the Do not create a DB2 instance button. If you select this option, you will need to create a new instance after the installation by using the <strong>db2icrt</strong> command. Click Help for more information. Click Next.</p>
</li>
<li>
<p>If your installation is a single-partition installation, as in this example, select the Single-partition instance button on the Select how the instance will be used window. Choosing this option means that this instance will only reside on your local computer and will not be used in a partitioned environment. Click Next.</p>
</li>
<li>
<p>Fill out the information for the DB2 UDB instance owner on the Set user information for the DB2 instance owner window. Select either the New user button, or the Existing user button. The Password and Confirm password text boxes are outlined in red indicating required fields that must be filled in for the installation to continue. Click Next.</p>
</li>
<li>
<p>Fill out the information for the fenced user on the Set user information for the fenced user window. Select either the New user button, or the Existing user button. The Password and Confirm password text boxes are outlined in red indicating required fields that must be filled in for the installation to continue. For more information on fenced users, and how fenced users relate to fenced and non-fenced user-defined functions (UDFs) and stored procedures, click Help. Click Next.</p>
</li>
<li>
<p>Configure the DB2 UDB instance for TCP/IP communications on the Configure DB2 instance TCP/IP communication window. Either accept the default values found in the Service name and Port number fields, or select your own. If you choose to configure the instance at a later time, select the Do not configure at this time button. Click Next.</p>
</li>
<li>
<p>In the Set instance properties window, select an instance authentication type that will apply to all of the databases that are owned by the instance. There are three authentication types: </p>
<ul>
<li>
<p>Server: this type specifies that authentication occurs on the server using the local operating system security.</p>
</li>
<li>
<p>Server Encrypt: this type specifies that the server accepts encrypted server authentication schemes.</p>
</li>
<li>
<p>Client: this type specifies that authentication occurs on the database partition where the application is invoked using operating system security.</p>
</li>
</ul>
Select the Autostart the instance of system startup button if you want the instance to start when you start up your system. Click Next.</li>
<li>
<p>On the Prepare the DB2 tools catalog window select the Use a local database button if you plan on using the Task Center or scheduler. This option creates a database on your local computer that stores task metadata. If you do not have this repository, the scheduler will not function. If you want to create a DB2 UDB tools catalog after you finish the installation, select the <span>Do not prepare the DB2 tools catalog on this computer</span> button. You can create the DB2 UDB tools catalog manually by using the <strong>CREATE TOOLS CATALOG</strong> command. Click Next.</p>
</li>
<li>
<p>If you decide to create a DB2 UDB tools catalog, you can specify the required information for the local database on the Specify a local database to store the DB2 tools catalog window. You can specify which instance, which database, and which schema in which to store the DB2 UDB tools catalog. The DB2 UDB tools catalog will be placed in the home directory of the instance owner. Click Next.</p>
</li>
<li>
<p>Specify the administration contact list on the Set up the administration contact list window. This list stores administrator contact information that is used for notifying administrators if and when a database requires attention. Either create a new contact list that is stored locally, or use an existing global contact list that resides on a remote DB2 UDB server. If you check the Enable notification button, your system will search for an available SMTP server and set it to be used for e-mail notifications. Click Next.</p>
</li>
<li>
<p>On the <span>Specify a contact for health monitor notification</span> window select the health monitor that will run on the DB2 UDB instance you are setting up. The DB2 UDB health monitor will send a notification e-mail to the person you specify in the Name and Email address fields, if and when a health indicator threshold is breached. You can choose to have this notified by a pager by selecting the Address is for a pager check box. Select the Defer this task until after installation is complete button if you want to specify health notification contacts later on. You can use the Task Center or the Control Center to create these contacts. Click Next.</p>
</li>
<li>
<p>Click Finish on the <span>Start copying files</span> window to complete the installation. The Current settings section provides a summary of your installation and configuration settings.</p>
</li>
</ol>While the files are being copied to your computer you will see two status bars on the Installing DB2 UDB Enterprise Server Edition window, indicating the installation task progress and the overall installation progress. When the installation is finished the Setup Complete window indicates what post-installation steps need to be taken, along with a status report of the installation. Click Finish to exit the DB2 UDB Setup wizard.</div>
</div>
</span></p><img src ="http://www.cnblogs.com/EricYih/aggbug/1185055.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43758/" target="_blank">[新闻]Live Search新增“即时返现”服务</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>.Net Framework Library Source Code now available</title><link>http://www.cnblogs.com/EricYih/archive/2008/01/26/1054485.html</link><dc:creator>Eric Yih</dc:creator><author>Eric Yih</author><pubDate>Sat, 26 Jan 2008 11:23:00 GMT</pubDate><guid>http://www.cnblogs.com/EricYih/archive/2008/01/26/1054485.html</guid><wfw:comment>http://www.cnblogs.com/EricYih/comments/1054485.html</wfw:comment><comments>http://www.cnblogs.com/EricYih/archive/2008/01/26/1054485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/EricYih/comments/commentRss/1054485.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/EricYih/services/trackbacks/1054485.html</trackback:ping><description><![CDATA[<p><img style="float: right;" src="http://farm4.static.flickr.com/3065/2992691994_4fcd22d0d1.jpg?v=0" alt=".NET Framework" width="300" height="193" />微软在MS-RL协议下终于有&ldquo;条件&rdquo;的公开了.Net Framework源代码，具体来说，现在可以查看和调试下面的.Net Framework的源代码：</p>
<ul>
<li>.NET基类库(包括 System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading等) </li>
</ul>
<ul>
<li>ASP.NET (System.Web, System.Web.Extensions) </li>
</ul>
<ul>
<li>Windows Forms (System.Windows.Forms) </li>
</ul>
<ul>
<li>Windows Presentation Foundation (System.Windows) </li>
</ul>
<ul>
<li>ADO.NET and XML (System.Data 和 System.Xml) </li>
</ul>
<p><strong><em>在Visual Studio 2008中启用参考源代码访问</em></strong></p>
<hr />
<p>在Visual Studio 2008中启动.Net Framework源代码访问可以参考<a href="http://blogs.msdn.com/sburke/default.aspx" target="_blank">Shawn Burke</a>的博文：<a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx" target="_blank">Configuring Visual Studio to Debug .Net Framework Source Code</a>。</p>
<p><strong><em>调试进入.NET框架库源代码</em></strong></p>
<hr />
<p>配置完成后，即可动态的加载.Net Framework的调试符号并调试进入到源代码中。调试过程中，Visual Studio 2008将会从MSDN源码服务器上按照需要下载符号和源码文件。</p>
<p><a href="/images/cnblogs_com/EricYih/WindowsLiveWriter/1949.NetFrameworkLibrarySourceCodenowavi_10A2C/image_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.cnblogs.com/images/cnblogs_com/EricYih/WindowsLiveWriter/1949.NetFrameworkLibrarySourceCodenowavi_10A2C/image_thumb.png" border="0" alt="image" width="724" height="580" /></a><br />开发者的注释也包括在源文件中。在上面的例子中，你可以看到Control基类中的Dispose方法的注释例子。 </p><img src ="http://www.cnblogs.com/EricYih/aggbug/1054485.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43753/" target="_blank">[新闻]MySpace CEO：明年广告营收仍会增长</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>