<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35533954</id><updated>2011-11-28T07:29:02.538+08:00</updated><category term='RTSP'/><category term='VMWare'/><category term='GNU/Linux'/><category term='Live555'/><category term='VirtualBox'/><category term='FON'/><category term='關西'/><category term='小貓咪'/><category term='Software Configuration Management'/><category term='Ubuntu Desktop Linux'/><category term='wxWidget'/><category term='Faraday'/><category term='Programming'/><category term='wxWidget Functions'/><title type='text'>hpeter 心得分享測試站</title><subtitle type='html'>這裡是放一些轉載和心得的地方</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35533954.post-2167180703213786570</id><published>2009-09-10T13:36:00.001+08:00</published><updated>2009-09-10T13:37:45.766+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Faraday'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Streaming upload by wput</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;一般 FTP 檔案的續傳設計, 是當檔案上傳到一半時斷線, 之後上傳可以將未上傳的部份再上傳, 不用重新將檔案整個重新上傳過. (示意圖如下) &lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;img style='max-width: 800px;' src='http://lh3.ggpht.com/_b4B3DgnGxXo/SqcfYAzznmI/AAAAAAAAArI/SVfqv-OPfBg/%5BUNSET%5D.jpg?imgmax=800'/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div align='left'&gt;目前作的監控系統有個功能是將監控觸發畫面錄下來上傳到 FTP或存入到SD卡中. 作法是將抓到的 MPEG4 Frame 存成檔案放在 RootFS(ramdisk) 之中. 不過我們這系統開機完 RootFS 空間剩下不多,如果要錄長時間的話會有容量上的問題. 如果使用上面存到單一檔案的話,空間一定會不足. 所以我們用的方法修正如下：&lt;br/&gt;&lt;div align='center'&gt;&lt;img style='max-width: 800px;' src='http://lh5.ggpht.com/_b4B3DgnGxXo/Sqc-rBTxCpI/AAAAAAAAArM/1SeTx1aoKuM/%5BUNSET%5D.jpg?imgmax=800'/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div align='left'&gt;在本地端使用多個檔案來儲存 MPEG4 Frames, 目前是30個 Frame存成一個檔案, 本地檔案只要存好一個, 就馬上 Append 到 FTP 端的檔案(如上圖), 這樣一來, 只要網路頻寬足夠的話, 就不用擔心本機 Embedded System 空間是否足夠儲存.&lt;br/&gt;&lt;br/&gt;回到第一段, 如果使用一般 FTP 的設定方法, 勢必是達不到我們目地的. 正常的 FTP 續傳 Local File 和 Remote File 都各只有一個, 流程如下：&lt;br/&gt;&lt;ol&gt;&lt;li&gt;看看 Remote File 是否存在, 如果存在就利用 SIZE 來取得 Remote File 的檔案大小, 如果不存在就產生一個同名的空檔案.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;取得 Remote File 的檔案大小之後, 和本地的檔案相減, 計算還有多少檔案未上傳.&lt;/li&gt;&lt;li&gt;利用 REST 重設 Remote File 起始點之後, 將剩下的未傳輸檔案上傳.&lt;/li&gt;&lt;/ol&gt;在我們上面第二圖的 &lt;span class='dct-tt'&gt;Scenario 下,  會變成 Local File 有 n 個, Remote File 只有一個. 流程要小修改成下面的樣子：&lt;br/&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;看看 Remote File 是否存在, 如果存在就利用 SIZE 來取得 Remote File 的檔案大小, 如果不存在就產生一個空檔案, 名字要記下來.&lt;/li&gt;&lt;li&gt;將 Local File 第一個上傳上去, 利用 REST 來重新設定上傳起始點.&lt;/li&gt;&lt;li&gt;上傳完將剛上傳的 Local File 刪除.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;重復 1-3, 直到所有檔案都上傳完畢.&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;這樣一來, 我們想要使用的 Stream Upload 功能就算是完成了, 所需只要本地一部份的暫存空間, 和足夠的網路頻寬, 就可以實現連續上傳到同一個檔案的功能了.&lt;span class='dct-tp'&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=06d5070f-1031-82fc-92e0-2d314b7bf29f' alt='' class='zemanta-pixie-img'/&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/35533954-2167180703213786570?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/2167180703213786570/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=2167180703213786570' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2167180703213786570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2167180703213786570'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2009/09/streaming-upload-by-wput.html' title='Streaming upload by wput'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_b4B3DgnGxXo/SqcfYAzznmI/AAAAAAAAArI/SVfqv-OPfBg/s72-c/%5BUNSET%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-6915249200718890698</id><published>2009-09-01T11:12:00.000+08:00</published><updated>2009-09-09T11:28:12.852+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Live555'/><category scheme='http://www.blogger.com/atom/ns#' term='RTSP'/><category scheme='http://www.blogger.com/atom/ns#' term='Faraday'/><title type='text'>Live555 - openRTSP</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;最近工作是找一個好用的 OpenSource RTSP demux, 且 Porting 到 Faraday FIC8120 上, 來當作是 RTSP Player. 目前找到現在看到比較好的是 FFplay 和現在看到的 Live555 中的 openRTSP. 這個工具本來的目地是將來源 RTSP Stream 轉換成 Raw Data 存起來. 不過如果我們要從它本來目地改成 Video Player 也不算難. &lt;br /&gt;&lt;br /&gt;Faraday FIC8120 有提供 MPEG4/M-JPEG Decoder 的功能, 所以我在 openRTSP implement Decode MPEG4/M-JPEG 的功能, 這個動作只要去 implement 二個 Class 就可以完成了. OpenRTSP 是利用 Live555 這個 Framework, 這個 Framework 從來源 RTSP demux 一路到最後, 接收的 Class 基本型是 Sink. 所以我們可以根據 FileSink 這個 Class 來完成我們的 MPEG4Sink 和 MJPEGSink.&lt;br /&gt;&lt;br /&gt;首先我們要在 openRTSP 主程式中 (playCommon.cpp) 找到當 RTSP Demux 解完之後的資訊, 我們目前只要型態是 Video 的, 其他先不要, 當格式是 MPEG4 時, 就給他 MPEG4Sink, 如果是 M-JPEG 時, 就給他 MJPEGSink, 如果也不是的話就先捨棄.&lt;br /&gt;&lt;br /&gt;在 Sink 這個 Class 中, 最重要的部份就是 &lt;br /&gt;&lt;pre&gt;void addData (unsigned char *data, unsigned dataSize, &lt;br /&gt;        struct timeval presentationTime) &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Live555 會將解好的 Stream 餵到這支 Function 來, *data 是 Stream 的實際資料, dataSize 是這筆資料的長度, presentationTime 是該撥到什麼時間. 只要這邊一完成, openRTSP 就可以搖身一變變成 Video Player 喔.&lt;br /&gt;&lt;br /&gt;Ref:  &lt;a target='_blank' href='http://www.live555.com/liveMedia/public/doxygen/html/classFileSink.html#d1ca907fc72e2177b55249c5f6d5407c'&gt;Live555 Doxygen --&amp;gt; FileSink &lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=53e4cd48-5efa-8517-8058-cc5cacbf8548' alt='' class='zemanta-pixie-img'/&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/35533954-6915249200718890698?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/6915249200718890698/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=6915249200718890698' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/6915249200718890698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/6915249200718890698'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2009/09/live555-openrtsp.html' title='Live555 - openRTSP'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-2101930074189323420</id><published>2008-12-31T16:23:00.002+08:00</published><updated>2009-09-01T11:30:20.080+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>IPTABLES + Traffic Sharping 腳本</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;最近家裡裝了一台 PentiumM 1.3G 的 Mini-ATX 小主板, 板子只花2千多元 (晚一個月就有3xxx 的 Atom了, 可惜). 這台主機的工作主要是：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;網路芳鄰 (Samba)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;老婆的合唱團論壇(Phpbb3)&lt;/li&gt;&lt;li&gt;VPN (pptpd)&lt;/li&gt;&lt;li&gt;NAT + DHCP + Firewall&lt;br /&gt;&lt;/li&gt;&lt;li&gt;動物專用機 (mldonkey)&lt;/li&gt;&lt;/ul&gt;會用這片的原因有以下幾個：&lt;br /&gt;&lt;ol&gt;&lt;li&gt;這 Server 如果沒意外的話, 會 24HR 不關機, 所以省電我是的第一優先。&lt;/li&gt;&lt;li&gt;PentiumM 1.3G 效能不弱, 雖然目前還沒有壓力測試過, 不過在網芳全速下 + IPTABLES + Traffic Sharping 腳本, 可讓 NAT 出去進來的資料不會受太大的影響。&lt;/li&gt;&lt;li&gt;這種 Mini-ATX 通常風扇聲不會太大, 我還想改裝成靜音風扇XD&lt;/li&gt;&lt;/ol&gt;重點是在下面的 Script, 使用以下的 Script 後, 主要功能是將這台電腦轉成 Firewall + NAT + Traffic Sharping 的功能, Traffic Sharping 作用像是 Windows 上的 cFosSpeed, 調整封包的優先順序來達到最佳化網路速度的功能.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;#######################################&lt;br /&gt;#&lt;br /&gt;# FTP bind 0.0.0.0&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;#######################################&lt;br /&gt;&lt;br /&gt;# 請先輸入您的相關參數，不要輸入錯誤了！&lt;br /&gt;  EXTIF="ppp0"              # 這個是可以連上 Public IP 的網路介面&lt;br /&gt;  INIF="eth0"               # 內部 LAN 的連接介面；若無請填 ""&lt;br /&gt;  INNET="192.168.2.0/24 192.168.10.0/24"    # 內部 LAN 的網域，若沒有內部 LAN 請設定為 ""&lt;br /&gt;  export EXTIF INIF INNET&lt;br /&gt;&lt;br /&gt;ifup $INIF&lt;br /&gt;hdparm -m 16 -c 3 -A -a 256 -d 1 /dev/hda&lt;br /&gt;&lt;br /&gt;modules="speedstep-centrino ppp-compress-18 ppp-compress-21 ppp-compress-24 ppp-compress-26"&lt;br /&gt;&lt;br /&gt;for mod in $modules&lt;br /&gt;do&lt;br /&gt;testmod=`lsmod | grep "${mod} "`&lt;br /&gt;  if [ "$testmod" == "" ]; then&lt;br /&gt;    modprobe $mod&lt;br /&gt;  fi&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;echo 1 &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;hal-disable-polling --device /dev/cdrom 'hal'&lt;br /&gt;echo "conservative" &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;&lt;br /&gt;# 第一部份，針對本機的防火牆設定！###########################&lt;br /&gt;# 1. 先設定好核心的網路功能：&lt;br /&gt;  echo "1" &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;  echo "1" &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;  for i in /proc/sys/net/ipv4/conf/*/rp_filter; do&lt;br /&gt;        echo "1" &amp;gt; $i&lt;br /&gt;  done&lt;br /&gt;  for i in /proc/sys/net/ipv4/conf/*/log_martians; do&lt;br /&gt;        echo "1" &amp;gt; $i&lt;br /&gt;  done&lt;br /&gt;  for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do&lt;br /&gt;        echo "0" &amp;gt; $i&lt;br /&gt;  done&lt;br /&gt;  for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do&lt;br /&gt;        echo "0" &amp;gt; $i&lt;br /&gt;  done&lt;br /&gt;  for i in /proc/sys/net/ipv4/conf/*/send_redirects; do&lt;br /&gt;        echo "0" &amp;gt; $i&lt;br /&gt;  done&lt;br /&gt;&lt;br /&gt;# 2. 清除規則、設定預設政策及開放 lo 與相關的設定值&lt;br /&gt;  PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH&lt;br /&gt;  iptables -F&lt;br /&gt;  iptables -X&lt;br /&gt;  iptables -Z&lt;br /&gt;  iptables  -P INPUT    DROP&lt;br /&gt;  #iptables  -P INPUT    ACCEPT&lt;br /&gt;  iptables  -P OUTPUT   ACCEPT&lt;br /&gt;  iptables -P FORWARD ACCEPT&lt;br /&gt;  iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;&lt;br /&gt;  #iptables -A INPUT -i $INIF -s 192.168.2.0/24 -j ACCEPT&lt;br /&gt;  #iptables -A INPUT -i $INIF -s 192.168.10.0/24 -j ACCEPT&lt;br /&gt;  &lt;br /&gt;  iptables -A INPUT  -s 192.168.2.0/24 -j ACCEPT&lt;br /&gt;  iptables -A INPUT  -s 192.168.10.0/24 -j ACCEPT&lt;br /&gt;  &lt;br /&gt;# 3. 啟動額外的防火牆 script 模組&lt;br /&gt;  if [ -f /usr/local/virus/iptables/iptables.deny ]; then&lt;br /&gt;        sh /usr/local/virus/iptables/iptables.deny&lt;br /&gt;  fi&lt;br /&gt;  if [ -f /usr/local/virus/iptables/iptables.allow ]; then&lt;br /&gt;        sh /usr/local/virus/iptables/iptables.allow&lt;br /&gt;  fi&lt;br /&gt;  if [ -f /usr/local/virus/httpd-err/iptables.http ]; then&lt;br /&gt;        sh /usr/local/virus/httpd-err/iptables.http&lt;br /&gt;  fi&lt;br /&gt;  &lt;br /&gt;  #iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT&lt;br /&gt;&lt;br /&gt;# 4. 允許某些類型的 ICMP 封包進入&lt;br /&gt;  AICMP="0 3 3/4 4 11 12 14 16 18"&lt;br /&gt;  for tyicmp in $AICMP&lt;br /&gt;  do&lt;br /&gt;     iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT&lt;br /&gt;  done&lt;br /&gt;&lt;br /&gt;# 5. 允許某些服務的進入，請依照您自己的環境開啟&lt;br /&gt;&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 17563 -j DNAT --to 192.168.2.1:17563&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 9788 -j DNAT --to 192.168.2.1:9788&lt;br /&gt;&lt;br /&gt;#iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 7446 -j DNAT --to 192.168.2.1:7446&lt;br /&gt;#iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 17567 -j DNAT --to 192.168.2.1:17567&lt;br /&gt;#iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 9788 -j DNAT --to 192.168.2.1:9788&lt;br /&gt;&lt;br /&gt;# iptables -A INPUT -p TCP -i $EXTIF --dport  22  -j ACCEPT   # SSH&lt;br /&gt;# iptables -A INPUT -p TCP -i $EXTIF --dport  25  -j ACCEPT   # SMTP&lt;br /&gt;# iptables -A INPUT -p UDP -i $EXTIF --sport  53  -j ACCEPT   # DNS&lt;br /&gt;# iptables -A INPUT -p TCP -i $EXTIF --sport  53  -j ACCEPT   # DNS&lt;br /&gt;# iptables -A INPUT -p TCP -i $EXTIF --dport 110  -j ACCEPT   # POP3&lt;br /&gt;# iptables -A INPUT -p TCP -i $EXTIF --dport 443  -j ACCEPT   # HTTPS&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  80  -j ACCEPT   # WWW&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  21  -j ACCEPT   # FTP&lt;br /&gt;#iptables -A INPUT -p TCP -i $EXTIF --dport  222  -j ACCEPT   # ssh&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  113  -j ACCEPT   # auth&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  1723  -j ACCEPT   # pptp&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  443  -j ACCEPT   # pptp&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -p gre -i $EXTIF  -j ACCEPT   # pptp&lt;br /&gt;&lt;br /&gt;##################### mldonkey #####################################&lt;br /&gt;&lt;br /&gt;#tcp        0      0 192.168.2.1:4000        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:4001        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:4080        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:6000        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:18617       0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#udp        0      0 192.168.2.1:18617       0.0.0.0:*                           7461/mlnet&lt;br /&gt;#udp        0      0 192.168.2.1:6004        0.0.0.0:*                           7461/mlnet&lt;br /&gt;#udp        0      0 192.168.2.1:2684        0.0.0.0:*                           7461/mlnet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  6890  -j ACCEPT   # rtorrent&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  6000  -j ACCEPT   # mldonkey&lt;br /&gt;iptables -A INPUT -p TCP -i $EXTIF --dport  18617  -j ACCEPT   # mldonkey&lt;br /&gt;&lt;br /&gt;iptables -A INPUT -p UDP -i $EXTIF --dport  18617  -j ACCEPT   # mldonkey&lt;br /&gt;iptables -A INPUT -p UDP -i $EXTIF --dport  2684  -j ACCEPT   # mldonkey&lt;br /&gt;iptables -A INPUT -p UDP -i $EXTIF --dport  6004  -j ACCEPT   # mldonkey&lt;br /&gt;&lt;br /&gt;# 第二部份，針對後端主機的防火牆設定！##############################&lt;br /&gt;# 1. 先載入一些有用的模組&lt;br /&gt;  modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack ip_conntrack_ftp ip_conntrack_irc"&lt;br /&gt;  for mod in $modules&lt;br /&gt;  do&lt;br /&gt;        testmod=`lsmod | grep "${mod} "`&lt;br /&gt;        if [ "$testmod" == "" ]; then&lt;br /&gt;                modprobe $mod&lt;br /&gt;        fi&lt;br /&gt;  done&lt;br /&gt;&lt;br /&gt;# 2. 清除 NAT table 的規則吧！&lt;br /&gt;  iptables -F -t nat&lt;br /&gt;  iptables -X -t nat&lt;br /&gt;  iptables -Z -t nat&lt;br /&gt;  iptables -t nat -P PREROUTING  ACCEPT&lt;br /&gt;  iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;  iptables -t nat -P OUTPUT      ACCEPT&lt;br /&gt;&lt;br /&gt;# 3. 開放成為路由器，且為 IP 分享器！&lt;br /&gt;  if [ "$INIF" != "" ]; then&lt;br /&gt;    iptables -A INPUT -i $INIF -j ACCEPT&lt;br /&gt;    echo "1" &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;    if [ "$INNET" != "" ]; then&lt;br /&gt;      for innet in $INNET&lt;br /&gt;      do&lt;br /&gt;        iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE&lt;br /&gt;      done&lt;br /&gt;    fi&lt;br /&gt;  fi&lt;br /&gt;  # 如果你的 MSN 一直無法連線，或者是某些網站 OK 某些網站不 OK，&lt;br /&gt;  # 可能是 MTU 的問題，那你可以將底下這一行給他取消註解來啟動 MTU 限制範圍&lt;br /&gt;  &lt;br /&gt;iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;# 4. 內部伺服器的設定:&lt;br /&gt;&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 6881 -j DNAT --to 192.168.2.1:6881&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 6882 -j DNAT --to 192.168.2.1:6882&lt;br /&gt;&lt;br /&gt;################################# FTP ##################################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 21 -j DNAT --to 192.168.2.1:21&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 -j DNAT --to 192.168.1.1:80&lt;br /&gt;################################# mlDonkey ##################################&lt;br /&gt;#tcp        0      0 192.168.2.1:4000        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:4001        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:4080        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:6000        0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#tcp        0      0 192.168.2.1:18617       0.0.0.0:*               LISTEN      7461/mlnet&lt;br /&gt;#udp        0      0 192.168.2.1:18617       0.0.0.0:*                           7461/mlnet&lt;br /&gt;#udp        0      0 192.168.2.1:6004        0.0.0.0:*                           7461/mlnet&lt;br /&gt;#udp        0      0 192.168.2.1:2684        0.0.0.0:*                           7461/mlnet&lt;br /&gt;&lt;br /&gt;iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 6890 -j DNAT --to 192.168.2.1:6890  #rtorrent&lt;br /&gt;&lt;br /&gt;iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 6000 -j DNAT --to 192.168.2.1:6000&lt;br /&gt;iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 18617 -j DNAT --to 192.168.2.1:18617&lt;br /&gt;&lt;br /&gt;iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 18617 -j DNAT --to 192.168.2.1:18617&lt;br /&gt;iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 2684 -j DNAT --to 192.168.2.1:18033&lt;br /&gt;iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 6004 -j DNAT --to 192.168.2.1:6004&lt;br /&gt;&lt;br /&gt;iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 443 -j DNAT --to 192.168.2.1:222&lt;br /&gt;#iptables -t nat -A PREROUTING -p tcp  --dport 443 -j REDIRECT --to-ports 1723&lt;br /&gt;&lt;br /&gt;################################## TC #######################################&lt;br /&gt;&lt;br /&gt;TC=/sbin/tc&lt;br /&gt;IPTABLES=/sbin/iptables&lt;br /&gt;&lt;br /&gt;$IPTABLES -t mangle -F&lt;br /&gt;$TC qdisc del dev ppp0 root&lt;br /&gt;$TC qdisc del dev ppp0 ingress&lt;br /&gt;&lt;br /&gt;$TC qdisc add dev ppp0 root handle 1: htb default 14&lt;br /&gt;$TC class add dev ppp0 parent 1: classid 1:1 htb rate 230kbps burst 4k prio 0&lt;br /&gt;$TC class add dev ppp0 parent 1:1 classid 1:11 htb rate 16kbps ceil 230kbps burst 8k prio 1&lt;br /&gt;$TC class add dev ppp0 parent 1:1 classid 1:12 htb rate 16kbps ceil 230kbps burst 8k prio 2&lt;br /&gt;$TC class add dev ppp0 parent 1:1 classid 1:13 htb rate 8kbps ceil 230kbps burst 8k prio 3&lt;br /&gt;$TC class add dev ppp0 parent 1:1 classid 1:14 htb rate 8kbps ceil 230kbps burst 8k prio 4&lt;br /&gt;$TC class add dev ppp0 parent 1:1 classid 1:15 htb rate 4kbps ceil 230kbps burst 8k prio 5&lt;br /&gt;&lt;br /&gt;$TC qdisc add dev ppp0 parent 1:11 handle 11: pfifo&lt;br /&gt;$TC qdisc add dev ppp0 parent 1:12 handle 12: sfq perturb 10&lt;br /&gt;$TC qdisc add dev ppp0 parent 1:13 handle 13: sfq perturb 10&lt;br /&gt;$TC qdisc add dev ppp0 parent 1:14 handle 14: sfq perturb 10&lt;br /&gt;$TC qdisc add dev ppp0 parent 1:15 handle 15: sfq perturb 10&lt;br /&gt;&lt;br /&gt;$TC filter add dev ppp0 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:11&lt;br /&gt;$TC filter add dev ppp0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:12&lt;br /&gt;$TC filter add dev ppp0 parent 1:0 protocol ip prio 3 handle 3 fw classid 1:13&lt;br /&gt;$TC filter add dev ppp0 parent 1:0 protocol ip prio 4 handle 4 fw classid 1:14&lt;br /&gt;$TC filter add dev ppp0 parent 1:0 protocol ip prio 5 handle 5 fw classid 1:15&lt;br /&gt;&lt;br /&gt;$TC qdisc add dev ppp0 handle ffff: ingress&lt;br /&gt;$TC filter add dev ppp0 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 1126kbps burst 32k drop &lt;br /&gt;#flowid :1&lt;br /&gt;&lt;br /&gt;$IPTABLES -t mangle -A OUTPUT -p tcp -m length --length :64 -j MARK --set-mark 1&lt;br /&gt;$IPTABLES -t mangle -A OUTPUT -p tcp -m length --length :64 -j RETURN&lt;br /&gt;&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 1&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN&lt;br /&gt;&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -m tos --tos Minimize-Delay -j MARK --set-mark 1&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -m tos --tos Minimize-Delay -j RETURN&lt;br /&gt;&lt;br /&gt;# Ping&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p icmp -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p icmp -j RETURN&lt;br /&gt;&lt;br /&gt;## DNS&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p udp -m udp --dport 53 -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p udp -m udp --dport 53 -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p udp -m udp --sport 53 -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p udp -m udp --sport 53 -j RETURN&lt;br /&gt;&lt;br /&gt;## FTP&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport ftp -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport ftp -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport ftp -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport ftp -j RETURN&lt;br /&gt;&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport ftp-data -j MARK --set-mark 5&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport ftp-data -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport ftp-data -j MARK --set-mark 5&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport ftp-data -j RETURN&lt;br /&gt;&lt;br /&gt;## SSH&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 22 -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 22 -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 22 -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 22 -j RETURN&lt;br /&gt;&lt;br /&gt;## Telnet&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 23 -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 23 -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 23 -j MARK --set-mark 2&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 23 -j RETURN&lt;br /&gt;&lt;br /&gt;## SSL&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 443 -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 443 -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 443 -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 443 -j RETURN&lt;br /&gt;&lt;br /&gt;## MSN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 1863 -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 1863 -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 1863 -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 1863 -j RETURN&lt;br /&gt;&lt;br /&gt;# WWW&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 80 -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --dport 80 -j RETURN&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 80 -j MARK --set-mark 3&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -p tcp -m tcp --sport 80 -j RETURN&lt;br /&gt;&lt;br /&gt;# L7(eDonkey/BT)&lt;br /&gt;#$IPTABLES -t mangle -A POSTROUTING -m layer7 --l7proto edonkey  -j MARK --set-mark 5&lt;br /&gt;#$IPTABLES -t mangle -A POSTROUTING -m layer7 --l7proto bittorrent  -j MARK --set-mark 5&lt;br /&gt;&lt;br /&gt;## High Throughput&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -m tos --tos Maximize-Throughput -j MARK --set-mark 5&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -m tos --tos Maximize-Throughput -j RETURN&lt;br /&gt;&lt;br /&gt;## Normal Packet&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -m mark --mark 0 -j MARK --set-mark 4&lt;br /&gt;$IPTABLES -t mangle -A POSTROUTING  -m mark --mark 0 -j RETURN&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;STRING="`date`"&lt;br /&gt;touch "/tmp/$STRING"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;    &lt;a href='http://linux.vbird.org/linux_server/0250simple_firewall.php'&gt;鳥哥的 NAT 教學&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=5b6ece53-53e0-86e0-8ffc-6d20abadd28b' alt='' class='zemanta-pixie-img'/&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/35533954-2101930074189323420?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/2101930074189323420/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=2101930074189323420' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2101930074189323420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2101930074189323420'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2008/12/iptables-traffic-sharping_8693.html' title='IPTABLES + Traffic Sharping 腳本'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-9217788946206070065</id><published>2007-09-22T12:34:00.001+08:00</published><updated>2009-09-01T11:31:26.315+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>VirtualBox 使用 NAT 方法讓 vm 連上網路</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;之前在使用 VirtualBox 時，他有內建幾種網路設定方法&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Host Interface&lt;/li&gt;&lt;li&gt;NAT&lt;/li&gt;&lt;/ol&gt;以上二種是常見的模式，NAT 是最簡單的方法，只要你有上網能力，在 vm 中只要&lt;br /&gt;&lt;br /&gt;使用 DHCP 就可以上網了，缺點是看起來像是一台獨立的機器，從 Host 這邊 Ping&lt;br /&gt;&lt;br /&gt;不到 Client vm.&lt;br /&gt;&lt;br /&gt;    如果使用 Host Interface，就等於 Host 和 Client vm 有對等的網路地位&lt;br /&gt;&lt;br /&gt;(vm 有虛擬網卡)，不過接下來面臨到的會是如何將 VirtualBox 產生的 TAP 網卡&lt;br /&gt;&lt;br /&gt;和能夠有上網能力的 Interface 作 Bridge，作 Bridge 的方法不難，Google 有一&lt;br /&gt;&lt;br /&gt;堆文件，不過在使用上會感覺不是很便利，像是一下要 Bridge 有線，一下要無線，&lt;br /&gt;&lt;br /&gt;這樣感覺不是個好方法。這幾天看了 VirtualBox 的 Help 文件，原來裡面早就有&lt;br /&gt;&lt;br /&gt;Host 和 Client vm 在 NAT 溝通的方法，在 VirtualBox  的 NAT 模式下，&lt;br /&gt;&lt;br /&gt;VirtualBox 會變成一個在 Host 和 Client vm 中的 NAT Server，我們只要設定&lt;br /&gt;&lt;br /&gt;以下：&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;VBoxManage setextradata "Debian Linux" &lt;br /&gt;	"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP&lt;br /&gt;&lt;br /&gt;VBoxManage setextradata "Debian Linux" &lt;br /&gt;	"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22&lt;br /&gt;&lt;br /&gt;VBoxManage setextradata "Debian Linux" &lt;br /&gt;	"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 222&lt;br /&gt;&lt;/pre&gt;以上的例子是我們將 Client vm 中叫 "Debian Linux" 將連線到 Host TCP &lt;br /&gt;&lt;br /&gt;Port 222 的連線，轉連線到  Client vm  的  Port 22，看起來很像 iptable  的&lt;br /&gt;&lt;br /&gt;Forward ， 這樣一來，就可以讓 Host  和 Client vm 來作溝通，不用在作 Bridge&lt;br /&gt;&lt;br /&gt;了。 &lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=75aec4d8-9227-8c13-8cc4-b8296c4354bb' alt='' class='zemanta-pixie-img'/&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/35533954-9217788946206070065?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/9217788946206070065/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=9217788946206070065' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/9217788946206070065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/9217788946206070065'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/09/virtualbox-nat-vm.html' title='VirtualBox 使用 NAT 方法讓 vm 連上網路'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-8561623642344978984</id><published>2007-07-21T14:02:00.001+08:00</published><updated>2007-07-21T16:28:43.682+08:00</updated><title type='text'>Vim Plugins 讓 Vim 有 SourceInsight 的功能</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;之前在別人的網頁上看到，將 Vim 加強像 SourceInsight 的能 (Google Keyword: Vim ,CScope, taglist, cppcomplete)，這個&lt;a href="http://hpeter.googlepages.com/vim_back.tar.bz2"&gt;連結&lt;/a&gt;是我將這些 Plugins 作備份，怕重灌會找不到，先來一張圖看看吧:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b4B3DgnGxXo/RqHDrR7kpiI/AAAAAAAAAek/tHkh8R2lz3A/s1600-h/vim_cscope.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b4B3DgnGxXo/RqHDrR7kpiI/AAAAAAAAAek/tHkh8R2lz3A/s320/vim_cscope.JPG" alt="" id="BLOGGER_PHOTO_ID_5089564202220430882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&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/35533954-8561623642344978984?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/8561623642344978984/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=8561623642344978984' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/8561623642344978984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/8561623642344978984'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/07/vim-plugins-vim-sourceinsight.html' title='Vim Plugins 讓 Vim 有 SourceInsight 的功能'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_b4B3DgnGxXo/RqHDrR7kpiI/AAAAAAAAAek/tHkh8R2lz3A/s72-c/vim_cscope.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-325601637603954393</id><published>2007-06-09T17:28:00.001+08:00</published><updated>2007-06-09T17:28:15.095+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Screen - Linux 下切換 Terminal 好用的程式</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://ts.me.nctu.edu.tw/pmwiki/pmwiki.php/Linux/HomePage'&gt;原連結&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;dl&gt;&lt;dt&gt;screen&lt;/dt&gt;&lt;dd&gt;screen 可以在遠端建立多重終端機的套件，在 Red hat Linux 中已預設為安裝。 &lt;br&gt;&lt;/br&gt;第一次開始 screen，僅需要在命令列中下達： screen &lt;br&gt;&lt;/br&gt;讀回前一次的 screen 為 screen -r &lt;br&gt;&lt;/br&gt;在 screen 模式下，可使用滿多指令，以下列出較常用的一些：&lt;br /&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;pre&gt; ctrl - a , c : 在 screen 中，再多開啟一個 screen&lt;br&gt;&lt;/br&gt; ctrl - a , w : 查詢現在共開始多少 screen&lt;br&gt;&lt;/br&gt; ctrl - a , k : 刪除目前的這一個 screen&lt;br&gt;&lt;/br&gt; ctrl - a , d : detach, 離開 screen 並保留 screen 在伺服器上，下次想要使用，可以用 screen -r 讀回&lt;br&gt;&lt;/br&gt; ctrl - a , 數字 : 和 ctrl - a , w 搭配使用，可以切換到指定的 screen&lt;br&gt;&lt;/br&gt; ctrl -a , n : 切換至下一個 screen&lt;br&gt;&lt;/br&gt; ctrl -a , p : 切換至上一個 screen&lt;br&gt;&lt;/br&gt; ctrl -a , a : 切換至前一個 screen&lt;br&gt;&lt;/br&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-325601637603954393?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/325601637603954393/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=325601637603954393' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/325601637603954393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/325601637603954393'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/06/screen-linux-terminal.html' title='Screen - Linux 下切換 Terminal 好用的程式'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-465670493079475175</id><published>2007-06-09T17:14:00.001+08:00</published><updated>2007-06-09T17:15:14.705+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><title type='text'>在 Linux 下使用 mplayer 來看 AVI, RM, WMV 的方法</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?topic_id=42&amp;amp;viewmode=flat&amp;amp;order=ASC&amp;amp;type=&amp;amp;mode=0&amp;amp;start=50'&gt;原連結&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;在 &lt;a href='http://www1.mplayerhq.hu/MPlayer/releases/codecs/' target='_blank'&gt;http://www1.mplayerhq.hu/MPlayer/releases/codecs/&lt;/a&gt; 找到 windows-all-yyyymmdd.zip 下載...&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;解壓縮把檔案放在 /usr/lib/win32 裡面&lt;br&gt;&lt;/br&gt;sudo mkdir /usr/lib/win32&lt;br&gt;&lt;/br&gt;sudo chown -R root.root /usr/lib/win32&lt;br&gt;&lt;/br&gt;sudo chmod -R 755 /usr/lib/win32&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/35533954-465670493079475175?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/465670493079475175/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=465670493079475175' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/465670493079475175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/465670493079475175'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/06/linux-mplayer-avi-rm-wmv.html' title='在 Linux 下使用 mplayer 來看 AVI, RM, WMV 的方法'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-2737830797203920304</id><published>2007-06-02T14:02:00.001+08:00</published><updated>2007-06-04T09:00:10.278+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Configuration Management'/><title type='text'>Subversion 文件連結</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://svn.stu.edu.tw/svnbook/'&gt;中文文件連結&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;a href='http://svnbook.red-bean.com/'&gt;英文連結在此&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;br&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/35533954-2737830797203920304?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/2737830797203920304/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=2737830797203920304' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2737830797203920304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2737830797203920304'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/06/subversion.html' title='Subversion 文件連結'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-1267636990841147524</id><published>2007-05-21T23:23:00.001+08:00</published><updated>2007-05-21T23:23:42.980+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Linux 下將顯示卡超頻</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://it.oc.com.tw/ocitview.asp?gitid=114490'&gt;原網址&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;也希望可以找到在 Linux 下將 CPU 超頻的方法 :D&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/35533954-1267636990841147524?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/1267636990841147524/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=1267636990841147524' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1267636990841147524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1267636990841147524'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/05/linux.html' title='Linux 下將顯示卡超頻'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-8202592887437477151</id><published>2007-05-20T22:11:00.001+08:00</published><updated>2009-09-01T11:32:15.465+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FON'/><title type='text'>FON</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;在當兵前我從 Moztw.org 聽到了有關 FON 這個計畫，只要 NT $1xx 就可以買到一個無線AP，不過我從拿到之後到現在過了二三個月之後才將這個 AP 裝上，這個計畫的目地是希望能讓全球處處都能利用無線AP 來上網，FON 這個計畫對使用者有三個身份可以選擇， Alien、Linus ，Bill，Alien 身份是對沒有 FON AP 的使用者，如果他想使用無線網路，他可以免費使用 Linus 身份的人提供的 AP，或是付費使用 Bill 的 AP。Linus 身份的人可以免費使用 Linus 和 Bill 的無線網路。Bill 可以從使用 Bill 無線網路的使用者身上收取一些費用。FON AP 的管理者可以設定分享多少的頻寬來讓別人使用。目前我架設的 FON AP 是使用 Linus 的身份，地點在江子翠捷運站附近，有興趣的人也一起來加入 &lt;a href='http://www.fon.com'&gt;FON&lt;/a&gt; 吧:D&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=293feb67-836c-8f54-a064-f3ee1ca86492' alt='' class='zemanta-pixie-img'/&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/35533954-8202592887437477151?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/8202592887437477151/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=8202592887437477151' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/8202592887437477151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/8202592887437477151'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/05/fon.html' title='FON'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-3441719288865135271</id><published>2007-04-22T22:17:00.003+08:00</published><updated>2007-06-02T12:37:06.882+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='小貓咪'/><title type='text'>靜靜生病了</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style='text-align: left;'&gt;前幾天在靜靜的身上發現了幾處結痂的傷口和脫毛的現象，一開始不以為意，後來脫了一小塊區域的毛之後，才感覺到不對勁，帶去給醫生看後才知道是霉菌造成的，一開始還以為是安安和靜靜打架所造成的，看來是錯怪了安安了(雖然平常也很皮 囧)，這次治療，一個星期去一次，要一個月。沒想到過幾天連安安都中標了，如果動物也有健保該有多好 XD&lt;br&gt;&lt;/br&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/35533954-3441719288865135271?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/3441719288865135271/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=3441719288865135271' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/3441719288865135271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/3441719288865135271'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/04/blog-post_22.html' title='靜靜生病了'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-1137728378523757504</id><published>2007-04-21T16:46:00.001+08:00</published><updated>2007-04-21T16:46:12.442+08:00</updated><title type='text'>可以在 Blog 中即時產生預覽圖的方法</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://chenkaie.blogspot.com/2006/11/javascript-put-snap-anywhere-on-your.html'&gt;連結&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;來&lt;a href='http://www.snap.com/about/spa2.php'&gt;這裡&lt;/a&gt;申請，將申請完得到的代碼加入自已的Blog，這樣就可以使用了，簡單吧XD&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-1137728378523757504?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/1137728378523757504/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=1137728378523757504' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1137728378523757504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1137728378523757504'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/04/blog.html' title='可以在 Blog 中即時產生預覽圖的方法'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-1442039702762233458</id><published>2007-01-17T20:17:00.001+08:00</published><updated>2007-01-17T20:23:02.226+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>使用 GNU TOOLS (automake) 配合其他 Framework 來編譯程式</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://www.ibm.com/developerworks/cn/linux/l-gtk/part2/index.html"&gt;原連結&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/cn/linux/l-gtk/part1/index.html"&gt;其他連結&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;從以上連結發現，在 Makefile.am 檔案中，加入&lt;br /&gt;&lt;pre&gt;AUTOMAKE_OPTIONS = foreign&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;INCLUDES = `pkg-config --cflags gtk+-2.0`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;LIBS = `pkg-config --libs gtk+-2.0`&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;bin_PROGRAMS = hello&lt;br /&gt;&lt;br /&gt;hello_SOURCES = hello.c&lt;br /&gt;&lt;/pre&gt;就可以編譯 GTK+ 的程式，如果是 wxWidget 程式的話，改成&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;INCLUDES = `wx-config --cxxflags`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;LIBS = `wx-config --libs`&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;也就可以編譯了&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-1442039702762233458?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/1442039702762233458/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=1442039702762233458' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1442039702762233458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1442039702762233458'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2007/01/gnu-tools-automake-framework.html' title='使用 GNU TOOLS (automake) 配合其他 Framework 來編譯程式'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-5897120695743356767</id><published>2006-12-15T19:22:00.000+08:00</published><updated>2009-09-01T11:32:48.360+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidget Functions'/><title type='text'>wxDirSelector</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt; &lt;b&gt;&lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxstring.html#wxstring'&gt;wxString&lt;/a&gt;&lt;/b&gt;  &lt;b&gt;wxDirSelector&lt;/b&gt;(&lt;b&gt;const &lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxstring.html#wxstring'&gt;wxString&lt;/a&gt;&amp;amp; &lt;/b&gt;&lt;i&gt;message = wxDirSelectorPromptStr&lt;/i&gt;,&lt;br /&gt;&lt;b&gt;const &lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxstring.html#wxstring'&gt;wxString&lt;/a&gt;&amp;amp; &lt;/b&gt;&lt;i&gt;default_path = ""&lt;/i&gt;,&lt;b&gt; long &lt;/b&gt;&lt;i&gt;style = 0&lt;/i&gt;, &lt;b&gt;const &lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxpoint.html#wxpoint'&gt;wxPoint&lt;/a&gt;&amp;amp; &lt;/b&gt;&lt;i&gt;pos = wxDefaultPosition&lt;/i&gt;,&lt;b&gt;&lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxwindow.html#wxwindow'&gt; wxWindow&lt;/a&gt; *&lt;/b&gt;&lt;i&gt;parent = NULL&lt;/i&gt;)&lt;/p&gt;&lt;br /&gt;&lt;p&gt; Pops up a directory selector dialog. The arguments have the same meaning as those of wxDirDialog::wxDirDialog(). The message is displayed at the top, and the default_path, if specified, is set as the initial selection.&lt;/p&gt;&lt;p&gt; The application must check for an empty return value (if the user pressed Cancel). For example:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;pre&gt;const wxString&amp;amp; dir = wxDirSelector("Choose a folder");&lt;br /&gt;if ( !dir.empty() )&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=7efccbb2-4cdf-8757-854e-b12d4110fbee' alt='' class='zemanta-pixie-img'/&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/35533954-5897120695743356767?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/5897120695743356767/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=5897120695743356767' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/5897120695743356767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/5897120695743356767'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/wxdirselector.html' title='wxDirSelector'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-3073112567969188625</id><published>2006-12-15T16:18:00.000+08:00</published><updated>2009-09-01T11:33:20.857+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidget Functions'/><title type='text'>wxMessageBox</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt; &lt;b&gt;int&lt;/b&gt; &lt;b&gt;wxMessageBox&lt;/b&gt;(&lt;b&gt;const &lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxstring.html#wxstring'&gt;wxString&lt;/a&gt;&amp;amp; &lt;/b&gt;&lt;i&gt;message&lt;/i&gt;, &lt;b&gt;const &lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxstring.html#wxstring'&gt;wxString&lt;/a&gt;&amp;amp; &lt;/b&gt;&lt;i&gt;caption = "Message"&lt;/i&gt;, &lt;b&gt;int&lt;/b&gt;&lt;i&gt; style = wxOK&lt;/i&gt;,&lt;b&gt;&lt;a href='http://www.wxwidgets.org/manuals/2.6.3/wx_wxwindow.html#wxwindow'&gt; wxWindow&lt;/a&gt; *&lt;/b&gt;&lt;i&gt;parent = NULL&lt;/i&gt;, &lt;b&gt;int&lt;/b&gt;&lt;i&gt; x = -1&lt;/i&gt;, &lt;b&gt;int&lt;/b&gt;&lt;i&gt; y = -1&lt;/i&gt;)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; General purpose message dialog.  &lt;i&gt;style&lt;/i&gt; may be a bit list of the following identifiers:&lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;table&gt;   &lt;tbody&gt;&lt;tr&gt;&lt;td valign='top'&gt; wxYES_NO &lt;/td&gt;  &lt;td valign='top'&gt; Puts Yes and No buttons on the message box. May be combined with wxCANCEL. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxCANCEL &lt;/td&gt;  &lt;td valign='top'&gt; Puts a Cancel button on the message box. May only be combined with wxYES_NO or wxOK. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxOK &lt;/td&gt;  &lt;td valign='top'&gt; Puts an Ok button on the message box. May be combined with wxCANCEL. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxICON_EXCLAMATION &lt;/td&gt;  &lt;td valign='top'&gt; Displays an exclamation mark symbol. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxICON_HAND &lt;/td&gt;  &lt;td valign='top'&gt; Displays an error symbol. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxICON_ERROR &lt;/td&gt;  &lt;td valign='top'&gt; Displays an error symbol - the same as wxICON_HAND. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxICON_QUESTION &lt;/td&gt;  &lt;td valign='top'&gt; Displays a question mark symbol. &lt;/td&gt;&lt;/tr&gt;   &lt;tr&gt;&lt;td valign='top'&gt; wxICON_INFORMATION &lt;/td&gt;  &lt;td valign='top'&gt; Displays an information symbol. &lt;/td&gt;&lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt; The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.&lt;/p&gt;&lt;p&gt; For example:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;pre&gt;  ...&lt;br /&gt;int answer = wxMessageBox("Quit program?", "Confirm",&lt;br /&gt;                       wxYES_NO | wxCANCEL, main_frame);&lt;br /&gt;if (answer == wxYES)&lt;br /&gt;main_frame-&amp;gt;Close();&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt; &lt;i&gt;message&lt;/i&gt; may contain newline characters, in which case the message will be split into separate lines, to cater for large messages.&lt;p&gt; &lt;wx/&gt;&lt;/p&gt;&lt;p&gt; &lt;wx/&gt;&lt;/p&gt;&lt;wx/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=e4becfcd-256f-81cd-a576-5cddb9e486cd' alt='' class='zemanta-pixie-img'/&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/35533954-3073112567969188625?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/3073112567969188625/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=3073112567969188625' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/3073112567969188625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/3073112567969188625'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/wxmessagebox.html' title='wxMessageBox'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-1592861745862263406</id><published>2006-12-13T21:43:00.000+08:00</published><updated>2009-09-01T11:33:43.530+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidget'/><title type='text'>wxWidget Event Handler</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;在有繼承到 wxEvtHandler 這個類別的子類別，都可以使用 DECLARE_EVENT_TABLE() 來讓這個類別有處理訊息的能力，像是按鍵處理、視窗移動、滑鼠按鍵 … 等，都是需要我們處理的訊息，以下是讓一個 MyFrame 有處理訊息的能力：&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// Declare our main frame class&lt;br /&gt;class MyFrame : public wxFrame&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;    // Constructor&lt;br /&gt;    MyFrame(const wxString&amp;amp; title);&lt;br /&gt;    // Event handlers&lt;br /&gt;    void OnQuit(wxCommandEvent&amp;amp; event);&lt;br /&gt;    void OnAbout(wxCommandEvent&amp;amp; event);&lt;br /&gt;private:&lt;br /&gt;    // This class handles events&lt;br /&gt;    &amp;lt;span style="font-weight: bold;"&amp;gt;DECLARE_EVENT_TABLE()&amp;lt;/span&amp;gt;&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;當我們宣告 DECLARE_EVENT_TABLE() 讓 MyFrame 有辦法處理訊息之後，接下來要利用 BEGIN_EVENT_TABLE() 將訊息和 Function 作個對應表，方法如下：&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// Event table for MyFrame&lt;br /&gt;BEGIN_EVENT_TABLE(MyFrame, wxFrame)&lt;br /&gt;EVT_MENU(&amp;lt;span style="font-weight: bold;"&amp;gt;wxID_ABOUT&amp;lt;/span&amp;gt;, MyFrame::OnAbout)&lt;br /&gt;EVT_MENU(&amp;lt;span style="font-weight: bold;"&amp;gt;wxID_EXIT&amp;lt;/span&amp;gt;, MyFrame::OnQuit)&lt;br /&gt;END_EVENT_TABLE()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;BEGIN_EVENT_TABLE 的第一個參數是子類別，第二個參數是父類別，中間的二個 Event 是對應功能表的關於和離開，只要有功能表發出 wxID_ABOUT 或是 wxID_EXIT 訊息，會在這個地方轉成相對應的 Function，以下是 MyFrame 的建構子，也是訊息和功能表連結的地方：&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;MyFrame::MyFrame(const wxString&amp;amp; title)&lt;br /&gt;: wxFrame(NULL, wxID_ANY, title)&lt;br /&gt;{&lt;br /&gt;// Create a menu bar&lt;br /&gt;wxMenu *fileMenu = new wxMenu;&lt;br /&gt;&lt;br /&gt;// The “About” item should be in the help menu&lt;br /&gt;wxMenu *helpMenu = new wxMenu;&lt;br /&gt;&lt;br /&gt;helpMenu-&amp;gt;Append(&amp;lt;span style="font-weight: bold;"&amp;gt;wxID_ABOUT&amp;lt;/span&amp;gt;, wxT(“&amp;amp;About...\tF1”),wxT(“Show about dialog”));&lt;br /&gt;fileMenu-&amp;gt;Append(&amp;lt;span style="font-weight: bold;"&amp;gt;wxID_EXIT&amp;lt;/span&amp;gt;, wxT(“E&amp;amp;xit\tAlt-X”),wxT(“Quit this program”));&lt;br /&gt;&lt;br /&gt;// Now append the freshly created menu to the menu bar...&lt;br /&gt;wxMenuBar *menuBar = new wxMenuBar();&lt;br /&gt;menuBar-&amp;gt;Append(fileMenu, wxT(“&amp;amp;File”));&lt;br /&gt;menuBar-&amp;gt;Append(helpMenu, wxT(“&amp;amp;Help”));&lt;br /&gt;&lt;br /&gt;// ... and attach this menu bar to the frame&lt;br /&gt;SetMenuBar(menuBar);&lt;br /&gt;// Create a status bar just for fun&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;在建立 helpMenu 和 fileMenu 之後，可以利用 Append 的功能，來增加功能表的選項，並和訊息作連結，新增的 About 和 Exit 各自連結 wxID_ABOUT 和 wxID_EXIT ，這樣就是個簡單的訊息對應表。&lt;br /&gt;&lt;br /&gt;以上是靜態的訊息對應表宣告，如果在程式中有需要將訊息表重新對應的時候，可以利用 wxEvtHandler 中的 Connect() 和 Disconnect()  來做連結和斷開的動作，Function 的原型如下：&lt;br /&gt;&lt;br /&gt;wxEvtHandler::Connect&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;void Connect(int id, int lastId, wxEventType eventType, wxObjectEventFunction function, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)&lt;br /&gt;void Connect(int id, wxEventType eventType, wxObjectEventFunction function, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)&lt;br /&gt;void Connect(wxEventType eventType, wxObjectEventFunction function, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; frame-&amp;gt;Connect( wxID_EXIT,&lt;br /&gt;   wxEVT_COMMAND_MENU_SELECTED,&lt;br /&gt;   wxCommandEventHandler(MyFrame::OnQuit) );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;wxEvtHandler::Disconnect&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;bool Disconnect(wxEventType eventType = wxEVT_NULL, wxObjectEventFunction function = NULL, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)&lt;br /&gt;bool Disconnect(int id = wxID_ANY, wxEventType eventType = wxEVT_NULL, wxObjectEventFunction function = NULL, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)&lt;br /&gt;bool Disconnect(int id, int lastId = wxID_ANY, wxEventType eventType = wxEVT_NULL, wxObjectEventFunction function = NULL, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=59ac828d-118a-872f-80e4-d82bb77539de' alt='' class='zemanta-pixie-img'/&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/35533954-1592861745862263406?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/1592861745862263406/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=1592861745862263406' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1592861745862263406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1592861745862263406'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/wxwidget-event-handler.html' title='wxWidget Event Handler'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-2815614368578924095</id><published>2006-12-11T00:04:00.000+08:00</published><updated>2006-12-16T11:59:48.951+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>PuTTY - SSH Tunnel Usage</title><content type='html'>&lt;a style="color: rgb(255, 0, 0);" href="http://chenkaie.blogspot.com/2006/11/security-putty-ssh-tunnel-usage.html"&gt;引用&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;※文章開始：&lt;br /&gt;&lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/"&gt;PuTTY&lt;/a&gt;除 了能讓 Windows 平台以 ssh 通訊協定連入 Unix-Like 作業系統之外, ssh 連線後的通道還能達成許多目的, 如: 突破防火牆封鎖、防止網路封包竊聽、遠端存取防火牆內資源等等. 例如員工出差透過 ssh 安全通道連回公司存取資料, 以確保資料安全. &lt;br /&gt;&lt;span id="fullpost"&gt; &lt;p&gt;常見的 SSH Tunnel 運用如下:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;透過 proxy 安全上網、讓 msn 突破防火牆封鎖&lt;/li&gt;&lt;li&gt;連入 smtp、pop3、vnc (遠端桌面)、samba (網路上的芳鄰)&lt;/li&gt;&lt;/ol&gt;&lt;span id="fullpost"&gt;  &lt;div id="a000159more"&gt; &lt;p&gt;ssh server 環境:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Unix-Like 作業系統 + ssh daemon&lt;/li&gt;&lt;li&gt;Windows 作業系統 + &lt;a href="http://www.51cto.com/html/2005/1125/12282.htm"&gt;  cygwin with sshd&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pumb.org/viewthread.php?tid=155&amp;fpage=1&amp;amp;highlight="&gt;  內建 sshd 的 IP 分享器&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;client pc 環境:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;  &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html"&gt;下載   PuTTY&lt;/a&gt;, 將 putty.exe 置於 C:\Windows\System32 目錄中, "開始"→"執行" 或 "命令提示字元模式"   中輸入 putty 即可執行&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;實例一: 使用 proxy (代理伺服器)&lt;/span&gt;&lt;/p&gt; &lt;ablockquote&gt;  &lt;/ablockquote&gt;&lt;p&gt;目的: 避免被監聽 URL、蒐集密碼&lt;/p&gt;  &lt;p&gt;↓啟動 PuTTY, 輸入 &lt;span style="color: rgb(255, 0, 255);"&gt;sshd host 網址&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.1.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓切換到 Connection -&gt; SSH -&gt; Tunnels 畫面, 輸入 Source port:  &lt;span style="color: rgb(255, 0, 255);"&gt;8080&lt;/span&gt; (自訂), Destination: &lt;span style="color: rgb(255, 0, 255);"&gt;  proxy server 的 IP 和 Port&lt;/span&gt;, &lt;span style="color: rgb(0, 255, 0);"&gt;輸入完畢記得按 "Add"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.2.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓如有需要, 可回到 Session 畫面儲存 (Save) 設定值, 以後執行 PuTTY 時可直接讀取 (Load) 設定值. 在任何畫面按   "Open" 即可以目前設定進行連線.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.3.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓登入 sshd host 後, 將視窗縮到最小, 保持 ssh 連線&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.4.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓開啟瀏覽器, 設定 proxy 為: localhost:8080 以 IE 為例: 工具→網際網路選項→連線→區域網路設定&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.5.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;設定完畢回到瀏覽器主畫面, 開始透過 ssh 安全通道瀏覽網頁&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;實例二: MSN Messenger&lt;/span&gt;&lt;/p&gt; &lt;ablockquote&gt;  &lt;/ablockquote&gt;&lt;p&gt;目的: 突破公司防火牆限制、避免被側錄聊天內容&lt;/p&gt;  &lt;p&gt;↓PuTTY 設定: Source port: &lt;span style="color: rgb(255, 0, 255);"&gt;1080&lt;/span&gt;; Destination:  &lt;span style="color: rgb(255, 0, 255);"&gt;空白&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 255);"&gt;Dynamic&lt;/span&gt;  &lt;span style="color: rgb(0, 255, 0);"&gt;設定完畢記得按 "Add"&lt;/span&gt; (其他 PuTTY 操作同上述)&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.7.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓MSN Messenger 設定: 工具→選項→連線→進階設定→只勾選 &lt;span style="color: rgb(255, 0, 255);"&gt;SOCKS 5 版&lt;/span&gt;,   伺服器: &lt;span style="color: rgb(255, 0, 255);"&gt;localhost&lt;/span&gt;, 連接埠: &lt;span style="color: rgb(255, 0, 255);"&gt;1080&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.8.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;實例三: Outlook Express&lt;/span&gt;&lt;/p&gt; &lt;ablockquote&gt;  &lt;/ablockquote&gt;&lt;p&gt;目的: 避免被攔截信件內容、蒐集密碼&lt;/p&gt;  &lt;p&gt;↓PuTTY 依序設定: Source: &lt;span style="color: rgb(255, 0, 255);"&gt;25&lt;/span&gt;, Destination:  &lt;span style="color: rgb(255, 0, 255);"&gt;smtp.host.ip:25&lt;/span&gt;; Source: &lt;span style="color: rgb(255, 0, 255);"&gt;  110&lt;/span&gt;, Destination: &lt;span style="color: rgb(255, 0, 255);"&gt;pop3.host.ip:110&lt;/span&gt; (都是   Local)&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.9.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓Outlook Express 設定: POP3: &lt;span style="color: rgb(255, 0, 255);"&gt;localhost&lt;/span&gt;; SMTP:  &lt;span style="color: rgb(255, 0, 255);"&gt;localhost&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.10.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;實例四: 網路上的芳鄰&lt;/span&gt;&lt;/p&gt; &lt;ablockquote&gt;  &lt;/ablockquote&gt;&lt;p&gt;目的: 存取遠端檔案分享資源&lt;/p&gt;  &lt;p&gt;↓新增硬體: 網路介面卡 -&gt; Microsoft -&gt; Microsoft Loopback Adapter&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.11.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓取消勾選 "File and Printer Sharing for Microsoft Networks", 點選 "Internet   Protocol (TCP/IP)" -&gt; "內容" 進行下一步設定&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.12.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓設定 Loopback Adapter IP 位址為: &lt;span style="color: rgb(255, 0, 255);"&gt;10.0.0.1 /   255.255.255.0&lt;/span&gt;, 點選 "進階" 進行下一步設定&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.13.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓點選 "停用 [NetBIOS over TCP/IP]", 按確定完成所有設定後, 重新啟動電腦.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.14.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓PuTTY 設定: Source port: &lt;span style="color: rgb(255, 0, 255);"&gt;10.0.0.1:139&lt;/span&gt;;   Destination: &lt;span style="color: rgb(255, 0, 255);"&gt;samba.server.ip:139 或 其他 windows 分享電腦 :   埠號 139&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.15.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;↓連線網路磁碟機: 直接把 10.0.0.1 當成一般 Windows 分享電腦即可&lt;/p&gt;  &lt;p&gt;&lt;img src="http://cha.homeip.net/blog/archives/putty.16.gif" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;br /&gt;後記:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;若遭防火牆擋 22 port, 可將 ssh server 改成 80 port&lt;/li&gt;&lt;li&gt;若要防止公司內部人員使用 PuTTY + ssh 通道搞怪, 可於   &lt;a href="http://cha.homeip.net/blog/archives/2005/12/l7filter.html"&gt;Linux   NAT + Layer 7 防火牆&lt;/a&gt; 擋掉 ssh 通訊協定:&lt;br /&gt;iptables -A FORWARD -m layer7 --l7proto ssh -j DROP&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;參考資料:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="https://kiki.ee.ntu.edu.tw/Proxy/"&gt;PuTTY 的應用 -- proxy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://souptonuts.sourceforge.net/sshtips.htm"&gt;Breaking Firewalls  with OpenSSH and PuTTY&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.51cto.com/html/2005/1125/12282.htm"&gt;如何利用SSH隧道穿越你的企业级防火墙&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pumb.org/viewthread.php?tid=155&amp;fpage=1&amp;amp;highlight="&gt;只需HK$500就可以突破公司防火牆&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.serv.idv.tw/archives/000214.php"&gt;命令列下的MSN - pebrot&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-2815614368578924095?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/2815614368578924095/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=2815614368578924095' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2815614368578924095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2815614368578924095'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/putty-ssh-tunnel-usage.html' title='PuTTY - SSH Tunnel Usage'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-5907495642163042340</id><published>2006-12-10T19:45:00.000+08:00</published><updated>2007-04-19T13:21:35.713+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>How to play openGL based games with full 3D acceleration on XGL/compiz</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=176636"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;之前在使用 Beryl 時，我的 Return to Castle Wolfenstein:Enemy Territory (RTCW:ET) 沒有辦法正常的使用在 Beryl 中，甚至連移除了之後還是沒有辦法正常執行游戲，後來在 Google 中找到可能可以解決的方法(我還沒試過XD)，以下是可能可以解決的方法：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;CAVEAT:&lt;br /&gt;&lt;br /&gt;1) I have only tested this on GNOME.&lt;br /&gt;&lt;br /&gt;2) lithorus has reported that this does not work with the fglrx (ATI) driver. Trying the below with the same will result in an XGL crash.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First of all, do the following:&lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;sudo visudo&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and add the following to the end of the file:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;%user_name ALL=NOPASSWD: /usr/bin/Xorgallowlocal&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;where user_name is the group to which your user_name belongs (generally they go by the same name on a default Dapper install)&lt;br /&gt;&lt;br /&gt;press ctrl-X and hit "Y" to save and exit.&lt;br /&gt;&lt;br /&gt;now do the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;sudo gedit /usr/bin/Xorgallowlocal&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and paste the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;DISPLAY="$2" XAUTHORITY="$1" xhost local:&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;save and exit and do the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;sudo gedit /usr/bin/nonXgl&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and paste the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DISPLAY=":93"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if [ -z "$1" ]; then&lt;br /&gt;&lt;br /&gt;echo "Usage: nonXgl &lt;command&gt;"&lt;br /&gt;&lt;br /&gt;exit 1&lt;br /&gt;&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;isdisplay=0; isauth=0; for test in $(ps ax | grep "$DISPLAY" | grep Xorg ); do if [ $isauth -eq 1 ]; then export XAUTHORITY="$test"; isauth=0; fi; if [ "$test" = "-auth" ]; then isauth=1; fi; done;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sudo /usr/bin/Xorgallowlocal "$XAUTHORITY" "$DISPLAY"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;exec $@&lt;br /&gt;&lt;br /&gt;&lt;/command&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;save and exit.&lt;br /&gt;&lt;br /&gt;IN the above one thing needs to be kept in mind. you need to be sure that your display number is indeed "93" (by default it is 93 on almost all systems). To double check however, do the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;ps uax | grep Xorg | grep Xgl&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and look at the end of the line just before "terminate". There you will see your screen number. If it is anything other than 93, change the value of DISPLAY accordingly in "/usr/bin/nonXgl"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now do the folllowing:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;sudo chmod 755 /usr/bin/nonXgl&lt;br /&gt;&lt;br /&gt;sudo chmod 755 /usr/bin/Xorgallowlocal&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you are all set.&lt;br /&gt;&lt;br /&gt;To run any openGL based game, play it as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;nonXgl (game)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and enjoy full 3D acceleration!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If it works for you, you can go a step further and change the path of the game executable in your menu by using alacarte or some other way to be able to launch it from menu.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We can get this thread stickied if it works for others.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-5907495642163042340?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/5907495642163042340/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=5907495642163042340' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/5907495642163042340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/5907495642163042340'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/how-to-play-opengl-based-games-with.html' title='How to play openGL based games with full 3D acceleration on XGL/compiz'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-4738048089863032826</id><published>2006-12-10T19:12:00.000+08:00</published><updated>2006-12-14T01:03:55.255+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Logical Volumn Manager(LVM) 動態修正磁碟大小</title><content type='html'>來源 : 鳥哥網站 , &lt;a href="http://tldp.org/HOWTO/LVM-HOWTO/"&gt;LVM-HOWTO&lt;/a&gt;&lt;br /&gt;作者 : IBM 林彥明(Alex Lin)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b4B3DgnGxXo/RXvuHoygS9I/AAAAAAAAABI/HAW7t4FcmAU/s1600-h/pv_lv_vg.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_b4B3DgnGxXo/RXvuHoygS9I/AAAAAAAAABI/HAW7t4FcmAU/s320/pv_lv_vg.png" alt="" id="BLOGGER_PHOTO_ID_5006857225728183250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b4B3DgnGxXo/RXvud4ygS-I/AAAAAAAAABQ/qmxb47z5ao0/s1600-h/%E7%A4%BA%E6%84%8F%E5%9C%96.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b4B3DgnGxXo/RXvud4ygS-I/AAAAAAAAABQ/qmxb47z5ao0/s320/%E7%A4%BA%E6%84%8F%E5%9C%96.png" alt="" id="BLOGGER_PHOTO_ID_5006857607980272610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b4B3DgnGxXo/RXvu4IygS_I/AAAAAAAAABY/lJlIyx3AWz4/s1600-h/%E7%A4%BA%E6%84%8F%E5%9C%96_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b4B3DgnGxXo/RXvu4IygS_I/AAAAAAAAABY/lJlIyx3AWz4/s320/%E7%A4%BA%E6%84%8F%E5%9C%96_1.png" alt="" id="BLOGGER_PHOTO_ID_5006858058951838706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b4B3DgnGxXo/RXvvNIygTAI/AAAAAAAAABg/xp7mQU-kvYU/s1600-h/%E6%8C%87%E4%BB%A4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b4B3DgnGxXo/RXvvNIygTAI/AAAAAAAAABg/xp7mQU-kvYU/s320/%E6%8C%87%E4%BB%A4.png" alt="" id="BLOGGER_PHOTO_ID_5006858419729091586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# lvextend -L12G /dev/myvg/homevol&lt;br /&gt;lvextend -- extending logical volume "/dev/myvg/homevol" to 12 GB&lt;br /&gt;lvextend -- doing automatic backup of volume group "myvg"&lt;br /&gt;lvextend -- logical volume "/dev/myvg/homevol" successfully extended&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;will extend /dev/myvg/homevol to 12 Gigabytes.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# lvextend -L+1G /dev/myvg/homevol&lt;br /&gt;lvextend -- extending logical volume "/dev/myvg/homevol" to 13 GB&lt;br /&gt;lvextend -- doing automatic backup of volume group "myvg"&lt;br /&gt;lvextend -- logical volume "/dev/myvg/homevol" successfully extended&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;will add another gigabyte to /dev/myvg/homevol.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ext2/ext3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unless you have patched your kernel with the ext2online patch it is necessary to unmount the file system before resizing it. (It seems that the online resizing patch is rather dangerous, so use at your own risk)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   # umount /dev/myvg/homevol/dev/myvg/homevol&lt;br /&gt;   # resize2fs /dev/myvg/homevol&lt;br /&gt;   # mount /dev/myvg/homevol /home&lt;br /&gt;&lt;/pre&gt;        &lt;br /&gt;If you don't have e2fsprogs 1.19 or later, you can download the ext2resize command from ext2resize.sourceforge.net and use that:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   # umount /dev/myvg/homevol/dev/myvg/homevol&lt;br /&gt;   # ext2resize /dev/myvg/homevol&lt;br /&gt;   # mount /dev/myvg/homevol /home&lt;br /&gt;&lt;/pre&gt;            &lt;br /&gt;For ext2 there is an easier way. LVM 1 ships with a utility called e2fsadm which does the lvextend and resize2fs for you (it can also do file system shrinking, see the next section). &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;reiserfs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reiserfs file systems can be resized when mounted or unmounted as you prefer:&lt;br /&gt;&lt;br /&gt;      Online:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;         # resize_reiserfs -f /dev/myvg/homevol&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;      Offline:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;         # umount /dev/myvg/homevol&lt;br /&gt;         # resize_reiserfs /dev/myvg/homevol&lt;br /&gt;         # mount -treiserfs /dev/myvg/homevol /home&lt;br /&gt;&lt;/pre&gt;  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;xfs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;XFS file systems must be mounted to be resized and the mount-point is specified rather than the device name.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   # xfs_growfs /home&lt;br /&gt;&lt;/pre&gt;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-4738048089863032826?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/4738048089863032826/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=4738048089863032826' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/4738048089863032826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/4738048089863032826'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/logical-volumn-manager.html' title='Logical Volumn Manager(LVM) 動態修正磁碟大小'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_b4B3DgnGxXo/RXvuHoygS9I/AAAAAAAAABI/HAW7t4FcmAU/s72-c/pv_lv_vg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-4463396889399159451</id><published>2006-12-07T21:37:00.000+08:00</published><updated>2006-12-14T01:04:22.327+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><title type='text'>利用 mplayer 來看有字幕檔的電影</title><content type='html'>之前在 Ubuntu Desktop Linux 下想看電影，有了電影檔和字幕檔(.ssa)之後使用 mplayer 來觀賞時&lt;br /&gt;&lt;br /&gt;才發現在 mplayer 之中，沒有辦法觀看 UTF16 的字幕，只能看 UTF8的字幕，後來找到了解決方案如下：&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt; &lt;br /&gt;1.    編輯 ~/.mplayer/config 將 subcp 改成 utf8&lt;br /&gt;&lt;br /&gt;font=/usr/share/fonts/truetype/arphic/uming.ttf&lt;br /&gt;sub-fuzziness=1&lt;br /&gt;subcp=utf8&lt;br /&gt;unicode=yes&lt;br /&gt;subfont-autoscale=2&lt;br /&gt;subfont-text-scale=3&lt;br /&gt;vo=xv&lt;br /&gt;&lt;br /&gt;2.    在 gmplayer 中的 Perferences&lt;br /&gt;&lt;br /&gt;    Subtitle&amp;OSD 中的 Encoding 改成 None&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b4B3DgnGxXo/RXgfzIygS6I/AAAAAAAAAAc/xgelaDyvKGM/s1600-h/subtitle%26osd.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_b4B3DgnGxXo/RXgfzIygS6I/AAAAAAAAAAc/xgelaDyvKGM/s320/subtitle%26osd.png" alt="" id="BLOGGER_PHOTO_ID_5005785949215411106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;    Font 中的 Encoding 改成 Unicode&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b4B3DgnGxXo/RXgfzYygS7I/AAAAAAAAAAk/xPIZlaU9_vM/s1600-h/font.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_b4B3DgnGxXo/RXgfzYygS7I/AAAAAAAAAAk/xPIZlaU9_vM/s320/font.png" alt="" id="BLOGGER_PHOTO_ID_5005785953510378418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3.    利用程式將字幕檔中的所有內容從 UTF16 改成 UTF8&lt;br /&gt;&lt;br /&gt;    1.    iconv    -&gt;    iconv -f utf16 -t utf8 input.ssa -o output.ssa&lt;br /&gt;    2.    gedit    -&gt;    另存新檔改變編碼&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b4B3DgnGxXo/RXggB4ygS8I/AAAAAAAAAAs/ccmxEn-91LQ/s1600-h/gedit.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b4B3DgnGxXo/RXggB4ygS8I/AAAAAAAAAAs/ccmxEn-91LQ/s320/gedit.png" alt="" id="BLOGGER_PHOTO_ID_5005786202618481602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;4.    將檔名(.avi 和 .ssa) 改成同檔名 (這步可省略)&lt;br /&gt;&lt;br /&gt;這樣一來就可以在電影中看字幕了 :D&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-4463396889399159451?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/4463396889399159451/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=4463396889399159451' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/4463396889399159451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/4463396889399159451'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/12/mplayer.html' title='利用 mplayer 來看有字幕檔的電影'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_b4B3DgnGxXo/RXgfzIygS6I/AAAAAAAAAAc/xgelaDyvKGM/s72-c/subtitle%26osd.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-8024253875556833244</id><published>2006-11-25T23:35:00.000+08:00</published><updated>2006-12-16T11:58:33.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='關西'/><title type='text'>單兵戰鬥教練報告詞</title><content type='html'>以下文章是從        &lt;a href="http://www.wretch.cc/blog/tpottn&amp;amp;article_id=1701495"&gt;tpottn&lt;/a&gt; 的Blog轉載過來的，到時關西會用到 Orz&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt; &lt;br /&gt;　一、攻擊發起前準備（採戰鬥蹲姿）&lt;br /&gt;伍：單兵注意。&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：距離攻擊發起前還有三分鐘，伍長命令你做攻擊前準備，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我完成攻擊前準備。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，以潛行迅速退至掩蔽物後方三至五步之後採戰鬥蹲姿，檢查武器裝具，首先檢查武器， 由上而下檢查（防火帽、準星、刺刀座、瓦斯鎖螺、上護木、上護木螺絲、槍機總成、扳機總成、檢查槍托底板是否破裂、檢查子彈，不足五發予以更換或補足）檢 查裝具，由上而下，由左而右，由前而後，檢查（左鞋帶、左綁腿、右鞋帶、右綁腿、彈帶、Ｓ腰帶、刺刀銷、水壺、土工器具、防護面具攜行帶、手榴彈帶、檢查 鋼盔扣是否扣實）加強偽裝迷彩（手往臉上畫），試裝（左三圈、右三圈），以潛行迅速進入掩蔽物後方（開保險報好，好）報告伍長，單兵已完成攻擊前準備，待 命攻擊。&lt;br /&gt;&lt;br /&gt;　二、核爆及毒氣狀況&lt;br /&gt;伍：單兵注意&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：此時攻擊發起時間已到，伍長命令你攻擊前進。（單兵覆頌：攻擊前進，提槍躍進）&lt;br /&gt;伍：砲擊。&lt;br /&gt;單：迅速臥倒，將槍置於身體正下方，以兩手肘及兩腳尖支撐身體離地約10公分，張口掩耳，目視砲擊方向。&lt;br /&gt;伍：此時發現砲聲低沉，空氣中帶有（大蒜）異味，問單兵該如何處置？&lt;br /&gt;單：拔草或土測風向，將槍置於上風一臂可及之處，脫盔，向左翻身仰臥（身體於鋼盔後方），左手打開攜行袋，右手取出防護面具，以"七"字型稱開防護面具， 由下而上戴上防護面具，先拉耳帶，再拉腮帶，左手握住濾毒罐，右手遮吸氣孔，做密合試驗（用力吸氣），並以手勢通知鄰兵（注意注意←向上拍手，毒氣毒氣← 兩手交叉晃動，迅速帶上防護面具←手心朝臉上方並上下移動），向右翻身，覆盔，不待命令往上風處移動。&lt;br /&gt;&lt;br /&gt;　三、射擊與運動之聯繫&lt;br /&gt;　　１．就射擊位置&lt;br /&gt;伍：單兵注意&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：目標前方二十公尺土堆，伍長命令你就射擊位置，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我就射擊位置。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進至土堆後方三至五步迅速臥倒，以伏進左右偏移進入土堆後方，觀察目標，測 距離，選定瞄準點（抬頭看前方三次），出槍試瞄，出槍慢，轉槍面快，必要時修改工事（收槍，以手拍地三下），清掃射界（以手掃地三次），覆瞄，出槍慢，轉 槍面快，開保險報好，好。報告伍長，單兵已就射擊位置，待命射擊。&lt;br /&gt;&lt;br /&gt;　　２．變換射擊位置（臥倒時）&lt;br /&gt;伍：單兵注意&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：單兵因在此地停留過久，遭敵火猛烈攻擊，伍長命令你變換射擊位置，問單兵該如何處置？&lt;br /&gt;單：報告伍長，我決定變換射擊位置至前方二十公尺土堆，從土堆右側，踩躍進方式前去，我現在就去，請伍長以火力掩護我，以便我變換射擊位置。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，收槍以竹節蟲方式退至掩蔽物後方（彈匣朝上），檢查武器裝具，首先檢查武器，由上 而下檢查（防火帽、準星、刺刀座、瓦斯鎖螺、上護木、上護木螺絲、槍機總成、扳機總成、檢查槍托底板是否斷裂脫落、檢查子彈，不滿五發予以更換或補足）檢 查裝具，由上而下，由左而右，由前而後，檢查（左鞋帶、左綁腿、右鞋帶、右綁腿、彈帶、Ｓ腰帶、刺刀銷、水壺、土工器具、防護面具攜行帶、手榴彈帶、檢查 鋼盔扣是否扣實）檢查完畢，收槍收腿，提槍躍進置土堆後方三至五步迅速臥倒，以伏進左右偏移進入土堆後方，觀察目標，測距離，選定瞄準點（抬頭看前方三 次），出槍試瞄，出槍慢，轉槍面快，必要時修改工事（收槍，以手拍地三下），清掃射界（以手掃地三次），覆瞄，出槍慢，轉槍面快，開保險報好，好。報告伍 長，單兵已就射擊位置，待命射擊。&lt;br /&gt;&lt;br /&gt;　四、敵火下作業（臥倒時）&lt;br /&gt;伍：單兵注意&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：單兵攻擊至此，遭敵火猛烈攻擊，見前方地形廣闊，又無適當掩蔽物，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我完成敵火下作業。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，拔草或土測風向，將槍置於上風一臂可及之處，水平取出土工器具，左手推，右手拉， 轉側身，先挖左側土，由前往後挖，由後往前送，製成胸牆，挖好左側土，翻身入坑內，再挖右側土，由前往後挖，由後往前送，直至能掩蔽全身為止。以圓鍬背面 將胸牆拍實，再用雙手將臂座打實，水平收回土工器具，右手推，左手拉，取槍，觀察目標，測距離，選定瞄準點（抬頭看前方三次），出槍試瞄，出槍慢，轉槍面 快，試瞄，開保險報好，好。報告伍長，單兵已完成敵火下作業，待命射擊。&lt;br /&gt;&lt;br /&gt;　五、敵麓柴&lt;br /&gt;伍：單兵注意&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：單兵攻擊至此，發現前方五十公尺處敵麓柴一座，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我前去偵察。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進置偵察線後方三至五步迅速臥倒，以伏進方式左右偏移至偵察線後方。出槍偵 察，偵察完畢，並以反潛行、反躍進方式退回原處（臥倒）。報告伍長，據單兵偵察結果，此敵麓柴高五公尺，厚三公尺，長一百公尺，兩側無側防機關及詭雷設 施，材質由枯樹枝所組成，中央部分較為稀疏薄弱，可用掘開法破壞通過，請伍長以火力掩護破壞兵前去破壞。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進置偵察線後方三至五步迅速臥倒，以伏進方式左右偏移至敵麓柴後方，將槍至 於一旁，水平取出土工器具，左手推，右手拉，踩蹲姿利用土工器具將敵麓柴掘開，直至掘開為止，水平收回土工器具，右手推，左手拉，取槍，以適當姿勢迅速通 過敵麓柴，通過敵麓柴後迅速臥倒，並以手勢通知鄰兵迅速通過（右手由後往前揮動）。報告伍長，單兵以順利通過敵麓柴，人員無傷亡，武器無損毀，可繼續參加 戰鬥，請伍長指示爾後之行動。&lt;br /&gt;&lt;br /&gt;　六、敵外壕&lt;br /&gt;伍：Ｏ時Ｏ分單兵攻擊至此，於前方五十公尺敵外壕一座，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我前去偵察。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進置偵察線後方三至五步迅速臥倒，以伏進方式左右偏移至偵察線後方，脫盔欺 敵，左欺敵，右欺敵，反覆欺敵，覆盔，偵察壕底，出槍偵察，左偵察屈左腿，右偵察屈右腿，向前偵察，以竹節蟲方式收槍退至掩蔽物後方，再以反潛行、反躍進 方式退回原處（臥倒）。報告伍長，據單兵偵察結果，此敵外壕深五公尺、寬十公尺、長兩百公尺，兩側無側防機關及詭雷設施，壕底無積水及竹籤設施，可用攀登 法下、攀登法上通過請伍長以火力掩護破壞兵前去通過。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進置敵外壕後方三至五步迅速臥倒，以伏進方式進入壕邊。取毛鉤繩，拋下毛鉤 繩，採大背槍側身下壕（目視敵方，腳成剪刀腳），以刺刀探測壕底有無地雷，依序前進，攀登上壕，上壕後迅速以伏進姿勢進入掩蔽物後方，卸大背槍，出槍試 瞄，出槍慢，轉槍面快，並以手勢通知鄰兵迅速通過（右手由後往前揮動）。報告伍長，單兵以順利通過敵外壕，人員無傷亡，武器無損毀，可繼續參加戰鬥，請伍 長指示爾後之行動。&lt;br /&gt;&lt;br /&gt;　七、敵鐵絲網&lt;br /&gt;伍：Ｏ時Ｏ分單兵攻擊至此，於前方五十公尺敵鐵絲網一座，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我前去偵察。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進置偵察線後方三至五步迅速臥倒，以伏進方式左右偏移至偵察線後方。出槍偵 察，偵察完畢，並以反潛行、反躍進方式退回原處（臥倒）。報告伍長，據單兵偵察結果，此鐵絲網高一點五公尺、縱深五公尺、長一百五十公尺，兩側無側防機關 及詭雷設施，網上無音響設施，網底無環狀鐵絲網及竹籤，可用兩腳架破壞通過，請伍長以火力掩護破壞兵前去破壞。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，提槍躍進置偵察線後方三至五步迅速臥倒，以伏進方式左右偏移至敵鐵絲網後方，將槍 置於一臂可及之處，水平取出兩腳架，左手推，右手拉，以左手抓住鐵絲網長端，兩腳架一端抵地，右手將另一端下壓，剪斷鐵絲網將短邊折向敵方，握住長端向左 側翻身，將長端垂直插入土中，再向右側翻身，取槍，向前伏進，依序破壞通過。報告伍長，單兵以順利通過敵鐵絲網，人員無傷亡，武器無損毀，可繼續參加戰 鬥，請伍長指示爾後之行動。&lt;br /&gt;&lt;br /&gt;　八、衝鋒前準備&lt;br /&gt;伍：單兵注意。&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：距離衝鋒發起時間還有五分鐘，伍長命令你做衝鋒前準備，問單兵該如何處置？&lt;br /&gt;單：報告伍長，請伍長以火力掩護我，以便我完成衝鋒前準備。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護），關保險，退至掩蔽物後方，檢查武器裝具，首先檢查武器，由上而下檢查（防火帽、準星、刺刀 座、瓦斯鎖螺、上護木、上護木螺絲、槍機總成、扳機總成、檢查槍托底板是否斷裂脫落、檢查子彈，不滿五發予以更換或補足）檢查裝具，由上而下，由左而右， 由前而後，檢查（左鞋帶、左綁腿、右鞋帶、右綁腿、彈帶、Ｓ腰帶、刺刀銷、水壺、土工器具、防護面具攜行帶、手榴彈帶、檢查鋼盔扣是否扣實），卸除不必要 之偽裝（手做拆除動作），上刺刀檢查子彈匣，開保險，檢查手榴彈保險插銷，報告伍長，單兵以完成衝鋒前準備，待命衝鋒。&lt;br /&gt;&lt;br /&gt;　九、衝鋒發起及側防機關處置&lt;br /&gt;伍：單兵注意&lt;br /&gt;單：抬頭觀察（由左至右由近而遠反覆觀察）&lt;br /&gt;伍：此時衝鋒信號彈已發，伍長命令你衝鋒前進。&lt;br /&gt;單：（採肩射）衝鋒前進，殺～～（在距離敵陣地約二十五公尺前）取下手榴彈保險插銷，投彈（將手榴彈投向敵陣地），就地臥倒，一、二、三、碰，（採腰射向前衝鋒）殺～～（衝鋒至敵陣地，刀槍並用，行肉搏戰，上擊、衝擊、衝擊、砍劈、橫擊、衝擊、衝擊、砍劈，將敵殲滅。）&lt;br /&gt;&lt;br /&gt;　十、鞏固與整頓&lt;br /&gt;伍：單兵注意，敵方經我方射擊後，大都殲滅，尚於數名殘餘敵軍，問單兵如何處置？&lt;br /&gt;單：請伍長以火力掩護我，以便我就射擊位置。對殘餘敵軍行火力追擊。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護）至適當掩蔽物後方就射擊位置，對敵軍行火力攻擊。&lt;br /&gt;伍：單兵注意，此時敵軍有投誠跡象，伍長命令全班對敵實施心戰喊話（全連覆頌）：親愛的共軍弟兄們，你們已經被包圍了，不要再做無謂的抵抗了。放下武器，起義歸來吧。我們的政府是寬大為懷的，絕對保障你們的生命安全。&lt;br /&gt;伍：Ｏ時Ｏ分，單兵喊話後，有一名敵兵出來投誠，伍長命令你前去將他帶回。&lt;br /&gt;單：請伍長以火力掩護我前去將敵軍弟兄帶回。&lt;br /&gt;伍：好，我以火力掩護你。&lt;br /&gt;單：請鄰兵以火力掩護我（好，我以火力掩護你，我們交互掩護）（敵軍弟兄走至適當位置）站住，向後轉，放下武器，向前三步，放下身上所有裝具，向前三步，雙手抱頭，兩腳張開，再開（前去將敵軍弟兄帶回，同時鄰兵前去收繳敵武器裝具，伍長掩護）。&lt;br /&gt;單：報告伍長，單兵經此次戰鬥，人員無傷亡，武器無損毀，消耗子彈四十發，手榴彈三枚，擄獲敵軍一名，ＡＫ４７步槍一枝，子彈二十發，請伍長補充飲水彈藥口糧並指示爾後之行動。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-8024253875556833244?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/8024253875556833244/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=8024253875556833244' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/8024253875556833244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/8024253875556833244'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/blog-post.html' title='單兵戰鬥教練報告詞'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-2366594378338703716</id><published>2006-11-19T11:59:00.000+08:00</published><updated>2006-12-10T19:54:10.219+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><title type='text'>Linux 下的 Dr.Eye  - StarDict</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5250/4337/1600/555595/Screenshot.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5250/4337/320/645474/Screenshot.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;最近將桌面環境轉移到 Ubuntu Desktop Linux 下，大部份的工作都可以執行了 (大多在玩德總XD) 不過有時候需要用到翻譯軟體，後來找到個 OpenSource 的軟體 - StarDict ，他有Win32和Linux的版本，也支援隨點及找的功能&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-2366594378338703716?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/2366594378338703716/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=2366594378338703716' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2366594378338703716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/2366594378338703716'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/linux-dreye-stardict.html' title='Linux 下的 Dr.Eye  - StarDict'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-1388399703321280031</id><published>2006-11-16T21:10:00.000+08:00</published><updated>2006-12-16T11:58:10.078+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>自動撰寫 Makefile 的好工具 - Automake</title><content type='html'>&lt;a href="http://netlab.cse.yzu.edu.tw/~armor/columns/automake/automake.htm"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在 GNU/Linux 下有利用過 tarball 來安裝過程式的人，都會利用 configure 和 make 來偵測環境和建立二進位檔，如果自已想要寫個模組化的程式，勢必會遇上有許多檔案要編譯和連結的問題。編譯和連結這個工作可以交給make來完成，make會利用原始檔是否有被更改過，來決定需不需要重新編譯這個檔案，make的工作目標(Target)是看Makefile中所定義的，實際打開Makefile來看過之後，會發現內容實在是很複雜，所以就有人發展可以自動產生麻煩的Makefile，讓我們只要打make就可以輕鬆的來編譯和連結，下面的介紹，是從&lt;a style="color: rgb(255, 0, 0);" href="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/automake.htm"&gt;陳雍穆- automake&lt;/a&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;這裡所節錄的&lt;br /&gt;&lt;span id="fullpost"&gt; &lt;br /&gt;我們要利用 Automake來產生Makefile首先要有以下的工具：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/gcc/gcc.html" target="_blank"&gt; gcc &lt;/a&gt; &lt;/li&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/make/make.html" target="_blank"&gt; make &lt;/a&gt; &lt;/li&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/automake/automake.html" target="_blank"&gt; automake &lt;/a&gt; &lt;/li&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/autoconf/autoconf.html" target="_blank"&gt; Autoconf &lt;/a&gt; &lt;/li&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/m4/m4.html" target="_blank"&gt; m4 &lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cpan.org/" target="_blank"&gt; perl &lt;/a&gt; &lt;/li&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/tar/tar.html" target="_blank"&gt; tar &lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gnu.org/software/gzip/gzip.html" target="_blank"&gt;GNU zip &lt;/a&gt; ( gzip ) &lt;/li&gt;&lt;li&gt;GNU &lt;a href="http://www.gnu.org/software/libtool/libtool.html" target="_blank"&gt; Libtool &lt;/a&gt; ( 如果你需要產生 shared library )  &lt;/li&gt;&lt;/ul&gt;首先利用使用 autoscan 產生一個 configure.scan ，把他更名成 configure.in 。&lt;br /&gt;&lt;br /&gt;&lt;p&gt;  第二步：修改 configure.in 的內容。由 autoscan 產生的預設檔並不一定一樣，隨系統套件廠商的修改而不同。下面圖五是本範例產生的 預設 configure.in 檔，圖六是修改過的 configure.in 檔。  &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;center&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/configure-in.JPG" /&gt;&lt;br /&gt;圖五 &lt;p&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/step3.JPG" /&gt;&lt;br /&gt;圖六 &lt;/p&gt;&lt;/center&gt;  &lt;p&gt; 在改過的 configure.in 檔，我們加入了 AM_INIT_AUTOMAKE(s907441, 1.0) 與 AC_PROG_CC ，並更改了 AC_OUTPUT(Makefile) 。&lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;AC_INIT(FILE) ：autoscan 自行產生的，不要修改。 &lt;/li&gt;&lt;li&gt;AM_INIT_AUTOMAKE(PACKAGE,VERSION) ：這是必備的巨集，PACKAGE 是我們所要產生軟體套件的名稱，VERSION是版本編號，加在 AC_INIT(FILE) 後面。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;AC_PROG_CC ：檢查系統的 C compiler 。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;AC_OUTPUT(FILE) ：Automake 使用這個設定來決定要產生什麼檔案。我們要產生 Makefile 所以填入 Makefile 。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;以 dnl 開頭的都是註解。&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt; 第三步：執行 aclocal 和 autoconf ，分別會產生 aclocal.m4 及 configure 兩個檔案，如圖七。 &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;center&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/step4.JPG" /&gt;&lt;br /&gt;圖七 &lt;/center&gt;  &lt;p&gt; 第四步：使用編輯器，建立 Makefile.am 檔，內容如圖八所示。 &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;center&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/step5.JPG" /&gt;&lt;br /&gt;圖八 &lt;/center&gt;  &lt;p&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;AUTOMAKE_OPTIONS= foreign &lt;p&gt; AUTOMAKE_OPTIONS 所記錄的是嚴謹度。主要是訂定一個套件是否符合 GNU 標準的條件。預設值是  GNU ，這樣一來 整個 package 就要有一些 GNU規定的檔案存在，例如 INSTALL , NEWS , README , COPYING , AUTHORS , and ChangeLog 檔等。 foreign 是比較寬鬆的等級，只確定設定檔能完整的工作。 &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;bin_PROGRAMS= client server &lt;p&gt; bin_PROGRAMS 是決定要產生的執行檔檔名。如果要產生多個執行檔，每個檔名用空白字元隔開。換句話說，可以對應到我們上一個章節所講的  target 來理解。  &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;client_SOURCES= client.c config.h &lt;p&gt; 這裡就比較明顯，foo_SOURCES 跟上一個章節所講的 prerequisite 對應，這樣大家了解了吧！！而在這裡也可以使用巨集來工作。 &lt;/p&gt;&lt;pre&gt;xs = a.c b.c&lt;br /&gt;foo_SOURCES = c.c $(xs)&lt;br /&gt;&lt;/pre&gt; automake 會將 $(xs) 換成 a.c b.c ，整個 foo_SOURCES = c.c a.c b.c 。 &lt;p&gt;  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;server_SOURCES= server.c config.h gettime.c gettime.h gmt2local.c gmt2local.h inits.c inits.h &lt;p&gt; 同上 &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p&gt; 第五步：使用 automake --add-missing 將 Makefile.in 產生出來，如圖九所示。 automake 會根據 Makefile.am ， 同時 scan configure.in 檔，來產生對應的Makefile.in 。 &lt;/p&gt;&lt;p&gt;   &lt;/p&gt;&lt;center&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/step6.JPG" /&gt;&lt;br /&gt;圖九 &lt;/center&gt;  &lt;p&gt; 第六步：執行 ./configure ，我們可以看到 automake 強大的功能，他會去 check 一堆 header  檔、 function call 、 compiler 等等，如圖十所示。此時我們期望已久的 Makefile 就產生了。 configure 檢查 header 的動作是根據configure.in裡面所設定的 AC_CHECK_HEADERS( ) 和AC_CHECK_FUNCS( ) 裡面所設定的內容來 check 。 &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;center&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/step7.JPG" /&gt;&lt;br /&gt;圖十 &lt;/center&gt;  &lt;p&gt; 第七步：執行 make ，讓 make 根據 Makefile 來 compile 和 link 程式，如圖十一所示。而完成狀況 如圖十二所示，已經可以看到執行檔 client 和 server 。 &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;center&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/step8.JPG" /&gt;&lt;br /&gt;圖十一&lt;p&gt; &lt;img src="http://netlab.cse.yzu.edu.tw/%7Earmor/columns/automake/ok.JPG" /&gt;&lt;br /&gt;圖十二 &lt;/p&gt;&lt;/center&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-1388399703321280031?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/1388399703321280031/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=1388399703321280031' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1388399703321280031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/1388399703321280031'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/makefile-automake.html' title='自動撰寫 Makefile 的好工具 - Automake'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-7036638748445362584</id><published>2006-11-15T20:30:00.000+08:00</published><updated>2006-12-16T11:57:17.174+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>使用 QEMU 來產生 VMWare-Player 的映像檔</title><content type='html'>&lt;a href="http://www.cri.ch/linux/docs/sk0020.html"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;首先產生二進位之映像檔(硬碟要有指定的大小)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;qemu-img create -f raw (image)(size e.g. 4G)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;再將二進位映像檔轉成 VMWare-Player 專用的 vmdk 檔(作過動作後檔http://beta.blogger.com/img/gl.link.gif案會變小)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;qemu-img convert -f raw (qemu-image) -O vmdk (vmplayer-image e.g .vmdk ext)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-7036638748445362584?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/7036638748445362584/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=7036638748445362584' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/7036638748445362584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/7036638748445362584'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/qemu-vmware-player.html' title='使用 QEMU 來產生 VMWare-Player 的映像檔'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-6237223351828305712</id><published>2006-11-08T00:14:00.000+08:00</published><updated>2006-11-08T00:19:02.988+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><title type='text'>遠端桌面 Linux 版</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5250/4337/1600/Screenshot-%3F%3F%3F%3F%3F%3F%3F%3F.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger2/5250/4337/320/Screenshot-%3F%3F%3F%3F%3F%3F%3F%3F.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;今天無意發現的 Gnome 選單中，有個叫「終端伺服器用戶端的東西」Terminal Server Client ，支援協定如下：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RDP&lt;/li&gt;&lt;li&gt;RDPv5&lt;/li&gt;&lt;li&gt;VNC&lt;/li&gt;&lt;li&gt;XDMCP&lt;/li&gt;&lt;li&gt;ICA&lt;/li&gt;&lt;/ul&gt;前二種就是 Windows 用的遠端桌面&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-6237223351828305712?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/6237223351828305712/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=6237223351828305712' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/6237223351828305712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/6237223351828305712'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/linux.html' title='遠端桌面 Linux 版'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-838079824780749766</id><published>2006-11-07T23:51:00.000+08:00</published><updated>2006-11-11T13:57:06.479+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>VMWare-player + WinXP 圖片紀念 XD</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5250/4337/1600/Screenshot.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger2/5250/4337/400/Screenshot.png" alt="" border="0" /&gt;&lt;/a&gt; 右邊那張圖，是今天剛裝好VMware-player 和 WinXP 的圖片，這樣一來，就可以同時在 XP 和 Linux 中來玩了 XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-838079824780749766?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/838079824780749766/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=838079824780749766' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/838079824780749766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/838079824780749766'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/vmware-player-winxp-xd.html' title='VMWare-player + WinXP 圖片紀念 XD'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-5598983764107058451</id><published>2006-11-07T23:44:00.000+08:00</published><updated>2006-11-11T13:39:41.356+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>VMWare-player 所用的 vmx 檔內容記錄</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;#!/usr/bin/vmware&lt;br /&gt;&lt;span style="font-family:arial;"&gt;config.version = "8"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;virtualHW.version = "4"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;scsi0.present = "TRUE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;memsize = "512"&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;MemAllowAutoScaleDown = "FALSE"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ide0:0.present = "TRUE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ide0:0.fileName = "Windows XP Professional.vmdk"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ide1:0.present = "TRUE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ide1:0.fileName = "auto detect"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ide1:0.deviceType = "cdrom-raw"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ide1:0.autodetect = "TRUE"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;floppy0.present = "FALSE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;floppy0.fileName = "/dev/fd0"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ethernet0.present = "TRUE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ethernet0.connectionType = "nat"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;usb.present = "TRUE"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;sound.present = "TRUE"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sound.virtualDev = "es1371"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sound.fileName = "-1"&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;sound.autodetect = "TRUE"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;displayName = "Windows XP Professional (3)"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;guestOS = "winxppro"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;nvram = "Windows XP Professional.nvram"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;workingDir = "."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ide0:0.redo = ""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ethernet0.addressType = "generated"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;uuid.location = "56 4d be 58 fc c6 a1 cf-2d b9 d2 f6 33 32 2d 87"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;uuid.bios = "56 4d be 58 fc c6 a1 cf-2d b9 d2 f6 33 32 2d 87"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ethernet0.generatedAddress = "00:0c:29:32:2d:87"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ethernet0.generatedAddressOffset = "0"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;uuid.action = "create"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-5598983764107058451?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/5598983764107058451/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=5598983764107058451' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/5598983764107058451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/5598983764107058451'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/vmware-player-vmx.html' title='VMWare-player 所用的 vmx 檔內容記錄'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-3075873650781367333</id><published>2006-11-07T23:35:00.000+08:00</published><updated>2006-12-16T11:56:16.378+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><title type='text'>在 Linux 下安裝 vmware-player</title><content type='html'>轉錄 &lt;a style="color: rgb(255, 0, 0);" href="http://irw.ncit.edu.tw/peterju/tips.html#vmware"&gt;原連結&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;透過 VMWare Player，你可以在任何一台電腦上執行使用 VMWare 建立的虛擬機器檔案(.vmdk)。目前 VMware 已經在他們的網站上提供了幾個預先建立好的 VM 讓人下載和使用(&lt;a href="http://www.vmware.com/vmtn/appliances/directory/"&gt;http://www.vmware.com/vmtn/appliances/directory/&lt;/a&gt;)。 這些 VM 稱之為Appliance，包含了SUSE Linux Enterprise Server 和 Novell Linux Desktop，RedHat 的 Enterprise Linux等，可以視同為另一種Live CD 。 VMware公司另外提供了&lt;a href="http://www.vmware.com/vmtn/appliances/directory/browserapp.html"&gt; Browser Appliance&lt;/a&gt;(Ubuntu Linux 加上 Firefox)，透過這個 appliance，你可以安全的上網瀏覽網站，不用害怕網路上的病毒/惡意廣告程式/木馬等的攻擊。&lt;br /&gt;&lt;span id="fullpost"&gt; &lt;br /&gt;  &lt;p style="font-family: arial;"&gt;雖然VMware Player只能執行現有的.vmdk，但還是有方法可以利用VMware Player來重新建立自己所需要的.vmdk喔。以筆者Linux教學上最感困擾的就是如何安裝與切割規劃硬碟，如今有了VMware Player問題便迎刃而解了。 &lt;/p&gt;  &lt;ol style="font-family: arial;"&gt;&lt;li&gt;下載欲安裝的OS, 如Fedora core 5 的&lt;a href="ftp://ftp.uninett.no/pub/linux/Fedora/core/5/i386//iso/"&gt;ISO&lt;/a&gt;檔， 如&lt;a href="ftp://ftp.uninett.no/pub/linux/Fedora/core/5/i386//iso/FC-5-i386-DVD.iso"&gt;FC-5-i386-DVD.iso&lt;/a&gt;&lt;/li&gt;&lt;li&gt;下載&lt;a href="http://www.vmware.com/download/player/"&gt;VMware Player&lt;/a&gt;&lt;/li&gt;&lt;li&gt;下載&lt;a href="http://www.vmware.com/vmtn/appliances/directory/browserapp.html"&gt;Browser Appliance&lt;/a&gt;&lt;span class="green"&gt;(利用這個現成的映像檔才可安裝新的 linux，因為VMware Player無法產生它。若安裝的是 XP Professional ,請改下載&lt;a href="http://irw.ncit.edu.tw/peterju/document/winxppro.zip"&gt; winxppro.zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;解壓縮Browser Appliance後，以純文字編輯程式開啟其中Browser-Appliance.vmx這個組態檔。&lt;/li&gt;&lt;li&gt;修改IDE Storage(line 49)那一節其中的     &lt;div class="code"&gt; ide1:0.present = "TRUE"&lt;br /&gt;ide1:0.fileName = &lt;span class="red"&gt;"&lt;strong&gt;FC-5-i386-DVD.iso&lt;/strong&gt;"&lt;/span&gt;     &lt;span class="green"&gt;#若啟動的是光碟機則改為auto detect &lt;/span&gt;&lt;br /&gt;ide1:0.deviceType = "cdrom-image" &lt;span class="green"&gt;#若啟動 的是光碟機則改為cdrom-raw &lt;/span&gt;&lt;br /&gt;ide1:0.startConnected =&lt;span class="red"&gt; "&lt;strong&gt;TRUE&lt;/strong&gt;"&lt;/span&gt;  &lt;br /&gt;ide1:0.autodetect = "TRUE"&lt;/div&gt;    &lt;/li&gt;&lt;li&gt;以VMware Player開啟Browser-Appliance.vmx。&lt;/li&gt;&lt;li&gt;開機後以滑鼠點一下VMware Player後，迅速按下F2，進入BIOS修改開機啟動順序為 cdrom優先。&lt;span class="green"&gt;(這個動作必須快，不然就會直接從硬碟開機了)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;此時就會從FC-5-i386-DVD.iso開機，可以安裝所需的OS了&lt;span class="green"&gt;(若 以滑鼠點進虛擬機器，游標會無法移出來，此時必須同時按下Ctrl+Alt才能釋放游標)&lt;/span&gt;。&lt;/li&gt;&lt;/ol&gt;  &lt;p style="font-family: arial;"&gt;參考資源：&lt;/p&gt;  &lt;ul style="font-family: arial;"&gt;&lt;li&gt;如何使用VMware Player建立新的VM：&lt;a href="http://www.virtualization.info/2005/10/how-to-create-new-virtual-machine-with.html"&gt;參 考1&lt;/a&gt;, &lt;a href="http://www.hackaday.com/entry/1234000153064739/"&gt;參考2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;如何使用VMware Player執行現有的ISO檔： &lt;a href="http://www.virtualization.info/2005/10/how-to-launch-iso-and-use-livecds.html"&gt;http://www.virtualization.info/2005/10/how-to-launch-iso-and-use-livecds.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-3075873650781367333?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/3075873650781367333/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=3075873650781367333' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/3075873650781367333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/3075873650781367333'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/linux-vmware-player.html' title='在 Linux 下安裝 vmware-player'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-116264409808818587</id><published>2006-11-04T20:40:00.000+08:00</published><updated>2006-12-16T11:56:00.320+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>在 X-Window 中使用 FireFly newsung 字形</title><content type='html'>&lt;a href="http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?topic_id=1929&amp;forum=2#forumpost7677"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;wget -c &lt;a href="http://easylinux.info/uploads/fireflysung-1.3.0.tar.gz" target="_blank"&gt;http://easylinux.info/uploads/fireflysung-1.3.0.tar.gz&lt;/a&gt;&lt;br /&gt;sudo tar zxvf fireflysung-1.3.0.tar.gz&lt;br /&gt;sudo cp fireflysung-1.3.0/fireflysung.ttf /usr/share/fonts/truetype/&lt;br /&gt;sudo cp /etc/fonts/conf.d/ttf-arphic-uming /etc/fonts/conf.d/ttf-arphic-newsung.conf&lt;br /&gt;sudo cp /usr/share/language-selector/fontconfig/zh_TW /usr/share/language-selector/fontconfig/zh_TW_backup&lt;br /&gt;sudo sed -i -e 's/AR PL ShanHeiSun Uni/AR PL New Sung/' /etc/fonts/conf.d/ttf-arphic-newsung.conf&lt;br /&gt;sudo sed -i -e 's/AR PL ShanHeiSun Uni/AR PL New Sung/' /usr/share/language-selector/fontconfig/zh_TW&lt;br /&gt;sudo fc-cache -f -v&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-116264409808818587?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/116264409808818587/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=116264409808818587' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/116264409808818587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/116264409808818587'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/x-window-firefly-newsung.html' title='在 X-Window 中使用 FireFly newsung 字形'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-116263170298436207</id><published>2006-11-04T17:08:00.000+08:00</published><updated>2006-12-16T11:55:30.271+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Desktop Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Ubuntu Linux v6.10 試用心得</title><content type='html'>轉錄 &lt;a style="color: rgb(255, 102, 102);" href="http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?topic_id=1929&amp;forum=2#forumpost7677"&gt;Ubuntu.tw&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這幾天把家裡的電腦試著灌 Ubuntu Linux v6.10 Desktop 來玩看看，發現還不錯用&lt;br /&gt;&lt;br /&gt;先來記錄一下安裝心得，怕那個不小心又把系統給玩壞了&lt;br /&gt;&lt;br /&gt;ps. 在灌 Compiz , Beryl 和 NVidia 灌動程式的時候要小心，能的話最好先備份一下XD&lt;br /&gt;&lt;span id="fullpost"&gt; &lt;br /&gt;#更新sources.list，讓ubuntu支援更多的套件庫&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;wget http://apt.ubuntu.org.tw/sources.list.dapper&lt;br /&gt;sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup&lt;br /&gt;sudo mv sources.list.dapper /etc/apt/sources.list&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;#修改符合自己機器的核心(此段不一定要做，核心請依個人使用做調整)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get remove --purge linux-image-386 linux-386&lt;br /&gt;sudo apt-get install linux-image-2.6.15-27-686 linux-restricted-modules-686 linux-restricted-modules-2.6.15-27-686&lt;br /&gt;reboot&lt;br /&gt;sudo apt-get remove --purge linux-restricted-modules-386 linux-restricted-modules-2.6.15-23-386 linux-image-2.6.15-23-386&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;#安裝gcin中文輸入法、鍵盤數字鍵自動啟用、影像播放程式(含firefox plugins)、jre支援、&lt;br /&gt;flash、調整nvidia晶片支援&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get install gcin numlockx mplayer-686 totem-xine mozilla-mplayer sun-java5-jre \&lt;br /&gt;sun-java5-plugin flashplugin-nonfree nvidia-glx ttf-arphic-newsung&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;#修改xorg&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup&lt;br /&gt;sudo nvidia-glx-config enable&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;#調整java，選jre&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo update-alternatives --config java&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;ps.jre有些字會出現方塊酥，要調整fontconfig.properties&lt;br /&gt;&lt;br /&gt;#移除scim&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get remove --purge scim*&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;#安裝codecs&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;wget http://www1.mplayerhq.hu/MPlayer/releases/codecs/all-20060611.tar.bz2&lt;br /&gt;tar jxvf all-20060611.tar.bz2&lt;br /&gt;sudo mv all-20060611 /usr/local/lib/codecs&lt;br /&gt;sudo ln -s /usr/local/lib/codecs/ /usr/lib/win32&lt;br /&gt;rm all-20060611.tar.bz2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;#調整mplayer設定檔，這裡務必要寫，否則無法用firefox看影片&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;nano .mplayer/config&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;# Write your default config options here!&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;font=/usr/share/fonts/truetype/arphic/uming.ttf&lt;br /&gt;sub-fuzziness=1&lt;br /&gt;subcp=cp950&lt;br /&gt;unicode=yes&lt;br /&gt;subfont-autoscale=2&lt;br /&gt;subfont-text-scale=3&lt;br /&gt;vo=xv&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#修正中文字型顯示(可在apt-get dist-upgrade後再做，因為更新後的新版會蓋掉舊版)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo ln -sf /usr/share/language-selector/fontconfig/zh_TW /etc/fonts/language-selector.conf&lt;br /&gt;sudo nano /etc/fonts/language-selector.conf&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;把AR PL New Sung壘在AR PL ShanHeiSun Uni之上，共有三段&lt;br /&gt;&lt;br /&gt;#安裝Beryl&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo nano /etc/apt/sources.list&lt;br /&gt;&lt;br /&gt;deb http://www.beerorkid.com/compiz dapper main aiglx&lt;br /&gt;deb http://media.blutkind.org/xgl/ dapper main aiglx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;wget http://www.beerorkid.com/compiz/quinn.key.asc -O - | sudo apt-key add -&lt;br /&gt;wget http://media.blutkind.org/xgl/quinn.key.asc -O - | sudo apt-key add -&lt;br /&gt;sudo apt-get update;sudo apt-get dist-upgrade&lt;br /&gt;sudo apt-get install xserver-xgl libgl1-mesa xserver-xorg libglitz-glx1 beryl emerald emerald-themes&lt;br /&gt;nano .Xsession&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;# Start up Xgl and GNOME&lt;br /&gt;# Run Xgl server on :1, on top of normal X&lt;br /&gt;Xgl :1 -fullscreen -ac -accel xv -accel glx:pbuffer &amp;amp;&lt;br /&gt;# Tell subsequent X programs to access the Xgl server at :1&lt;br /&gt;DISPLAY=:1&lt;br /&gt;# Start GNOME&lt;br /&gt;exec gnome-session&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;大部分的教學檔會教你修改/etc/gdm/gdm.conf-custom，不過我是改.Xsession才成功的正常啟用beryl&lt;br /&gt;&lt;br /&gt;接下來到作業階段，初使啟動程式輸入&lt;br /&gt;&lt;br /&gt;/usr/bin/beryl-manager&lt;br /&gt;&lt;br /&gt;重新動啟X&lt;br /&gt;進入Beryl後，把鍵盤改成"一般 104鍵 鍵盤"，理論上滑鼠及鍵盤的功能都能正常使用&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35533954-116263170298436207?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/116263170298436207/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=116263170298436207' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/116263170298436207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/116263170298436207'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/11/ubuntu-linux-v610.html' title='Ubuntu Linux v6.10 試用心得'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35533954.post-116002938605501248</id><published>2006-10-05T14:22:00.000+08:00</published><updated>2007-05-21T21:38:05.373+08:00</updated><title type='text'>測試-SandBox</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;測試&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;測試程式碼&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;##CONTINUE##&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;int main()&lt;br&gt;&lt;/br&gt;{&lt;br&gt;&lt;/br&gt;   char[] ptr_e = "Hello World;&lt;br&gt;&lt;/br&gt;   char[] ptr_c = "有無對齊 Hello World";&lt;br&gt;&lt;/br&gt;}&lt;br&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/35533954-116002938605501248?l=icomready.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://icomready.blogspot.com/feeds/116002938605501248/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35533954&amp;postID=116002938605501248' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/116002938605501248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35533954/posts/default/116002938605501248'/><link rel='alternate' type='text/html' href='http://icomready.blogspot.com/2006/10/blog-post.html' title='測試-SandBox'/><author><name>hpeter</name><uri>http://www.blogger.com/profile/03319182656091815441</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
