<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DU8ASHkzeSp7ImA9WhRVF0s.&quot;"><id>tag:blogger.com,1999:blog-38361932</id><updated>2012-01-16T18:37:29.781-08:00</updated><category term="生活雜記" /><category term="linux" /><category term="debug" /><category term="embedded" /><category term="值得回顧" /><category term="生活資訊" /><category term="gdb" /><category term="ksm linux vm" /><category term="python zenity" /><category term="投資理財" /><category term="elf" /><category term="configure" /><category term="度假打工" /><category term="讀書筆記" /><category term="學習筆記" /><category term="運動運動" /><category term="chrome" /><category term="相片日記" /><category term="cisco" /><category term="editor" /><category term="git" /><category term="python" /><category term="juniper" /><category term="BackPacker" /><category term="coding" /><category term="network" /><category term="vim" /><category term="語言學習" /><category term="技術筆記" /><category term="技術文件" /><category term="plugins" /><category term="Today's link" /><category term="ipv6" /><category term="好物分享" /><category term="backup" /><title>Blue119's Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.ypwang.info/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.ypwang.info/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>151</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Blue119sBlog" /><feedburner:info uri="blue119sblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkQCQnc-eSp7ImA9WhdbE0g.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-3653034386597306644</id><published>2011-10-11T09:25:00.000-07:00</published><updated>2011-10-11T09:26:03.951-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-11T09:26:03.951-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cisco" /><title>Cisco's IOS 密碼加解密</title><content type="html">前幾天跟為需要，剛在在研究 cisco ios 的密碼，它的主要加解密如下&lt;br /&gt;
&lt;br /&gt;
利用一組 byte array 當做轉換碼&lt;br /&gt;
&lt;br /&gt;
&lt;pre name="code" class="Cpp"&gt;char xlat[] = {                                                                  
    0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,                              
    0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,                              
    0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
加密方式:&lt;br /&gt;
&lt;br /&gt;
1. 先選出一個 seed number，做為 xlat 的起始字元，但此數字需為 0x0 ~ 0xF&lt;br /&gt;
2. 密碼字串每一個字與 xlat[seed++] 字 XOR，之後把字元轉成字串&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;cencrypt(char *dec_pw, char *enc_pw)
{
    unsigned int seed = dec_pw[0] % 16;
    unsigned int p = 0;
    unsigned int i = 0;
    unsigned int val = 0;

    enc_pw[p++] = (seed &amp;gt;&amp;gt; 4 &amp;amp; 0xf) + '0';
    enc_pw[p++] = (seed &amp;amp; 0xf) + '0';

    for(i = 0; i &amp;lt; strlen(dec_pw); i++) {
        val = dec_pw[i] ^ xlat[seed++];

        enc_pw[p] = (val &amp;gt;&amp;gt; 4 &amp;amp; 0xf) + '0';
        if(enc_pw[p] &amp;gt; '9') {
            enc_pw[p] = enc_pw[p] - ':' + 'A';
        }
        p++;

        enc_pw[p] = (val &amp;amp; 0xf) + '0';
        if(enc_pw[p] &amp;gt; '9') {
            enc_pw[p] = enc_pw[p] - ':' + 'A';
        }
        p++;
    }
    printf("%s\n", enc_pw);

    return 0;
}

&lt;/pre&gt;範例：&lt;br /&gt;
&lt;br /&gt;
$ ./cisco_encrypt -e Cisco&lt;br /&gt;
032752180500&lt;br /&gt;
&lt;br /&gt;
第一組 03 為 seed number，此 number 為 'C' % 16 得到&lt;br /&gt;
第二組 27 為 'C' ^ xlat[0x3] 得到&lt;br /&gt;
第三組 52 為 'i' ^ xlat[0x4] 得到，之後以此類推&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Conclution&lt;/h2&gt;雖然 cisco 的 password type 7 可被很容易的反解出來，而且早在 1997 就已被公開反解方式，但到目前 2011 年已過了十四年，cisco還是沒打算更改加密的方式，我想這有幾個可能的原因，首先，在古早的網路設備裡，大多數的 control plane 上的 CPU 都很慢，重點主要是 data plane 上的 FPGA or ASIC，為了減少 control plane 的負擔，用最簡單的方式，當然，我想，這因該不是主要的原因。另外，從目前手上的機器(Cisco Aironet 1260)來看，它的 Default Config，登入用的 username, password 與 enable password 都是大家所知道的 "Cisco"，而它的 enable password 使用 MD5 而不是 reversible 的方式。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;enable secret 5 $1$50r.$jwGnU838Lega3wGEBCpZ30
!
username Cisco password 7 032752180500
&lt;/pre&gt;&lt;br /&gt;
另外，如你要拿到 running-config 一定要先進入 enable mode，所以原則上你是拿不到此機器的 config file，另外，除非對方剛好也有開 SNMP 而且你也剛好知道它的 community string，又剛好此 community 被設成有 read-write permission，那當然就有辨法拿到 config file，不過這時已不是 username password 的問題了，對方大可直接使用 SNMP 來對你的機器惡搞。&lt;br /&gt;
&lt;br /&gt;
最後，從目前我所知道的知識裡，看來，cisco 對於 username 可使用 type 7 來加密對於安全上不太會有多大的問題，當然你也可使用 type 5 的方式。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Links&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://insecure.org/sploits/cisco.passwords.html" title="Cisco password decryption from insecure.org"&gt;Cisco password decryption from insecure.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ccie20728.wordpress.com/2008/05/20/get-the-cisco-configuration-over-snmp/" title="Get the Cisco configuration over SNMP"&gt;Get the Cisco configuration over SNMP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cisco.com/en/US/tech/tk648/tk362/technologies_configuration_example09186a0080094aa6.shtml" title="How To Copy Configurations To and From Cisco Devices Using SNMP"&gt;How To Copy Configurations To and From Cisco Devices Using SNMP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cisco.com/en/US/products/sw/iosswrel/ps1835/products_tech_note09186a008020260d.shtml" title="Back up and Restore Configuration Files"&gt;Back up and Restore Configuration Files&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-3653034386597306644?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dd3bic_lEe9gTgDIxQFrYJZL1rA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dd3bic_lEe9gTgDIxQFrYJZL1rA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dd3bic_lEe9gTgDIxQFrYJZL1rA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dd3bic_lEe9gTgDIxQFrYJZL1rA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/wTWwUWfq8GY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/3653034386597306644/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=3653034386597306644" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3653034386597306644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3653034386597306644?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/wTWwUWfq8GY/ciscos-ios.html" title="Cisco's IOS 密碼加解密" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2011/10/ciscos-ios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UNSHY4fSp7ImA9Wx9VF0w.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-3847209773763791137</id><published>2011-02-02T21:34:00.000-08:00</published><updated>2011-02-02T21:34:59.835-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-02T21:34:59.835-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ipv6" /><title>IPv6 Ready Logo 筆記</title><content type="html">1/31, 2/1 算是正式在目前公司工作的最後二天，之前一直沒有機會，或許因該說，一直偷懶(哈哈..)沒試著測看看 Ready Logo Testing 在自家的機器上，利用最後的時間，測了一下，雖然沒能完全跑完所有的 auto test ，主要是太多東西要慢慢 tune 了，比如字串比對之類的，比較好奇，測試者需要自行更改 v6eval的perl module?? 本身不懂 perl 所以還花了一點時間試著去了解一些語法 XD，以下是這二天來的筆記。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Software :&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;b&gt;FreeBSD&lt;/b&gt; 7.3-RELEASE FreeBSD 7.3-RELEASE&lt;br /&gt;
&lt;b&gt;v6eval-3.3.1&lt;/b&gt; : IPv6 Conformance Test Package&lt;br /&gt;
&lt;b&gt;Self_Test_5-0-0&lt;/b&gt; : Self-Test Tools for IPv6 Ready Logo Program&lt;/blockquote&gt;&lt;div&gt;&lt;div style="font-weight: bold;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;v6eval 安裝與設定 :&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
新版的 v6eval-3.3.1 已把 v6eval-remotes 整合進來，安裝 v6eval 前需要先安裝 perl5 相關 module&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Expect : /usr/ports/lang/p5-Expect&lt;/li&gt;
&lt;li&gt;IO-Tty : /usr/ports/devel/p5-IO-Tty&lt;/li&gt;
&lt;li&gt;Digest-MD5 : /usr/ports/security/p5-Digest-MD5&lt;/li&gt;
&lt;li&gt;YAML : /usr/ports/textproc/p5-YAML&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;1. 安裝:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;make&lt;br /&gt;
sudo make install&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
2.&amp;nbsp;環境相關設定:&lt;/div&gt;Configure and test serial line:&lt;br /&gt;
&lt;div&gt;&lt;blockquote&gt;sudo touch /var/log/aculog&lt;br /&gt;
sudo chown uucp:dialer /var/log/aculog&lt;br /&gt;
sudo chmod 660 /var/log/aculog&lt;br /&gt;
sudo cu -l /dev/cuad0 # test connection. type "~." to exit&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Interface configuration:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;# sudo vim /etc/rc.conf&lt;br /&gt;
&amp;nbsp;&amp;nbsp;ipv6_enable="NO"&lt;br /&gt;
&amp;nbsp;&amp;nbsp;ifconfig_em1="up"&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Self_Test_5-0-0&amp;nbsp;安裝與設定 :&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Terminology:&lt;br /&gt;
&lt;blockquote&gt;Tester Node (&lt;b&gt;TN&lt;/b&gt;) : A tester node for the conformance tests.&lt;br /&gt;
Node Under Test (&lt;b&gt;NUT&lt;/b&gt;) : A testee node for the conformance tests.&lt;br /&gt;
Network Under Test : The network where the conformance tests are executed.&lt;br /&gt;
Tester Interface : The network interface of TN hooked up to the Network Under Test.&lt;br /&gt;
Interface Under Test : The network interface of NUT hooked up to the Network Under Test.&lt;/blockquote&gt;1.&amp;nbsp;安裝:&lt;br /&gt;
只需解壓縮就好&lt;br /&gt;
&lt;br /&gt;
2.&amp;nbsp;測試之前的準備:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;開始測試之前，需要依照你的測試架構做 tn and unt 的 defined，define 檔於 /usr/local/v6eval/etc/&lt;/li&gt;
&lt;li&gt;不確定是否是因為不了解它的測試架構，如要自動測試，使用者需自行修改測試 perl module /usr/local/lib/perl5/site_perl/5.10.1/V6evalRemote.pm 才能正常使用，或許因該有更好的方法才對 ??&lt;/li&gt;
&lt;li&gt;測試設定檔裡面的字串，"空白、跟Tab"，Script 對字串的除理沒有做的很好&lt;/li&gt;
&lt;li&gt;自動測試的 rmt 檔需要放在 /usr/local/v6eval/bin/{Type}/ 下&lt;/li&gt;
&lt;li&gt;利用rmt檔來測試是否能成功自動登入與登出&lt;br /&gt;
sudo /usr/local/v6eval/bin/{product name}/loginout.rmt -o1&lt;br /&gt;
sudo /usr/local/v6eval/bin/{product name}/reboot.rmt -o1&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
3.&amp;nbsp;實際測試環境:&lt;br /&gt;
&lt;br /&gt;
1) NUT is a host or special&lt;br /&gt;
&lt;blockquote&gt;TN &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUT&lt;br /&gt;
&amp;nbsp;| Tester I/f: em0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | I/f Under Test: 0/41&lt;br /&gt;
&amp;nbsp;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;br /&gt;
-+-----------------------+- Link0&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; Network Under Test&lt;/blockquote&gt;&lt;br /&gt;
4. 開始測試:&lt;br /&gt;
&lt;blockquote&gt;sudo make ipv6ready_p1_host; (Phase I)&lt;br /&gt;
sudo make ipv6ready_p2_host; (Phase II)&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;相關設定檔&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;$ cat /etc/rc.conf&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;# -- sysinstall generated deltas -- # Fri Jan 14 08:47:38 2011 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
# Created: Fri Jan 14 08:47:38 2011 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
# Enable network daemons for user convenience. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
# Please make all changes to this file, not to /etc/defaults/rc.conf. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
# This file now contains just the overrides from /etc/defaults/rc.conf. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
inetd_enable="YES" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
linux_enable="YES" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
sshd_enable="YES" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
ipv6_enable="NO" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
ifconfig_em1="up" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
ifconfig_em2="up"&lt;/blockquote&gt;&lt;b&gt;$ cat /usr/local/v6eval/etc/tn.def&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;#&lt;br /&gt;
# tn.def&lt;br /&gt;
#&lt;br /&gt;
# &amp;nbsp;Information about the Tester Node (TN)&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Remote Controal Configuration&lt;br /&gt;
#&lt;br /&gt;
RemoteDevice &amp;nbsp; &amp;nbsp;cuad0&lt;br /&gt;
RemoteDebug &amp;nbsp; &amp;nbsp; 0&lt;br /&gt;
RemoteIntDebug &amp;nbsp;0&lt;br /&gt;
RemoteLog &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;br /&gt;
RemoteSpeed &amp;nbsp; &amp;nbsp; 0&lt;br /&gt;
RemoteLogout &amp;nbsp; &amp;nbsp;0&lt;br /&gt;
RemoteMethod &amp;nbsp; &amp;nbsp;serial&lt;br /&gt;
#filter ipv6&lt;br /&gt;
&lt;br /&gt;
#linkname &amp;nbsp; &amp;nbsp; &amp;nbsp; interface &amp;nbsp; &amp;nbsp; &amp;nbsp; BOGUS ether source address&lt;br /&gt;
# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;of the Tester Interface&lt;br /&gt;
Link0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; em1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 00:00:00:00:01:00&lt;br /&gt;
#Link1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;de1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 00:00:00:00:01:01&lt;/blockquote&gt;&lt;b&gt;$ cat /usr/local/v6eval/etc/nut.def&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;#&lt;br /&gt;
# nut.def&lt;br /&gt;
#&lt;br /&gt;
# &amp;nbsp;Information about the Node Under Test (NUT)&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# System type&lt;br /&gt;
System &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{Product Name}&lt;br /&gt;
&lt;br /&gt;
# System information&lt;br /&gt;
TargetName &amp;nbsp; &amp;nbsp; &amp;nbsp;FreeBSD/i386 4.9-RELEASE + kame-20040726-freebsd49-snap&lt;br /&gt;
&lt;br /&gt;
# Name&lt;br /&gt;
HostName &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{another name}&lt;br /&gt;
&lt;br /&gt;
# Type&lt;br /&gt;
# &amp;nbsp; host, router, special&lt;br /&gt;
Type &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;host&lt;br /&gt;
&lt;br /&gt;
# Super user name and it's password&lt;br /&gt;
# if you select manual as "System", you don't care "User" and "Password"&lt;br /&gt;
#&lt;br /&gt;
User &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;admin&lt;br /&gt;
Password &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;admin&lt;br /&gt;
&lt;br /&gt;
#linkname &amp;nbsp; &amp;nbsp; &amp;nbsp; interface &amp;nbsp; &amp;nbsp; &amp;nbsp; The EXACT ether source address&lt;br /&gt;
# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;of the Interface Under Test&lt;br /&gt;
Link0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0/41 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:C0:9F:00:28:93&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;/usr/local/lib/perl5/site_perl/5.10.1/V6evalRemote.pm 改過的地方&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;$debug=1;&lt;br /&gt;
$Type="{System Type}";&lt;br /&gt;
$Device="cuad0";&lt;br /&gt;
$User="admin";&lt;br /&gt;
$Password="admin";&lt;br /&gt;
&lt;br /&gt;
# login prompt&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'User:',&lt;br /&gt;
# password prompt&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'Password:',&lt;br /&gt;
# command prompt&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; '#',&lt;br /&gt;
# command of the admin mode if any&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'enable',&lt;br /&gt;
# logout command&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'exit',&lt;br /&gt;
# reboot command&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'r',&lt;br /&gt;
# final confirmation for reboot if any&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'would like to reset the system',&lt;br /&gt;
# reply of the final confirmation for reboot&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'y',&lt;br /&gt;
# pre-final confirmation for reboot if any&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'Would you like to save them now',&lt;br /&gt;
# reply of the pre-final confirmation for reboot&lt;br /&gt;
'{System Type}', &amp;nbsp; &amp;nbsp; 'n',&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-3847209773763791137?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I7deD7Pl7x7z4NRfvmk1OJV-zXI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I7deD7Pl7x7z4NRfvmk1OJV-zXI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I7deD7Pl7x7z4NRfvmk1OJV-zXI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I7deD7Pl7x7z4NRfvmk1OJV-zXI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/kv64oT0Xcdc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/3847209773763791137/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=3847209773763791137" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3847209773763791137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3847209773763791137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/kv64oT0Xcdc/ipv6-ready-logo.html" title="IPv6 Ready Logo 筆記" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.ypwang.info/2011/02/ipv6-ready-logo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQCSX08eip7ImA9Wx9REEg.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-1331948516220529344</id><published>2010-12-11T00:49:00.000-08:00</published><updated>2010-12-11T00:49:28.372-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-11T00:49:28.372-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><title>git object</title><content type="html">git 裡，所有的檔案、文件與資料匝都是以 hash 來表示"身份" (object)，而 hash 是使用 SAH1，這樣每一個 object 幾呼是唯一性的。git 中所謂的 object 指的是，content 本身加上 hash，而 content 分為下面四種 blob,  tree, commit, and tag.&lt;br /&gt;
&lt;blockquote&gt;blob : the data is the contents of a file&lt;br /&gt;
tree : To store a directory, Git writes out an object describing the directory's contents&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;實際測試看看 :&lt;/b&gt;&lt;br /&gt;
$ echo "hello" &amp;gt; hello&lt;br /&gt;
$ git add .&lt;br /&gt;
$ git commit -am 'hello'&lt;br /&gt;
&lt;blockquote&gt;[master (root-commit) 21039e0] hello&lt;br /&gt;
&amp;nbsp;1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
&amp;nbsp;create mode 100644 hello&lt;/blockquote&gt;&lt;br /&gt;
$ mkdir foo&lt;br /&gt;
$ echo "bar" &amp;gt; foo/bar&lt;br /&gt;
$ echo "world" &amp;gt;&amp;gt; hello &lt;br /&gt;
$ git add .&lt;br /&gt;
$ git commit -am 'foo/bar and hello world'&lt;br /&gt;
&lt;blockquote&gt;[master ab4c151] foo/bar and hello world&lt;br /&gt;
2 files changed, 2 insertions(+), 0 deletions(-)&lt;br /&gt;
create mode 100644 foo/bar&lt;/blockquote&gt;&lt;br /&gt;
$ git log&lt;br /&gt;
&lt;blockquote&gt;commit ab4c151820a51da73eb00381472a4774475bcf66&lt;br /&gt;
Author: Yao-Po Wang &lt;blue119@gmail.com&gt;&lt;br /&gt;
Date:   Sat Dec 11 16:07:27 2010 +0800&lt;br /&gt;
&lt;br /&gt;
    foo/bar and hello world&lt;br /&gt;
&lt;br /&gt;
commit 21039e0f12ebf539275346566982566c3bcd9217&lt;br /&gt;
Author: Yao-Po Wang &lt;blue119@gmail.com&gt;&lt;br /&gt;
Date:   Sat Dec 11 16:06:32 2010 +0800&lt;br /&gt;
&lt;br /&gt;
    hello&lt;/blockquote&gt;&lt;br /&gt;
利用　git cat-file 來得到更多資訊&lt;br /&gt;
&lt;blockquote&gt;git-cat-file - Provide content or type and size information for repository objects&lt;br /&gt;
Option:&lt;br /&gt;
    -t : show the object type.&lt;br /&gt;
    -s : show the object size.&lt;br /&gt;
    -p : Pretty-print based on its type.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ git cat-file -t 21039&lt;br /&gt;
  commit&lt;br /&gt;
&lt;br /&gt;
$ git cat-file -s ab4c1&lt;br /&gt;
  234&lt;br /&gt;
&lt;br /&gt;
$ git cat-file -s 21039&lt;br /&gt;
  168&lt;/blockquote&gt;&lt;br /&gt;
可利用 -p or commit 來提到，此 commit 的 tree object&lt;br /&gt;
&lt;blockquote&gt;$ git cat-file commit 21039 &lt;br /&gt;
$ git cat-file -p 21039&lt;br /&gt;
tree b4d01e9b0c4a9356736dfddf8830ba9a54f5271c&lt;br /&gt;
author Yao-Po Wang &lt;blue119@gmail.com&gt; 1292054792 +0800&lt;br /&gt;
committer Yao-Po Wang &lt;blue119@gmail.com&gt; 1292054792 +0800&lt;br /&gt;
&lt;br /&gt;
hello&lt;/blockquote&gt;&lt;br /&gt;
從上面，我們可以得到 commit 的 tree object 利用 tree object 可得知，在這個 commit 的情況下目錄包含的&lt;br /&gt;
git ls-tree - List the contents of a tree object&lt;br /&gt;
&lt;blockquote&gt;$ git ls-tree 21039e0&lt;br /&gt;
100644 blob ce013625030ba8dba906f756967f9e9ca394464a hello&lt;br /&gt;
&lt;br /&gt;
$ git ls-tree ab4c151&lt;br /&gt;
040000 tree ee314a31b622b027c10981acaed7903a3607dbd4 foo&lt;br /&gt;
100644 blob 94954abda49de8615a048f8d2e64b5de848e27a1 hello&lt;br /&gt;
&lt;br /&gt;
$ git ls-tree -r ab4c151  &lt;-- recurse
100644 blob 5716ca5987cbf97d6bb54920bea6adde242d87e6 foo/bar
100644 blob 94954abda49de8615a048f8d2e64b5de848e27a1 hello
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
從 git ls-tree 我們可以知道，tree 下所有的 blob (補 SHA-1 的 content), 利用 cat-file blob 就可得知在些 commit 下的 blob 的內容&lt;br /&gt;
&lt;blockquote&gt;$ git cat-file -p ce0136&lt;br /&gt;
hello&lt;br /&gt;
&lt;br /&gt;
$ git cat-file blob 94954&lt;br /&gt;
hello&lt;br /&gt;
world&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
到這裡，因該可以大約的知道, 放在 git 裡的檔案是如果被儲存與 object 的架構, 而這些 object 是被存放在 .git/objects 下&lt;br /&gt;
&lt;blockquote&gt;$ tree .git/objects/&lt;br /&gt;
.git/objects/&lt;br /&gt;
├── 21&lt;br /&gt;
│   └── 039e0f12ebf539275346566982566c3bcd9217&lt;br /&gt;
├── 55&lt;br /&gt;
│   └── 9dbaeba4c3e2fff4ac4bf4323b13a5ed1616c7&lt;br /&gt;
├── 57&lt;br /&gt;
│   └── 16ca5987cbf97d6bb54920bea6adde242d87e6&lt;br /&gt;
├── 94&lt;br /&gt;
│   └── 954abda49de8615a048f8d2e64b5de848e27a1&lt;br /&gt;
├── ab&lt;br /&gt;
│   └── 4c151820a51da73eb00381472a4774475bcf66&lt;br /&gt;
├── b4&lt;br /&gt;
│   └── d01e9b0c4a9356736dfddf8830ba9a54f5271c&lt;br /&gt;
├── ce&lt;br /&gt;
│   └── 013625030ba8dba906f756967f9e9ca394464a&lt;br /&gt;
├── ee&lt;br /&gt;
│   └── 314a31b622b027c10981acaed7903a3607dbd4&lt;br /&gt;
├── info&lt;br /&gt;
└── pack&lt;br /&gt;
&lt;br /&gt;
10 directories, 8 files&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-1331948516220529344?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eRmZjQd7Fiv6E9Ro-cs81oMICm4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eRmZjQd7Fiv6E9Ro-cs81oMICm4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eRmZjQd7Fiv6E9Ro-cs81oMICm4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eRmZjQd7Fiv6E9Ro-cs81oMICm4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/gP_4xsEC4Gg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/1331948516220529344/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=1331948516220529344" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1331948516220529344?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1331948516220529344?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/gP_4xsEC4Gg/git-object.html" title="git object" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/12/git-object.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHR3syeip7ImA9Wx9TFkg.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-8704576773751762871</id><published>2010-11-24T18:00:00.000-08:00</published><updated>2010-11-24T18:00:36.592-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-24T18:00:36.592-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>Python Cheat Sheet</title><content type="html">剛剛逛 &lt;a href="http://plog.longwin.com.tw/"&gt;Tsung's Blog &lt;/a&gt;看到一篇分享 &lt;a href="http://%e7%94%a8%e4%b8%80%e5%bc%b5%e5%9c%96%e4%be%86%e7%82%ba%20python%20%e5%bf%ab%e9%80%9f%e5%85%a5%e9%96%80%28cheatsheet%29/"&gt;Python Cheat Sheet&lt;/a&gt; 的文章就想起，以前也曾經找過相關的東西，個人記性不是那麼好，只要過一陣子沒寫 Code 語法很快就會忘記，所以看 Cheat Sheet or Quick Reference 是最好的 recall 方式。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Quick Python Script Expalanation for Programmers from http://coffeeghost.net &lt;/i&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://coffeeghost.net/pybat/python_cheatsheet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://coffeeghost.net/pybat/python_cheatsheet.png" width="527" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;a href="http://wiki.woodpecker.org.cn/moin/ZqQuickIntoPy"&gt;中文版&lt;/a&gt; from http://wiki.woodpecker.org.cn/&lt;/i&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://wiki.woodpecker.org.cn/moin/ZqQuickIntoPy?action=AttachFile&amp;amp;do=get&amp;amp;target=coffeeghost-q-in-py_zh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="478" src="http://wiki.woodpecker.org.cn/moin/ZqQuickIntoPy?action=AttachFile&amp;amp;do=get&amp;amp;target=coffeeghost-q-in-py_zh.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://rgruet.free.fr/PQR26/PQR2.6.html"&gt;Python 2.6 Quick Reference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-8704576773751762871?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rf5JJ3kY4RD0nl9dLFfSNwYKKzU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rf5JJ3kY4RD0nl9dLFfSNwYKKzU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rf5JJ3kY4RD0nl9dLFfSNwYKKzU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rf5JJ3kY4RD0nl9dLFfSNwYKKzU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/tUQuNfUfW3w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/8704576773751762871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=8704576773751762871" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/8704576773751762871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/8704576773751762871?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/tUQuNfUfW3w/python-cheat-sheet.html" title="Python Cheat Sheet" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/11/python-cheat-sheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEEQ3Y8cCp7ImA9Wx9TEks.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-4900133144526483590</id><published>2010-11-20T06:16:00.000-08:00</published><updated>2010-11-20T06:16:42.878-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-20T06:16:42.878-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ksm linux vm" /><title>Kernel Shared Memory (KSM)</title><content type="html">Kernel Shared Memory[1] 有時也被稱為 Kernel Samepage Merging 是在 linux 2.6.32[2] 被加入 main tree 裡，簡單的話，它的目地如 XEN的 Memory CoW[3] 與 VmWare 的 Transparent Page Sharing[4] 一樣，把相同內容的 page merge 在一起就是做 de-duplication 的動作讓記憶體空間更有效的被利用，當然相對地，需要花更多的 CPU 效能來做這些事，不過相對上來說，因該還是值得的。&lt;br /&gt;
&lt;br /&gt;
動手玩看看前，先確定 linux kernel &amp;gt; 2.6.32 and Enable KSM&lt;br /&gt;
&lt;blockquote&gt;$ cat /boot/config-`uname -r` | grep KSM&lt;/blockquote&gt;&lt;blockquote&gt;CONFIG_KSM=y&lt;/blockquote&gt;&lt;br /&gt;
KSM 只能使用在利用 madvise syscall 將記憶體區塊設為 MADV_MERGEABLE，另外如要取消改為 MADV_UNMERGEABLE。所以需要確認 KVM 的版本 &amp;gt; v0.12.0-rc0。&lt;br /&gt;
&lt;br /&gt;
linux 有 Enable KSM 的話，/sys/kernel/mm/ksm/ 會有以下檔案&lt;br /&gt;
&lt;blockquote&gt;pages_shared&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;how many shared pages are being used&lt;/blockquote&gt;&lt;blockquote&gt;pages_sharing&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;how many more sites are sharing them i.e. how much saved&lt;/blockquote&gt;&lt;blockquote&gt;pages_unshared&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;how many pages unique but repeatedly checked for merging&lt;/blockquote&gt;&lt;blockquote&gt;pages_volatile&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;how many pages changing too fast to be placed in a tree&lt;/blockquote&gt;&lt;blockquote&gt;full_scans&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;how many times all mergeable areas have been scanned&lt;/blockquote&gt;&lt;blockquote&gt;run&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Whether the KSM process is running.&lt;/blockquote&gt;&lt;blockquote&gt;sleep_millisecs&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;how many milliseconds ksmd should sleep before performing another page scan.&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;開始使用&lt;/b&gt;&lt;br /&gt;
1. 開啟 KSM 功能&lt;br /&gt;
&lt;blockquote&gt;echo 1 &amp;gt; /sys/kernel/mm/ksm/run&lt;/blockquote&gt;&lt;br /&gt;
2. 開二個相似的 VM image&lt;br /&gt;
&lt;blockquote&gt;/opt/bin/qemu -hda xp.raw -m 1024 &amp;amp;&lt;/blockquote&gt;&lt;blockquote&gt;/opt/bin/qemu -hda xp2.raw -m 1024 &amp;amp;&lt;/blockquote&gt;&lt;br /&gt;
下面的二張圖是有開KSM跟沒關的差別，可明顯的看出，開了KSM的記憶體使用量少了一半左右&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vwWicVXotx0/TOfX7WLVVqI/AAAAAAAAAbQ/nZgvFjwjpSY/s1600/ksm_.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/_vwWicVXotx0/TOfX7WLVVqI/AAAAAAAAAbQ/nZgvFjwjpSY/s320/ksm_.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vwWicVXotx0/TOfX44P9GFI/AAAAAAAAAbM/4G1hXD0THnE/s1600/non-ksm_.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/_vwWicVXotx0/TOfX44P9GFI/AAAAAAAAAbM/4G1hXD0THnE/s320/non-ksm_.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
[1] http://lwn.net/Articles/306704/&lt;br /&gt;
[2] http://kernelnewbies.org/Linux_2_6_32&lt;br /&gt;
[3] http://www.xen.org/files/xensummit_fall07/18_GregorMilos.pdf&lt;br /&gt;
[4] http://kb.vmware.com/kb/1021095&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-4900133144526483590?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qn8batNNvnSqpt85JDc9muz60Nw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qn8batNNvnSqpt85JDc9muz60Nw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qn8batNNvnSqpt85JDc9muz60Nw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qn8batNNvnSqpt85JDc9muz60Nw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/RB7t8tbh84I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/4900133144526483590/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=4900133144526483590" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4900133144526483590?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4900133144526483590?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/RB7t8tbh84I/kernel-shared-memory-ksm.html" title="Kernel Shared Memory (KSM)" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_vwWicVXotx0/TOfX7WLVVqI/AAAAAAAAAbQ/nZgvFjwjpSY/s72-c/ksm_.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/11/kernel-shared-memory-ksm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcMR34_fyp7ImA9Wx5aFEs.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-948768738237378253</id><published>2010-11-11T01:01:00.000-08:00</published><updated>2010-11-11T01:01:26.047-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-11T01:01:26.047-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="network" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>讓你的封包，送出時自動加上 VLAN ID</title><content type="html">在 Linux 下，使用 VLAN 的方法&lt;br /&gt;
&lt;br /&gt;
1. insert 802.1q kernel module      &lt;br /&gt;
&lt;blockquote&gt; sudo modprobe 8021q&amp;nbsp;&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
2. create a vlan id on NIC by &lt;b&gt;vconfig&lt;/b&gt;。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt; sudo vconfig add eth0 111&lt;br /&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;Added VLAN with VID == 111 to IF -:eth0:-&lt;/blockquote&gt;&lt;pre&gt;3. start up eth0.111&lt;/pre&gt;&lt;blockquote&gt; sudo ifconfig eth0.111 192.168.1.2 up&lt;/blockquote&gt;&lt;br /&gt;
4. 測試前的準備:&lt;br /&gt;
&lt;blockquote&gt;sudo ifconfig eth0.111 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;eth0.111  Link encap:Ethernet  HWaddr 00:21:70:ff:d7:88  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::221:70ff:feff:d788/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:238 (238.0 B)&lt;/pre&gt;&lt;/blockquote&gt;5. 利用 wireshark 抓出來的封包&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vwWicVXotx0/TNuwegCuF2I/AAAAAAAAAa4/pUGr0VqkPkM/s1600/screenshot_2010-10-22-093710.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="66" src="http://2.bp.blogspot.com/_vwWicVXotx0/TNuwegCuF2I/AAAAAAAAAa4/pUGr0VqkPkM/s320/screenshot_2010-10-22-093710.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
此例中，在eth0上加上 vlanid 111，成功之後，會多出一個 eth0.111 的network device，只要是從這個 device 出去的封包，會自動加上 802.1Q 的 header&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-948768738237378253?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jO9RJGtfHMAa1Rodpl4x_LU4y0c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jO9RJGtfHMAa1Rodpl4x_LU4y0c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jO9RJGtfHMAa1Rodpl4x_LU4y0c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jO9RJGtfHMAa1Rodpl4x_LU4y0c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/uEOQJPwf3BE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/948768738237378253/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=948768738237378253" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/948768738237378253?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/948768738237378253?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/uEOQJPwf3BE/vlan-id.html" title="讓你的封包，送出時自動加上 VLAN ID" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_vwWicVXotx0/TNuwegCuF2I/AAAAAAAAAa4/pUGr0VqkPkM/s72-c/screenshot_2010-10-22-093710.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/11/vlan-id.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08AR3Y-cSp7ImA9Wx5UGUw.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-4266739948290470223</id><published>2010-10-24T02:17:00.000-07:00</published><updated>2010-10-24T02:17:26.859-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-24T02:17:26.859-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python zenity" /><title>zenity 的 python wrap : PyZenity</title><content type="html">Zenity 的相關範例可以參考&amp;nbsp;&lt;a href="http://linux.byexamples.com/archives/265/a-complete-zenity-dialog-examples-2/"&gt;A COMPLETE ZENITY DIALOG EXAMPLES 2&lt;/a&gt;&lt;br /&gt;
而 &lt;a href="http://www.brianramos.com/?page_id=110"&gt;PyZenity&lt;/a&gt; 其實一個 wrap 而已，執行時是 call popen(zenity)，而使用起來跟 zenity 差不多。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-4266739948290470223?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/P3w1LKpT7MewV5bltSS0gxV0CPs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P3w1LKpT7MewV5bltSS0gxV0CPs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/P3w1LKpT7MewV5bltSS0gxV0CPs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P3w1LKpT7MewV5bltSS0gxV0CPs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/ZlijNKF_etE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/4266739948290470223/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=4266739948290470223" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4266739948290470223?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4266739948290470223?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/ZlijNKF_etE/zenity-python-wrap-pyzenity.html" title="zenity 的 python wrap : PyZenity" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/10/zenity-python-wrap-pyzenity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ABR3szcSp7ImA9Wx5VEkk.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-3507449599265380658</id><published>2010-10-04T20:35:00.000-07:00</published><updated>2010-10-04T20:35:56.589-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-04T20:35:56.589-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="configure" /><title>Install Ubuntu 9.10 Karmic on Kohjinsha SX3 UMPC</title><content type="html">去年夏天，天真的想說，買台 UMPC 來當電子書使用，到後來，還是賣掉了，最主要是因為，1.2公斤還是太重，以下是當時的筆記，剛整理時發現的，或許，有人會需要它 :).&lt;br /&gt;
&lt;br /&gt;
1. Poulsbo (GMA500) Support in Karmic (9.10)1)&lt;br /&gt;
&lt;blockquote&gt;1)PPA-based (UbuntuMobile &amp;amp; Milone):&lt;br /&gt;
wget http://gma500re.altervista.org/scripts/poulsbo_ppa.sh &amp;amp;&amp;amp; sh ./poulsbo_ppa.sh&lt;br /&gt;
or&lt;br /&gt;
2) FTP-based (no ppa repositories):&lt;br /&gt;
wget http://gma500re.altervista.org/scripts/poulsbo.sh &amp;amp;&amp;amp; sh ./poulsbo.sh&lt;/blockquote&gt;2.&amp;nbsp; IM&lt;br /&gt;
&lt;blockquote&gt;http://vicamo.blogspot.com/2009/07/boshiamy-for-ibus.html &lt;/blockquote&gt;3.&amp;nbsp; pen screen&lt;br /&gt;
&lt;blockquote&gt;&lt;a href="http://jeiworld.blogspot.com/2009/04/sh8ubuntu-904-netbook-remix.html"&gt;工人舍SH8安裝Ubuntu 9.04 netbook remix初步心得&lt;/a&gt;&lt;span class="style2"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.penmount.com/down_2_1.php"&gt;penmount Driver Download                       &lt;/a&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-3507449599265380658?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FA0seBtXiyR8sbX3gTw53GgBcRI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FA0seBtXiyR8sbX3gTw53GgBcRI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FA0seBtXiyR8sbX3gTw53GgBcRI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FA0seBtXiyR8sbX3gTw53GgBcRI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/oPSPO6etT0s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/3507449599265380658/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=3507449599265380658" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3507449599265380658?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3507449599265380658?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/oPSPO6etT0s/install-ubuntu-910-karmic-on-kohjinsha.html" title="Install Ubuntu 9.10 Karmic on Kohjinsha SX3 UMPC" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/10/install-ubuntu-910-karmic-on-kohjinsha.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIDRXg6cCp7ImA9Wx5VFEg.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-8481257661992124696</id><published>2010-10-04T01:18:00.000-07:00</published><updated>2010-10-07T05:29:34.618-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T05:29:34.618-07:00</app:edited><title>call graph</title><content type="html">前幾天在 &lt;a href="http://www.youtube.com/user/chihchun"&gt;chihchun's Channel&lt;/a&gt; 看到 $4 之前於 H4 分享的 Debug 技巧，讓我想起，很久以前 Jserv 也於它的 blog 分享 GCC 函式追蹤功能 主要是利用 "finstrument-functions" 的功能，當進出 function 時，執行以下二個函式&lt;br /&gt;
&lt;pre class="C" name="SynCode"&gt;void __cyg_profile_func_enter (void *this_fn, void *call_site);
void __cyg_profile_func_exit  (void *this_fn, void *call_site);
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
先來個 example 試試看：&lt;br /&gt;
&lt;pre class="brush: c; ruler: true; first-line: 10; highlight: [2, 4, 6]"&gt;#include &lt;stdio.h&gt;

void __attribute__((__no_instrument_function__))
__cyg_profile_func_enter(void *this_func, void *call_site)
{
printf("Enter &amp;amp;%s:%p, called by %p \n", __FUNCTION__, this_func, call_site);
}

void __attribute__((__no_instrument_function__))
__cyg_profile_func_exit(void *this_func, void *call_site)
{
printf("Enter &amp;amp;%s:%p, called by %p \n", __FUNCTION__, this_func, call_site);
}

void a(void);
void b(void);

void b()
{
}

void a()
{
b();
}

int main(int argc, const char *argv[])
{
a();
return 0;
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="" name="N101B7"&gt;&lt;span class="atitle"&gt;利用 &lt;/span&gt;&lt;/a&gt;&lt;span class="atitle"&gt;j&lt;/span&gt;  的 Dot 語法，可以簡單的畫出 directed graph 語言感覺很像以前讀研究所時，寫 network simulation的腳本&lt;br /&gt;
&lt;pre class="C" name="SynCode"&gt;digraph G {
node1;
node2;
node3;

node1 -&amp;gt; node2 [label="edge_1_2"];
node1 -&amp;gt; node3 [label="edge_1_3"];
node2 -&amp;gt; node3 [label="edge_2_3"];
}
&lt;/pre&gt;&lt;br /&gt;
Conver to JPG:&lt;br /&gt;
&lt;blockquote&gt;dot -Tjpg  graph.dot -o graph.jpg&lt;/blockquote&gt;產生出來的圖&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_vwWicVXotx0/Sw4g6VKZE7I/AAAAAAAAARw/BXDTN_keyyo/s1600/a.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5408296389003776946" src="http://3.bp.blogspot.com/_vwWicVXotx0/Sw4g6VKZE7I/AAAAAAAAARw/BXDTN_keyyo/s320/a.jpg" style="cursor: pointer; display: block; height: 299px; margin: 0px auto 10px; text-align: center; width: 256px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reference:&lt;br /&gt;
http://tarot.freeshell.org/leafpad/&lt;br /&gt;
http://blog.linux.org.tw/~jserv/archives/001870.html&lt;br /&gt;
http://www.ibm.com/developerworks/cn/linux/l-graphvis/&lt;br /&gt;
http://blog.linux.org.tw/~jserv/archives/001723.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-8481257661992124696?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wZwZM0bANAzx9FuMwPlW9fbBfJI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wZwZM0bANAzx9FuMwPlW9fbBfJI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wZwZM0bANAzx9FuMwPlW9fbBfJI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wZwZM0bANAzx9FuMwPlW9fbBfJI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/U4vbgJBr25A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/8481257661992124696/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=8481257661992124696" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/8481257661992124696?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/8481257661992124696?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/U4vbgJBr25A/call-graph.html" title="call graph" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_vwWicVXotx0/Sw4g6VKZE7I/AAAAAAAAARw/BXDTN_keyyo/s72-c/a.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/10/call-graph.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4HSX04cCp7ImA9Wx5UF0g.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-4744208824919599325</id><published>2010-10-04T01:16:00.000-07:00</published><updated>2010-10-22T06:42:18.338-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-22T06:42:18.338-07:00</app:edited><title>booting iso from grub2</title><content type="html">1. Format a partition on the USB stick to some filesystem that's supported by GRUB 2 in the way you prefer to do that.&lt;br /&gt;
&lt;blockquote&gt;sudo mkfs.vfat /dev/sdd1 &lt;/blockquote&gt;&lt;br /&gt;
2. mount partition on the temp directory&lt;br /&gt;
&lt;blockquote&gt;sudo mkdir /media/flash_disk&lt;br /&gt;
sudo mount /dev/sdd1 /media/flash_disk/&lt;/blockquote&gt;&lt;br /&gt;
3. Install GRUB 2 onto the USB stick.&lt;br /&gt;
&lt;blockquote&gt;sudo grub-install --no-floppy --root-directory=/media/flash_disk/ /dev/sdd&lt;/blockquote&gt;&lt;br /&gt;
4. Edit /media/flash_disk/boot/grub/grub.cfg to point to the ISO files.&lt;br /&gt;
&lt;blockquote&gt;set timeout=10&lt;br /&gt;
set default=0&lt;br /&gt;
&lt;br /&gt;
menuentry "Run Ubuntu Live 10.04" {&lt;br /&gt;
&amp;nbsp;loopback loop /ubuntu-10.04-desktop-i386.iso&lt;br /&gt;
&amp;nbsp;linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-i386.iso splash --&lt;br /&gt;
&amp;nbsp;initrd (loop)/casper/initrd.lz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry "Ubuntu 10.4 Server i386" {&lt;br /&gt;
loopback loop /ubuntu-10.04-server-i386.iso&lt;br /&gt;
linux (loop)/install/vmlinuz --&lt;br /&gt;
initrd (loop)/install/initrd.gz&lt;br /&gt;
}&lt;/blockquote&gt;&lt;br /&gt;
5. copy linux cdrom iso to /media/flash_disk&lt;br /&gt;
&lt;blockquote&gt;cp ubuntu-10.04-desktop-i386 /media/flash_disk/&lt;/blockquote&gt;&lt;br /&gt;
6. booting by qemu&lt;br /&gt;
&lt;blockquote&gt;sudo /opt/bin/qemu -hda /dev/sdd -boot c -m 256 -localtime&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-4744208824919599325?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4ONrBtk6bs9EL-FcvTkZTGVQvXg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ONrBtk6bs9EL-FcvTkZTGVQvXg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4ONrBtk6bs9EL-FcvTkZTGVQvXg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ONrBtk6bs9EL-FcvTkZTGVQvXg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/-w41A1Fcy0Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/4744208824919599325/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=4744208824919599325" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4744208824919599325?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4744208824919599325?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/-w41A1Fcy0Q/booting-iso-from-grub2.html" title="booting iso from grub2" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/10/booting-iso-from-grub2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIGR3c9fSp7ImA9WxFWFE0.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-2662735705194939833</id><published>2010-06-01T07:45:00.000-07:00</published><updated>2010-06-01T07:45:26.965-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-01T07:45:26.965-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>Doxygen 初試</title><content type="html">最近部門開始要求要認真寫 functional spec，唉.. 但是沒有定義出正式的格式是什麼，之前在 maintain 部門的 code 時，發現這份 code 的 comment 是用 doxygen 的格式。&lt;br /&gt;
剛在網路上找到一份不錯的文章：&lt;a href="http://www.stack.nl/~dimitri/doxygen/doxygen_intro_cn.html"&gt;簡介Doxygen&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. 先在 project 目錄打 doxygen -g doxy.conf; doxy.conf是產生的 config 檔，使用 doxy 之前先對你的 project 做相關的設定&lt;br /&gt;
2. doxygen doxy.con; doxygen 後面直接接你的 config 檔，執行玩會發現你的目錄多出二個檔案匝 html and latex。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-2662735705194939833?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/shGTKXtGFlK0siEjMH0o7iCO-6w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/shGTKXtGFlK0siEjMH0o7iCO-6w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/shGTKXtGFlK0siEjMH0o7iCO-6w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/shGTKXtGFlK0siEjMH0o7iCO-6w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/KApZAx-4Mkg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/2662735705194939833/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=2662735705194939833" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/2662735705194939833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/2662735705194939833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/KApZAx-4Mkg/doxygen.html" title="Doxygen 初試" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/06/doxygen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QARHcyeyp7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-403793793963983392</id><published>2010-05-04T21:51:00.000-07:00</published><updated>2010-05-04T21:55:45.993-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T21:55:45.993-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="plugins" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="chrome" /><title>讓 Chrome 支援 Java</title><content type="html">&lt;ol&gt;&lt;li&gt;mkdir /opt/google/chrome/plugins&lt;/li&gt;&lt;li&gt;cd /opt/google/chrome/plugins&lt;/li&gt;&lt;li&gt;ln -s `dpkg -L sun-java6-bin | grep libnpjp2.so` .&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-403793793963983392?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ofCwQ8jSxtmV95d5blqqvHV1H7w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ofCwQ8jSxtmV95d5blqqvHV1H7w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ofCwQ8jSxtmV95d5blqqvHV1H7w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ofCwQ8jSxtmV95d5blqqvHV1H7w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/pOelP6XfQjU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/403793793963983392/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=403793793963983392" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/403793793963983392?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/403793793963983392?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/pOelP6XfQjU/chrome-java.html" title="讓 Chrome 支援 Java" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/05/chrome-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MEQ3Y7fip7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-7453864544213208081</id><published>2010-05-04T03:41:00.000-07:00</published><updated>2010-05-04T21:56:42.806-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T21:56:42.806-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="configure" /><category scheme="http://www.blogger.com/atom/ns#" term="network" /><category scheme="http://www.blogger.com/atom/ns#" term="juniper" /><title>recover juniper ex-4200's root password</title><content type="html">今天跟Lab拿了一台 Juniper EX-4200 24Port L3 Switch，開機之後，發現，需要帳號，問了所有可能模過這台機器的同事，沒想到沒人知道有帳號這回事 = ="....，那不就是買了快一年的機器，都被亮在那裡沒人去動。&lt;div&gt;其實一拿到 juniper 的機器就有很多地方覺的很有趣，如：它的boot loader是用 u-boot，system是用 freebsd 改的，還有 csh or bash 可以用 @@"，裡面有很多設計讓我大開眼境，不像 cisco like般，只有很單純的 cli 可以使用，而是你可以看到它與OS的整合，希望之後還有時間可以讓我慢慢玩這台機器。&lt;/div&gt;&lt;div&gt;recove的方法：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. 開機之後，出現下列文字，快點按下你的 SPACE&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Hit [Enter] to boot immediately, or space bar for command prompt.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Booting [/kernel] in 1 second...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;2. 輸入 "boot -s"&lt;/div&gt;&lt;div&gt;3. 出現 "&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Enter full pathname of shell or 'recovery' for root password recovery or RETURN for /bin/sh&lt;/span&gt;" 輸入  recovery&lt;/div&gt;&lt;div&gt;4. 之後就能順立開機，進入 single mode，且只要按照它的指示做就好了&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;NOTE: Once in the CLI, you will need to enter configuration mode using&lt;/div&gt;&lt;div&gt;NOTE: the 'configure' command to make any required changes. For example,&lt;/div&gt;&lt;div&gt;NOTE: to reset the root password, type:&lt;/div&gt;&lt;div&gt;NOTE: configure&lt;/div&gt;&lt;div&gt;NOTE: set system root-authentication plain-text-password&lt;/div&gt;&lt;div&gt;NOTE: (enter the new password when asked)&lt;/div&gt;&lt;div&gt;NOTE: commit&lt;/div&gt;&lt;div&gt;NOTE: exit&lt;/div&gt;&lt;div&gt;NOTE: exit&lt;/div&gt;&lt;div&gt;NOTE: When you exit the CLI, you will be asked if you want to reboot&lt;/div&gt;&lt;div&gt;NOTE: the system&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-7453864544213208081?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vjSmqU0QLPB6IBRgNlGGpDQrfUc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vjSmqU0QLPB6IBRgNlGGpDQrfUc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vjSmqU0QLPB6IBRgNlGGpDQrfUc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vjSmqU0QLPB6IBRgNlGGpDQrfUc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/fXFDOj3ivIw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/7453864544213208081/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=7453864544213208081" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/7453864544213208081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/7453864544213208081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/fXFDOj3ivIw/recover-juniper-ex-4200s-root-password.html" title="recover juniper ex-4200's root password" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/05/recover-juniper-ex-4200s-root-password.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MDSH47cSp7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-1580504507015727618</id><published>2010-04-29T01:01:00.000-07:00</published><updated>2010-05-04T21:57:59.009-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T21:57:59.009-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="elf" /><category scheme="http://www.blogger.com/atom/ns#" term="editor" /><category scheme="http://www.blogger.com/atom/ns#" term="embedded" /><title>hte: 超棒的 Hex's Editor</title><content type="html">&lt;div style="text-align: left;"&gt;&lt;a href="http://sourceforge.net/projects/hte/"&gt;hte - executable's editor&lt;/a&gt;&lt;/div&gt;&lt;div&gt;hte本身可以做到，hex edit 跟 分析 File formats，但目前使用上有一個缺點，它很多 binding-key 會跟 window manage衝到。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_vwWicVXotx0/S9k9DlCn9TI/AAAAAAAAAV0/r63daVezCc4/s320/3874245382.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5465466754482828594" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 229px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-1580504507015727618?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0uSI0p_hrlgkWiO_goW80W6kt0g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0uSI0p_hrlgkWiO_goW80W6kt0g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0uSI0p_hrlgkWiO_goW80W6kt0g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0uSI0p_hrlgkWiO_goW80W6kt0g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/mMNO1WcWS58" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/1580504507015727618/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=1580504507015727618" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1580504507015727618?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1580504507015727618?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/mMNO1WcWS58/hte-hexs-editor.html" title="hte: 超棒的 Hex's Editor" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_vwWicVXotx0/S9k9DlCn9TI/AAAAAAAAAV0/r63daVezCc4/s72-c/3874245382.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2010/04/hte-hexs-editor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IERXoyeip7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-7776883984346432214</id><published>2010-04-27T03:18:00.000-07:00</published><updated>2010-05-04T21:58:24.492-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T21:58:24.492-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vim" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>auto-update tags</title><content type="html">&lt;div&gt;工作後，大部份的時間都在 windows 上 Coding，問了蠻多人，大多在 Windows 上寫Coding的人，大多是用 Source Insigne、Ultra Edit。自已本身是用Source Insigne一開始使用就有種，無痛上手的感覺，使用起來，完全沒有門檻，當然也試過 Vim + winCtags，光是要想辨法建tags，就搞了好久，後來就直接放棄。&lt;/div&gt;&lt;div&gt;而自已本身大多還是習慣在Linux的環境下，不外呼，vim + ctags + cscope + Tlist + ........ ，在這多種組合下，用的還算順手，但對於 tag 的 auto update，一直到最近才找到如何處理。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. &lt;a href="http://vim.wikia.com/wiki/Autocmd_to_update_ctags_file"&gt;Autocmd to update ctags file&lt;/a&gt;&lt;/div&gt;&lt;div&gt;    可以利用下面的 vim function，當存檔時，會自助幫你執行 append 新的 tag，但沒辨法利用 set tags 的變數來決定我 tags的位置，目前是直接放棄這個方式。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;function! UPDATE_TAGS()&lt;/div&gt;&lt;div&gt;  let _f_ = expand("%:p")&lt;/div&gt;&lt;div&gt;  let _cmd_ = '"ctags -a -f /dvr/tags --c++-kinds=+p --fields=+iaS --extra=+q " ' . '"' . _f_ . '"'&lt;/div&gt;&lt;div&gt;  let _resp = system(_cmd_)&lt;/div&gt;&lt;div&gt;  unlet _cmd_&lt;/div&gt;&lt;div&gt;  unlet _f_&lt;/div&gt;&lt;div&gt;  unlet _resp&lt;/div&gt;&lt;div&gt;endfunction&lt;/div&gt;&lt;div&gt;autocmd BufWritePost *.cpp,*.h,*.c call UPDATE_TAGS()&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. &lt;a href="http://www.vim.org/scripts/script.php?script_id=1343"&gt;AutoTag : Updates entries in a tags file automatically when saving&lt;/a&gt;&lt;/div&gt;&lt;div&gt;    AutoTag主要是提供一支 autotags.vim的plugin，使用方法很簡單，只要將此plugin放入你.vim/plugin內就可以，而它是使用python來implement auto update的功能，這對只會寫 python 看不懂 vim script在做什麼的我，因該也算是一種好處吧 ，哈哈。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    今天，為了試看看，autotags.vim用在大型 project 速度上怎樣，我拿 linux kernel 2.6.31 來測試，做出來的 tags 約 85MB (arch/下只剩 powerpc的目錄)，我隨便開啟一個檔案，編輯後存檔，大約花了 5 秒做 auto update的動作(CPU是C2D E6600 @ 2.4G)，雖然花了5秒，但沒想像中的那麼慢，或許之後，可以思考如何去切而不是整個都包到同一個 tags 內。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;     在autotags.vim裡，有一個變數 __maxTagsFileSize 用來限定，tags的大小，預設是 7MB，如果你的 tags 超過這個大小，會直接放棄 update 的動作，當然，可以手動把它設大一點 :)。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    除了 ctags，cscope也是一個很好用的 source browsing，支援比ctags更多的功能，但它的 cscope.out ，好像不支援 append 的功能，如要更新，要全部重做一次。&lt;a href="http://vim.wikia.com/wiki/Automatically_create_and_update_cscope_database"&gt;Automatically create and update cscope database&lt;/a&gt;提供了一組 Hot-Key，來幫忙不用退出vim，"一指"完成。&lt;/div&gt;&lt;div&gt;Hot-Key如下：&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;nmap &lt;f9&gt; :!find . -iname '*.c' -o -iname '*.cpp' -o -iname '*.h' -o -iname '*.hpp' &gt; cscope.files&lt;cr&gt; &lt;/cr&gt;&lt;/f9&gt;&lt;/div&gt;&lt;div&gt;            \ :!cscope -b -i cscope.files -f cscope.out&lt;cr&gt; &lt;/cr&gt;&lt;/div&gt;&lt;div&gt;            \ :cs reset&lt;cr&gt;&lt;/cr&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-7776883984346432214?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ymNk4imzyRPTbLZ9EOGhFsb4olk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ymNk4imzyRPTbLZ9EOGhFsb4olk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ymNk4imzyRPTbLZ9EOGhFsb4olk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ymNk4imzyRPTbLZ9EOGhFsb4olk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/mSwTbl66cs0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/7776883984346432214/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=7776883984346432214" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/7776883984346432214?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/7776883984346432214?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/mSwTbl66cs0/auto-update-tags.html" title="auto-update tags" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.ypwang.info/2010/04/auto-update-tags.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ICSH07fip7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-1446951597433270705</id><published>2009-12-27T02:03:00.000-08:00</published><updated>2010-05-04T21:59:29.306-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T21:59:29.306-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="debug" /><category scheme="http://www.blogger.com/atom/ns#" term="gdb" /><title>linux's core dump</title><content type="html">core dump 的目地是當你的程式跑到一半當掉(異常中止跳出或freeze)時，我們可從 core 中得到最後掛在那裡，在加上 backtrace 就能快速的找出那裡有 bug :).&lt;br /&gt;&lt;br /&gt;先認定 core file size: ulimit -a&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_vwWicVXotx0/Szcy-LkGvkI/AAAAAAAAATU/nndMhLR4slk/s1600-h/3362954715.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 233px;" src="http://4.bp.blogspot.com/_vwWicVXotx0/Szcy-LkGvkI/AAAAAAAAATU/nndMhLR4slk/s320/3362954715.png" alt="" id="BLOGGER_PHOTO_ID_5419856720401186370" border="0" /&gt;&lt;/a&gt;如果是 0 的話，我們需要先做一些動作，才有辨法開啟 core dump 的功能.&lt;br /&gt;1. sudo vi /etc/security/limits.conf, 加入這行&lt;br /&gt;&lt;blockquote&gt;*               soft    core            unlimited&lt;/blockquote&gt;2. 開一個新的 terminal，輸入 ulimit -c，此時因該還是0, 利用 ulimit -c unlimited，更改成  unlimited。&lt;br /&gt;&lt;br /&gt;設定完 core file size 之後，我使用下面程式來測試 debgu 的效果&lt;br /&gt;&lt;pre name="SynCode" class="C"&gt;&lt;br /&gt;/*&lt;br /&gt;* file name: wrong.c&lt;br /&gt;* gcc -g wrong.c -o wrong&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;void func3()&lt;br /&gt;{&lt;br /&gt;//go to dia;&lt;br /&gt;char *x = 0x0;&lt;br /&gt;*x = 1;&lt;br /&gt;printf("%s", x);&lt;br /&gt;strcpy(x, "This is wrong");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void func2(void)&lt;br /&gt;{&lt;br /&gt;func3();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void func1(void)&lt;br /&gt;{&lt;br /&gt;func2();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;func1();&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/string.h&gt;&lt;/stdio.h&gt;&lt;/pre&gt;&lt;br /&gt;執行結果為：&lt;br /&gt;&lt;blockquote&gt;程式記憶體區段錯誤 (core dumped)&lt;/blockquote&gt;如沒有意外的話，因該可以看到多出了一個 core 的檔案&lt;br /&gt;&lt;blockquote&gt;$file core&lt;br /&gt;core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from './wrong'&lt;/blockquote&gt;有了 core file 之後，我們就可以利用 gdb 來做 backtrace&lt;br /&gt;&lt;blockquote&gt;$ gdb wrong core&lt;/blockquote&gt;&lt;blockquote&gt;Core was generated by `./wrong'.&lt;br /&gt;Program terminated with signal 11, Segmentation fault.&lt;br /&gt;#0  0x08048264 in func3 () at wrong.c:8&lt;br /&gt;&lt;br /&gt;warning: Source file is more recent than executable.&lt;br /&gt;8 &lt;/blockquote&gt;我們大概可以知道是停在 func3 裡，透過 print 可知道，發生了什麼事&lt;br /&gt;&lt;blockquote&gt;(gdb) p x&lt;br /&gt;$1 = 0x0&lt;br /&gt;(gdb) p *x&lt;br /&gt;Cannot access memory at address 0x0&lt;/blockquote&gt;另外，最好用的當然是 backtrace&lt;br /&gt;&lt;blockquote&gt;(gdb) where&lt;br /&gt;#0  0x08048264 in func3 () at wrong.c:8&lt;br /&gt;#1  0x080482a4 in func2 () at wrong.c:15&lt;br /&gt;#2  0x080482b1 in func1 () at wrong.c:20&lt;br /&gt;#3  0x080482be in main () at wrong.c:26&lt;br /&gt;(gdb) help where&lt;br /&gt;Print backtrace of all stack frames, or innermost COUNT frames.&lt;br /&gt;With a negative argument, print outermost -COUNT frames.&lt;br /&gt;Use of the 'full' qualifier also prints the values of the local variables.&lt;/blockquote&gt;where 指令，我們能很清楚的知道是從&lt;br /&gt;&lt;blockquote&gt;main -&gt; func1 -&gt; func2 -&gt; func3&lt;/blockquote&gt;另外還有一種情況是，程式掉進 trap，而不會觸發 SIGEGV signal，此時可以利用 xiaosuo 寫的 dumper 讓你所想要的程式觸發 signal 產生 core file。&lt;br /&gt;&lt;br /&gt;將 wrong.c 中的 func3 改成&lt;br /&gt;&lt;pre name="SynCode" class="C"&gt;&lt;br /&gt;void func3()&lt;br /&gt;{&lt;br /&gt; //go into loop;&lt;br /&gt; while(1){&lt;br /&gt;     sleep(1);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;compiler完之後，讓 wrong_loop 於背景執行&lt;br /&gt;&lt;blockquote&gt;./wrong_loop &amp;amp;&lt;br /&gt;[1] 31908&lt;/blockquote&gt;當然，我們都知道，它是不會中止的，此時可以利用 dumper 來中止 wrong_loop 且產生 core file&lt;br /&gt;&lt;blockquote&gt;$ ./dumper 31908 -k&lt;br /&gt;Start injecting(31908)...OK&lt;br /&gt;[1]+  不合法的命令      (core dumped) ./wrong_loop&lt;br /&gt;$&lt;br /&gt;$ file core&lt;br /&gt;core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from './wrong_loop'&lt;br /&gt;&lt;/blockquote&gt;產生了 core 我們就可利用 GDB 來debug&lt;br /&gt;&lt;blockquote&gt;$ gdb wrong_loop core&lt;br /&gt;.....&lt;br /&gt;Program terminated with signal 4, Illegal instruction.&lt;br /&gt;#0  0xbfe0f4dc in ?? ()&lt;br /&gt;(gdb) where&lt;br /&gt;#0  0xbfe0f4dc in ?? ()&lt;br /&gt;#1  0x08048266 in func3 () at wrong_loop.c:8&lt;br /&gt;#2  0x08048273 in func2 () at wrong_loop.c:14&lt;br /&gt;#3  0x08048280 in func1 () at wrong_loop.c:19&lt;br /&gt;#4  0x0804828d in main () at wrong_loop.c:25&lt;br /&gt;(gdb) &lt;/blockquote&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.akadia.com/services/ora_enable_core.html"&gt;How do I enable core dumps for everybody&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sky.csie.org/sky/archives/000037.html"&gt;何謂core dump&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.study-area.org/cyril/opentools/opentools/x1265.html"&gt;進階gdb&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.chinaunix.net/u/5251/showart_517381.html"&gt;xiaosuo用dumper打开运行程序的core dump功能&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-1446951597433270705?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lv0hid3iluioZARHpzZGEUXKsRk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lv0hid3iluioZARHpzZGEUXKsRk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lv0hid3iluioZARHpzZGEUXKsRk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lv0hid3iluioZARHpzZGEUXKsRk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/iFi0xQSrX7E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/1446951597433270705/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=1446951597433270705" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1446951597433270705?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1446951597433270705?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/iFi0xQSrX7E/linuxs-core-dump.html" title="linux's core dump" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_vwWicVXotx0/Szcy-LkGvkI/AAAAAAAAATU/nndMhLR4slk/s72-c/3362954715.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.ypwang.info/2009/12/linuxs-core-dump.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EHQH49cSp7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-1240648336187192946</id><published>2009-12-13T08:07:00.000-08:00</published><updated>2010-05-04T22:00:31.069-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T22:00:31.069-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="backup" /><title>UNISON 無法備份目錄的問題</title><content type="html">最近買了新的 usb stick，試了一下 unison 此 sync 軟體，發現無法備份目錄，會出現&lt;br /&gt;&lt;blockquote&gt;fails to set permissions&lt;/blockquote&gt;的 error，不過可自行更改一下 sync 的設定檔，加入下面二行&lt;br /&gt;&lt;blockquote&gt;owner=false&lt;br /&gt;perms=0&lt;/blockquote&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://greekbitches.blogspot.com/2009/05/unison-fails-to-set-permissions.html"&gt;Unison fails to set permissions&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-1240648336187192946?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wYVBTJqGz1RwYu8H7hVbPWoiBcg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wYVBTJqGz1RwYu8H7hVbPWoiBcg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wYVBTJqGz1RwYu8H7hVbPWoiBcg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wYVBTJqGz1RwYu8H7hVbPWoiBcg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/eNc4h6_zpWc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/1240648336187192946/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=1240648336187192946" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1240648336187192946?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1240648336187192946?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/eNc4h6_zpWc/unison.html" title="UNISON 無法備份目錄的問題" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/12/unison.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYDRnwzcSp7ImA9WxFQEE4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-3502783228236971833</id><published>2009-12-02T18:02:00.000-08:00</published><updated>2010-05-04T22:26:17.289-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T22:26:17.289-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="coding" /><title>coding style</title><content type="html">以前有試過使用 &lt;a href="http://www.gnu.org/software/indent/"&gt;indent&lt;/a&gt; 讓自已的 code 長的"漂亮"一點，但每次都是久久用一次，常也忘了，自已喜歡的 style 是那一種，這次把 indent 提供的 四種 style (gnu, kr, orig, linux)，整理一下，直接用圖來表示，那下次在看就能很方便的知道，各 style 是長怎樣。另外，如 -gnu，是它的 condig style而真正的它下面那一長串是這個 style 的細節，當然也可以直接用那一長串，自已在慢慢調成你要的。&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;還未 indent 過的 source code.&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_vwWicVXotx0/S-D_xNZDCmI/AAAAAAAAAWc/9C1-ctwQ_D8/s1600/3638859278.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 158px; height: 320px;" src="http://2.bp.blogspot.com/_vwWicVXotx0/S-D_xNZDCmI/AAAAAAAAAWc/9C1-ctwQ_D8/s320/3638859278.png" alt="" id="BLOGGER_PHOTO_ID_5467651168501172834" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;1. The GNU style: -gnu&lt;br /&gt;&lt;blockquote&gt;-nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2 -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -nprs -psl -saf -sai -saw -nsc -nsob&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_vwWicVXotx0/S-EA1mIi3fI/AAAAAAAAAWs/WopVyMXEugA/s1600/223402378.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 150px; height: 320px;" src="http://4.bp.blogspot.com/_vwWicVXotx0/S-EA1mIi3fI/AAAAAAAAAWs/WopVyMXEugA/s320/223402378.png" alt="" id="BLOGGER_PHOTO_ID_5467652343373946354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;2. The Kernighan &amp;amp; Ritchie style: -kr&lt;br /&gt;&lt;blockquote&gt;-nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -nprs -npsl -saf -sai -saw -nsc -nsob -nss&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_vwWicVXotx0/S-EBHpaS9lI/AAAAAAAAAW0/r6gWs9ZPAQk/s1600/2150037332.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 151px; height: 320px;" src="http://4.bp.blogspot.com/_vwWicVXotx0/S-EBHpaS9lI/AAAAAAAAAW0/r6gWs9ZPAQk/s320/2150037332.png" alt="" id="BLOGGER_PHOTO_ID_5467652653491353170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. The original Berkeley style: : -orig&lt;br /&gt;&lt;blockquote&gt;-nbad -nbap -bbo -bc -br -brs -c33 -cd33 -cdb -ce -ci4 -cli0 -cp33 -di16 -fc1 -fca -hnl -i4 -ip4 -l75 -lp -npcs -nprs -psl -saf -sai -saw -sc -nsob -nss -ts8&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vwWicVXotx0/S-D_6R4D3sI/AAAAAAAAAWk/bK-rNEByPPY/s1600/3588470361.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 132px; height: 320px;" src="http://3.bp.blogspot.com/_vwWicVXotx0/S-D_6R4D3sI/AAAAAAAAAWk/bK-rNEByPPY/s320/3588470361.png" alt="" id="BLOGGER_PHOTO_ID_5467651324323815106" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;4. The Linux style: -linux&lt;br /&gt;&lt;blockquote&gt;-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai -saf -saw -ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_vwWicVXotx0/S-EBYxN2C1I/AAAAAAAAAW8/LahlzJ_AHH8/s1600/3516830020.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 154px; height: 320px;" src="http://1.bp.blogspot.com/_vwWicVXotx0/S-EBYxN2C1I/AAAAAAAAAW8/LahlzJ_AHH8/s320/3516830020.png" alt="" id="BLOGGER_PHOTO_ID_5467652947644386130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-3502783228236971833?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nlh1KcCw0i_U1N1JOgdocpDApQs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nlh1KcCw0i_U1N1JOgdocpDApQs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nlh1KcCw0i_U1N1JOgdocpDApQs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nlh1KcCw0i_U1N1JOgdocpDApQs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/FJaBfq06fDo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/3502783228236971833/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=3502783228236971833" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3502783228236971833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/3502783228236971833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/FJaBfq06fDo/coding-style.html" title="coding style" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_vwWicVXotx0/S-D_xNZDCmI/AAAAAAAAAWc/9C1-ctwQ_D8/s72-c/3638859278.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/12/coding-style.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4DRXo_cSp7ImA9WxNaFEU.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-2507366734820125187</id><published>2009-11-29T01:53:00.000-08:00</published><updated>2009-11-29T02:02:54.449-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-29T02:02:54.449-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="學習筆記" /><title>screen</title><content type="html">這二天在想，因該好好的學習一下 &lt;a href="http://www.gnu.org/software/screen/"&gt;screen&lt;/a&gt; 要怎麼使用，從最一開始使用 screen 只是很單純的把他當成一個不會因為斷線就無法執行之後工作的 terminal 來使用，從官方對於 screen 的簡介:&lt;br /&gt;&lt;blockquote&gt;Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.&lt;/blockquote&gt;我想，我一直漏掉 multiplexes 的重要特色。&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://tavi.debian.org.tw/index.php?page=screen"&gt;screen 中文教學 on debian wiki&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.seety.org/everydaywork/2007/4/25/669/"&gt;screenrc 分享&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gnu.org/software/screen/manual/"&gt;Screen User's Manual&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-2507366734820125187?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1WIbojV82hF6IZI-fpUKlVgnvpY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1WIbojV82hF6IZI-fpUKlVgnvpY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1WIbojV82hF6IZI-fpUKlVgnvpY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1WIbojV82hF6IZI-fpUKlVgnvpY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/pKc9TB4v6as" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/2507366734820125187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=2507366734820125187" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/2507366734820125187?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/2507366734820125187?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/pKc9TB4v6as/screen.html" title="screen" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/screen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8EQ3Y8cSp7ImA9WxNaEk8.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-4912802108156259867</id><published>2009-11-25T23:45:00.000-08:00</published><updated>2009-11-26T00:06:42.879-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-26T00:06:42.879-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="技術筆記" /><title>利用 rsa 登入 SSH Server</title><content type="html">1. ssh-keygen -t rsa&lt;br /&gt;   &lt;blockquote&gt;Generating public/private rsa key pair.&lt;br /&gt;   Enter file in which to save the key (/home/username/.ssh/id_rsa): [按 Enter 使用預設值（建議）]&lt;br /&gt;   Enter passphrase: 輸入你的 Passphrase&lt;br /&gt;   Enter same passphrase again: 再一次輸入你的 Passphrase&lt;br /&gt;   Your identification has been saved in /home/username/.ssh/id_rsa.&lt;br /&gt;   Your public key has been saved in /home/username/.ssh/id_rsa.pub.&lt;br /&gt;   The key fingerprint is: cc:e8:a9:da:a3:41:c6:a9:97:52:59:ef:0c:cf:45:b6 username@abc.com&lt;/blockquote&gt;2. scp ~/.ssh/*.pub 你欲登入的主機:~/.ssh/.&lt;br /&gt;3. ssh 你欲登入的主機&lt;br /&gt;4. cat ~/.ssh/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys&lt;br /&gt;5. chmod 711 ~/.ssh&lt;br /&gt;6. chmod 644 ~/.ssh/authorized_keys&lt;br /&gt;&lt;br /&gt;發現，用 ubuntu 9.10 完成以上這些動作，就可以直接登入主機，不需在使用 ssh-agent&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://plog.longwin.com.tw/my_note/2005/12/28/ssh_keygen_no_passwd"&gt;ssh keygen 免輸入密碼&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://josephjiang.com/article/understand-ssh-key/"&gt;SSH 免密碼登入 &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://josephjiang.com/article/putty-key/"&gt;PuTTY 免密碼登入 &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sial.org/howto/openssh/publickey-auth/"&gt;OpenSSH Public Key Authentication&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-4912802108156259867?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jjk4YolxUWrbIeCfXTYpzIM5lvs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jjk4YolxUWrbIeCfXTYpzIM5lvs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jjk4YolxUWrbIeCfXTYpzIM5lvs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jjk4YolxUWrbIeCfXTYpzIM5lvs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/IdU_i_q6Ob0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/4912802108156259867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=4912802108156259867" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4912802108156259867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4912802108156259867?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/IdU_i_q6Ob0/rsa-ssh-server.html" title="利用 rsa 登入 SSH Server" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/rsa-ssh-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BRX86fSp7ImA9WxNaEEk.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-4877981695117363169</id><published>2009-11-23T23:11:00.001-08:00</published><updated>2009-11-23T23:15:54.115-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-23T23:15:54.115-08:00</app:edited><title>Diff &amp; Merge tool</title><content type="html">原本都是在 windows 下使用 WinMerge ，在Linux 下一直找不到好用的工具，上星期參加 H4 ，有人提到 vimdiff ，這二天 survey 了一下，有那些 diff merge tools 可以使用：&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sdiff&lt;/span&gt; &lt;- 單純印出，每一行的內容&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vimdiff&lt;/span&gt; &lt;- 好像沒辨法對目錄下所有的檔案做比較，希望可以像 meld 那樣&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;meld&lt;/span&gt; &lt;- 目前試了一下，還不錯&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;kdiff3&lt;/span&gt; &lt;- 我大多是用 Gnome，不太想多裝 KDE lib&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DiffMerge&lt;/span&gt; &lt;- non-opensource&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://amjith.blogspot.com/2007/07/visual-diff-tools-in-linux.html"&gt;Visual Diff Tools in Linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-4877981695117363169?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/74Bgc2W_5oPSU1Eyc8vH9ScujTg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/74Bgc2W_5oPSU1Eyc8vH9ScujTg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/74Bgc2W_5oPSU1Eyc8vH9ScujTg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/74Bgc2W_5oPSU1Eyc8vH9ScujTg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/aosu-BdFKhM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/4877981695117363169/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=4877981695117363169" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4877981695117363169?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/4877981695117363169?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/aosu-BdFKhM/diff-merge-tool.html" title="Diff &amp; Merge tool" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/diff-merge-tool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUFQ384eSp7ImA9WxNaEE8.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-549281937782628507</id><published>2009-11-23T16:45:00.000-08:00</published><updated>2009-11-23T16:56:52.131-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-23T16:56:52.131-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="技術文件" /><title>超棒的 Debian 小技巧</title><content type="html">今早看到 &lt;a href="http://people.debian.org.tw/%7Echihchun/"&gt;Rex&lt;/a&gt; 於 H4 mail-list ，分享給大家的 fortunes-debian-hints's zh_TW.po 裡面寫了蠻多好用的小技巧。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #1: 您可以使用 reportbug 套件中的 'reportbug' 指令來回報問題，或者也可使用圖形化介面 'reportbug-ng'。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #2: 您可以使用 'dpkg-reconfigure &lt;package&gt;' 變更在您第一次安裝一個套件時曾回答的問題。另外 'configure-debian' 套件為此提供了一個統一的介面。&lt;/package&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #3: 您可以使用 'apt-cache search &lt;關鍵字&gt;' 搜尋所有套件的描述的關鍵字。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #4: 您可以使用 'apt-cache policy &lt;packages&gt;' 查看可用的以及已安裝的所有候選套件的版本資訊。&lt;/packages&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #5: 如果您需要編譯一個自定的核心，請使用 kernel-package 套件中的 'make-kpkg' 指令稿。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #6: 第 #6 個提示不存在。今天就來生一個！&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #7: 您可以使用 cron-apt 套件每晚自動下載您更新套件。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #8: 如果您在 Debian 中遇到的問題，無法透過閱讀手冊和文件解決，那麼請到 Debian 用戶郵遞論壇詢問 (簡: debian-chinese-gb@lists.debian.org，繁: debian-chinese-big5@lists.debian.org)。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #9: 如果您需要知道目前正在使用的 Debian 是什麼版本，請查看 /etc/debian_version；如果您想知道那個版本的開發代號 (例如: 3.0 的開發代號是'Woody')，請參考此連結:  http://www.debian.org/doc/FAQ/ch-ftparchives.html#s-codenames&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #10: Debian 郵遞論壇討論使用者問題或者 Debian 政策文件。瀏覽 http://www.debian.org/MailingLists/ 並訂閱您所感興趣的內容吧。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #11: 關心新聞 - 閱讀 Debian Times。請於線上瀏覽 http://times.debian.net/&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #12: 有一個 grep-dctrl 套件提供了若干指令，它們可用來快速搜索各種套件的 control 檔 (像是套件中的檔案)。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #13: 如果您不喜歡使用某個 Debian 套件的預設選項，您可以把它的源碼下載下來，按照您的偏好重新編譯一個版本。請參考 http://www.debian.org/doc/FAQ/ch-pkg_basics.html (第 6.13 和 6.14 節) 瞭解更多資訊。不過請記住，大部分軟體的多數選項都能夠在執行時進行設定，通常不必重新編譯套件。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #14: 如果您想追蹤某個套件的發展 (比如說，如果您希望瞭解缺陷回報，發行通知以及其它類似資訊)，請考慮在套件追蹤系統 (Package Tracking System)中訂閱。您可以於此找到有關套件跟蹤系統 (PTS) 的更多資訊:http://www.debian.org/doc/manuals/developers-reference/resources.html (第 4.10 節)&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #15: 一般而言套件的文件可以在 /usr/share/doc/&lt;package&gt; 下找到。特別注意 README.Debian 文件專門提供 Debian 專屬資訊。&lt;/package&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #16: 如果您正在搜索一個不知道屬於那個套件的檔案，請試試 'apt-file'，它為這類資訊提供了一個小型的資料庫。或者您也可以從 Debian 套件資料庫中搜索這些內容，也可以進行檔案搜尋:"http://www.debian.org/distrib/packages#search_contents&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #17: 想找一些人聊聊 Debian 嗎? 如果您習慣於 IRC (Intenret Relay Chat) 聊天，只要安裝您慣用的 IRC 軟體，然後加入 irc.debian.org 的 #debian 或 #dot 或 #debian-zh 頻道就可以了。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #18: 在 http://packages.qa.debian.org/&lt;package&gt; 可以找到套件的品管資訊。這個頁面提供了維護人員的品質保證網頁、BTS、套件新聞、以及檔案庫中的可用版本。&lt;/package&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #19: 如果您對從封裝軟體套件感興趣，您應該考慮安裝 apt-src 這個套件。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #20: 想要持續追蹤某個您已安裝的套件版本紀錄 (對那些混用 stable / testing / unstable 系統的人尤其有用)？請試試 apt-show-versions。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #21: 如果您的 Debian 機器所使用的連線速度很慢，但是您可以使用另一個比較快的網路，那麼請試試 apt-zip 套件。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #22: 正在猶豫使用哪個 Debian 鏡像站？請試試 apt-spy 和 netselect-apt 套件，它們可以為您測試不同網站的速度。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #23: 若您的系統佔用了太多的硬碟空間，請試試 deborphan 套件。它能建議您哪些套件是無用的且可刪除的。當然，別忘了清除掉 APT 暫存 (使用 'apt-get clean'、'aptitude clean'、或者 aptitude 工具選單中的 '動作'-&gt;'清除套件暫存' 選項)。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #24: 如果您想感謝某個維護者對於所處理的問題的辛勞，請試試reportbug --kudos。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #25: 'debian-reference' 套件為 Debian 使用者和開發人員提供了非常廣泛的參考文件。其中大多數資訊都在這個連結:http://www.debian.org/doc/manuals/reference。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #26: 如果一個套件沒有足夠的參考文件，那麼請查找名為 &lt;package&gt;-doc 的套件，並確認已經安裝。通常含有大量文件的套件會被拆開，這是考慮到某些使用者並不想安裝文件。&lt;/package&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #27: 請定期檢查您的備份。您*確定*備份無誤了，對吧？ 對吧？(此技巧帶給您的當頭棒喝是 '徹' '底' '崩' '潰'，以及「空」。)&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #28: 如果您的機器並非持續處於開機狀態 (例如一台筆記型電腦)，請試試 'anacron' 套件。即使在機器並未開機，它能夠確保讓該定期執行的軟體依然被啟動。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #29: 保持您系統時鐘的精確性 - 請安裝 'ntpdate' 套件並且設定為每次開機自動啟動。另外，經常開機的機器應該通過安裝 'ntp' 套件在每次開機時進校時。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #30: 若安裝了 'doc-base' 和 'doc-central' 套件以及相依的套件後，就可以從 http://localhost/ 來瀏覽文件囉。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #31: 停用一個特定 runlevel 的開機服務，應該是將 /etc/rc&lt;level&gt;.d 中以 S 開頭的鏈接變更為 K 開頭的鏈接，而不是刪除那個鏈接。如果所有的鏈接都被刪除了，那麼系統在下次安裝升級套件時都將假定它們需要被替換。&lt;/level&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #34: 有一個 'doc-debian' 套件提供了一些有關 Debian 項目的通用文件。它還有西班牙語版本 (doc-debian-es)、法語版本 (doc-debian-fr) 和烏克蘭語版本 (doc-debian-uk)。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #35: 'devscripts' 套件為那些希望改進 Debian 的使用者提供了一些有用的指令，如 wnpp-alert, rc-alert 以及 bts。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #36: 如果您希望追蹤 Debian 開發版 (sid)，但只有少量的下載權限或者一個頻寬很小的網路，請試試 debdelta 套件。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #37: 搜尋遊戲嗎 ? 試試 'goplay' 吧，它提供了一個很棒的使用介面可瀏覽各種類型的遊戲。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #38: 需要一些比 Debian 穩定版更新的套件，但又不願升級到 'testing' 或者 'unstable' 嗎? 有些更新套件擺在 volatile.debian.org，另一些套件可在 www.backports.org 找到。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #39: 希望下載一個套件但卻不想安裝它？請用 'aptitude download &lt;pkgname&gt;'。&lt;/pkgname&gt;&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #40: 想學會使用軟體的新技巧嗎？ \"man\" 是你最佳好友！ 在 shell 下打 \"man &lt;程式名稱&gt;\" 或者打 \"man -H &lt;程式名稱&gt;\" 在瀏覽器下閱讀操作手冊。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #41: 安裝 bash-completion 軟體套件可增強 bash's 的 tab 補齊功能。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #42: 如果你安裝了 command-not-found，當你鍵入系統未安裝之軟體時候，系統將會自動提醒你應該安裝那個套件。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #3: 您可以使用 'apt-cache show &lt;套件名稱&gt;' 或 'aptitude show &lt;套件名稱&gt; 來取得套件的詳細描述。&lt;br /&gt;&lt;br /&gt;Debian 小技巧 #44: 您可以使用 'apt-file list &lt;套件名稱&gt; 來查詢套件中所包含得檔案。這個指令很接近 dpkg -L，只是不需要安裝或先下載該套件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-549281937782628507?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O_oFTLGKy-MyXFs2vlUc7rQWm1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O_oFTLGKy-MyXFs2vlUc7rQWm1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O_oFTLGKy-MyXFs2vlUc7rQWm1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O_oFTLGKy-MyXFs2vlUc7rQWm1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/q4E2k8DPRGU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/549281937782628507/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=549281937782628507" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/549281937782628507?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/549281937782628507?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/q4E2k8DPRGU/debian.html" title="超棒的 Debian 小技巧" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/debian.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CQng9eyp7ImA9WxNbGUk.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-418637274689095430</id><published>2009-11-22T19:23:00.000-08:00</published><updated>2009-11-22T19:29:23.663-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-22T19:29:23.663-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="學習筆記" /><title>dns timing issus when install ttf-mscorefonts</title><content type="html">安裝 ttf-mscorefonts 會出現某些檔案無法下載，主要是因為下載時，wget 的參數 timeout 設的太短了，可參考 ubuntu &lt;a href="https://bugs.launchpad.net/ubuntu/+source/msttcorefonts/+bug/431217"&gt;Bug #431217&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以下做簡單的筆記：&lt;br /&gt;1. sudo vi /var/lib/&lt;wbr&gt;dpkg/info/&lt;wbr&gt;ttf-mscorefonts&lt;wbr&gt;-installer.&lt;wbr&gt;postinst #改成下面的內容&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;#!/bin/bash&lt;/p&gt; &lt;p&gt;#Version: 1.0&lt;br /&gt;#Info: Bash script to install mscorefonts without using&lt;br /&gt;#currently broken ttf-mscorefonts&lt;wbr&gt;-installer (3.0) for&lt;br /&gt;#Ubuntu 9.10 Karmic Koala (date: 03/11/09)&lt;/p&gt; &lt;p&gt;#Author: Jonathan K.&lt;br /&gt;#Website: &lt;a rel="nofollow" href="http://www.friendlytechninja.vndv.com/"&gt;http://&lt;wbr&gt;www.friendlytec&lt;wbr&gt;hninja.&lt;wbr&gt;vndv.com&lt;/a&gt;&lt;br /&gt;#Email: &lt;email&gt;&lt;/email&gt;&lt;/p&gt; &lt;p&gt;#License: This is free to use and distribute (for free only) as long as&lt;br /&gt;#credit is given to original author.&lt;/p&gt; &lt;p&gt;#Create temp and mscorefonts dir&lt;br /&gt;sudo mkdir /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts&lt;br /&gt;mkdir /tmp/mscorefonts&lt;br /&gt;cd /tmp/mscorefonts&lt;/p&gt; &lt;p&gt;#Download links&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/andale32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/andale32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/arial32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/arial32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/arialb32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/arialb32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/comic32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/comic32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/courie32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/courie32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/georgi32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/georgi32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/impact32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/impact32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/times32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/times32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/trebuc32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/trebuc32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/verdan32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/verdan32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;br /&gt;wget &lt;a rel="nofollow" href="http://sourceforge.net/projects/corefonts/files/the%20fonts/final/webdin32.exe/download?use_mirror=cdnetworks-kr-1"&gt;http://&lt;wbr&gt;sourceforge.&lt;wbr&gt;net/projects/&lt;wbr&gt;corefonts/&lt;wbr&gt;files/the%&lt;wbr&gt;20fonts/&lt;wbr&gt;final/webdin32.&lt;wbr&gt;exe/download?&lt;wbr&gt;use_mirror=&lt;wbr&gt;cdnetworks-&lt;wbr&gt;kr-1&lt;/a&gt;&lt;/p&gt; &lt;p&gt;#Extract all .tff files&lt;br /&gt;cabextract *.exe -F*.ttf -L&lt;/p&gt; &lt;p&gt;#Rename files and move files&lt;br /&gt;sudo cp andalemo.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Andale_&lt;wbr&gt;Mono.ttf&lt;br /&gt;sudo cp ariali.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Arial_Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp arialbd.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Arial_Bold.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp arialbi.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Arial_Bold_&lt;wbr&gt;Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp arial.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Arial.ttf&lt;br /&gt;sudo cp ariblk.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Arial_Black.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp comicbd.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Comic_Sans_&lt;wbr&gt;MS_Bold.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp comic.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Comic_Sans_&lt;wbr&gt;MS.ttf&lt;br /&gt;sudo cp cour.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Courier_&lt;wbr&gt;New.ttf&lt;br /&gt;sudo cp courbd.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Courier_&lt;wbr&gt;New_Bold.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp courbi.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Courier_&lt;wbr&gt;New_Bold_&lt;wbr&gt;Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp couri.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Courier_&lt;wbr&gt;New_Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp georgiaz.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Georgia_&lt;wbr&gt;Bold_Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp georgiab.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Georgia_&lt;wbr&gt;Bold.ttf&lt;br /&gt;sudo cp georgiai.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Georgia_&lt;wbr&gt;Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp georgia.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Georgia.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp impact.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Impact.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp times.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Times_New_&lt;wbr&gt;Roman.ttf&lt;br /&gt;sudo cp timesbd.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Times_New_&lt;wbr&gt;Roman_Bold.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp timesbi.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Times_New_&lt;wbr&gt;Roman_Bold_&lt;wbr&gt;Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp timesi.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Times_New_&lt;wbr&gt;Roman_Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp trebuc.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Trebuchet_&lt;wbr&gt;MS.ttf&lt;br /&gt;sudo cp trebucbd.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Trebuchet_&lt;wbr&gt;MS_Bold.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp trebucbi.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Trebuchet_&lt;wbr&gt;MS_Bold_&lt;wbr&gt;Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp trebucit.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Trebuchet_&lt;wbr&gt;MS_Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp verdanab.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Verdana_&lt;wbr&gt;Bold.ttf&lt;br /&gt;sudo cp verdanai.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Verdana_&lt;wbr&gt;Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp verdanaz.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Verdana_&lt;wbr&gt;Bold_Italic.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp verdana.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Verdana.&lt;wbr&gt;ttf&lt;br /&gt;sudo cp webdings.ttf /usr/share/&lt;wbr&gt;fonts/truetype/&lt;wbr&gt;mscorefonts/&lt;wbr&gt;Webdings.&lt;wbr&gt;ttf&lt;/p&gt; &lt;p&gt;#Clean up&lt;br /&gt;cd ~&lt;br /&gt;rm -r /tmp/mscorefonts&lt;/p&gt;&lt;/blockquote&gt;2. sudo dpkg --configure -a&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-418637274689095430?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VqMCIMbTmce05qJ9W2UzMgF2mLA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VqMCIMbTmce05qJ9W2UzMgF2mLA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VqMCIMbTmce05qJ9W2UzMgF2mLA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VqMCIMbTmce05qJ9W2UzMgF2mLA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/LZW57I20ay4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/418637274689095430/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=418637274689095430" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/418637274689095430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/418637274689095430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/LZW57I20ay4/dns-timing-issus-when-install-ttf.html" title="dns timing issus when install ttf-mscorefonts" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/dns-timing-issus-when-install-ttf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08AQHY5eip7ImA9WxNbGUk.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-1412222407528748701</id><published>2009-11-22T17:59:00.000-08:00</published><updated>2009-11-22T18:04:01.822-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-22T18:04:01.822-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="好物分享" /><title>Free E-Book Download</title><content type="html">&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.e-booksdirectory.com/"&gt;E-Books Directory&lt;/a&gt;&lt;/li&gt;&lt;li style="color: rgb(102, 51, 0);"&gt;http://www.csdn.net/&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 51, 0);"&gt;http://www.ebookee.com.cn/&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-1412222407528748701?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y7BYCtVE3uOSoBMN8lxoQ7fQnHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y7BYCtVE3uOSoBMN8lxoQ7fQnHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y7BYCtVE3uOSoBMN8lxoQ7fQnHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y7BYCtVE3uOSoBMN8lxoQ7fQnHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/zHcALxaqK0I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/1412222407528748701/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=1412222407528748701" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1412222407528748701?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/1412222407528748701?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/zHcALxaqK0I/free-e-book-download.html" title="Free E-Book Download" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/free-e-book-download.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ICSH09cCp7ImA9WxNbGU4.&quot;"><id>tag:blogger.com,1999:blog-38361932.post-6014472139235163839</id><published>2009-11-22T17:09:00.000-08:00</published><updated>2009-11-22T17:26:09.368-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-22T17:26:09.368-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="學習筆記" /><title>應該選那一個 File System 呢?</title><content type="html">Linux 2.6.28 之後，開始支援 EXT4，最近重灌 ubuntu 9.10 發現多了 EXT4 可以選擇，一開始還不確定是不是要直接升級到 EXT4 ，剛剛 Survey 了一下，我想，下直別想那麼多了，直接使用 EXT4 就好了&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://plog.longwin.com.tw/document-ebook/2009/06/24/paper-linux-file-system-choose-test-2009"&gt;好文: Linux 檔案系統 挑選、測試&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=214&amp;amp;blogId=1"&gt;Linux 支援的檔案系統小評測&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://linux.solidot.org/article.pl?sid=09/09/16/0748210"&gt;两个Linux文件系统性能测试工具&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hutuworm.blogspot.com/2009/02/ext4-reiserfs-btrfs.html"&gt;Ext4 ReiserFS Btrfs 等七种文件系统性能比拼&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hutuworm.blogspot.com/2009/02/ext2-vs-ext3-vs-ext4.html"&gt;Ext2 v.s. Ext3 v.s. Ext4 性能比拼&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://feizf.blogbus.com/logs/10234312.html"&gt;Linux下读写速度测试&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.linux-mag.com/cache/7525/1.html"&gt;I Feel the Need for Speed: Linux File System Throughput Performance&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38361932-6014472139235163839?l=www.ypwang.info' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YLGEoLyYyBKCof2PC_IupR85vck/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YLGEoLyYyBKCof2PC_IupR85vck/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YLGEoLyYyBKCof2PC_IupR85vck/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YLGEoLyYyBKCof2PC_IupR85vck/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blue119sBlog/~4/9BffWT8I75w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.ypwang.info/feeds/6014472139235163839/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=38361932&amp;postID=6014472139235163839" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/6014472139235163839?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/38361932/posts/default/6014472139235163839?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blue119sBlog/~3/9BffWT8I75w/file-system.html" title="應該選那一個 File System 呢?" /><author><name>Yao-Po Wang</name><uri>http://www.blogger.com/profile/00542696056381844190</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh6.google.com/image/blue119/RdQIQdp8QrI/AAAAAAAAABI/zRBE2Wbs7RA/%E5%9C%96%E7%89%871.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.ypwang.info/2009/11/file-system.html</feedburner:origLink></entry></feed>

