<?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-10062204</id><updated>2011-12-28T17:14:52.301+08:00</updated><category term='OpenOffice'/><category term='電子'/><category term='電腦'/><title type='text'>阿呆的blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default?start-index=101&amp;max-results=100'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>184</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10062204.post-5277752646584853380</id><published>2011-10-16T00:33:00.000+08:00</published><updated>2011-10-16T00:33:48.247+08:00</updated><title type='text'>買房策略－地段、地段、地段與房價</title><content type='html'>首先我必須說，房子是我很不瞭解的部份。&lt;br /&gt;再來我必須說，我很幸運家裡有個在台北市的房子，沒有租屋付房租的壓力，&lt;br /&gt;因此這篇，比較接近我以投資觀點來看買房這件事情。&lt;br /&gt;這篇主要是看到了&lt;a href="http://greenhornfinancefootnote.blogspot.com/2010/07/1.html"&gt;張金鶚的房產七堂課讀後感續1-----購屋的大同世界&lt;/a&gt;，&lt;br /&gt;加上之前看過的漫步華爾街後的有感而發。 &lt;br /&gt;&lt;br /&gt;因為前陣子房價很高，老媽走在路上，就會到處看房子，然後嘆息說&lt;br /&gt;「以前應該在這裡買房，現在價格如何」。&lt;br /&gt;&lt;br /&gt;然後我問我老媽，買房重點是啥，她回答了一個名人的經典說法&lt;br /&gt;「買房重點有3個：地段、地段、地段」。&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;同一時間一間賣300萬，一間賣500萬，正常人會買哪間？&lt;br /&gt;如果只按照「地段」作為選擇依據，&lt;br /&gt;那麼300萬的房子和500萬的房子「都是值得購買的」，&lt;br /&gt;可是顯然不大對，正常人都會買300萬那間而不會買500萬那間。&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;在回想下，前陣子台股9000點時，新聞是否經常出現買房大賺，房價大漲的新聞？&lt;br /&gt;甚至可以比較一下，現在的房價和當時的房價相比有沒有差異？&lt;br /&gt;&lt;br /&gt;所以我認為，買房只是另一種投資，&lt;br /&gt;同樣要低買高賣或低買不賣，買進的時機點可能在市場景氣低點時會比較適合，&lt;br /&gt;在景氣大好時，可能不適合買房，&lt;br /&gt;我也認為，房價在任何時候價格不應該是相同的，&lt;br /&gt;房價應該也會受到景氣影響而有房價高點跟房價低點。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-5277752646584853380?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/5277752646584853380/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=5277752646584853380&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5277752646584853380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5277752646584853380'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/10/blog-post.html' title='買房策略－地段、地段、地段與房價'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-203894201569055311</id><published>2011-07-31T21:20:00.002+08:00</published><updated>2011-08-04T22:17:04.617+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice聚會之心得分享 - 過程與範例程式、投影片下載</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/2WgYcWU_h0s/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2WgYcWU_h0s&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/2WgYcWU_h0s&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;當天報告的投影片、範例程式：&lt;a href="http://fu391.myweb.hinet.net/OpenOffice.7z"&gt;OpenOffice範例程式與投影片&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;年初時參加OpenOffice聚會，當時依瑪貓說，&lt;br /&gt;之後OpenOffice Macro有成果，要和我們分享唷～&lt;br /&gt;&lt;br /&gt;我當時義不容辭的同意了，於是在之後準備了這份報告。&lt;br /&gt;&lt;br /&gt;這份報告，同時也是我到目前對OpenOffice Macro的認識與學習心得。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-203894201569055311?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.youtube.com/watch?v=icKEcNtsPho' title='OpenOffice聚會之心得分享 - 過程與範例程式、投影片下載'/><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/203894201569055311/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=203894201569055311&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/203894201569055311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/203894201569055311'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/07/openoffice.html' title='OpenOffice聚會之心得分享 - 過程與範例程式、投影片下載'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4329277892214528349</id><published>2011-07-08T10:45:00.002+08:00</published><updated>2011-07-08T13:02:46.882+08:00</updated><title type='text'>複委託之優點</title><content type='html'>日本發生海嘯後，我就在積極的查詢購買海外股票的方法和比較，&lt;br /&gt;最後發現，目前在台灣，可以透過2種方式購買到國外股票：&lt;br /&gt;1. 在海外開設股票帳戶&lt;br /&gt;2. 透過國內證券公司的海外複委託購買&lt;br /&gt;&lt;br /&gt;在經過比較後，最後我選擇使用海外複委託。&lt;br /&gt;&lt;br /&gt;因為，用海外複委託搜尋，會發現有人在詢問海外複委託好不好，&lt;br /&gt;所以這裡我大致列出我選擇的原因和海外複委託的優點和缺點。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;海外複委託的缺點：&lt;/div&gt;&lt;div style="color: blue;"&gt;1. 手續費&lt;/div&gt;我想，包括我在內所有人，&lt;br /&gt;都認為&lt;span style="color: red;"&gt;海外複委託最大的缺點是「&lt;b&gt;手續費&lt;/b&gt;」&lt;/span&gt;，&lt;br /&gt;海外複委託的手續費都很貴。&lt;br /&gt;以寶來證券日股交易來說，&lt;br /&gt;每次交易1%計算，但最少5000日幣，&lt;br /&gt;這相當於台幣1850左右(以1:2.7計算)。&lt;br /&gt;其他應該也差不多，&lt;br /&gt;日盛是最少5000日幣，&lt;br /&gt;超過xx萬改以1%計算。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;2. 人工單&lt;/div&gt;除了港股、美股之外，都只有人工單，&lt;br /&gt;電話呼叫很麻煩，有時候會打不進去，&lt;br /&gt;詢問報價，和奇摩查到的報價會有誤差。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;3. 帳戶操作麻煩&lt;/div&gt;a. 沒有T+2&lt;br /&gt;和台股不同，沒有T+2天，&lt;br /&gt;必須帳上有足夠外幣現金(有些可以台幣交割了)，&lt;br /&gt;轉成外幣買完後，盛下的零碎外幣不好處理，&lt;br /&gt;轉回有匯損，放著又不知道能幹嘛。&lt;br /&gt;b. 轉出需要Fax+電話確認&lt;br /&gt;錢從外幣帳戶轉出，需要傳真要求，&lt;br /&gt;而且需要電話確認，很麻煩。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;4. 限制比較多&lt;/div&gt;我不用信用和融資買賣(槓桿太恐怖了)，&lt;br /&gt;複委託在信用買賣和融資操作，&lt;br /&gt;是有限制的，印象中是不可以的。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;海外複委託的優點：&lt;/div&gt;&lt;div style="color: blue;"&gt;1. 多市場買賣&lt;/div&gt;許多人推薦直接開立海外股票帳戶操作，但指的都是美股，&lt;br /&gt;所以事實上，它並不是多市場，它只有美股可以操作，&lt;br /&gt;只是因為美股中有全世界大部分公司的股票發行，或者ADR，&lt;br /&gt;所以才說可以買到全世界公司的股票，但實際上，它還是美股，&lt;br /&gt;而不會是日股、韓股、港股。&lt;br /&gt;以這次日本海嘯後，我想買的日股來說，美股中的日本公司股價，&lt;br /&gt;其海嘯造成的影響沒有很大，真正造成衝擊是日本股價。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;2. 無銀行開戶限制&lt;/div&gt;這點其實和第一點是關聯的。&lt;br /&gt;要開立海外帳戶購買海外股票，必須針對單一地區開立銀行帳戶，&lt;br /&gt;例如買港股要去香港銀行開戶，買美股要開立美國證券帳戶，&lt;br /&gt;買日股要開立日本銀行帳戶...等。&lt;br /&gt;香港和美國相對問題比較少，香港近，請假2天去玩一玩，&lt;br /&gt;就能順便開好戶頭；美國可以用郵寄解決。&lt;br /&gt;韓國、新加坡不清楚。&lt;br /&gt;但針對日本，上網搜尋會發現，日本銀行排外性很高，&lt;br /&gt;留學生都不容易找到可以開戶的銀行，何況是觀光客。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;3. 手續費高，但其他費用少&lt;/div&gt;海外複委託雖然手續費高，&lt;br /&gt;但買賣時不用其他費用(配息手續費大家都有，費用也相同，看市場)，&lt;br /&gt;但其他海外帳戶不同。&lt;br /&gt;&lt;br /&gt;我同事買港股，&lt;br /&gt;選擇香港匯豐銀行(應該是很多人都會選擇的，香港最大)。&lt;br /&gt;香港匯豐銀行規定，帳戶內金額(聽同事說，&lt;br /&gt;含股票市值)必須大於20萬港幣，&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;好像需要2~3天，&lt;br /&gt;海外複委託的操作都是台灣的銀行的外幣帳戶操作，&lt;br /&gt;放錢到可以操作，大概2~3個小時即可&lt;br /&gt;(這應該是證券公司帳戶資訊沒更新，&lt;br /&gt;我從銀行帳戶看，是立刻就有錢)。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;4. 可靠度高&lt;/div&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4329277892214528349?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4329277892214528349/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4329277892214528349&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4329277892214528349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4329277892214528349'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/07/blog-post.html' title='複委託之優點'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-2234904161546674823</id><published>2011-04-04T16:21:00.001+08:00</published><updated>2011-04-04T16:22:42.173+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice Calc BASIC Macro位址、名稱轉換</title><content type='html'>在OOo Calc中寫OOo BASIC時，會遇到個問題是，&lt;br /&gt;要取得Cell時，常使用getCellByPosition() Method，例如：&lt;br /&gt;&lt;code&gt;oCell = oSheet.getCellByPosition(0,0)&lt;br /&gt;oCell.String = now 'This function returns the current date and time&lt;/code&gt;&lt;br /&gt;這樣可以取得A1這個Cell，並修改它的內容。&lt;br /&gt;&lt;br /&gt;但getCellByPosition() Method使用的是&lt;span style="color: red;"&gt;0 Base&lt;/span&gt;，且&lt;span style="color: blue;"&gt;X、Y都是數值&lt;/span&gt;，&lt;br /&gt;可是在Calc當中，&lt;br /&gt;我們一般操作都使用A1這樣的&lt;span style="color: blue;"&gt;字母+數值&lt;/span&gt;，且是&lt;span style="color: red;"&gt;1 Base&lt;/span&gt;，&lt;br /&gt;為了解決這個麻煩的小問題，我寫了個簡單的轉換函式，如下：&lt;br /&gt;&lt;code&gt;Function CellPositionToName(X As Integer, Y As Integer) As String&lt;br /&gt;Dim LETTER_ARRAY As Variant&lt;br /&gt;LETTER_ARRAY = Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ","BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BL","BM","BN","BO","BP","BQ","BR","BS","BT","BU","BV","BW","BX","BY","BZ","CA","CB","CC","CD","CE","CF","CG","CH","CI","CJ","CK","CL","CM","CN","CO","CP","CQ","CR","CS","CT","CU","CV","CW","CX","CY","CZ","DA","DB","DC","DD","DE","DF","DG","DH","DI","DJ","DK","DL","DM","DN","DO","DP","DQ","DR","DS","DT","DU","DV","DW","DX","DY","DZ","EA","EB","EC","ED","EE","EF","EG","EH","EI","EJ","EK","EL","EM","EN","EO","EP","EQ","ER","ES","ET","EU","EV","EW","EX","EY","EZ","FA","FB","FC","FD","FE","FF","FG","FH","FI","FJ","FK","FL","FM","FN","FO","FP","FQ","FR","FS","FT","FU","FV","FW","FX","FY","FZ","GA","GB","GC","GD","GE","GF","GG","GH","GI","GJ","GK","GL","GM","GN","GO","GP","GQ","GR","GS","GT","GU","GV","GW","GX","GY","GZ","HA","HB","HC","HD","HE","HF","HG","HH","HI","HJ","HK","HL","HM","HN","HO","HP","HQ","HR","HS","HT","HU","HV","HW","HX","HY","HZ","IA","IB","IC","ID","IE","IF","IG","IH","II","IJ","IK","IL","IM","IN","IO","IP","IQ","IR","IS","IT","IU","IV","IW","IX","IY","IZ","JA","JB","JC","JD","JE","JF","JG","JH","JI","JJ","JK","JL","JM","JN","JO","JP","JQ","JR","JS","JT","JU","JV","JW","JX","JY","JZ","KA","KB","KC","KD","KE","KF","KG","KH","KI","KJ","KK","KL","KM","KN","KO","KP","KQ","KR","KS","KT","KU","KV","KW","KX","KY","KZ","LA","LB","LC","LD","LE","LF","LG","LH","LI","LJ","LK","LL","LM","LN","LO","LP","LQ","LR","LS","LT","LU","LV","LW","LX","LY","LZ","MA","MB","MC","MD","ME","MF","MG","MH","MI","MJ","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NB","NC","ND","NE","NF","NG","NH","NI","NJ","NK","NL","NM","NN","NO","NP","NQ","NR","NS","NT","NU","NV","NW","NX","NY","NZ","OA","OB","OC","OD","OE","OF","OG","OH","OI","OJ","OK","OL","OM","ON","OO","OP","OQ","OR","OS","OT","OU","OV","OW","OX","OY","OZ","PA","PB","PC","PD","PE","PF","PG","PH","PI","PJ","PK","PL","PM","PN","PO","PP","PQ","PR","PS","PT","PU","PV","PW","PX","PY","PZ","QA","QB","QC","QD","QE","QF","QG","QH","QI","QJ","QK","QL","QM","QN","QO","QP","QQ","QR","QS","QT","QU","QV","QW","QX","QY","QZ","RA","RB","RC","RD","RE","RF","RG","RH","RI","RJ","RK","RL","RM","RN","RO","RP","RQ","RR","RS","RT","RU","RV","RW","RX","RY","RZ","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SP","SQ","SR","SS","ST","SU","SV","SW","SX","SY","SZ","TA","TB","TC","TD","TE","TF","TG","TH","TI","TJ","TK","TL","TM","TN","TO","TP","TQ","TR","TS","TT","TU","TV","TW","TX","TY","TZ","UA","UB","UC","UD","UE","UF","UG","UH","UI","UJ","UK","UL","UM","UN","UO","UP","UQ","UR","US","UT","UU","UV","UW","UX","UY","UZ","VA","VB","VC","VD","VE","VF","VG","VH","VI","VJ","VK","VL","VM","VN","VO","VP","VQ","VR","VS","VT","VU","VV","VW","VX","VY","VZ","WA","WB","WC","WD","WE","WF","WG","WH","WI","WJ","WK","WL","WM","WN","WO","WP","WQ","WR","WS","WT","WU","WV","WW","WX","WY","WZ","XA","XB","XC","XD","XE","XF","XG","XH","XI","XJ","XK","XL","XM","XN","XO","XP","XQ","XR","XS","XT","XU","XV","XW","XX","XY","XZ","YA","YB","YC","YD","YE","YF","YG","YH","YI","YJ","YK","YL","YM","YN","YO","YP","YQ","YR","YS","YT","YU","YV","YW","YX","YY","YZ","ZA","ZB","ZC","ZD","ZE","ZF","ZG","ZH","ZI","ZJ","ZK","ZL","ZM","ZN","ZO","ZP","ZQ","ZR","ZS","ZT","ZU","ZV","ZW","ZX","ZY","ZZ","AAA","AAB","AAC","AAD","AAE","AAF","AAG","AAH","AAI","AAJ","AAK","AAL","AAM","AAN","AAO","AAP","AAQ","AAR","AAS","AAT","AAU","AAV","AAW","AAX","AAY","AAZ","ABA","ABB","ABC","ABD","ABE","ABF","ABG","ABH","ABI","ABJ","ABK","ABL","ABM","ABN","ABO","ABP","ABQ","ABR","ABS","ABT","ABU","ABV","ABW","ABX","ABY","ABZ","ACA","ACB","ACC","ACD","ACE","ACF","ACG","ACH","ACI","ACJ","ACK","ACL","ACM","ACN","ACO","ACP","ACQ","ACR","ACS","ACT","ACU","ACV","ACW","ACX","ACY","ACZ","ADA","ADB","ADC","ADD","ADE","ADF","ADG","ADH","ADI","ADJ","ADK","ADL","ADM","ADN","ADO","ADP","ADQ","ADR","ADS","ADT","ADU","ADV","ADW","ADX","ADY","ADZ","AEA","AEB","AEC","AED","AEE","AEF","AEG","AEH","AEI","AEJ","AEK","AEL","AEM","AEN","AEO","AEP","AEQ","AER","AES","AET","AEU","AEV","AEW","AEX","AEY","AEZ","AFA","AFB","AFC","AFD","AFE","AFF","AFG","AFH","AFI","AFJ","AFK","AFL","AFM","AFN","AFO","AFP","AFQ","AFR","AFS","AFT","AFU","AFV","AFW","AFX","AFY","AFZ","AGA","AGB","AGC","AGD","AGE","AGF","AGG","AGH","AGI","AGJ","AGK","AGL","AGM","AGN","AGO","AGP","AGQ","AGR","AGS","AGT","AGU","AGV","AGW","AGX","AGY","AGZ","AHA","AHB","AHC","AHD","AHE","AHF","AHG","AHH","AHI","AHJ","AHK","AHL","AHM","AHN","AHO","AHP","AHQ","AHR","AHS","AHT","AHU","AHV","AHW","AHX","AHY","AHZ","AIA","AIB","AIC","AID","AIE","AIF","AIG","AIH","AII","AIJ","AIK","AIL","AIM","AIN","AIO","AIP","AIQ","AIR","AIS","AIT","AIU","AIV","AIW","AIX","AIY","AIZ","AJA","AJB","AJC","AJD","AJE","AJF","AJG","AJH","AJI","AJJ","AJK","AJL","AJM","AJN","AJO","AJP","AJQ","AJR","AJS","AJT","AJU","AJV","AJW","AJX","AJY","AJZ","AKA","AKB","AKC","AKD","AKE","AKF","AKG","AKH","AKI","AKJ","AKK","AKL","AKM","AKN","AKO","AKP","AKQ","AKR","AKS","AKT","AKU","AKV","AKW","AKX","AKY","AKZ","ALA","ALB","ALC","ALD","ALE","ALF","ALG","ALH","ALI","ALJ","ALK","ALL","ALM","ALN","ALO","ALP","ALQ","ALR","ALS","ALT","ALU","ALV","ALW","ALX","ALY","ALZ","AMA","AMB","AMC","AMD","AME","AMF","AMG","AMH","AMI","AMJ")&lt;br /&gt;&lt;br /&gt;If X &amp;lt; 1024 Then   CellPositionToName = LETTER_ARRAY(X) + (Y + 1)  Else   MsgBox "Out Of Range"  End If End Function&lt;/code&gt;&lt;br /&gt;傳入X、Y 2個數值，回傳A3這樣的名稱，&lt;br /&gt;因為X最大是AMJ(0~1023)，因為數值並不大，&lt;br /&gt;我直接定義成變數查表即可。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;注意：已經自動轉換Base 0為Base 1，傳入時不用刻意加1。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-2234904161546674823?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/2234904161546674823/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=2234904161546674823&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2234904161546674823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2234904161546674823'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/04/openoffice-calc-basic-macro.html' title='OpenOffice Calc BASIC Macro位址、名稱轉換'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4653063448727897115</id><published>2011-04-03T18:29:00.001+08:00</published><updated>2011-04-03T18:40:37.834+08:00</updated><title type='text'>007先生的交易歷程 的 讀後回文</title><content type='html'>本來在找匯率表之類的，就找到&lt;a href="http://forextw007.pixnet.net/blog/post/5552188"&gt;這個有趣的Blog&lt;/a&gt;，&lt;br /&gt;007先生看來年紀跟我差不多，不是同年就是小個1~2歲，&lt;br /&gt;整個Blog看下來後，我認為007先生實際的以金錢去做了個實驗，&lt;br /&gt;實驗證明了，程式交易並不是神，&lt;br /&gt;僅僅依靠程式交易搭配特定演算法就要套利，&lt;br /&gt;結果就是直接被市場KO，&lt;br /&gt;我後來想了想，覺得007先生這麼做，並以日記形式寫成Blog，&lt;br /&gt;應該可以作為不錯的反向教材，&lt;br /&gt;而在倒數第二篇文章中，因為007先生的不甘心，&lt;br /&gt;提到「一定是哪裡出了問題」，&lt;br /&gt;因此我把我這段時間的想法寫成回文，&lt;br /&gt;這段回文，算是目前我對交易市場和程式交易的想法。&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;沒做過外匯，只有最近(算前陣子)台幣升值時有換一些美金玩玩。&lt;br /&gt;我是看到「我知道必定是哪裡出了錯...」這句話，才想回應的。&lt;br /&gt;&lt;br /&gt;我對程式交易有興趣，但我只打算用程式交易做股市中長期(月為單位、長期持有定存股)，代替人工下單(上班沒時間)。&lt;br /&gt;我目前認為，除非遇到系統風險或異常超跌，否則在交易市場要套利，應該很難和大戶或法人玩。&lt;br /&gt;&lt;br /&gt;我目前認為，程式交易會失敗有幾個關鍵因素：&lt;br /&gt;1. 常見的程式交易，都是用EasyLanguage去寫的，你仔細想一下，事實上它能做到的條件很死板，它的條件幾乎都是軟體寫好提供的，感覺有點像是說，給你玩個沒規則的遊戲，但只給你幾個條件去搭配判斷，這聽起來就很受限，只要我知道你能夠使用的條件，我想贏你的機會應該很大&lt;br /&gt;&lt;br /&gt;2. 目前沒有任何聖杯，可以保證獲利，沒有任何條件套用在金融市場是百分百正確的，我們透過一連串無法保證的條件去判斷，並期望它要有6成勝率，那可能用亂數感覺還快些&lt;br /&gt;&lt;br /&gt;3. 去年發生過一次美股異常交易的事件有上新聞，大家都知道，有人說可能是高頻交易引發的連鎖效應，我查了高頻交易，才知道國外很多大型投資公司用高頻交易套利，它們利用電腦，以「每秒400次成交」的速度，高速的進行買跟賣，利用利差來套利，甚至我認為，能以此掌握最短期的市場變化，在設備、環境、程式、資金大小、消息面都不對等的情況，我不認為我的程式有辦法跟這樣的程式作對&lt;br /&gt;&lt;br /&gt;4. 程式是人寫的，換言之，它只能代替人去按照特定模式交易，既然你我都沒找到一個勝率達6成的模式，又怎麼能要求程式能有6成勝率？&lt;br /&gt;&lt;br /&gt;最後，我想我可以把最近幾個月的想法說一下，我認為，憑空希望能透過投機的方式來獲利，不如注意系統風險的發生。&lt;br /&gt;你買了這麼多書，相信有提到一點，交易市場會有系統性風險跟非系統性風險，系統性風險不可預期，且影響巨大，像金融風暴、次級房貸...等。&lt;br /&gt;事實上你稍微注意一下會發現，當遇到系統風險時，該投資標的很有機會跌到非常不錯的價格，只要不破產，此時買入並長期持有(預期至少1~2年)，那麼我認為績效應該都不會太差。&lt;br /&gt;你前面常提到，有錢人一開始也是從無到有的，這點我認同，但不完全認同，一些人它可能父母有庇蔭，一開始就有一筆不少的資金，當他剛好遇到某個系統風險時，大膽的投入，運氣不好可能破產，但此時只要沒破產，勝率很高，且因為資金大，獲得的獲利非常可觀，原因是，在交易市場，你玩了這麼久就知道，它的獲利是以%數計算的，他有資金，又在系統風險最低點投入，上來時，那種以%數計算的獲利非常驚人。&lt;br /&gt;最後，我們生在台灣，天生就不平等，你想想，我們辛辛苦苦一個月不過3,4萬，一個月有辦法也不過存2萬，美國人薪資是我們的2~3倍，扣除開銷和稅金，還是比我們多很多，他們的資金水平和我們不是同一個水平，對賠率的容忍度比我們高，這是沒辦法的事，但好消息是，跟對岸或東南亞國家相比，薪資水準、物價水平我們又好一些。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4653063448727897115?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forextw007.pixnet.net/blog/post/5552188' title='007先生的交易歷程 的 讀後回文'/><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4653063448727897115/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4653063448727897115&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4653063448727897115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4653063448727897115'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/04/007.html' title='007先生的交易歷程 的 讀後回文'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-655882299706665385</id><published>2011-04-03T17:30:00.000+08:00</published><updated>2011-04-03T18:02:00.866+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice BASIC Macro資料庫操作－2</title><content type='html'>在上集中，我們完成了現在要使用的資料庫，&lt;br /&gt;接著我們就可以透過OpenOffice BASIC來操作剛剛產生的資料庫。&lt;br /&gt;&lt;br /&gt;在OOo BASIC中要操作資料庫，整個過程需要6個動作：&lt;br /&gt;&lt;ol style="color: blue;"&gt;&lt;li&gt;&lt;b&gt;連結DataSource&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;取得查詢&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;連結SQL伺服器&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;從查詢中取得SQL Code，並查詢SQL伺服器&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;查詢完成，取出查詢結果&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;關閉SQL伺服器連線&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;整個程式碼如下：&lt;br /&gt;&lt;code&gt;Sub Main&lt;br /&gt;&lt;br /&gt;REM 連結 DataSource&lt;br /&gt;Dim DatabaseContext As Object&lt;br /&gt;Dim DataSource As Object&lt;br /&gt;DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")&lt;br /&gt;DataSource = DatabaseContext.getByName("OOoTEST")&lt;br /&gt;&lt;br /&gt;REM 取得查詢&lt;br /&gt;Dim QueryDefinitions As Object&lt;br /&gt;QueryDefinitions = DataSource.getQueryDefinitions()&lt;br /&gt;QueryDefinition = QueryDefinitions("ProductQuery")&lt;br /&gt;&lt;br /&gt;REM 連結SQL伺服器&lt;br /&gt;Dim InteractionHandler As Object&lt;br /&gt;Dim Connection As Object&lt;br /&gt;InteractionHandler = createUnoService("com.sun.star.task.InteractionHandler")&lt;br /&gt;Connection = DataSource.ConnectWithCompletion(InteractionHandler)&lt;br /&gt;&lt;br /&gt;REM 從查詢中取得SQL Code，並查詢SQL伺服器&lt;br /&gt;Dim Statement As Object&lt;br /&gt;Statement = Connection.createStatement()&lt;br /&gt;ResultSet = Statement.executeQuery(QueryDefinition.Command)&lt;br /&gt;&lt;br /&gt;REM 查詢完成，取出查詢結果&lt;br /&gt;Dim DATA_ID As String&lt;br /&gt;Dim DATA_NAME As String&lt;br /&gt;Dim DATA_PRICE As String&lt;br /&gt;If Not IsNull(ResultSet) Then&lt;br /&gt;While ResultSet.next&lt;br /&gt;DATA_ID = ResultSet.getString(1)&lt;br /&gt;DATA_NAME = ResultSet.getString(2)&lt;br /&gt;DATA_PRICE = ResultSet.getString(3)&lt;br /&gt;MsgBox "ID:"+ DATA_ID + " 名稱:" + DATA_NAME + " 價格:" + DATA_PRICE&lt;br /&gt;Wend&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;REM 關閉SQL伺服器連線&lt;br /&gt;Connection.Close()&lt;br /&gt;End Sub&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;接著我們分段來解說每個部份：&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;1. 連結 DataSource&lt;/b&gt;&lt;/div&gt;在OpenOffice中，所有要被Calc使用的資料庫都需要先被「註冊」，&lt;br /&gt;在建立資料庫時，預設都會自動幫你把它註冊到OpenOffice當中，&lt;br /&gt;回憶一下，如下圖：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-G4vS5Fb6aLQ/TZgx0RhuzLI/AAAAAAAABUM/IxQGZMnzeoM/s1600/2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://2.bp.blogspot.com/-G4vS5Fb6aLQ/TZgx0RhuzLI/AAAAAAAABUM/IxQGZMnzeoM/s320/2.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;當我們將資料庫註冊到OpenOffice後，&lt;br /&gt;我們就可以將它當成DataSource進行連結，&lt;br /&gt;這裡要注意到，註冊的名稱可以和DataBase名稱不同，&lt;br /&gt;要以「註冊名稱」為「DataSource名稱」，&lt;br /&gt;不過預設，兩者名稱相同。&lt;br /&gt;&lt;br /&gt;在這裡，我們指定DataSource為剛剛建立好的資料庫&lt;span style="color: red;"&gt;OOoTEST&lt;/span&gt;，&lt;br /&gt;分段程式碼如下：&lt;br /&gt;&lt;code&gt;Dim DatabaseContext As Object&lt;br /&gt;Dim DataSource As Object&lt;br /&gt;DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")&lt;br /&gt;DataSource = DatabaseContext.getByName("OOoTEST")&lt;/code&gt;&lt;br /&gt;我們先&lt;span style="color: blue;"&gt;定義DatabaseContext和DataSource&lt;/span&gt;這兩個變數，&lt;br /&gt;接著&lt;span style="color: blue;"&gt;建立DatabaseContext服務&lt;/span&gt;，&lt;br /&gt;透過DatabaseContext服務來&lt;span style="color: blue;"&gt;取得OOoTEST這個DataSource&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;延伸：&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;這裡有個延伸的程式碼可以參考，如下：&lt;br /&gt;&lt;code&gt;Dim DatabaseContext As Object&lt;br /&gt;Dim DataSource As Object&lt;br /&gt;DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")&lt;br /&gt;Names = DatabaseContext.getElementNames()&lt;br /&gt;For I = 0 To UBound(Names())&lt;br /&gt;MsgBox Names(I)&lt;br /&gt;Next I&lt;/code&gt;&lt;br /&gt;我們可以透過這段程式碼，將所有註冊的資料庫全部列出。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;2. 取得查詢&lt;/b&gt;&lt;/div&gt;取得DataSource後，還記得剛剛我們在OOo Base裡面，&lt;br /&gt;有建立好一個叫做ProductQuery的查詢項目。&lt;br /&gt;接著，我們取得這個查詢，分段程式碼如下：&lt;br /&gt;&lt;code&gt;Dim QueryDefinitions As Object&lt;br /&gt;QueryDefinitions = DataSource.getQueryDefinitions()&lt;br /&gt;QueryDefinition = QueryDefinitions("ProductQuery")&lt;/code&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;定義QueryDefinitions&lt;/span&gt;這個變數，&lt;br /&gt;透過DataSource的getQueryDefinitions() Method，&lt;br /&gt;我們取得全部的Query，&lt;br /&gt;並從裡面&lt;span style="color: blue;"&gt;取出我們要使用的Query - ProductQuery&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;延伸：&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;如果我們不清楚有哪些Query，希望透過Macro動態查詢，如下：&lt;br /&gt;&lt;code&gt;Dim QueryDefinitions As Object&lt;br /&gt;QueryDefinitions = DataSource.getQueryDefinitions()&lt;br /&gt;REM 顯示所有查詢&lt;br /&gt;For I = 0 To QueryDefinitions.Count() - 1&lt;br /&gt;QueryDefinition = QueryDefinitions(I)&lt;br /&gt;MsgBox QueryDefinition.Name&lt;br /&gt;Next I&lt;/code&gt;&lt;br /&gt;我們可以用這段程式碼，將所有已經儲存的Query全部列出。&lt;br /&gt;&lt;br /&gt;如果我們想要用Macro建立新的Query，我們可以使用下面的程式碼：&lt;br /&gt;&lt;code&gt;Dim QueryDefinitions As Object&lt;br /&gt;QueryDefinitions = DataSource.getQueryDefinitions()&lt;br /&gt;QueryDefinition = createUnoService("com.sun.star.sdb.QueryDefinition")&lt;br /&gt;QueryDefinition.Command = "SELECT Name FROM ProductTable"&lt;br /&gt;QueryDefinitions.insertByName("OurNewQuery", QueryDefinition)&lt;/code&gt;&lt;br /&gt;透過這段程式碼，我們可以建立一個新的Query叫做&lt;span style="color: red;"&gt;OurNewQuery&lt;/span&gt;，&lt;br /&gt;這個Query的SQL Code為「&lt;span style="color: red;"&gt;SELECT Name FROM ProductTable&lt;/span&gt;」。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;3. 連結SQL伺服器&lt;/b&gt;&lt;/div&gt;再來我們要正式連結SQL伺服器，分段程式碼如下：&lt;br /&gt;&lt;code&gt;Dim InteractionHandler As Object&lt;br /&gt;Dim Connection As Object&lt;br /&gt;InteractionHandler = createUnoService("com.sun.star.task.InteractionHandler")&lt;br /&gt;Connection = DataSource.ConnectWithCompletion(InteractionHandler)&lt;/code&gt;&lt;br /&gt;這裡我們要&lt;span style="color: blue;"&gt;建立InteractionHandler服務&lt;/span&gt;，&lt;br /&gt;接著&lt;span style="color: blue;"&gt;使用DataSource的ConnectWithCompletion()來連結SQL伺服器&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;4. 從查詢中取得SQL Code，並查詢SQL伺服器&lt;/b&gt;&lt;/div&gt;SQL伺服器連結完成後，我們要查詢SQL伺服器，如下：&lt;br /&gt;&lt;code&gt;Dim Statement As Object&lt;br /&gt;Statement = Connection.createStatement()&lt;br /&gt;ResultSet = Statement.executeQuery(QueryDefinition.Command)&lt;/code&gt;&lt;br /&gt;我們先&lt;span style="color: blue;"&gt;定義Statement變數&lt;/span&gt;，&lt;br /&gt;接著&lt;span style="color: blue;"&gt;透過Statement的executeQuery()查詢SQL伺服器&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;這邊注意到，事實上executeQuery()使用的是SQL Code，&lt;br /&gt;因此我們要透過&lt;span style="color: blue;"&gt;QueryDefinition.Command&lt;/span&gt;，&lt;br /&gt;將剛剛我們&lt;span style="color: blue;"&gt;取得的Query - ProductQuery內的SQL Code&lt;/span&gt;取出。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;b&gt;延伸：&lt;/b&gt;&lt;/div&gt;因為executeQuery()使用的是SQL Code，&lt;br /&gt;因此我們可以不透過Query，直接用SQL Code進行資料庫的查詢，&lt;br /&gt;程式碼如下：&lt;br /&gt;&lt;code&gt;Dim Statement As Object&lt;br /&gt;Statement = Connection.createStatement()&lt;br /&gt;ResultSet = Statement.executeQuery("SELECT Name FROM ProductTable")&lt;/code&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;5. 查詢完成，取出查詢結果&lt;/b&gt;&lt;/div&gt;如果資料庫是INSERT或者UPDATE的操作，不需要取得資料，&lt;br /&gt;那麼這個步驟是完全不需要的，這個步驟只有在查詢資料，&lt;br /&gt;需要從資料庫中取得資料才需要。&lt;br /&gt;&lt;br /&gt;分段程式碼如下：&lt;br /&gt;&lt;code&gt;Dim DATA_ID As String&lt;br /&gt;Dim DATA_NAME As String&lt;br /&gt;Dim DATA_PRICE As String&lt;br /&gt;If Not IsNull(ResultSet) Then&lt;br /&gt;While ResultSet.next&lt;br /&gt;DATA_ID = ResultSet.getString(1)&lt;br /&gt;DATA_NAME = ResultSet.getString(2)&lt;br /&gt;DATA_PRICE = ResultSet.getString(3)&lt;br /&gt;MsgBox "ID:"+ DATA_ID + " 名稱:" + DATA_NAME + " 價格:" + DATA_PRICE&lt;br /&gt;Wend&lt;br /&gt;End If&lt;/code&gt;&lt;br /&gt;這裡很簡單，在前面步驟4的最後，&lt;br /&gt;我們透過executeQuery()查詢資料庫後，&lt;br /&gt;&lt;span style="color: blue;"&gt;結果會儲存在變數ResultSet&lt;/span&gt;當中，&lt;br /&gt;這裡我們&lt;span style="color: blue;"&gt;先檢查ResultSet&lt;/span&gt;，確定它是有東西的，&lt;br /&gt;接著&lt;span style="color: blue;"&gt;使用ResultSet.next&lt;/span&gt;取出每條結果，&lt;br /&gt;再來我們&lt;span style="color: blue;"&gt;使用ResultSet.getString(1)取出第1個欄位資料&lt;/span&gt;，&lt;br /&gt;使用ResultSet.getString(2)取出第2個欄位資料，&lt;br /&gt;再&lt;span style="color: blue;"&gt;利用MsgBox將資料用訊息視窗顯示出來&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;b&gt;6. 關閉SQL伺服器連線&lt;/b&gt;&lt;/div&gt;最後，我們要有好習慣，將SQL伺服器斷線，分段程式碼如下：&lt;br /&gt;&lt;code&gt;Connection.Close()&lt;/code&gt;&lt;br /&gt;到這裡，整個資料庫的查詢全部完成。&lt;br /&gt;&lt;br /&gt;這裡延續前面的慣例，可以出個作業，&lt;br /&gt;這裡我們完整的取得了資料庫的資料，&lt;br /&gt;那要如何填入OpenOffice的Calc呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-655882299706665385?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/655882299706665385/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=655882299706665385&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/655882299706665385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/655882299706665385'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/04/openoffice-basic-macro2.html' title='OpenOffice BASIC Macro資料庫操作－2'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-G4vS5Fb6aLQ/TZgx0RhuzLI/AAAAAAAABUM/IxQGZMnzeoM/s72-c/2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7906839829301728399</id><published>2011-04-03T12:58:00.001+08:00</published><updated>2011-04-03T18:02:00.867+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice BASIC Macro資料庫操作－1(資料庫建立)</title><content type='html'>要操作資料，或者進行歷史資料處理，資料庫的操作都是不可避免的，&lt;br /&gt;在前面入門課題結束了，我們就開始直奔主題，而第一個po的心得，&lt;br /&gt;就是頗有難度，但在資料處理上很重要的，資料庫操作，這裡是操作讀取，&lt;br /&gt;但寫過資料庫程式的都知道，讀取比寫入麻煩，會讀取，要會寫入都不難。&lt;br /&gt;因為篇幅可能會比較長，我分上下兩集介紹，上集是建立資料庫。&lt;br /&gt;&lt;br /&gt;開始工作前，首先需要個資料庫，在這裡我們使用OpenOffice Base的資料庫來操作。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;1.建立資料庫，並存檔為OOoTEST.odb放置於桌面&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-OV2jvmwmIyE/TZf3uBHWaLI/AAAAAAAABSs/F4ZH4NaEQLY/s1600/1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://4.bp.blogspot.com/-OV2jvmwmIyE/TZf3uBHWaLI/AAAAAAAABSs/F4ZH4NaEQLY/s320/1.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-uJX6o28F1YY/TZf3xdcpSsI/AAAAAAAABS0/wquS2jAUoJ8/s1600/2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://4.bp.blogspot.com/-uJX6o28F1YY/TZf3xdcpSsI/AAAAAAAABS0/wquS2jAUoJ8/s320/2.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-lrWOTeHISQE/TZf30knj_zI/AAAAAAAABS8/FFZ2O3oXVdg/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://3.bp.blogspot.com/-lrWOTeHISQE/TZf30knj_zI/AAAAAAAABS8/FFZ2O3oXVdg/s320/3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;2. 建立Table、輸入資料&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-gC4v6Xyz-JQ/TZf5zfwwqNI/AAAAAAAABTE/zidzkmfIStU/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="199" src="http://3.bp.blogspot.com/-gC4v6Xyz-JQ/TZf5zfwwqNI/AAAAAAAABTE/zidzkmfIStU/s320/1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-YFSeA4KA9bQ/TZf5-ahMNJI/AAAAAAAABTU/BXawnfNeNP8/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="169" src="http://3.bp.blogspot.com/-YFSeA4KA9bQ/TZf5-ahMNJI/AAAAAAAABTU/BXawnfNeNP8/s320/3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mnlj_DzdhEU/TZf7SpJ0fCI/AAAAAAAABTs/n4pB4EKcxvo/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://4.bp.blogspot.com/-mnlj_DzdhEU/TZf7SpJ0fCI/AAAAAAAABTs/n4pB4EKcxvo/s320/1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;3. 建立查詢，查詢ProductTable內全部項目&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Xdb1M0HkikM/TZf85qxgJhI/AAAAAAAABT0/F43FzhFZXjU/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="199" src="http://4.bp.blogspot.com/-Xdb1M0HkikM/TZf85qxgJhI/AAAAAAAABT0/F43FzhFZXjU/s320/1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Xa4GJ-MZtkA/TZf89dD2-3I/AAAAAAAABT8/jPuWqy3iWdo/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://1.bp.blogspot.com/-Xa4GJ-MZtkA/TZf89dD2-3I/AAAAAAAABT8/jPuWqy3iWdo/s320/2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;如果偏好直接用SQL Code，也可以用下列SQL Code直接建立：&lt;br /&gt;&lt;code&gt;SELECT "ID", "Name", "Price" FROM "ProductTable";&lt;/code&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-AlpzAzUJ6zY/TZf-LtSH6DI/AAAAAAAABUE/GLTj16XzrOk/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://3.bp.blogspot.com/-AlpzAzUJ6zY/TZf-LtSH6DI/AAAAAAAABUE/GLTj16XzrOk/s320/1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;4. 至此，資料庫和查詢建立完成，可以開始透過Macro操作了&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7906839829301728399?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7906839829301728399/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7906839829301728399&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7906839829301728399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7906839829301728399'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/04/openoffice-basic-macro1.html' title='OpenOffice BASIC Macro資料庫操作－1(資料庫建立)'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-OV2jvmwmIyE/TZf3uBHWaLI/AAAAAAAABSs/F4ZH4NaEQLY/s72-c/1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-52573163369158489</id><published>2011-03-19T22:52:00.001+08:00</published><updated>2011-03-19T23:54:35.433+08:00</updated><title type='text'>日本祈福與福島核災</title><content type='html'>日本這次發生誇張的地震和歷史性的海嘯，在慶幸不是台灣的同時，&lt;br /&gt;祝福他們，希望他們能夠早日重建完成，我相信強大的日本，&lt;br /&gt;絕對可以在短時間內重建，恢復如常。&lt;br /&gt;&lt;br /&gt;這次，我繼四川地震、八八風災後，第三次捐款，&lt;br /&gt;同樣捐助了3000元台幣，雖然不算太多，但以我目前的收入來說，&lt;br /&gt;是3日所得，算是我能力所及的，因為我最近比較忙碌，&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;在到達第4天時，某新聞台晚上的新聞評論，&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;到了現在第6天，事實上狀況「漸趨穩定」了，&lt;br /&gt;從新聞來看，他問題的背景是：&lt;br /&gt;遭遇地震+海嘯時&lt;br /&gt;1號、2號、3號反應爐機組運作中&lt;br /&gt;4號、5號、6號停機歲修中(全世界核電廠的反應爐機組，運作1年半都要歲修一次)&lt;br /&gt;&lt;br /&gt;所以4、5、6正常來說，反應爐是不應該有問題的。&lt;br /&gt;所以4號失火，第一時間日本官防長官(台灣的行政院長)說正在瞭解情況，&lt;br /&gt;因為不應該有問題，而之後的瞭解是，「廢燃料棒儲存槽失火」。&lt;br /&gt;&lt;br /&gt;到今天(2011-03-19)原能會發佈的狀況是：&lt;br /&gt;1號反應爐機組，反應爐圍阻體正常，冷卻水(海水)有進入，勉強可控制&lt;br /&gt;2號反應爐機組，反應爐圍阻體「可能受損」，冷卻水無法進入，無法控制&lt;br /&gt;3號反應爐機組，反應爐圍阻體「可能受損」，冷卻水無法進入，無法控制&lt;br /&gt;4號「廢燃料棒儲存槽」「可能受損」，冷卻水無法進入，無法控制&lt;br /&gt;5號「廢燃料棒儲存槽」原本水位降低，柴油發電機已能正常動作，冷卻水循環已經正常&lt;br /&gt;6號「廢燃料棒儲存槽」和5號相同，柴油發電機已能正常動作，冷卻水循環已經正常&lt;br /&gt;&lt;br /&gt;所以現在要注意的是：&lt;br /&gt;1. 4號儲存槽是否有受損，這關係到輻射線是否外洩？&lt;br /&gt;4號儲存槽的冷卻水循環何時能恢復？&lt;br /&gt;2. 2號跟3號的反應爐圍阻體到底受損多嚴重，是變形還是破洞？&lt;br /&gt;因為這關係到輻射線外洩的嚴重程度&lt;br /&gt;3. 2號跟3號的冷卻水循環，或者外部海水注入，何時可以完成？&lt;br /&gt;&lt;br /&gt;這3個點才是目前要關注的，這3個點，也才是輻射線外洩程度的關鍵問題。&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-52573163369158489?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/52573163369158489/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=52573163369158489&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/52573163369158489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/52573163369158489'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/03/blog-post.html' title='日本祈福與福島核災'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1264423447452203502</id><published>2011-03-19T14:02:00.006+08:00</published><updated>2011-04-03T18:02:00.867+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice巨集參考資料</title><content type='html'>繼上篇的UNO架構介紹和上上偏的簡單範例後，&lt;br /&gt;相信已經有能力寫個HelloWorld的Macro(巨集；之後都會直接用Macro表示)了，&lt;br /&gt;但記得我在很多年前寫過，要學習一個新的程式語言，需要知道幾個部份：&lt;br /&gt;1. Main結構&lt;br /&gt;2. 程式語法&lt;br /&gt;3. API或Class Reference&lt;br /&gt;&lt;br /&gt;從上上篇的範例看完，以及上篇的UNO解說，&lt;br /&gt;我相信1和2大概都能掌握了，接著是3的部份，而這篇，&lt;br /&gt;就是列出一些我在寫OpenOffice時，參考的網站、文件。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;書：&lt;/div&gt;我在學習OpenOffice Macro時，第一個找的是書，但很不幸的，&lt;br /&gt;中文書是完全沒有的(正體、簡體)，&lt;br /&gt;我找到的一本值得的書是：&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;a href="http://www.amazon.com/Learn-OpenOffice-org-Spreadsheet-Macro-Programming/dp/1847190979"&gt;Learn OpenOffice.org Spreadsheet Macro Programming&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://ecx.images-amazon.com/images/I/51Wy1ye4QeL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://ecx.images-amazon.com/images/I/51Wy1ye4QeL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;這本書基本上不錯，但仍舊有缺點，它細節的部份很多都略過了，&lt;br /&gt;所以看起來也會有一知半解的感覺。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;文件：&lt;/div&gt;針對OpenOffice Macro的基本概念和語法教學，寫得最好的我認為是：&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;a href="http://download.oracle.com/docs/cd/E19535-01/819-0439/index.html"&gt;StarOffice 8 Programming Guide for BASIC&lt;/a&gt;(&lt;a href="http://download.oracle.com/docs/cd/E19535-01/index.html"&gt;PDF下載&lt;/a&gt;)&lt;/div&gt;這個算是Oracle(前Sun)提供的官方教學文件，&lt;br /&gt;針對OpenOffice的BASIC Macro寫得非常詳盡，&lt;br /&gt;事實上，我認為前面介紹的書，有一些是從這裡面Copy出來的。&lt;br /&gt;雖然文件是介紹StarOffice的BASIC，&lt;br /&gt;但事實上，&lt;br /&gt;OpenOffice的BASIC和StarOffice的BASIC在語法上幾乎是一樣的。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;網頁：&lt;/div&gt;&amp;nbsp;針對OpenOffice BASIC，OpenOffice網站的教學當然不能錯過：&lt;br /&gt;&lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide"&gt;OpenOffice.org BASIC Programming Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這個教學頁面有提供簡體中文的翻譯，如下：&lt;br /&gt;&lt;a href="http://wiki.services.openoffice.org/wiki/ZH/Documentation/BASIC_Guide"&gt;OpenOffice.org BASIC 編程指南&lt;/a&gt;&lt;br /&gt;這個教學頁面我認為部份內容寫得還ok，&lt;br /&gt;但它幾乎沒有圖片，解說內容也很少，看得很模糊，&lt;br /&gt;看完之後，感覺上還是甚麼都沒看懂，&lt;br /&gt;但基本上，有比沒有好，還是一個值得參考的教學頁面。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide"&gt;OpenOffice.org Developer's Guide&lt;/a&gt;&lt;br /&gt;這個同樣是OpenOffice wiki內的教學頁面，&lt;br /&gt;它的特點是，它介紹了OpenOffice內多種語言的開發，&lt;br /&gt;包括OOo BASIC、Java、C++...等，&lt;br /&gt;但如果前面的BASIC Programming Guide是有比沒有好的話，&lt;br /&gt;這個頁面就實在是不怎麼樣，每個篇幅看下來，&lt;br /&gt;反應就是，只有2句話我能看懂甚麼... :(&lt;br /&gt;但，憑著它有多個語言的描述，勉強可以參考參考。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://api.openoffice.org/"&gt;The OpenOffice.org API Project&lt;/a&gt;&lt;br /&gt;&lt;a href="http://api.openoffice.org/docs/common/ref/index-files/index-1.html%20"&gt;OpenOffice.org Global Index A&lt;/a&gt;&lt;br /&gt;&lt;a href="http://api.openoffice.org/docs/common/ref/com/sun/star/module-ix.html"&gt;OpenOffice.org Module star&lt;/a&gt;&lt;br /&gt;這3個網頁是OpenOffice API內的頁面，&lt;br /&gt;它們其實是同一串網頁的東西，&lt;br /&gt;它們其實就是UNO的API Reference，&lt;br /&gt;第2個網頁是將所有Service、Method、Properties全部以字母排列，&lt;br /&gt;然後列出來。&lt;br /&gt;&lt;br /&gt;第3個網頁則是以Module Name來排列描述的樹狀頁面。&lt;br /&gt;&lt;br /&gt;第1個網頁則是它們的首頁，&lt;br /&gt;如果知道Module、Method、Property的名稱，&lt;br /&gt;首頁提供了很難用的搜尋引擎可以直接尋找。&lt;br /&gt;&lt;br /&gt;我認為這幾個API Reference的頁面非常重要，&lt;br /&gt;它提供了OpenOffice能夠使用的所有API的說明，&lt;br /&gt;也非常有價值，但它寫得很爛，遠比Java在使用的API Reference爛得多，&lt;br /&gt;我不瞭解，明明有Java的API Reference這麼好得樣板，&lt;br /&gt;為啥還要作成這種鬼樣子。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Calc:_Functions_listed_by_category"&gt;Calc Functions listed by category&lt;/a&gt;&lt;br /&gt;這同樣是OpenOffice wiki的網頁，但內容非常不錯，&lt;br /&gt;我們回到最初提過的，我們這麼辛苦的學習OOo Macro，&lt;br /&gt;就是為了使用它的Calc幫助我們運算和資料整理，&lt;br /&gt;Calc裡面最強大的莫過於它的許多「function」，&lt;br /&gt;這些function能幫助我們進行數學、財經...等運算，&lt;br /&gt;透過Macro，我們還是要知道這些function怎麼用，&lt;br /&gt;這個頁面，就是列出了所有Calc的function，&lt;br /&gt;並有簡單的解說和Example教我們怎麼使用它。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.services.openoffice.org/wiki/Main_Page"&gt;The OpenOffice.org Wiki&lt;/a&gt;&lt;br /&gt;因為前面的推薦頁面中，很多個都來自OpenOffice的wiki，&lt;br /&gt;因此，還是把它的首頁列出來推薦，&lt;br /&gt;這個可以算是前面幾個教學頁面的目錄。&lt;br /&gt;不過因為它是針對OpenOffice的wiki，&lt;br /&gt;而不是專門針對OpenOffice開發，&lt;br /&gt;所以大部分的教學都還是針對OpenOffice的操作進行說明和教學。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;OpenOffice Help：&lt;/div&gt;沒看錯，就是OpenOffice的Help，&lt;br /&gt;和前面的&lt;a href="http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Calc:_Functions_listed_by_category"&gt;Calc Functions listed by category&lt;/a&gt;類似，&lt;br /&gt;OpenOffice的Help能夠提供我們Calc Function的使用說明，&lt;br /&gt;還有一部分BASIC的解說，包括OOo BASIC的資料型態，&lt;br /&gt;運算符號和方式...等。&lt;br /&gt;OpenOffice的Help最方便的地方在於，它可以直接搜尋，&lt;br /&gt;雖然命中率有點低，但相對來說，還是比較方便的。&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;範例程式：&lt;/div&gt;要使用OpenOffice的Macro，通常需要安裝OpenOffice SDK，SDK安裝好後，除了相關的Library外，還提供了一些範例和說明，&lt;br /&gt;路徑在：&lt;br /&gt;&lt;div style="color: blue;"&gt;OpenOffice.org 3\Basis\sdk\examples&lt;/div&gt;&lt;br /&gt;這裡必須要提一下，它的範例，我個人覺得有些複雜難懂。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;論壇：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://user.services.openoffice.org/en/forum/viewforum.php?f=20%20"&gt;Macros and UNO API(OpenOffice Forum)&lt;/a&gt;&lt;br /&gt;壓箱寶一定要放在最後面。&lt;br /&gt;因為OpenOffice的Macro開發實在是文件稀少，&lt;br /&gt;很多人都有相關的疑問，因此它的Forum真的是很熱鬧，&lt;br /&gt;裡面有幾個國外的高手，看起來從很早前就在用OOo Macro了，&lt;br /&gt;不少相關的解說和文章都相當的有用，直接提供了Code。&lt;br /&gt;事實上，我看了前面的API Reference，&lt;br /&gt;還是沒辦法獨立的根據API Reference寫出OOo的BASIC程式，&lt;br /&gt;需要到Forum裡面查看看有沒有人有寫過並po文，&lt;br /&gt;交互參考後才寫得出來，由此可知這個Forum的強大。&lt;br /&gt;&lt;br /&gt;到這裡，我認為OpenOffice Macro入門所需的知識應該已經夠了，&lt;br /&gt;下一篇開始，我會將這段時間的研究後得到的一些技巧性的程式段po出來，&lt;br /&gt;一些是來自於論壇的Code的改寫，一些則是翻翻找找後拼湊出來的，&lt;br /&gt;還請期待。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1264423447452203502?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1264423447452203502/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1264423447452203502&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1264423447452203502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1264423447452203502'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/03/openoffice.html' title='OpenOffice巨集參考資料'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6421390711234582695</id><published>2011-03-19T12:32:00.008+08:00</published><updated>2011-04-03T18:02:00.867+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice Macro API(UNO)架構說明</title><content type='html'>承接前一篇，在知道了簡單的開發環境和程式流程後，&lt;br /&gt;這篇簡單的介紹OpenOffice Macro的API的架構，&lt;br /&gt;瞭解架構後，可以比較容易瞭解API怎麼使用。&lt;br /&gt;&lt;br /&gt;要接觸OpenOffice BASIC前，&lt;br /&gt;我原本認為它的BASIC語法應該會跟VBA差不多，&lt;br /&gt;學習下去後才發現，它跟VBA完全不同，類似的只有基本語法，&lt;br /&gt;但API的使用，操作完全不同，基本上沒辦法無痛，&lt;br /&gt;一定要下去瞭解UNO才有辦法使用。&lt;br /&gt;&lt;br /&gt;OOo(OpenOffice.org簡稱)的Macro支援很多套程式語言，&lt;br /&gt;包括：BASIC、Java、Java Script、C++、Java BeanShell Script&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://wiki.services.openoffice.org/w/images/b/bb/Uno-Arc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="189" src="http://wiki.services.openoffice.org/w/images/b/bb/Uno-Arc.jpg" width="363" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;它們的核心，都是呼叫OOo提供的一整套API，&lt;br /&gt;這套API被稱為UNO(Universal Network Objects)，&lt;br /&gt;透過UNO，上述所有語言都能呼叫和操作OpenOffice，&lt;br /&gt;好處是跨語言，壞處是，就算只是想學BASIC，也得瞭解UNO。&lt;br /&gt;&lt;br /&gt;如果先前學的是Java，要瞭解UNO很容易，UNO不愧是Sun設計的，&lt;br /&gt;很有Java的概念。&lt;br /&gt;&lt;br /&gt;一般來說，&lt;span style="color: red;"&gt;常見的UNO概念圖&lt;/span&gt;如下：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-brY5puN3cIc/TYQogbLlzeI/AAAAAAAABQ8/bnWUiI3p7Oc/s1600/tmp.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://1.bp.blogspot.com/-brY5puN3cIc/TYQogbLlzeI/AAAAAAAABQ8/bnWUiI3p7Oc/s320/tmp.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;這裡我不得不說，我第一次看得時候，看一眼就沒興趣了，&lt;br /&gt;但事實上它只是描述了一個簡單的架構。&lt;br /&gt;&lt;br /&gt;UNO(Universal Network Objects)，我猜測，&lt;br /&gt;也許是為了要設計一個能跨平台使用的溝通模式，&lt;br /&gt;又因為是Sun，所以以Java的物件導向為架構，用網路來實做，&lt;br /&gt;我想用網路而不用其他溝通機制的原因，&lt;br /&gt;應該是因為網路是各平台都有，&lt;br /&gt;而且在UNIX、Linux的環境，他是很基本又常見的溝通機制，&lt;br /&gt;也因為這樣，取名為Universal Network Objects。&lt;br /&gt;&lt;br /&gt;簡單的說，它跟Java的物件導向概念雷同，它們的類比如下：&lt;br /&gt;&lt;span style="color: red;"&gt;UNO Service&lt;/span&gt;     → &lt;span style="color: blue;"&gt;Java Class&lt;/span&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;UNO Properties&lt;/span&gt;  → &lt;span style="color: blue;"&gt;Java Object Properties&lt;/span&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;UNO Method&lt;/span&gt;      → &lt;span style="color: blue;"&gt;Java Object Method&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;簡單的說，它是以Java的物件導向為基本概念，&lt;br /&gt;&lt;span style="color: red;"&gt;所有的Java Class在UNO上，都稱為Service&lt;/span&gt;，&lt;br /&gt;&lt;span style="color: red;"&gt;每個Service都有自己的Properties和Method&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;要使用Service，則和使用Java Object有些許不同，類比如下：&lt;br /&gt;UNO:&lt;br /&gt;&lt;code&gt;Dim oDesk as Object&lt;br /&gt;oDesk = createUnoService ("com.sun.star.frame.Desktop")&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Java:&lt;br /&gt;&lt;code&gt;Object oDesk;&lt;br /&gt;oDesk = new com.sun.star.frame.Desktop();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;這樣應該很清楚，差異在於，要定義物件時，使用&lt;br /&gt;&lt;div style="color: red;"&gt;Dim &lt;span style="color: #38761d;"&gt;&amp;lt;名稱&amp;gt;&lt;/span&gt; as &lt;span style="color: #38761d;"&gt;&amp;lt;物件名稱&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;要實體化時(UNO下應該說是建立Service)，使用&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;span style="color: #38761d;"&gt;&amp;lt;名稱&amp;gt;&lt;/span&gt; = createUnoService("com.sun.star.frame.Desktop")&lt;/div&gt;&lt;br /&gt;這樣描述，應該就能清楚的瞭解UNO的Service概念，&lt;br /&gt;而要使用UNO Service也很容易，同樣以上面的oDesk為例子，&lt;br /&gt;可以如下使用：&lt;br /&gt;&lt;code&gt;Dim oDoc as Object&lt;br /&gt;oDoc = oDesk.loadComponentFromUrl("private:factory/scalc", "_blank",0,Array ())&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;在這裡，&lt;span style="color: blue;"&gt;loadComponentFromUrl()&lt;/span&gt;就是&lt;span style="color: red;"&gt;com.sun.star.frame.Desktop&lt;/span&gt;的&lt;span style="color: blue;"&gt;Method&lt;/span&gt;，&lt;br /&gt;使用上和Java的語法差不多。&lt;br /&gt;&lt;br /&gt;要定義或修改Properties也很容易，類似如下：&lt;br /&gt;&lt;code&gt;oCell.String = "我的第一個Input"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;這樣就能修改&lt;span style="color: red;"&gt;oCell&lt;/span&gt;的&lt;span style="color: blue;"&gt;String&lt;/span&gt;這個&lt;span style="color: blue;"&gt;Property&lt;/span&gt;，&lt;br /&gt;並將內容改為&lt;span style="color: blue;"&gt;"我的第一個Input"&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;最後，同樣出個簡單的問題，答案很好找，&lt;br /&gt;卻在使用時頭一個會遇到疑問。&lt;br /&gt;在Java中，每個Object幾乎都有相對應的Object名稱，&lt;br /&gt;例如：&lt;br /&gt;&lt;code&gt;JFrame f = new javax.swing.JFrame();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;像是JFrame f裡面的JFrame。&lt;br /&gt;&lt;br /&gt;那類比到UNO Service時，這個建立後的Service，&lt;br /&gt;是否也有獨立的名稱？&lt;br /&gt;如果有，那會是甚麼？&lt;br /&gt;如果沒有，那又會是甚麼？&lt;br /&gt;&lt;br /&gt;補充：&lt;br /&gt;漏了一個部份.....&lt;br /&gt;我們回到前面&lt;span style="color: red;"&gt;常見的UNO概念圖&lt;/span&gt;，圖上在&lt;span style="color: red;"&gt;Service&lt;/span&gt;的外圍，&lt;br /&gt;有一個&lt;span style="color: #674ea7;"&gt;Module&lt;/span&gt;將&lt;span style="color: red;"&gt;Service&lt;/span&gt;包裹住，&lt;span style="color: #674ea7;"&gt;Module&lt;/span&gt;是甚麼？&lt;br /&gt;這也是很簡單的概念，同樣取自Java，類比如下：&lt;br /&gt;&lt;span style="color: red;"&gt;UNO Module&lt;/span&gt; → &lt;span style="color: blue;"&gt;Java Package&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;實際上，和&lt;span style="color: red;"&gt;Java的Class&lt;/span&gt;一樣，&lt;span style="color: red;"&gt;OpenOffice的Service&lt;/span&gt;根據不同的用途，&lt;br /&gt;會被包裹在不同的&lt;span style="color: #674ea7;"&gt;Module&lt;/span&gt;裡面，例如：&lt;br /&gt;&lt;code&gt;javax.swing.JFrame&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;我們可以知道&lt;span style="color: red;"&gt;JFrame&lt;/span&gt;屬於&lt;span style="color: blue;"&gt;javax.swing&lt;/span&gt;這個&lt;span style="color: #674ea7;"&gt;Package&lt;/span&gt;，同樣的，在UNO中&lt;br /&gt;&lt;code&gt;com.sun.star.frame.Desktop&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Desktop&lt;/span&gt;就是屬於&lt;span style="color: blue;"&gt;com.sun.star.frame&lt;/span&gt;這個&lt;span style="color: #674ea7;"&gt;Package&lt;/span&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6421390711234582695?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6421390711234582695/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6421390711234582695&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6421390711234582695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6421390711234582695'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/03/openoffice-macro-apiuno.html' title='OpenOffice Macro API(UNO)架構說明'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-brY5puN3cIc/TYQogbLlzeI/AAAAAAAABQ8/bnWUiI3p7Oc/s72-c/tmp.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7960411093776254492</id><published>2011-02-28T21:32:00.002+08:00</published><updated>2011-04-03T18:02:00.868+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice Calc巨集最簡範例</title><content type='html'>很久很久沒更新了，主要是工作忙碌，一個個bug接著來，一直處於很忙碌狀態。&lt;br /&gt;&lt;br /&gt;從上次po文說要開發Stock程式後沒多久，&lt;br /&gt;我開始轉移方向到OpenOffice巨集的學習，&lt;br /&gt;原因是，Stock程式的前段、後段都完成了&lt;br /&gt;(前段，透過AutoIT控制證券軟體後，DDE取得即時資料；後段，透過AutoIT控制證券軟體或網頁下單)，&lt;br /&gt;而最關鍵的行為判斷(也就是演算法)的開發一直沒有很好得構想，&lt;br /&gt;我的期望是，能夠有個簡易但富有彈性的開發環境可以進行演算法開發和評估，&lt;br /&gt;但Java要開發這樣的程式，實在是不大方便，要作所謂的回測(用歷史資料測試效果)也沒辦法，&lt;br /&gt;曾經考慮過整個用Java寫，也考慮過修改OpenSource的看盤軟軟體，&lt;br /&gt;但感覺效果都很差，複雜度都很高，最後回頭看Excel，&lt;br /&gt;考慮到Linux，因此決定改以OpenOffice為中心，連結先前開發的前段和後段，&lt;br /&gt;以OpenOffice的Calc來開發和測試演算法的部份，&lt;br /&gt;這部份在今天有很大的突破，以後再說。&lt;br /&gt;&lt;br /&gt;這裡這篇，我寫上OpenOffice Calc的簡單巨集開發，算是熱身，&lt;br /&gt;之後再陸續貼些在使用不錯的Macro。&lt;br /&gt;&lt;br /&gt;環境：Windows or Linux 均可&lt;br /&gt;OpenOffice版本：3.2.1(新版亦可)&lt;br /&gt;&lt;br /&gt;1. 開啟OpenOffice Calc後，點選&lt;br /&gt;&lt;span style="color: red;"&gt;工具&lt;/span&gt;→&lt;span style="color: red;"&gt;巨集&lt;/span&gt;→&lt;span style="color: red;"&gt;組織巨集&lt;/span&gt;→&lt;span style="color: red;"&gt;OpenOffice Basic&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-b5KS8hfDU0M/TWuWGL6xGUI/AAAAAAAABQE/9P6kyMXMbFM/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://3.bp.blogspot.com/-b5KS8hfDU0M/TWuWGL6xGUI/AAAAAAAABQE/9P6kyMXMbFM/s320/1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;2. 選取要編輯的巨集(Macro)檔案&lt;br /&gt;&lt;span style="color: red;"&gt;我的巨集&lt;/span&gt;→&lt;span style="color: red;"&gt;Standard&lt;/span&gt;→&lt;span style="color: red;"&gt;Module1&lt;/span&gt;→&lt;span style="color: red;"&gt;Main&lt;/span&gt;→&lt;span style="color: red;"&gt;編輯&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BS8FqdUqoVc/TWuYPMSHnVI/AAAAAAAABQM/kV0tYiMdK6Q/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="http://1.bp.blogspot.com/-BS8FqdUqoVc/TWuYPMSHnVI/AAAAAAAABQM/kV0tYiMdK6Q/s320/2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;3. 巨集(Macro)編輯視窗簡介&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-u4Ta9SlGob8/TWuacrfoP2I/AAAAAAAABQU/yVWnrvXH57M/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://4.bp.blogspot.com/-u4Ta9SlGob8/TWuacrfoP2I/AAAAAAAABQU/yVWnrvXH57M/s320/3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;4. 輸入程式碼&lt;br /&gt;在剛剛看到的Sub Main和Sub之間輸入如下程式碼：&lt;br /&gt;&lt;code&gt;Sub Main&lt;br /&gt;Dim oDoc As Object&lt;br /&gt;Dim oSheet As Object&lt;br /&gt;Dim oCell as Object&lt;br /&gt;&lt;br /&gt;REM 新建一個試算表檔案&lt;br /&gt;oDoc = starDeskTop.loadComponentFromUrl ("private:factory/scalc", "_blank",0,Array ())&lt;br /&gt;REM 開啟目前的試算表視窗&lt;br /&gt;REM oDoc = StarDesktop.CurrentComponent&lt;br /&gt;&lt;br /&gt;REM 建立新試算表分頁&lt;br /&gt;REM http://docs.sun.com/app/docs/doc/819-0439/faail?l=en&amp;amp;a=view&lt;br /&gt;oSheet = oDoc.createInstance("com.sun.star.sheet.Spreadsheet")&lt;br /&gt;oDoc.Sheets.insertByName("Stock1", oSheet)&lt;br /&gt;REM 取得試算表分頁&lt;br /&gt;oSheet = oDoc.Sheets.getByName("Stock1")&lt;br /&gt;REM 取得第幾個試算表分頁&lt;br /&gt;REM oSheet = oDoc.Sheets(0)&lt;br /&gt;&lt;br /&gt;oCell = oSheet.getCellByPosition (0,0)&lt;br /&gt;oCell.String = "我的第一個Input"&lt;br /&gt;End Sub&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;如下圖：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-L6ddtq46n9Q/TWuimDQlZ7I/AAAAAAAABQc/5uQXPuHjtYA/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-L6ddtq46n9Q/TWuimDQlZ7I/AAAAAAAABQc/5uQXPuHjtYA/s320/5.jpg" width="315" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;5. 執行&lt;br /&gt;將游標移到「&lt;span style="color: red;"&gt;Sub Main&lt;/span&gt;」，接著點擊「&lt;span style="color: red;"&gt;執行&lt;/span&gt;」按鈕&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-19GtxxlAABY/TWui_T_eskI/AAAAAAAABQk/zR3DlSl0BMY/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-19GtxxlAABY/TWui_T_eskI/AAAAAAAABQk/zR3DlSl0BMY/s320/4.jpg" width="315" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;6. 執行結果&lt;br /&gt;執行後，會發現新開了一個新的Calc試算表視窗，如下圖：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-dPkKgwkI_9M/TWulSTcql3I/AAAAAAAABQs/qeZ7wuGZwX0/s1600/6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="189" src="http://1.bp.blogspot.com/-dPkKgwkI_9M/TWulSTcql3I/AAAAAAAABQs/qeZ7wuGZwX0/s320/6.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;這個新的試算表視窗，就是透過剛剛的巨集(Macro)程式建立的，&lt;br /&gt;而其中可以注意到，它會多一個叫做「&lt;span style="color: red;"&gt;Stock1&lt;/span&gt;」的試算表分頁，&lt;br /&gt;這也是剛剛巨集(Macro)程式產生的。&lt;br /&gt;&lt;br /&gt;接著我們點擊切換到Stock1分頁，如下圖：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-W_5jxwEpMaM/TWul1kwyPnI/AAAAAAAABQ0/JDCW0ATWqBk/s1600/7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="189" src="http://2.bp.blogspot.com/-W_5jxwEpMaM/TWul1kwyPnI/AAAAAAAABQ0/JDCW0ATWqBk/s320/7.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;我們可以發現，在「&lt;span style="color: red;"&gt;A1&lt;/span&gt;」這個 Cell 當中，會顯示「&lt;span style="color: red;"&gt;我的第一個Input&lt;/span&gt;」，&lt;br /&gt;BINGO，這也是我們剛剛寫在巨集(Macro)裡面的程式碼。&lt;br /&gt;&lt;br /&gt;至此，我們整個巨集(Macro)的開發流程就很確定了。&lt;br /&gt;&lt;br /&gt;接著，可以出個作業自己玩玩看，&lt;br /&gt;用單步執行的方式，把剛剛的巨集(Macro)程式執行一次，&lt;br /&gt;搭配程式碼的註解來看看，可以對整個程式內容更有感覺。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7960411093776254492?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7960411093776254492/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7960411093776254492&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7960411093776254492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7960411093776254492'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2011/02/openoffice-calc.html' title='OpenOffice Calc巨集最簡範例'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-b5KS8hfDU0M/TWuWGL6xGUI/AAAAAAAABQE/9P6kyMXMbFM/s72-c/1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4347960949724606179</id><published>2010-10-24T17:05:00.007+08:00</published><updated>2011-04-03T18:02:00.868+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>AutoIT自動化證券下單伺服器</title><content type='html'>&lt;span style="color: red;"&gt;簡介：&lt;/span&gt;&lt;br /&gt;去年開始開發自己的程式交易系統，目前還在開發中，而目前已經有一部分成果，下單伺服器便是其中一個重要的成果。&lt;br /&gt;有鑑於下單伺服器需要長期的維護、更新，個人力量有限，因此將它Open出來，歡迎大家加入修改與使用。&lt;br /&gt;目前「AutoIT自動化證券下單伺服器」已經註冊為自由軟體，並放置在&lt;a href="http://www.openfoundry.org/of/projects/1741"&gt;http://www.openfoundry.org/of/projects/1741&lt;/a&gt;，歡迎大家使用、修改、更新，提出建議。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;前言：&lt;/span&gt;&lt;br /&gt;目前在網路上看到的下單系統通常有2類，一類是證券公司或第三方公司提供的API，利用API撰寫程式後開發而成；另一類則是利用AutoIT、按鍵精靈...等撰寫出獨立的UI下單程式。&lt;br /&gt;第一類程式有些限制，證券公司提供的API，經常會限制每個月的交易額，以我這種少量長期且定期定額購買的人來說就不合適，第三方公司提供的API，則通常都要花錢，&lt;br /&gt;最大的麻煩是，不論是證券公司提供的API或者第三方公司提供的API，幾乎都綁定Windows，要在Linux平台開發有其困難。&lt;br /&gt;&lt;br /&gt;為了符合我想要的環境，我希望系統的核心部份能夠運作在Linux或Windows上，下單、資料擷取等子系統相互獨立在不同平台，且各子系統間能夠溝通，&lt;br /&gt;因此想到了使用AutoIT為基礎開發一個TCP Socket的下單機，如此一來，我可以用獨立的電腦，或者虛擬電腦來安裝Win2000、XP(目前我使用Win2k+IE6)，&lt;br /&gt;以這台獨立的電腦來執行AutoIT的下單伺服器和證券軟體(網頁或應用程式)，其他包括分析系統...等直接透過Socket(telnet)下指令給它，完成下單動作。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;下單系統功能：&lt;/span&gt;&lt;br /&gt;目前的下單機版本為0.2-beta版，是我目前在使用的版本，它有如下功能：&lt;br /&gt;1. TCP Socket(telnet) 命令式交談介面&lt;br /&gt;2. 支援寶來證券、日盛證券股票下單&lt;br /&gt;3. 股票下單支援現貨、零股、盤後交易(盤後交易沒用過)&lt;br /&gt;4. 寶來證券支援下單與成交回報；日盛證券僅支援下單&lt;br /&gt;5. 下單系統的下單功能使用證券公司網頁下單(日盛證券的下單支援程式下單和網頁下單)，網頁下單不會有多久沒交易後，停用系統的問題(日盛證券目前3個月沒交易，HTS禁止使用，網頁下單無此限制)。&lt;br /&gt;6. 本系統正式註冊為「自由軟體」，為GPL3.0授權，可任意使用、傳播，唯一要求，修改過、增加功能後，請協助更新下單系統功能，至少請把程式碼公佈。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;下單系統原理：&lt;/span&gt;&lt;br /&gt;下單系統以AutoIT撰寫而成，原理很如下：&lt;br /&gt;系統核心為一個AutoIT的TCP Socket Server，當連入後，可以以命令方式下達指令。&lt;br /&gt;當系統收到指令後，按特定指令進行特定的操作，例如：login IEHTS2 A1234567890,xxxxxxxx。&lt;br /&gt;便會自動的打開IE，自動登入到日盛證券。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;下單系統系統需求：&lt;/span&gt;&lt;br /&gt;1. 獨立的Windows系統(目前我使用Win2K)&lt;br /&gt;2. IE6(IE7沒測試過)&lt;br /&gt;3. AutoIT v3&lt;br /&gt;4. 記憶體至少256MB&lt;br /&gt;5. .Net 2.0(此為證券軟體、及之後其他相關程式需要)&lt;br /&gt;6. Java 6(此為證券軟體、及之後其他相關程式需要)&lt;br /&gt;&lt;br /&gt;我這邊的虛擬電腦分配給它的是：&lt;br /&gt;Win2K+IE6+256MB RAM&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;下單系統簡單操作方法：&lt;/span&gt;&lt;br /&gt;1. 拿到程式後，如果是.exe檔，直接執行即可；如果是整個SourceCode，直接執行StockServer.au3。&lt;br /&gt;2. 連接埠預設為58890&lt;br /&gt;3. telnet連入後(請使用linux的telnet或Windows的PieTTY，，不要使用Windows命令提示字元的telnet，會有顯示和輸入問題)，可輸入help，即可顯示出使用的指令和參數說明。如下：&lt;br /&gt;&lt;code&gt;xxxx [/xxxx] -oooo- telnet 192.168.1.1 58890&lt;br /&gt;Trying 192.168.1.1...&lt;br /&gt;Connected to 192.168.1.1.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;help&lt;br /&gt;200--&lt;br /&gt;Command list:&lt;br /&gt;login [HTS2|IEHTS2|IEFin|EWinner] [Account],[Password]&lt;br /&gt;Ex: login HTS2 A123456789,12345678&lt;br /&gt;&lt;br /&gt;logout [HTS2|IEHTS2|IEFin|EWinner]&lt;br /&gt;Ex: logout HTS2&lt;br /&gt;&lt;br /&gt;trade [HTS2|IEHTS2|IEFin] [buy|sell],[spot|fractional|afterhour],[StockID],[StockPrice],[StockCount]&lt;br /&gt;Ex: trade IEFin buy,spot,2002,29.3,2&lt;br /&gt;&lt;br /&gt;report&lt;br /&gt;Ex: report&lt;br /&gt;&lt;br /&gt;exit&lt;br /&gt;Ex: exit&lt;br /&gt;&lt;br /&gt;shutdown&lt;br /&gt;Ex: shutdown&lt;br /&gt;200--&lt;/code&gt;&lt;br /&gt;4. HTS2表示日盛證券程式版；IEHTS2表示日盛證券網頁版；IEFin表示寶來網頁版；EWinner表示寶來程式版(寶來點金靈)&lt;br /&gt;目前寶來點金靈只支援程式開啟，不支援下單與查詢動作。&lt;br /&gt;IEFin支援下單與查詢。&lt;br /&gt;HTS2和IEHTS2均支援下單，不支援查詢。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;下單系統0.2-beta注意事項：&lt;/span&gt;&lt;br /&gt;1.&lt;br /&gt;這個版本雖然是beta版，但它是我目前正在使用的版本，穩定性我認為還算可以接受。&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;因為我自己是在寶來松山分行開戶的，因為寶來網頁的分行選擇是用select group，不大會處理，因此當時就先寫死了。&lt;br /&gt;目前暫時性的解法是，先連上寶來的&lt;br /&gt;&lt;a href="https://trade.finairport.com/FinTradeSys/Utility/login/login_page.asp"&gt;https://trade.finairport.com/FinTradeSys/Utility/login/login_page.asp&lt;/a&gt;&lt;br /&gt;然後按選擇分公司，然後看自己是哪個分公司，接著數數看，是0-base，這表示「忠孝分公司」是0，接著往下數，目前預設是「松山分公司」，是「17」，如果是「土城分公司」，就是「4」。&lt;br /&gt;確定數值後，下載「AutoStockServer-src.7z」，並解開，修改「IELogin.au3」，把&lt;br /&gt;&lt;code&gt;_IEFormElementOptionSelect ($oUNITNO, 17, 1, "byIndex")&lt;/code&gt;&lt;br /&gt;改為(以「土城分公司」為例)&lt;br /&gt;&lt;code&gt;_IEFormElementOptionSelect ($oUNITNO, 4, 1, "byIndex")&lt;/code&gt;&lt;br /&gt;即可正常使用IEFin下單。&lt;br /&gt;如果要透過AutoStockServer啟動EWinner，同樣的，要修改分公司，&lt;br /&gt;啟動EWinner後，看看自己分公司，假設還是「土城分公司」，則複製「9794 - 土 城」，然後修改「EWinnerLogin.au3」，把&lt;br /&gt;&lt;code&gt;ControlSetText("系統登入", "", "[CLASS:Edit; INSTANCE:2]", "979H - 松 山")&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;ControlSetText("系統登入", "", "[CLASS:Edit; INSTANCE:2]", "9794 - 土 城")&lt;/code&gt;&lt;br /&gt;即可登入EWinner。&lt;br /&gt;&lt;br /&gt;3.&lt;br /&gt;這個版本我忘了把GPL3.0 Licenses File加入，此時成為GPL3.0授權。&lt;br /&gt;&lt;br /&gt;4.&lt;br /&gt;操作方法、說明目前還沒準備好，應該會在下週或下下週處理。&lt;br /&gt;&lt;br /&gt;5.&lt;br /&gt;這個專案還很新，還有不少需要修改的部份，也歡迎會或熟AutoIT並對程式交易有興趣的同好加入修改，雖然code有點醜，但想寫新功能或其他證券公司支援的，都歡迎加入。&lt;br /&gt;&lt;br /&gt;6.&lt;br /&gt;雖然目前還沒寫使用說明，但操作原則上如下：&lt;br /&gt;a. 先確定有安裝AutoIT v3，如果沒有，請到&lt;br /&gt;&lt;a href="http://www.autoitscript.com/autoit3/downloads.shtml"&gt;http://www.autoitscript.com/autoit3/downloads.shtml&lt;/a&gt;&lt;br /&gt;下載安裝，這是免費的，不需要花錢或註冊。&lt;br /&gt;b. src要執行，解壓縮到某個目錄後，直接執行「StockServer.au3」，右下角狀態列出現AutoIT圖示，即表示執行中。&lt;br /&gt;c. 目前預設的TCP Port是58890(要改，請修改StockServer.au3，改Global Const $Port = 58890)，要使用，可用Linux上的telnet連入58890(Windows可以使用PieTTY，不要使用Windows命令提示字元的telnet，顯示會有問題)&lt;br /&gt;d. 連入後，可直接打help，即可出現所有操作的說明&lt;br /&gt;&lt;br /&gt;7.&lt;br /&gt;目前功能中的report，僅支援寶來證券的IEFin(寶來網頁)的回報，且回報部份文字顯示的分隔還有些問題。&lt;br /&gt;日盛證券的部份，目前report遇到瓶頸，還沒辦法成功實做出來。&lt;br /&gt;&lt;br /&gt;8.&lt;br /&gt;目前僅支援「股票下單」，不支援期貨下單；股票下單支援「現貨」、「零股」，程式支援盤後交易，但我自己沒玩過。&lt;br /&gt;&lt;br /&gt;9.&lt;br /&gt;本程式因為使用AutoIT操作系統，會類比的模擬鍵盤和滑鼠的輸入，因此強烈建議讓程式執行在獨立電腦或者虛擬電腦上，避免人為介入後影響程式動作。&lt;br /&gt;如果有興趣又有些無聊，可以跟我一樣，下指令後，看著它操作程式。&lt;br /&gt;&lt;br /&gt;10.&lt;br /&gt;本程式僅供測試、研究使用，如果因為錯誤操作造成巨大損失(例如下單買現貨或賣現貨，單位/數量輸入錯誤)；又如果因為證券公司網頁修改、作業系統不穩、個人憑證沒更新...等問題導致下單失敗，作者概不負責。 &lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;下單系統專案網站與下載連結：&lt;/span&gt;&lt;br /&gt;專業網站：&lt;a href="http://www.openfoundry.org/of/projects/1741"&gt;http://www.openfoundry.org/of/projects/1741&lt;/a&gt;&lt;br /&gt;下載位置：&lt;a href="http://www.openfoundry.org/of/projects/1741/download"&gt;http://www.openfoundry.org/of/projects/1741/download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4347960949724606179?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4347960949724606179/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4347960949724606179&amp;isPopup=true' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4347960949724606179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4347960949724606179'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/10/autoit.html' title='AutoIT自動化證券下單伺服器'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-2314963640127474045</id><published>2010-10-19T01:40:00.000+08:00</published><updated>2010-10-19T01:40:20.167+08:00</updated><title type='text'>減慢更新速度...</title><content type='html'>因為開始上班了，每天過著忙碌而疲勞的生活，因此更新速度會減慢很多。&lt;br /&gt;另外，從去年金融風暴前後開始，開始注意到股票交易，因此從去年開始了新的計畫～自己的程式交易系統。&lt;br /&gt;雖然離「堪用」還有段距離，但開始有些心得了！&lt;br /&gt;因此之後也許會開始po一些跟股票交易相關的程式。&lt;br /&gt;但身為工程師，相關的程式應該會跟一般認知上的有些差異，&lt;br /&gt;不會有明牌，不會有股票名，會出現的會是AutoIT操作心得、DDE操作心得之類的。&lt;br /&gt;還請有點耐心，有空再來更新。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-2314963640127474045?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/2314963640127474045/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=2314963640127474045&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2314963640127474045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2314963640127474045'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/10/blog-post.html' title='減慢更新速度...'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4555517181940192405</id><published>2010-05-01T23:17:00.006+08:00</published><updated>2011-04-03T18:02:00.869+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Ubuntu上安裝Marvell Gigabit LAN Driver</title><content type='html'>這篇算是補充，既然都寫了新版patch，舊聞也順便寫寫。&lt;br /&gt;&lt;br /&gt;P5Q-E是張C/P值頗高的主機板，內建Dual Gigabit LAN，廠牌型號是Marvell 88E8056/88E8001，在Linux上支援備援線路於斷線時自動切換(Linux上看起來不支援頻寬合併，如有支援的消息請告知)。&lt;br /&gt;這邊順便的告訴大家，現在買主機板時，幾乎都內建Gigabit LAN了，其中許多都是Dual NIC，當主機板支援Dual NIC時，哪個LAN要當主要的LAN要注意，可以仔細看說明書或者上網查主機板的規格，Dual NIC通常是一個PCI-E配一個PCI的，只有PCI-E的才能發揮Gigabit LAN的全部效能。&lt;br /&gt;以P5Q-E來說，它內建的chip型號為88E8056/88E8001，會有2個型號，原因就在於它的Dual NIC，一個型號是PCI-E(88E8056)，另一個則是PCI(88E8001)。&lt;br /&gt;因為如此，在Linux當中兩個LAN Port的Driver並不同，分別是PCI-E(88E8056)的skge、PCI(88E8001)的sky2。&lt;br /&gt;其中因為sky2是實驗性的Driver，因此穩定性是公認的糟糕，而我個人使用上，發現skge的穩定性也不怎麼好，高流量時也會出現watchdog timeout。&lt;br /&gt;解決方案很簡單，使用Marvell原廠提供的sk98lin Driver即可，sk98lin Driver可同時支援88E8056和88E8001，安裝後可以直接取代skge和sky2。&lt;br /&gt;&lt;br /&gt;而sk98lin安裝很討厭，要進行些步驟才能安裝成功，下面列出我的安裝步驟，如果有要安裝的看到本篇可以節省些時間，以下安裝是在Ubuntu上進行，相信Debian差別不大，其他則不確定。&lt;br /&gt;&lt;br /&gt;1. 安裝或確認sk98lin安裝所需的套件&lt;br /&gt;確定有安裝下列套件：&lt;br /&gt;．Linux Kernel對應的linux headers&lt;br /&gt;．Linux Kernel對應的linux source&lt;br /&gt;．kernel-package&lt;br /&gt;．libncurses5-dev&lt;br /&gt;&lt;br /&gt;以Ubuntu 10.04版本來說，目前的Kernel版本為2.6.32-21-server(執行uname -a可查看)，就需要安裝：&lt;br /&gt;．linux-headers-2.6.32-21&lt;br /&gt;．linux-source-2.6.32&lt;br /&gt;．kernel-package&lt;br /&gt;．libncurses5-dev&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://extranet.marvell.com/drivers/driverDisplay.do?driverId=153"&gt;下載sk98lin Driver&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_bwwN4YEyoAU/S9xJtig6piI/AAAAAAAABLM/2OWNqnvtXFA/s1600/tmp.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://3.bp.blogspot.com/_bwwN4YEyoAU/S9xJtig6piI/AAAAAAAABLM/2OWNqnvtXFA/s320/tmp.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;3. 設置或確認sk98lin安裝時所需的連結或目錄&lt;br /&gt;．確認linux kernel source有解壓縮&lt;br /&gt;Ubuntu/Debian的linux source套件只會下載linux kernel的壓縮到到/usr/src，不會自動解壓縮，所以先執行下面指令解壓縮：&lt;br /&gt;&lt;code&gt;# cd /usr/src&lt;br /&gt;# tar jxvf linux-source-2.6.32.tar.bz2&lt;/code&gt;&lt;br /&gt;．確認目前系統的kernel config已放入linux source目錄&lt;br /&gt;sk98lin安裝編譯時，會要求要有kernel的config檔案，請到/boot/查找目前系統用的kernel(可用uname -a查詢)的config檔案。&lt;br /&gt;例如：&lt;br /&gt;&lt;code&gt;# uname -a&lt;br /&gt;Linux file 2.6.32-21-server #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 x86_64 GNU/Linux&lt;/code&gt;&lt;br /&gt;則config檔案是&lt;span style="color: blue;"&gt;/boot/config-2.6.32-21-server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;接著把這個檔案複製到linux kernel source的目錄中，如下：&lt;br /&gt;&lt;code&gt;# cd /usr/src/linux-source-2.6.32&lt;br /&gt;# cp /boot/config-2.6.32-21-server ./.config&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;．確認目前系統的kernel module目錄下是否有kernel source的連結&lt;br /&gt;sk98lin安裝編譯時，會要求要有kernel module的目錄下要有linux kernel source的連結，如下建立：&lt;br /&gt;&lt;code&gt;# cd /lib/modules/2.6.32-21-server&lt;br /&gt;# ln -s /usr/src/linux-source-2.6.32 source&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/lib/modules/的目錄，一樣參考目前系統的kernel版本。&lt;br /&gt;&lt;br /&gt;．確認有定義IGNORE_HEADER_MISMATCH這個環境變數&lt;br /&gt;因為sk98lin安裝編譯時，會查詢目前的linux headers和目前系統的kernel是否符合，不符合不動作，但Ubuntu上headers和kernel通常版本不完全符合，因此要加上這個環境變數，如下。 &lt;br /&gt;(bash)&lt;br /&gt;&lt;code&gt;# export IGNORE_HEADER_MISMATCH=1&lt;/code&gt;&lt;br /&gt;(tcsh)&lt;br /&gt;&lt;code&gt;# setenv IGNORE_HEADER_MISMATCH 1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. 解開壓縮檔&lt;br /&gt;&lt;code&gt;# cd /tmp&lt;br /&gt;# tar jxvf install_v10.84.3.3.tar.gz&lt;br /&gt;# cd DriverInstall&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5. 修改install.sh&lt;br /&gt;將&lt;span style="color: red;"&gt;#!/bin/sh&lt;/span&gt;改為&lt;span style="color: blue;"&gt;#!/bin/bash&lt;/span&gt;，如下：&lt;br /&gt;&lt;code&gt;# vi /tmp/DriverInstall/install.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;#!/bin/bash&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;6. 執行sk98lin安裝程式&lt;br /&gt;&lt;code&gt;# ./install.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Q1:&lt;br /&gt;&lt;code&gt;1) installation       3) generate makefile&lt;br /&gt;2) generate patch     4) exit&lt;/code&gt;&lt;br /&gt;A1:&lt;br /&gt;&lt;span style="color: blue;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q2:&lt;br /&gt;&lt;code&gt;Do you want proceed? (y/N)&lt;/code&gt;&lt;br /&gt;A2:&lt;br /&gt;&lt;span style="color: blue;"&gt;y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Q3:&lt;br /&gt;&lt;code&gt;1) Do nothing&lt;br /&gt;2) Deactivate diver&lt;br /&gt;3) Remove driver&lt;/code&gt;&lt;br /&gt;A3:&lt;br /&gt;&lt;span style="color: blue;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;即會自動編譯sk98lin模組。&lt;br /&gt;&lt;br /&gt;7. 載入sk98lin module&lt;br /&gt;順利編譯成功後，可載入sk98lin module，執行如下：&lt;br /&gt;&lt;code&gt;# modprobe sk98lin&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;8. 修改blacklist.conf，強制不使用skge、sky2&lt;br /&gt;編輯/etc/modprobe.d/blacklist.conf，檔案最上面加入&lt;br /&gt;&lt;code&gt;/etc/modprobe.d/blacklist.conf&lt;br /&gt;blacklist sky2&lt;br /&gt;blacklist skge&lt;br /&gt;.....&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;9. 重新開機&lt;br /&gt;&lt;code&gt;# reboot&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;即可完成&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4555517181940192405?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4555517181940192405/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4555517181940192405&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4555517181940192405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4555517181940192405'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/05/ubuntumarvell-gigabit-lan-driver.html' title='Ubuntu上安裝Marvell Gigabit LAN Driver'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwwN4YEyoAU/S9xJtig6piI/AAAAAAAABLM/2OWNqnvtXFA/s72-c/tmp.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3640860494495916937</id><published>2010-04-30T20:21:00.003+08:00</published><updated>2011-04-03T18:02:00.869+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Ubuntu 10.04與sk98lin</title><content type='html'>前面來點前言，我用的主機板是P5Q-E，這塊主機板不錯，C/P值也頗高，內建的Gigabit LAN Controller是MARVELL，要說差也不差，但Linux內建的Driver(skge/sky2)就是很鳥，因此都得用原廠的sk98lin，但每次kernel一升級，就經常無法編譯通過，這次Ubuntu 10.04同樣遇到了！&lt;br /&gt;因為Ubuntu 10.04還太新了，目前沒google到patch，我所幸自己試著抓抓改改，目前看來應該ok！&lt;br /&gt;&lt;br /&gt;安裝時編譯錯誤程式碼如下：&lt;br /&gt;&lt;code&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c: In function 『SkGeTestIsr』:&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c:1750: error: 『TASK_NORMAL』 undeclared (first use in this function)&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c:1750: error: (Each undeclared identifier is reported only once&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c:1750: error: for each function it appears in.)&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c: In function 『SkGeTestMsi』:&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c:1780: warning: passing argument 2 of 『request_irq』 from incompatible pointer type&lt;br /&gt;include/linux/interrupt.h:117: note: expected 『irq_handler_t』 but argument is of type 『int (*)(int,  void *)』&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c:1790: error: 『TASK_UNINTERRUPTIBLE』 undeclared (first use in this function)&lt;br /&gt;/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.c:1790: error: implicit declaration of function 『schedule_timeout』&lt;br /&gt;make[2]: *** [/tmp/Sk98IpXJpMHrIbXnZSVQLQbMS/all/skge.o] Error 1&lt;br /&gt;make[2]: *** Waiting for unfinished jobs....&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;注意到，&lt;br /&gt;Q1:&lt;br /&gt;TASK_NORMAL、TASK_UNINTERRUPTIBLE 沒定義&lt;br /&gt;&lt;br /&gt;Q2:&lt;br /&gt;schedule_timeout 無法被skge.c直接呼叫&lt;br /&gt;&lt;br /&gt;cscope之後發現 TASK_NORMAL、TASK_UNINTERRUPTIBLE、schedule_timeout 都在 sched.h中。&lt;br /&gt;&lt;br /&gt;因此，修改 DriverInstall/sk98lin.tar.bz2 壓縮檔中的 2.6/skge.c&lt;br /&gt;(DriverInstall/sk98lin.tar.bz2:/2.6/skge.c)&lt;br /&gt;&lt;code&gt;.....&lt;br /&gt;#if LINUX_VERSION_CODE &gt; KERNEL_VERSION(2,6,19)&lt;br /&gt;static int __devinit SkGeTestIsr(int irq, void *dev_id)&lt;br /&gt;#else&lt;br /&gt;static int __devinit SkGeTestIsr(int irq, void *dev_id, struct pt_regs *ptregs)&lt;br /&gt;#endif&lt;br /&gt;{&lt;br /&gt;#define TASK_INTERRUPTIBLE      1&lt;br /&gt;#define TASK_UNINTERRUPTIBLE    2&lt;br /&gt;#define TASK_NORMAL             (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)&lt;br /&gt;struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id;&lt;br /&gt;.....&lt;br /&gt;static int __devinit SkGeTestMsi(struct SK_NET_DEVICE *dev, SK_AC *pAC)&lt;br /&gt;{&lt;br /&gt;#define TASK_UNINTERRUPTIBLE    2&lt;br /&gt;&lt;br /&gt;struct pci_dev *pdev = pAC-&gt;PciDev;&lt;br /&gt;.....&lt;br /&gt;SK_OUT8(pAC-&gt;IoBase, B0_CTST, CS_ST_SW_IRQ);&lt;br /&gt;SK_IN8(pAC-&gt;IoBase, B0_CTST, &amp;test8);&lt;br /&gt;&lt;br /&gt;extern signed long schedule_timeout(signed long timeout);&lt;br /&gt;extern signed long schedule_timeout_interruptible(signed long timeout);&lt;br /&gt;extern signed long schedule_timeout_killable(signed long timeout);&lt;br /&gt;extern signed long schedule_timeout_uninterruptible(signed long timeout);&lt;br /&gt;&lt;br /&gt;wait_event_timeout(pAC-&gt;msi_wait, (pAC-&gt;AllocFlag &amp; SK_ALLOC_MSI), HZ/10);&lt;br /&gt;.....&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fu391.myweb.hinet.net/skge.patch"&gt;skge.patch&lt;/a&gt;&lt;br /&gt;&lt;code&gt;--- skge.old 2010-04-30 20:31:24.502166321 +0800&lt;br /&gt;+++ skge.c 2010-04-30 20:34:07.902165413 +0800&lt;br /&gt;@@ -1732,6 +1732,9 @@&lt;br /&gt;static int __devinit SkGeTestIsr(int irq, void *dev_id, struct pt_regs *ptregs)&lt;br /&gt;#endif&lt;br /&gt;{&lt;br /&gt;+#define TASK_INTERRUPTIBLE 1&lt;br /&gt;+#define TASK_UNINTERRUPTIBLE 2&lt;br /&gt;+#define TASK_NORMAL (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)&lt;br /&gt;struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id;&lt;br /&gt;DEV_NET         *pNet;&lt;br /&gt;SK_AC           *pAC;&lt;br /&gt;@@ -1768,6 +1771,8 @@&lt;br /&gt;*/&lt;br /&gt;static int __devinit SkGeTestMsi(struct SK_NET_DEVICE *dev, SK_AC *pAC)&lt;br /&gt;{&lt;br /&gt;+#define TASK_UNINTERRUPTIBLE 2&lt;br /&gt;+&lt;br /&gt;struct pci_dev *pdev = pAC-&gt;PciDev;&lt;br /&gt;int  Ret;&lt;br /&gt;SK_U32  test32;&lt;br /&gt;@@ -1787,6 +1792,11 @@&lt;br /&gt;SK_OUT8(pAC-&gt;IoBase, B0_CTST, CS_ST_SW_IRQ);&lt;br /&gt;SK_IN8(pAC-&gt;IoBase, B0_CTST, &amp;test8);&lt;br /&gt;&lt;br /&gt;+extern signed long schedule_timeout(signed long timeout);&lt;br /&gt;+extern signed long schedule_timeout_interruptible(signed long timeout);&lt;br /&gt;+extern signed long schedule_timeout_killable(signed long timeout);&lt;br /&gt;+extern signed long schedule_timeout_uninterruptible(signed long timeout);&lt;br /&gt;+&lt;br /&gt;wait_event_timeout(pAC-&gt;msi_wait, (pAC-&gt;AllocFlag &amp; SK_ALLOC_MSI), HZ/10);&lt;br /&gt;&lt;br /&gt;if (!(pAC-&gt;AllocFlag &amp; SK_ALLOC_MSI)) {&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;最後附上幾個改過得檔案連結：&lt;br /&gt;&lt;a href="http://fu391.myweb.hinet.net/skge.patch"&gt;skge.patch&lt;/a&gt;&lt;br /&gt;&lt;a href="http://fu391.myweb.hinet.net/sk98lin.tar.bz2"&gt;sk98lin.tar.bz2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3640860494495916937?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3640860494495916937/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3640860494495916937&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3640860494495916937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3640860494495916937'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/04/ubuntu-1004sk98lin.html' title='Ubuntu 10.04與sk98lin'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-510280371939052227</id><published>2010-04-08T16:32:00.001+08:00</published><updated>2010-04-08T16:33:56.610+08:00</updated><title type='text'>台灣～核能發電～再生能源</title><content type='html'>這篇是我發表在mobile01上的回文，因此同步po在blog上當作台灣能源發展現況的介紹。&lt;br /&gt;&lt;HR&gt;核能目前還是效益、乾淨度最高的發電方式。&lt;br /&gt;&lt;br /&gt;再生能源很多，目前講得出來的有一堆，但多半都兩個根本上的問題：&lt;br /&gt;1. 穩定性很差&lt;br /&gt;2. 發電效益很差&lt;br /&gt;&lt;br /&gt;風力發電是不錯的發電方式，風轉成電的轉換效率不錯，但問題在於，風力發電受限於風，風並不是穩定的一直吹，而是有時大有時小，這會造成發出來的電力有時多有時少，穩定性並不好。&lt;br /&gt;同樣的一點，風力發電的風必須要是穩定吹送的風，風太小不能發電，風太大也不行，所以說，颱風來襲時，風力發電機並不是火力全開，而是全部關閉，否則機組會損壞。&lt;br /&gt;&lt;br /&gt;太陽能發電更慘，太陽能發電一樣有穩定性不好的問題，太陽越大發出的電越多，因此晚上不能發電(一天只有一半的時間有機會發電)，另外遇到陰天也不大能發電。&lt;br /&gt;那台灣北部，冬天(像現在)會經常有寒流通過，這段時間經常會下雨、陰天，就不適合發展太陽能發電。&lt;br /&gt;令一個太陽能發電的最大問題是轉換效率很差，目前網拍買得到的太陽能發電產品，上面硬的太陽能板轉換效率大概只有15%上下，100單位的光只能產生15 單位的電，很低。&lt;br /&gt;這邊順便可以提一下，有一種太陽能商品，太陽能板是軟的，通常縫在背包或衣服上，看似方便，但那種太陽能板轉換效率只有6%左右。&lt;br /&gt;商業運轉的太陽能發電廠，轉換效率高很多，但也只有26%左右。&lt;br /&gt;考慮到一天只有半天能發電，陰天也不能發電，穩定性差，轉換效率又低，就知道為甚麼台電不很願意投資太陽能電廠了。(儘管如此，基於節能環保的政策，目前台電正在南部蓋一座「世界第二大的太陽能發電廠」(僅次於西班牙)，新聞中台電明白說了，主要就是宣示意義，實際上對台電整個發電幫助有限，但未來我們有新景點可以觀光了)&lt;br /&gt;&lt;br /&gt;最後，太陽能發電還一個大麻煩，太陽能板是「耗材」，它用久了轉換效率會越來越差，最後就得更換，我到現在都很懷疑，搭太陽能發電板發出的電，一直到它無法運作為止，到底成本能不能攤平。&lt;br /&gt;&lt;br /&gt;水力發電不錯，但很不幸的，台灣目前水力發電廠已經蓋到爆炸了，沒地方可以蓋水力發電廠了，台灣的水力發電廠蓋得很誇張，不是一條河一座，是一條河從上游蓋到下游，蓋個4,5座，所以很不幸，水力發電台灣已經做到極限了。&lt;br /&gt;&lt;br /&gt;至於其他的發電方式，常聽到的像是地熱、潮汐。&lt;br /&gt;台灣的地熱資源做發電，經濟效益不夠，也就是說，可能電廠蓋起來，發出的電連電廠成本都攤不平。&lt;br /&gt;&lt;br /&gt;潮汐發電目前國外有研究，台電n年前有實驗性的去做，目前這些潮汐發電機都爛光了，原因何在？&lt;br /&gt;潮汐發電你要把發電機組放在海上，海水本身有鹽份，會腐蝕發電機組，因此用一段時間(幾年後)這些機組就會被腐蝕生鏽，然後就是損壞無法使用。&lt;br /&gt;&lt;br /&gt;目前台灣主要的發電就是核能、火力、水力三種發電方式。&lt;br /&gt;核能和火力為主，原因在於這兩者的穩定性最好，發電量不會忽高忽低，所以台電有個稱呼，叫做「基載發電」，顧名思義就是以這兩種發的電為基礎，供應全台灣用電主要負載。&lt;br /&gt;水力發電在台灣，像日月潭水庫，白天從上游把水沖下來發電，晚上把水打上去放，加上有時水量低，所以發電量不穩定，因此沒辦法當基載發電。&lt;br /&gt;&lt;br /&gt;而火力發電廠和核能發電的發電量差很多(水力對火力也是)，加上台灣沒汽油、沒煤炭、天然氣少得可憐，所以火力發電並不是很好的選擇，之前有新聞，全台灣的汽油、煤油、天然氣存放場，只夠全台灣用3天(包括火力發電)3天內一定要有油輪、天然氣輪靠港送燃料。前幾年颱風來，滯留台灣，就讓台電、中油嚇很大，就擔心汽油、煤油、天然氣不夠用。&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;5,6年前風力發電沒現在盛行，就說應該用風力發電，那個環保，現在台灣風力發電機組也蓋了100多台了，就開始出現風力發電不環保的聲音。&lt;br /&gt;正如上幾篇大大提到的，只要是發電，就一定會對環境造成影響，問題是，同樣是發電，當然選對環境傷害小的阿，不能一邊說這個很糟糕，一邊又說那個也不怎麼樣，一定是在兩個裡面選一個比較好的來做吧！每個都有意見就是甚麼都不做，甚麼都不做就會是好的嗎？&lt;br /&gt;&lt;br /&gt;我舉個可能不很好的例子，每個人都有排泄物，當只有幾個人的時候，對著河釋放排泄物，河川影響不會很大，但當人數變成幾十萬人的時候，同樣都是對著河釋放排泄物，就變成以前的淡水河。&lt;br /&gt;可是我們甚麼都沒做阿～就因為甚麼都沒做才變成這樣，那所以，就蓋了污水處理廠，接著河水淨化。&lt;br /&gt;&lt;br /&gt;這個世界本來就是平衡，凡事過猶不及，當人數少、污染少、數量少時，問題都不大，但是當規模變得很大時，就得要想些方式解決產生的問題。&lt;br /&gt;減碳就是這樣，以前瓦特發明蒸汽機時，誰會想到燒煤炭會搞到地球溫室效應，但當時量事實上也沒有很誇張，近100年來，人類對石化能源的需求，讓地球溫室效應的影像以等比級數在增加，這就可以想見人類對石化能源的使用誇張到離譜，規模大到這種地步，自然就得分散使用其他能源來解決問題。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-510280371939052227?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/510280371939052227/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=510280371939052227&amp;isPopup=true' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/510280371939052227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/510280371939052227'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/04/blog-post.html' title='台灣～核能發電～再生能源'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6843384806849633235</id><published>2010-03-15T11:18:00.001+08:00</published><updated>2011-04-03T18:02:00.869+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>舊文新貼－NetBSD與ARM的邂逅～</title><content type='html'>ARM NetBSD 手記：&lt;br /&gt;&lt;br /&gt;總整理：&lt;br /&gt;&lt;br /&gt;Linux 有許多優點，但也有許多缺點，他最大的缺點，就是沒什麼隱私，&lt;br /&gt;你有修改過，就必須按照規矩放出來給大家看，儘管有許多人規避它，&lt;br /&gt;但現階段，這個規矩還不能改變，而 NetBSD 承襲了 BSD 的優點，&lt;br /&gt;完全的自由，完全的合法，你用它惡搞，當商品，都不管你。&lt;br /&gt;而且因為 BSD 社群的習慣性(比較保守)，它的程式碼都有不錯的穩定性，&lt;br /&gt;雖然因此來說效率較差，但的確是值得當作 base 來開發。&lt;br /&gt;&lt;br /&gt;BSD 的主要缺點就是支援嚴重缺乏，舉個例子，&lt;br /&gt;當 Linux 都已經把許多 USB 設備驅動起來，&lt;br /&gt;甚至 webcam 和 Videl For Linux 被大家開發到非常容易就可以使用，&lt;br /&gt;而 FlashROM 的驅動，甚至還設計了 MTD 還有 JFFS、YAFFS 之類的 FS，&lt;br /&gt;BSD 在這方面是完全沒有的。&lt;br /&gt;&lt;br /&gt;因此，這樣的東西，假以時日，是可以成為非常不錯的 base，有無限的潛力。&lt;br /&gt;&lt;br /&gt;NetBSD 在 ARM 上的環境可以用賓士車來形容，&lt;br /&gt;從 Compiler、Kernel、rootfs、Application 全包，&lt;br /&gt;而且寫好 build.sh 這樣的 script，&lt;br /&gt;要安裝、編譯都非常容易，而且整個編排非常有系統，&lt;br /&gt;對於初踏入嵌入式系統的人，會好理解得多，這是很棒的事情。&lt;br /&gt;&lt;br /&gt;編譯方式如下：&lt;br /&gt;&lt;br /&gt;1.編譯出 Compiler Tools&lt;br /&gt;到&lt;br /&gt;&lt;a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0.1/source/sets/"&gt;ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-3.0.1/source/sets/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;下載&lt;br /&gt;&lt;ul&gt;&lt;li&gt;src.tgz&lt;/li&gt;&lt;li&gt;syssrc.tgz&lt;/li&gt;&lt;li&gt;share.tgz&lt;/li&gt;&lt;li&gt;gnusrc.tgz&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;到 / 解壓縮，它會解到 /usr/src&lt;br /&gt;&lt;br /&gt;而它的編譯環境很棒，是跨平台的，&lt;br /&gt;目前看起來，Linux 和 FreeBSD 都可以建立，&lt;br /&gt;需要注意的是，在 Linux 上建立時，&lt;br /&gt;用 gcc-4.1.2 會編譯失敗，用 gcc-3.3、gcc-3.4 則非常正常，&lt;br /&gt;因此要先將 gcc...等幾個 4.1 的編譯程式改 link 到 gcc-3.x，&lt;br /&gt;執行如下：&lt;br /&gt;&lt;code&gt;# cd /usr/bin&lt;br /&gt;# rm cpp gcc g++&lt;br /&gt;# ln -s gcc-3.4 gcc&lt;br /&gt;# ln -s g++-3.4 g++&lt;br /&gt;# ln -s cpp-3.4 cpp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;要復原則執行&lt;br /&gt;&lt;code&gt;# cd /usr/bin&lt;br /&gt;# rm cpp gcc g++&lt;br /&gt;# ln -s gcc-4.1 gcc&lt;br /&gt;# ln -s g++-4.1 g++&lt;br /&gt;# ln -s cpp-4.1 cpp&lt;/code&gt;&lt;br /&gt;(要視目前版本而修正)&lt;br /&gt;&lt;br /&gt;此外，它編譯時會需要 zlib.h，&lt;br /&gt;在 Debian 上，它是在 zlib1g-dev 這個套件中。&lt;br /&gt;此外，當出現&lt;br /&gt;&lt;code&gt;terminal.o(.text+0x40): In function `terminal_begin_using_terminal':&lt;/code&gt;&lt;br /&gt;的錯誤時，是因為在 Debian 上，它需要 libncurses5-dev。&lt;br /&gt;&lt;br /&gt;補充一點，build.sh 在執行時會有問題，問題是發生在 TOP 這個變數，&lt;br /&gt;因此要編輯 build.sh，把&lt;br /&gt;&lt;code&gt;TOP=$(/bin/pwd -P 2&amp;gt;/dev/null)&lt;/code&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;TOP=/usr/src&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2.開始建立環境&lt;br /&gt;&lt;code&gt;# cd /usr/src&lt;br /&gt;# mkdir ../obj&lt;br /&gt;# chmod 755 build.sh&lt;br /&gt;# ./build.sh -m evbarm tools&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-m 表示指定編譯環境是 evbarm&lt;br /&gt;tools 表示要編譯出 tools&lt;br /&gt;&lt;br /&gt;說明可以執行 build.sh --help 後觀看。&lt;br /&gt;&lt;br /&gt;另外，我們也可以用較為複雜的參數來編譯，雖然較為複雜，不過我們可以自行指定路徑，如下：&lt;br /&gt;&lt;code&gt;# ./build.sh -u -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release tools&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-O /home/2410/netbsd/obj  //obj 目錄&lt;br /&gt;-T /usr/local/arm/netbsd  //Compiler 目錄&lt;br /&gt;-D /home/2410/netbsd/build  //build 目錄&lt;br /&gt;-R /home/2410/netbsd/release  //release 目錄&lt;br /&gt;&lt;br /&gt;此外，我在後來編譯的環境改用 coLinux 來進行，coLinux 安裝後和一般的 Debian 相同，&lt;br /&gt;唯一差別是似乎不支援 kernel module，&lt;br /&gt;而使用 coLinux 編譯環境時，以下是我使用到的 coLinux base 安裝套件列表：&lt;br /&gt;&lt;code&gt;aee ee bzip2 g++ gcc joe nfs-user-server libncurses5-dev ssh tcsh vsftpd zlib1g-dev make locales less&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;再來，前面提到可用較為複雜的參數來編譯，我們可以將整個 NetBSD 連同所有 evbarm source 都編譯出來，&lt;br /&gt;整個參數如下：&lt;br /&gt;&lt;code&gt;./build.sh -u -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release tools &amp;amp;&amp;amp; \&lt;br /&gt;./build.sh -U -u -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release build &amp;amp;&amp;amp; \&lt;br /&gt;./build.sh -U -u -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release release &amp;amp;&amp;amp; \&lt;br /&gt;./build.sh -U -u -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release kernel=SMDK2410_INSTALL&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-u     //不要執行 make clean&lt;br /&gt;-U     //不需要 root 權限&lt;br /&gt;-O /home/2410/netbsd/obj  //obj 目錄&lt;br /&gt;-T /usr/local/arm/netbsd  //Compiler 目錄&lt;br /&gt;-D /home/2410/netbsd/build  //build 目錄&lt;br /&gt;-R /home/2410/netbsd/release  //release 目錄&lt;br /&gt;&lt;br /&gt;再修正&lt;br /&gt;&lt;code&gt;./build.sh -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release tools &amp;amp;&amp;amp; \&lt;br /&gt;./build.sh -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release build &amp;amp;&amp;amp; \&lt;br /&gt;./build.sh -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release release &amp;amp;&amp;amp; \&lt;br /&gt;./build.sh -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release kernel=SMDK2410_INSTALL&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;這樣會編譯出&lt;br /&gt;build ；也就是 obj 目錄，將全部東西 build 一次，包括 fs,application,kernel...等&lt;br /&gt;release ；內含完整 evbarm 的 source,也就是會將上面的 fs,application 打包,kernel 檔也通通會編譯&lt;br /&gt;kernel ；目前沒改過，則會編譯出預設的 kernel&lt;br /&gt;&lt;br /&gt;3.要正式編譯 NetBSD 的 kernel 之前，NetBSD 製作出來後會無法開機，要如下修改才能進入 kernel：&lt;br /&gt;&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/smdk2xx0/smdk2410_start.S&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;將&lt;br /&gt;&lt;code&gt;......&lt;br /&gt;_C_LABEL(smdk2410_start):&lt;br /&gt;/* Disable interrupt */&lt;br /&gt;mrs r0, cpsr&lt;br /&gt;orr r0, r0, #I32_bit&lt;br /&gt;msr cpsr, r0&lt;br /&gt;&lt;br /&gt;#ifdef SMDK2XX0_CLOCK_CONFIG&lt;br /&gt;adr r4, clock_config_data&lt;br /&gt;......&lt;/code&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;......&lt;br /&gt;_C_LABEL(smdk2410_start):&lt;br /&gt;/* Disable interrupt */&lt;br /&gt;mrs r0, cpsr&lt;br /&gt;orr r0, r0, #I32_bit&lt;br /&gt;msr cpsr, r0&lt;br /&gt;&lt;br /&gt;/* flush v4 I/D caches */&lt;br /&gt;mov r0, #0&lt;br /&gt;mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */&lt;br /&gt;mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */&lt;br /&gt;&lt;br /&gt;/* disable MMU stuff and caches */&lt;br /&gt;mrc p15, 0, r0, c1, c0, 0&lt;br /&gt;bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS) */&lt;br /&gt;bic r0, r0, #0x00000087 /* clear bits 7, 2:0 (B--- -CAM) */&lt;br /&gt;mcr p15, 0, r0, c1, c0, 0&lt;br /&gt;&lt;br /&gt;#ifdef SMDK2XX0_CLOCK_CONFIG&lt;br /&gt;adr r4, clock_config_data&lt;br /&gt;......&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;另外，它預設的 SDRAM size 是和板子不合的，&lt;br /&gt;僅僅是不合就算了，可是因為我們的 image 有 27 MB，&lt;br /&gt;不合的 SDSRAM size 造成 RAM 不夠，執行時就會有問題，&lt;br /&gt;而修改很容易，如下：&lt;br /&gt;&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/smdk2xx0/smdk2410_machdep.c&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;將&lt;br /&gt;&lt;code&gt;......&lt;br /&gt;#ifndef SDRAM_START&lt;br /&gt;#define SDRAM_START     S3C2410_SDRAM_START&lt;br /&gt;#endif&lt;br /&gt;#ifndef SDRAM_SIZE&lt;br /&gt;#define SDRAM_SIZE      (32*1024*1024)&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;......&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;......&lt;br /&gt;#ifndef SDRAM_START&lt;br /&gt;#define SDRAM_START     S3C2410_SDRAM_START&lt;br /&gt;#endif&lt;br /&gt;#ifndef SDRAM_SIZE&lt;br /&gt;#define SDRAM_SIZE      (64*1024*1024)&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;......&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;如果我們要讓它支援超過 3M 的 rootfs 時，需要如下修改：&lt;br /&gt;修改程式碼如下：&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/smdk2xx0/smdk2410_machdep.c&lt;/font&gt;&lt;br /&gt;&lt;code&gt;.....&lt;br /&gt;#define KERNEL_VM_BASE  (KERNEL_BASE + 0x01000000)&lt;br /&gt;.....&lt;br /&gt;#define KERNEL_PT_KERNEL_NUM 2 /* L2 tables for mapping kernel VM */&lt;br /&gt;.....&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;.....&lt;br /&gt;#define KERNEL_VM_BASE  (KERNEL_BASE + 0x02000000)&lt;br /&gt;.....&lt;br /&gt;#define KERNEL_PT_KERNEL_NUM 8 /* L2 tables for mapping kernel VM */&lt;br /&gt;.....&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;設定部份為：&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/conf/INSTALL&lt;/font&gt;&lt;br /&gt;&lt;code&gt;options         MEMORY_DISK_ROOT_SIZE=6510&lt;/code&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;options         MEMORY_DISK_ROOT_SIZE=49152&lt;/code&gt;&lt;br /&gt;NetBSD 對 RAM Disk 的大小是有設定的，它的設定是定義在&lt;br /&gt;/usr/src/sys/arch/evbarm/conf/INSTALL&lt;br /&gt;&lt;br /&gt;要知道為何是這個設定檔，我們看到&lt;br /&gt;/usr/src/sys/arch/evbarm/conf/SMDK2410_INSTALL&lt;br /&gt;&lt;br /&gt;它裡面只有 include 其他檔案，一個是&lt;br /&gt;/usr/src/sys/arch/evbarm/conf/SMDK2410&lt;br /&gt;&lt;br /&gt;另一個是&lt;br /&gt;/usr/src/sys/arch/evbarm/conf/INSTALL&lt;br /&gt;&lt;br /&gt;而 /usr/src/sys/arch/evbarm/conf/INSTALL 裡面定義的，&lt;br /&gt;就是 RAM Disk 的大小和一些嵌入式系統的 RAM 設定，&lt;br /&gt;而它預設值是 6510，其實就是 3 MB 再大一點點，&lt;br /&gt;而這個值的算法可以參考「製作嵌入式晶片s3c2410板卡的NetBSD啟動鏡像」，&lt;br /&gt;它是&lt;br /&gt;6510 x 512 / 1024 = 6150 / 2 =3075k&lt;br /&gt;&lt;br /&gt;也就是說，6510 / 2 / 1024，就是約略的 MB 數。&lt;br /&gt;&lt;br /&gt;4.要編譯 NetBSD 的 kernel 十分容易&lt;br /&gt;將 /usr/src/tooldir.Linux-2.6.17-unknown/bin 加入 PATH 中&lt;br /&gt;(tooldir.Linux-2.6.17-unknown 是編譯環境時，依據 OS 來命名的)&lt;br /&gt;&lt;br /&gt;PATH 更新後，執行如下：&lt;br /&gt;&lt;br /&gt;&lt;code&gt;./build.sh -m evbarm -u kernel=SMDK2410_INSTALL&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;它就會編譯 SMDK2410 的 kernel 了。&lt;br /&gt;&lt;br /&gt;假如出現找不到 Compiler Tools 的情況時，我們可以用較複雜的參數來編譯，&lt;br /&gt;自行指定 Compiler 路徑，如下：&lt;br /&gt;&lt;code&gt;./build.sh -U -u -m evbarm -O /home/2410/netbsd/obj -T /usr/local/arm/netbsd -D /home/2410/netbsd/build -R /home/2410/netbsd/release kernel=SMDK2410_INSTALL&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;而 kernel 內容的修改和之前 FreeBSD 類似，連目錄結構都很相似，&lt;br /&gt;它是放在&lt;br /&gt;&lt;code&gt;sys/arch/evbarm/conf/SMDK2410&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;對照以前 FreeBSD 的 kernel 路徑&lt;br /&gt;&lt;code&gt;/usr/src/sys/i386/conf/GENERIC&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;而這次的則是&lt;br /&gt;&lt;code&gt;/usr/src/sys/arch/evbarm/conf/SMDK2410&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;真的是很相似，很有 BSD 的味道。&lt;br /&gt;&lt;br /&gt;參考文件是：&lt;br /&gt;製作嵌入式晶片s3c2410板卡的NetBSD啟動鏡像&lt;br /&gt;&lt;br /&gt;5a.以 NFS rootfs 方式開機進入&lt;br /&gt;&lt;br /&gt;NFS rootfs 大概是最方便的作法了，這邊指的方便，指的是方便開發 application，&lt;br /&gt;還有方便修改執行檔之類的動作。&lt;br /&gt;&lt;br /&gt;不過在 NetBSD 上，動作流程比 Linux 麻煩許多，&lt;br /&gt;最討厭是竟然要動到 DHCP Server，以下是流程：&lt;br /&gt;&lt;br /&gt;NFS and DHCP Howto&lt;br /&gt;1.重點，設定 DHCP Server 如下指定：&lt;br /&gt;&lt;code&gt;host my2410.home {&lt;br /&gt;hardware ethernet 00:0a:b1:00:01:ff;&lt;br /&gt;fixed-address 192.168.1.100;&lt;br /&gt;next-server 192.168.1.18;&lt;br /&gt;option root-path "/home/nfsroot/root";&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;網卡卡號在 NetBSD 開機時會顯示，如下：&lt;br /&gt;&lt;code&gt;cs0 at ssextio0 addr 0x18000000 intr 9&lt;br /&gt;cs0: CS8900 rev. K, address 00:0a:b1:00:01:ff, media UTP&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;next-server 很重要，它表示了 NFS Server 的 IP，&lt;br /&gt;option root-path 也很重要，它表示 NFS Server 上 rootfs 的路徑&lt;br /&gt;&lt;br /&gt;2.NFS設定如下：&lt;br /&gt;&lt;code&gt;/home/nfsroot/root           192.168.1.0/255.255.255.0(rw,no_root_squash,sync)&lt;br /&gt;/home/nfsroot/swap      192.168.1.0/255.255.255.0(rw,no_root_squash,sync)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;rootfs 和 swap 要分開設，原因目前不清楚，按照 ko 設定的。&lt;br /&gt;&lt;br /&gt;swap 建立方法如下：&lt;br /&gt;&lt;code&gt;dd if=/dev/zero of=swap bs=4k count=8k&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3.NetBSD 設定如下：&lt;br /&gt;etc/myname&lt;br /&gt;my2410&lt;br /&gt;&lt;br /&gt;etc/mygate&lt;br /&gt;192.168.1.3&lt;br /&gt;&lt;br /&gt;etc/rc.conf&lt;br /&gt;rc_configured=YES&lt;br /&gt;&lt;br /&gt;# Add local overrides below&lt;br /&gt;#&lt;br /&gt;nfs_client=YES&lt;br /&gt;wscons=YES&lt;br /&gt;sshd=NO&lt;br /&gt;sendmail=NO&lt;br /&gt;&lt;br /&gt;etc/hosts&lt;br /&gt;192.168.1.100   my2410&lt;br /&gt;192.168.1.18    coDebian&lt;br /&gt;&lt;br /&gt;etc/fstab&lt;br /&gt;192.168.1.18:/home/nfsroot/root         /       nfs     rw      0       0&lt;br /&gt;kernfs                                  /kern   kernfs  rw&lt;br /&gt;procfs                                  /proc   procfs  rw,noauto&lt;br /&gt;192.168.1.18:/home/nfsroot/swap         none    swap    sw,nfsmntpt=/swap&lt;br /&gt;&lt;br /&gt;4.建立 kern 和 proc 目錄&lt;br /&gt;mkdir kern proc&lt;br /&gt;&lt;br /&gt;5.NetBSD kernel&lt;br /&gt;不要用 SMDK2410_INSTALL&lt;br /&gt;&lt;br /&gt;修改 SMDK2410 後，直接使用 SMDK2410 來編譯 kernel&lt;br /&gt;SMDK2410_INSTALL 內主要設定的，就是用 RAM Disk 時的設定&lt;br /&gt;&lt;br /&gt;SMDK2410 要改的不多，如下：&lt;br /&gt;config          netbsd  root on ? type ?&lt;br /&gt;&lt;br /&gt;改成&lt;br /&gt;config          netbsd  root on ? type nfs&lt;br /&gt;&lt;br /&gt;6.編譯成功後，不需要之前的 RAM Disk 一堆步驟，直接用 netbsd.bin 即可。&lt;br /&gt;&lt;br /&gt;以下是第一次成功畫面：&lt;br /&gt;&lt;code&gt;SMDK2410 # nfs 0x30200000 192.168.1.18:/home/2410/netbsd/netbsd.bin;go 30200000&lt;br /&gt;File transfer via NFS from server 192.168.1.18; our IP address is 192.168.1.100&lt;br /&gt;Filename '/home/2410/netbsd/netbsd.bin'.&lt;br /&gt;Load address: 0x30200000&lt;br /&gt;Loading: #################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#################################################################&lt;br /&gt;#####################################################&lt;br /&gt;done&lt;br /&gt;Bytes transferred = 2597192 (27a148 hex)&lt;br /&gt;## Starting application at 0x30200000 ...&lt;br /&gt;Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005&lt;br /&gt;The NetBSD Foundation, Inc.  All rights reserved.&lt;br /&gt;Copyright (c) 1982, 1986, 1989, 1991, 1993&lt;br /&gt;The Regents of the University of California.  All rights reserved.&lt;br /&gt;&lt;br /&gt;NetBSD 3.0.1 (SMDK2410) #1: Fri Sep 29 07:36:19 UTC 2006&lt;br /&gt;root@coDebian:/home/2410/netbsd/obj/sys/arch/evbarm/compile/SMDK2410&lt;br /&gt;total memory = 65536 KB&lt;br /&gt;avail memory = 58680 KB&lt;br /&gt;mainbus0 (root)&lt;br /&gt;cpu0 at mainbus0: ARM920T rev 0 (ARM9TDMI core)&lt;br /&gt;cpu0: DC enabled IC enabled WB enabled EABT&lt;br /&gt;cpu0: 16KB/32B 64-way Instruction cache&lt;br /&gt;cpu0: 16KB/32B 64-way write-back-locking-A Data cache&lt;br /&gt;ssio0 at mainbus0: fclk 200 MHz hclk 100 MHz pclk 50 MHz&lt;br /&gt;ohci0 at ssio0 intr 26&lt;br /&gt;ohci0: OHCI version 1.0&lt;br /&gt;usb0 at ohci0: USB revision 1.0&lt;br /&gt;uhub0 at usb0&lt;br /&gt;uhub0: Samsung OHCI root hub, class 9/0, rev 1.00/1.00, addr 1&lt;br /&gt;uhub0: 2 ports with 2 removable, self powered&lt;br /&gt;sscom0 at ssio0 unit 0: UART0 addr=50000000&lt;br /&gt;sscom0: console (major=104)&lt;br /&gt;sscom1 at ssio0 unit 1: UART1 addr=50004000&lt;br /&gt;ssextio0 at ssio0&lt;br /&gt;cs0 at ssextio0 addr 0x18000000 intr 9&lt;br /&gt;cs0: CS8900 rev. K, address 00:0a:b1:00:01:ff, media UTP&lt;br /&gt;lcd0 at ssio0&lt;br /&gt;wsdisplay0 at lcd0 kbdmux 1&lt;br /&gt;wsmux1: connecting to wsdisplay0&lt;br /&gt;ssspi1 at ssio0 unit 1&lt;br /&gt;sskbd0 at ssspi1 intr 1&lt;br /&gt;wskbd0 at sskbd0 mux 1&lt;br /&gt;wskbd0: connecting to wsdisplay0&lt;br /&gt;clock: hz=100 stathz = 64 PCLK=50000000 prescaler=2 tc=24414&lt;br /&gt;boot device: &lt;unknown&gt;&lt;br /&gt;root on cs0&lt;br /&gt;nfs_boot: trying DHCP/BOOTP&lt;br /&gt;cs0: failed to enable memory mode&lt;br /&gt;nfs_boot: DHCP next-server: 192.168.1.18&lt;br /&gt;nfs_boot: my_domain=home&lt;br /&gt;nfs_boot: my_addr=192.168.1.100&lt;br /&gt;nfs_boot: my_mask=255.255.255.0&lt;br /&gt;nfs_boot: gateway=192.168.1.3&lt;br /&gt;root on 192.168.1.18:/home/nfsroot/root&lt;br /&gt;warning: no /dev/console&lt;br /&gt;init: Creating mfs /dev (409 blocks, 1024 inodes)&lt;br /&gt;Fri Sep 29 07:43:12 UTC 2006&lt;br /&gt;Checking for botched superblock upgrades: done.&lt;br /&gt;Starting file system checks:&lt;br /&gt;Setting tty flags.&lt;br /&gt;Setting sysctl variables:&lt;br /&gt;Starting network.&lt;br /&gt;Hostname: myname&lt;br /&gt;IPv6 mode: host&lt;br /&gt;Configuring network interfaces:.&lt;br /&gt;add net default: gateway 192.168.1.3&lt;br /&gt;Building databases...&lt;br /&gt;wsdisplay0: screen 1 added (30x32bpp8, vt100 emulation)&lt;br /&gt;wsdisplay0: screen 2 added (30x32bpp8, vt100 emulation)&lt;br /&gt;wsdisplay0: screen 3 added (30x32bpp8, vt100 emulation)&lt;br /&gt;wsdisplay0: screen 4 added (30x32bpp8, vt100 emulation)&lt;br /&gt;Starting syslogd.&lt;br /&gt;Checking for core dump...&lt;br /&gt;savecore: /netbsd: kvm_openfiles: /netbsd: No such file or directory&lt;br /&gt;Sep 29 07:43:22 myname savecore: /netbsd: kvm_openfiles: /netbsd: No such file or directory&lt;br /&gt;Mounting all filesystems...&lt;br /&gt;mount: realpath /kern: No such file or directory&lt;br /&gt;Clearing /tmp.&lt;br /&gt;Creating a.out runtime link editor directory cache.&lt;br /&gt;Checking quotas: done.&lt;br /&gt;Setting securelevel: kern.securelevel: 0 -&amp;gt; 1&lt;br /&gt;mount_nfs: realpath /swap: No such file or directory&lt;br /&gt;swapctl: 192.168.1.18:/home/nfsroot/swap: mount failed&lt;br /&gt;/etc/rc: WARNING: No swap space configured!&lt;br /&gt;Starting virecover.&lt;br /&gt;Starting local daemons:.&lt;br /&gt;Updating motd.&lt;br /&gt;Starting inetd.&lt;br /&gt;Starting cron.&lt;br /&gt;Fri Sep 29 07:43:30 UTC 2006&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NetBSD/evbarm (myname) (console)&lt;br /&gt;&lt;br /&gt;login: root&lt;br /&gt;Sep 29 07:43:36 myname login: ROOT LOGIN (root) ON console&lt;br /&gt;Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005&lt;br /&gt;The NetBSD Foundation, Inc.  All rights reserved.&lt;br /&gt;Copyright (c) 1982, 1986, 1989, 1991, 1993&lt;br /&gt;The Regents of the University of California.  All rights reserved.&lt;br /&gt;&lt;br /&gt;NetBSD 3.0.1 (SMDK2410) #1: Fri Sep 29 07:36:19 UTC 2006&lt;br /&gt;&lt;br /&gt;Welcome to NetBSD!&lt;br /&gt;&lt;br /&gt;Terminal type is vt100.&lt;br /&gt;We recommend creating a non-root account and using su(1) for root access.&lt;br /&gt;myname#&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5b.使用 RAM rootfs 方式在本機載入&lt;br /&gt;&lt;br /&gt;1.以 NFS rootfs 成功的版本進行修改，修改下面幾個檔案：&lt;br /&gt;&lt;br /&gt;&lt;font color=blue&gt;etc/rc.conf&lt;/font&gt;&lt;br /&gt;&lt;code&gt;rc_configured=YES&lt;br /&gt;wscons=YES&lt;br /&gt;sshd=NO&lt;br /&gt;sendmail=NO&lt;br /&gt;no_swap=YES&lt;br /&gt;swapoff=YES&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=blue&gt;etc/fstab&lt;/font&gt;&lt;br /&gt;&lt;code&gt;/dev/md0a / ffs rw 1 1&lt;br /&gt;kernfs  /kern kernfs rw&lt;br /&gt;procfs  /proc   procfs  rw,noauto&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2.修改 &lt;font color=blue&gt;/usr/src/sys/arch/evbarm/conf/SMDK2410&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;把&lt;br /&gt;&lt;code&gt;config          netbsd  root on ? type nfs&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;改回&lt;br /&gt;&lt;code&gt;config          netbsd  root on ? type ?&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3.修改進入 multi-user mode&lt;br /&gt;要進入 multi-user mode，有幾個項目：&lt;br /&gt;&lt;br /&gt;1. rc.conf 內的 rc_configured 要設為 YES&lt;br /&gt;2.在 RAM rootfs 模式時，SMDK2410_INSTALL 要修改，如下：&lt;br /&gt;&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/conf/SMDK2410_INSTALL&lt;/font&gt;&lt;br /&gt;&lt;code&gt;#options BOOTHOWTO=RB_SINGLE&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;要改為&lt;br /&gt;&lt;code&gt;options BOOTHOWTO=0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;至於&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/conf/INSTALL&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;的&lt;br /&gt;&lt;code&gt;MEMORY_RBFLAGS=0x00&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;可以不需要設定，我懷疑這個設定在 BOOTHOWTO=0 幫你設了。&lt;br /&gt;&lt;br /&gt;4.建立 image 檔案&lt;br /&gt;NetBSD 的 kernel 和 rootfs 是綁在一起的，要在 kernel 當中先設定好 rootfs 的大小，如下：&lt;br /&gt;&lt;font color=blue&gt;sys/arch/evbarm/conf/INSTALL&lt;/font&gt;&lt;br /&gt;&lt;code&gt;options         MEMORY_DISK_ROOT_SIZE=6510&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;改為&lt;br /&gt;&lt;code&gt;options         MEMORY_DISK_ROOT_SIZE=49152&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;之後按照下面的步驟建立 image 檔案：&lt;br /&gt;&lt;br /&gt;要建立 image.fs 這樣的 RAM Disk 影像檔，指令如下：&lt;br /&gt;&lt;code&gt;nbmakefs -s 24m -t ffs image_24m.fs rootfs&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-s  影像檔大小&lt;br /&gt;-t  影像檔檔案系統格式(只有 ffs 可以用)&lt;br /&gt;image_24m.fs 目的影像檔檔名&lt;br /&gt;rootfs  來源目錄&lt;br /&gt;=========================================&lt;br /&gt;&lt;br /&gt;http://www.bsdnewsletter.com/2003/09/Features102.html&lt;br /&gt;&lt;br /&gt;要將 kernel 和 rootfs 合併，動作如下：&lt;br /&gt;cp sys/arch/evbarm/compile/obj/SMDK2410_INSTALL/netbsd .&lt;br /&gt;arm--netbsdelf-mdsetimage -sv netbsd image.fs&lt;br /&gt;arm--netbsdelf-objcopy -S -O binary netbsd netbsd.bin&lt;br /&gt;&lt;br /&gt;6.透過 u-boot 載入&lt;br /&gt;最後要載到板子上，要使用如下參數來下載啟動：&lt;br /&gt;&lt;br /&gt;啟動 NetBSD 語法如下：&lt;br /&gt;tftp 30200000 netbsd.bin; go 30200000&lt;br /&gt;&lt;br /&gt;也可以用 NFS 方式載入，如下：&lt;br /&gt;nfs 0x30200000 192.168.1.18:/home/2410/netbsd/netbsd.bin;go 0x30200000&lt;br /&gt;&lt;br /&gt;備註：&lt;br /&gt;關於 dev/ 的裝置，可能會出現警告的訊息，目前不清楚 dev/ 的裝置是不是必要的，&lt;br /&gt;而要建立 dev 的裝置方法很簡單～～&lt;br /&gt;&lt;br /&gt;要建立 dev 的裝置，NetBSD 很貼心的提供了 MAKEDEV 的 script 來幫忙建立，&lt;br /&gt;可以依據不同類別來建立，目前類別有下列這些：&lt;br /&gt;default&lt;br /&gt;floppy&lt;br /&gt;init&lt;br /&gt;local&lt;br /&gt;ramdisk&lt;br /&gt;std&lt;br /&gt;usbs&lt;br /&gt;wscons&lt;br /&gt;&lt;br /&gt;另外還有一個類別是&lt;br /&gt;all&lt;br /&gt;&lt;br /&gt;all 類別包含全部的裝置檔。&lt;br /&gt;&lt;br /&gt;因此要建立，是很簡單的，在 NetBSD 下只要執行：&lt;br /&gt;./MAKEDEV ramdisk&lt;br /&gt;&lt;br /&gt;而前面我們編譯過的 Compiler Tools 裡面有包含了 mknod，它改名叫做 nbmknod，&lt;br /&gt;因此在其他平台要使用它，則要執行：&lt;br /&gt;./MAKEDEV -m /usr/local/arm/netbsd/bin/nbmknod ramdisk&lt;br /&gt;&lt;br /&gt;-m mknod 的呼叫檔名和完整路徑&lt;br /&gt;&lt;br /&gt;要編譯 evbarm 的檔案時，我們知道有&lt;br /&gt;nbmake&lt;br /&gt;&lt;br /&gt;可以使用，但是就算用 nbmake，經常會碰到環境變數的問題，&lt;br /&gt;其實 NetBSD 已經幫我們想到了，可以直接用&lt;br /&gt;nbmake-evbarm&lt;br /&gt;&lt;br /&gt;它只是個 script 的檔案，裡面就只是設定一些環境變數，之後就去呼叫 nbmake，非常的方便～～&lt;br /&gt;&lt;br /&gt;(2006-10-06)&lt;br /&gt;小型化 rootfs 製作手記：&lt;br /&gt;&lt;br /&gt;busybox 在 Embedded Linux 上很有名，它將 Linux 上常見的 tools 進行打包，讓 tools 的體積大幅縮小，&lt;br /&gt;它用的技巧很簡單而有效率，方法是：&lt;br /&gt;&lt;br /&gt;我們知道 application 有 靜態編譯 和 動態編譯 兩種，&lt;br /&gt;靜態編譯是把 library 編譯後放入特定目錄，像是 /lib，&lt;br /&gt;需要用到的 application，會在使用時自己去 /lib 下面找 library，&lt;br /&gt;動態編譯則是把 library 和 application 編譯在一起，&lt;br /&gt;這樣的好處是 application 在執行的時候，不需要去特定的目錄搜尋 library，&lt;br /&gt;因此只要是同一個平台的程式，直接 copy application 檔案過去即可使用，&lt;br /&gt;不需要再找一堆 library 並一個一個複製過去～～&lt;br /&gt;可是靜態編譯的缺點是檔案多半都很大，隨便一個 application 檔案，都會需要到好幾 MB。&lt;br /&gt;&lt;br /&gt;busybox 這類的程式則是採取了折衷的辦法，我們先將需要的 application 進行選取，&lt;br /&gt;之後 busybox 再編譯這些 application，以「靜態編譯」的方式將它們編譯成「一個執行檔」，&lt;br /&gt;這樣的結果是，許多用同一個 library 的 application，它們的 library 只會放一份在「這個執行檔」中，&lt;br /&gt;有類似動態編譯時，所有 application 都到 /lib 找 library 的味道，&lt;br /&gt;但是又能做到「靜態編譯」的優點，只需要一個執行檔，就能夠在相同平台直接執行使用，不需要另外找 library，&lt;br /&gt;減少了移植的麻煩，也減少了 code size。&lt;br /&gt;&lt;br /&gt;在 BSD 當中，沒有 busybox，busybox 也不支援 BSD，不過 BSD 有 crunchgen，&lt;br /&gt;crunchgen 的原理和 busybox 相同，不同的地方在於，&lt;br /&gt;他的設定檔需要自行編寫，之後透過它產生一個制式化的 Makefile，&lt;br /&gt;接著 make 出來的檔案，就會有和 busybox 一樣風格的「執行檔」，&lt;br /&gt;crunchgen 我們可以說他是 busybox 的手動版，但正因如此，它多了很大的彈性～～&lt;br /&gt;&lt;br /&gt;下面動作我是參考&lt;br /&gt;&lt;a href="http://www.bsdnewsletter.com/2003/09/Features102b.html"&gt;http://www.bsdnewsletter.com/2003/09/Features102b.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;的說明，加上自己的測試使用後得出的步驟、方法、技巧：&lt;br /&gt;&lt;br /&gt;首先，我先把整個流程、步驟先寫上，之後在對細節做些說明：&lt;br /&gt;1.編寫 mytiny.conf (檔名可自訂，但下面所有 mytiny 都需要改成自己的檔名)，下面是我依照網站內容編寫：&lt;br /&gt;&lt;code&gt;srcdirs /home/2410/netbsd/usr/src/bin /home/2410/netbsd/usr/src/sbin /home/2410/netbsd/usr/src/usr.bin /home/2410/netbsd/usr/src/usr.sbin /home/2410/netbsd/usr/src/libexec&lt;br /&gt;&lt;br /&gt;progs pwd_mkdb passwd login init sh mount_ffs mount_kernfs mount_procfs mount newfs ls reboot mount_nfs ttyflags getty&lt;br /&gt;&lt;br /&gt;ln sh -sh&lt;br /&gt;ln newfs mount_mfs&lt;br /&gt;&lt;br /&gt;libs -lutil -lcrypt -ledit -ltermcap -ll&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2.執行如下：&lt;br /&gt;&lt;code&gt;cd /home/2410/netbsd/usr/mytiny&lt;br /&gt;nbcrunchgen -m Makefile mytiny.conf&lt;br /&gt;nbmake-evbarm -f Makefile objs exe&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3.要重新編譯的時候，執行如下：&lt;br /&gt;&lt;code&gt;cd /home/2410/netbsd/usr/mytiny&lt;br /&gt;nbmake-evbarm clean&lt;br /&gt;rm mytiny.c mytiny.cache Makefile&lt;br /&gt;vi /home/2410/netbsd/usr/mytiny/mytiny.conf(編輯設定檔)&lt;br /&gt;nbcrunchgen -m Makefile mytiny.conf&lt;br /&gt;nbmake-evbarm -f Makefile objs exe&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4.執行時，我們會發現出現錯誤，要修改這幾個檔案：&lt;br /&gt;&lt;font color=blue&gt;/home/2410/netbsd/usr/src/usr.bin/passwd/Makefile&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#       $NetBSD: Makefile,v 1.40 2005/03/04 20:41:09 he Exp $&lt;br /&gt;#       from: @(#)Makefile    8.3 (Berkeley) 4/2/94&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.own.mk&gt;&lt;br /&gt;&lt;br /&gt;PROG=   passwd&lt;br /&gt;SRCS=   local_passwd.c passwd.c&lt;br /&gt;MAN=    passwd.1&lt;br /&gt;&lt;br /&gt;CPPFLAGS+=-I${.CURDIR} -DLOGIN_CAP&lt;br /&gt;&lt;br /&gt;DPADD+= ${LIBCRYPT} ${LIBUTIL}&lt;br /&gt;LDADD+= -lcrypt -lutil&lt;br /&gt;&lt;br /&gt;BINOWN= root&lt;br /&gt;BINMODE=4555&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.prog.mk&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=blue&gt;/home/2410/netbsd/usr/src/usr.bin/login/Makefile&lt;/font&gt;&lt;br /&gt;&lt;code&gt;#       $NetBSD: Makefile,v 1.45 2005/03/04 20:41:09 he Exp $&lt;br /&gt;#       @(#)Makefile    8.1 (Berkeley) 7/19/93&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.own.mk&gt;&lt;br /&gt;&lt;br /&gt;WARNS=  2&lt;br /&gt;PROG=   login&lt;br /&gt;SRCS=   copyrightstr.c&lt;br /&gt;DPADD+= ${LIBUTIL} ${LIBCRYPT}&lt;br /&gt;LDADD+= -lutil -lcrypt&lt;br /&gt;BINOWN= root&lt;br /&gt;BINMODE=4555&lt;br /&gt;&lt;br /&gt;SRCS+=  login.c&lt;br /&gt;CPPFLAGS+=-DLOGIN_CAP -DSUPPORT_UTMP -DSUPPORT_UTMPX&lt;br /&gt;&lt;br /&gt;CLEANFILES+=    copyrightstr.c&lt;br /&gt;&lt;br /&gt;copyrightstr.c: ${NETBSDSRCDIR}/sys/conf/copyright&lt;br /&gt;${_MKTARGET_CREATE}&lt;br /&gt;rm -f ${.TARGET}&lt;br /&gt;awk '\&lt;br /&gt;BEGIN { print "const char copyrightstr[] =" }\&lt;br /&gt;{ print "\""$$0"\\n\""}\&lt;br /&gt;END { print "\"\\n\";" }\&lt;br /&gt;' ${.ALLSRC} &amp;gt; ${.TARGET}&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.prog.mk&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5.順利編譯之後，便會產生 mytiny 的執行檔。&lt;br /&gt;&lt;br /&gt;問題與說明：&lt;br /&gt;&lt;br /&gt;Ｑ：crunchgen 檔案在哪裡？&lt;br /&gt;Ａ：&lt;br /&gt;NetBSD 真的很方便，它已經將 Compiler Tools 很完整的準備好了，像 crunchgen 這樣的工具也一併提供了，&lt;br /&gt;此外，它還依據平台將它們重新命名，以 evbarm 來說，所有工具前面都會冠上 nb 字頭，&lt;br /&gt;crunchgen 就更名為 nbcrunchgen，&lt;br /&gt;make 就更名為 nbmake，&lt;br /&gt;此外，前面提到過了，它還很貼心的提供了 nbmake-evbarm 這樣的 script，&lt;br /&gt;差別在於會先設定好環境變數，接著呼叫 nbmake 執行。&lt;br /&gt;&lt;br /&gt;而以我來說，nbcrunchgen 會放在前面提過的目錄，以我來說就是 /usr/local/arm/netbsd/bin/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ｑ：要怎麼查詢 library？mytiny.conf 裡面需要指定 libs 哩～～&lt;br /&gt;Ａ：&lt;br /&gt;查詢方法有兩種，而且以第二種較確實。&lt;br /&gt;&lt;br /&gt;第一種：&lt;br /&gt;在 ARM 板子上，使用 ldd 查詢，指令如下：&lt;br /&gt;&lt;code&gt;ldd /bin/sh /bin/ls&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;可以指定多個指令，會全部列出～～&lt;br /&gt;&lt;br /&gt;第二種：&lt;br /&gt;第一種方法雖然可以列出執行檔所需的 library，可是按它的要求修改，有時候好像還是不行耶，怎麼辦？&lt;br /&gt;我們這時候可以直接去看該指令(執行檔)的 source code 目錄下的 Makefile，&lt;br /&gt;以 /bin/sh 來說，它的目錄會是在 usr/src/bin/sh/，這時去看它的 Makefile(usr/src/bin/sh/Makefile)，&lt;br /&gt;看到如下內容：&lt;br /&gt;&lt;code&gt;......&lt;br /&gt;LDADD+= -ll -ledit -ltermcap&lt;br /&gt;......&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;sh 需要的 library 就是 -ll -ledit -ltermcap 這幾個～～～&lt;br /&gt;&lt;br /&gt;其他的執行檔搜尋方式雷同，而需要的 library 在 mytiny.conf 中只需要列一次，不需要重複列出～～&lt;br /&gt;&lt;br /&gt;另外要注意的是，當出現下面的錯誤時，就是有缺 library：&lt;br /&gt;&lt;code&gt;/usr/local/arm/netbsd/bin/arm--netbsdelf-gcc -Wl,-nostdlib    -static -o mytiny  -Wl,-rpath-link,/home/2410/netbsd/build/lib:/home/2410/netbsd/build/usr/lib  -L/home/2410/netbsd/build/lib  -B/home/2410/netbsd/build/usr/lib/ -B/home/2410/netbsd/build/usr/lib/   mytiny.o pwd_mkdb.cro passwd.cro login.cro init.cro sh.cro mount_ffs.cro mount_kernfs.cro mount_procfs.cro mount.cro newfs.cro ls.cro reboot.cro mount_nfs.cro ttyflags.cro getty.cro  -lutil -ledit -ltermcap -ll   -L/home/2410/netbsd/build/usr/lib -L/home/2410/netbsd/build/usr/lib&lt;br /&gt;passwd.cro(.text+0x54): In function `$a':&lt;br /&gt;: undefined reference to `crypt'&lt;br /&gt;passwd.cro(.text+0x1e4): In function `$a':&lt;br /&gt;: undefined reference to `pw_gensalt'&lt;br /&gt;passwd.cro(.text+0x210): In function `$a':&lt;br /&gt;: undefined reference to `crypt'&lt;br /&gt;login.cro(.text+0x54c): In function `$a':&lt;br /&gt;: undefined reference to `crypt'&lt;br /&gt;init.cro(.text+0x770): In function `single_user$$from$$init':&lt;br /&gt;: undefined reference to `crypt'&lt;br /&gt;collect2: ld returned 1 exit status&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;以這個為例，就是 passwd 這個執行檔編譯沒過，它還說 crypt 沒有定義，&lt;br /&gt;此時可以以 grep 的方式搜尋 crypt，看看是什麼 lib 有包含 crypt 的定義，&lt;br /&gt;便可發現，可能是 -lcrypt 缺了～～&lt;br /&gt;&lt;br /&gt;Ｑ：為何要修改 passwd 和 login 的 Makefile？&lt;br /&gt;Ａ：&lt;br /&gt;在編譯時，一直發生錯誤，而且錯誤都出在 passwd 或 login 裡面，&lt;br /&gt;此時看看它們的 Makefile，發現頗複雜，主要是它提供了參數來讓你設定，&lt;br /&gt;類似如下：&lt;br /&gt;&lt;code&gt;BINMODE=4555&lt;br /&gt;&lt;br /&gt;.if (${USE_KERBEROS} != "no")&lt;br /&gt;CPPFLAGS+= -DKERBEROS5 -I${DESTDIR}/usr/include/krb5&lt;br /&gt;SRCS+=  krb5_passwd.c&lt;br /&gt;&lt;br /&gt;DPADD+= ${LIBKRB5} ${LIBCRYPTO} ${LIBASN1} ${LIBCOM_ERR} ${LIBROKEN} ${LIBCRYPT}&lt;br /&gt;LDADD+= -lkrb5 -lcrypto -lasn1 -lcom_err -lroken -lcrypt&lt;br /&gt;LINKS+= ${BINDIR}/passwd ${BINDIR}/kpasswd&lt;br /&gt;MAN+=   kpasswd.1&lt;br /&gt;.endif&lt;br /&gt;&lt;br /&gt;.if (${USE_PAM} != "no")&lt;br /&gt;CPPFLAGS+=-DUSE_PAM&lt;br /&gt;SRCS+= pam_passwd.c&lt;br /&gt;LDADD+=-lpam ${PAM_STATIC_LDADD}&lt;br /&gt;DPADD+=${LIBPAM} ${PAM_STATIC_DPADD}&lt;br /&gt;.endif&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.prog.mk&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;我們知道 PAM 我們並不需要，而且加了，增加了許多 code 也增加了其他 library 造成檔案更大，&lt;br /&gt;而目前，我還不會加入參數來將它略過，因此我使用較為土法煉鋼的方式，&lt;br /&gt;將這段 code 直接拿掉～～～&lt;br /&gt;&lt;br /&gt;因此整個 code 拿光了，變成如下：&lt;br /&gt;&lt;code&gt;#       $NetBSD: Makefile,v 1.40 2005/03/04 20:41:09 he Exp $&lt;br /&gt;#       from: @(#)Makefile    8.3 (Berkeley) 4/2/94&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.own.mk&gt;&lt;br /&gt;&lt;br /&gt;PROG=   passwd&lt;br /&gt;SRCS=   local_passwd.c passwd.c&lt;br /&gt;MAN=    passwd.1&lt;br /&gt;&lt;br /&gt;CPPFLAGS+=-I${.CURDIR} -DLOGIN_CAP&lt;br /&gt;&lt;br /&gt;DPADD+= ${LIBCRYPT} ${LIBUTIL}&lt;br /&gt;LDADD+= -lcrypt -lutil&lt;br /&gt;&lt;br /&gt;BINOWN= root&lt;br /&gt;BINMODE=4555&lt;br /&gt;&lt;br /&gt;.include &lt;bsd.prog.mk&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;要拿掉的部份，就是看 .if 和 .endif，像 HTML 那樣成對的拿掉～～～&lt;br /&gt;&lt;br /&gt;Ｑ：要如何使用？&lt;br /&gt;Ａ：&lt;br /&gt;最後要用，依網站所述即可，作法類似如下：&lt;br /&gt;mkdir /home/nfsroot/sbin&lt;br /&gt;mkdir /home/nfsroot/bin&lt;br /&gt;......&lt;br /&gt;cp mytiny /home/nfsroot/root/sbin/init&lt;br /&gt;ln /home/nfsroot/root/sbin/init /home/nfsroot/root/bin/sh&lt;br /&gt;ln /home/nfsroot/root/sbin/init /home/nfsroot/root/bin/ls&lt;br /&gt;......&lt;br /&gt;&lt;br /&gt;這邊注意一點，我們直接用 ln 不加任何參數即可，&lt;br /&gt;ln 不加任何參數，則 link 出來的檔案，每個都沒有實體，&lt;br /&gt;都會指向到 init，所以每個檔案大小都相同，&lt;br /&gt;而且有趣的是，當 init 更新之後，所有檔案也都會更新(因為沒有實體)，&lt;br /&gt;檔案大小都會是新 init 的 size。&lt;br /&gt;&lt;br /&gt;Ｑ：要如何更改 passwd 內容或 root 密碼？&lt;br /&gt;Ａ：&lt;br /&gt;要變更 passwd 我是參考&lt;br /&gt;http://web.bsdlab.idv.tw/FreeBSD_CVSup_Source.htm&lt;br /&gt;&lt;br /&gt;其實關鍵在於如何使用 pwd_mkdb，而以我的環境來說，作法如下：&lt;br /&gt;&lt;br /&gt;1.修改 passwd&lt;br /&gt;vi /home/nfsroot/root/etc/passwd&lt;br /&gt;&lt;br /&gt;2.修改 master.passwd&lt;br /&gt;vi /home/nfsroot/root/etc/master.passwd&lt;br /&gt;&lt;br /&gt;3.使用 pwd_mkdb&lt;br /&gt;cd /home/nfsroot/root/etc&lt;br /&gt;nbpwd_mkdb -p -d /home/nfsroot/root ./master.passwd&lt;br /&gt;&lt;br /&gt;&lt;/bsd.prog.mk&gt;&lt;/bsd.own.mk&gt;&lt;/bsd.prog.mk&gt;&lt;/bsd.prog.mk&gt;&lt;/bsd.own.mk&gt;&lt;/bsd.prog.mk&gt;&lt;/bsd.own.mk&gt;&lt;/unknown&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6843384806849633235?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6843384806849633235/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6843384806849633235&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6843384806849633235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6843384806849633235'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/03/netbsdarm.html' title='舊文新貼－NetBSD與ARM的邂逅～'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-5884543292349684256</id><published>2010-03-13T23:48:00.003+08:00</published><updated>2011-04-03T18:04:05.989+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='電子'/><title type='text'>洗電路板初體驗</title><content type='html'>雖然以前讀高職科時有焊板子，不過當時可能因為危險或其他因素，所以並沒有洗電路板，事實上現在科大、職校洗電路板應該都不多吧！&lt;br /&gt;&lt;br /&gt;繼前篇自製曝光機後，本篇就延續下去，把洗電路板過程有拍到的照片也po出來。&lt;br /&gt;&lt;br /&gt;洗電路板的過程基本上如下：&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;製作電路投影片&lt;/li&gt;&lt;li&gt;&amp;nbsp;曝光機曝光&lt;/li&gt;&lt;li&gt;&amp;nbsp;顯影劑顯影&lt;/li&gt;&lt;li&gt;&amp;nbsp;氣泡蝕刻機蝕刻&lt;/li&gt;&lt;li&gt;&amp;nbsp;完成&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;要看完整的過程影片，可以參考&lt;a href="http://www.kinsten.com.tw/"&gt;台灣金電子&lt;/a&gt;製作的感光板製作流程，如下：&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LuOk2cMcXaA&amp;hl=zh_TW&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/LuOk2cMcXaA&amp;hl=zh_TW&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;我自己的過程基本上和上面影片差不多，不過因為在陽台，位置比較克難就是了。&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;電路板投影片&lt;/li&gt;因為是第一次，對於畫電路目前不很清楚，在高職時曾經教過protel，不過當時protel還DOS版，而且n年沒碰過，現在完全不會了，因此直接用現成的。 現成的電路板很好找，我找了&lt;a href="http://www.alldatasheet.com/datasheet-pdf/pdf/167370/MOTOROLA/LM2576.html"&gt;LM2576的電路板(附在DataSheet內)&lt;/a&gt;和&lt;a href="http://www.obdev.at/products/vusb/avrdoper.html"&gt;AVR-Doper&lt;/a&gt;的，並且印成投影片。 在確定要曝光前，先要拿投影片和感光電路板比對一下，也要和正面的圖片比對一下，根據元件位置來確定沒有曝光顛倒，洗完才發現洗顛倒，會很想哭吧... 感光電路板照片如下：   &lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/c55Xaw8aG8ESFr010ndK-A?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/S5ODCfFP4VI/AAAAAAAABHg/35joxj43ML4/s288/P3070003.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;感光電路板 - 未拆封&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/6NKP9omhC62waJPF8XkWIg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/S5ODCtV3FTI/AAAAAAAABHk/Y8re2Crb8Yg/s288/P3070006.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;感光電路板 - 正面&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/pf5j-WSdvMt2u43MqwVbsA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/S5ODC-4pKLI/AAAAAAAABHo/Rpnzx6w9vdA/s288/P3070007.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;感光電路板 - 背面(曝光面)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;曝光機曝光&lt;/li&gt;這部份很不幸的，因為感光電路板保護膜撕掉後，我擔心曝光到，所以就急著曝光了，因此過程沒有拍照。曝光時間，第一次我抓3分鐘，發現有點過曝，第二次抓2:45，狀況似乎好一點，下次也許可以試試看2:30。&lt;li&gt;顯影劑顯影&lt;/li&gt;曝光完後，就是拿顯影劑進行顯影，我是按照網路上教的，買澆花用的器具來噴顯影劑顯影。 顯影完後的電路板照片如下：   &lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/eVkX9MMP4Ck8LrJNOm2XjA?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/S5ODZnxrR0I/AAAAAAAABH8/mZdI1S0y9I8/s288/P3070013.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;感光電路板曝光完成&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;氣泡蝕刻機蝕刻&lt;/li&gt;首先，先將氣泡蝕刻機準備好，插電給它加熱。   &lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/00vwYbGjdeVuaQndJ_P8uA?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/S5ODB7ZCblI/AAAAAAAABJ8/1vm2O6_FRx0/s288/P3070002.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;氣泡蝕刻機準備&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;接著要正式開始洗電路板了，洗板子前先確定氣泡蝕刻機的溫度是否到達標準(40度C～60度C)，洗板子當天寒流，溫度很低，當時室外溫度13度C左右，將加熱器調到60度C，溫度才升到40度。   &lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/725jGmJKjHFfJ-2PGNnjtw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_bwwN4YEyoAU/S5ODZwpfyMI/AAAAAAAABKE/bOk4bX3uFQs/s288/P3070014.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;氣泡蝕刻機準備，到達需要溫度&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;接著把電路板放入裡面開始蝕刻。   &lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/cOHzdjsBWLupwxNCqx-3Eg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/S5ODaUaP7EI/AAAAAAAABKM/ssM0bgRSzj4/s288/P3070015.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;電路板開始蝕刻&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/kMnthCa1ScI7heC4gLB4nQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_bwwN4YEyoAU/S5ODajbw44I/AAAAAAAABKU/DZ1j4ufk5_U/s288/P3070016.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;蝕刻到一半左右&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/s0iO8hvBg5TPQm87On-aoA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/S5ODa_BgqzI/AAAAAAAABKc/tkM2pGYCRPQ/s288/P3070017.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;蝕刻快完成囉&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;電路板完成&lt;/li&gt;電路板洗好後，即可拿起來。 完成照：   &lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/YStXCIHGuJWf1BtCC5Fc1w?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/S5u1EjCJ1sI/AAAAAAAABKk/lcZBudwJS3g/s288/P3130002.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;電路板完成&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;警語：&lt;br /&gt;洗電路板式會有環境污染的，相信洗電路板的文章都會提到，既然我要上，自然會事先有相關的注意。&lt;br /&gt;洗電路板最主要的危害是藥劑。&lt;br /&gt;上網看，顯影劑的危害似乎還好，一般都還是倒掉即可，主要的危害是&lt;b&gt;蝕刻劑&lt;/b&gt;。&lt;br /&gt;蝕刻劑的危害有二：&lt;br /&gt;&lt;ol&gt;&lt;li&gt;蝕刻劑為強酸&lt;/li&gt;因為要腐蝕金屬銅，因此蝕刻劑為強酸，強酸當然對環境有害。&lt;li&gt;蝕刻劑含重金屬銅&lt;/li&gt;因為蝕刻劑洗電路板，主要作用是把電路板表面的銅腐蝕，銅被腐蝕後就會溶入蝕刻劑中，如果隨意的亂倒，就會把土壤、水源污染，變成&lt;b&gt;重金屬污染&lt;/b&gt;。 &lt;/ol&gt;&lt;br /&gt;為了解決危害，我一方面使用環保蝕刻劑，另一方面我在蝕刻後，用3個600cc的寶特瓶將這些蝕刻劑另外保存，所以只有電路板的清潔和少量的蝕刻劑不小心溢出。&lt;br /&gt;如此一來蝕刻劑可重複使用，最後再用處理劑(搭配環保蝕刻劑用的)處理。&lt;br /&gt;我想，以我的使用率和使用量，這批藥劑大概可以用個10年吧！&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/10062204-5884543292349684256?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/5884543292349684256/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=5884543292349684256&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5884543292349684256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5884543292349684256'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/03/blog-post_3565.html' title='洗電路板初體驗'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_bwwN4YEyoAU/S5ODCfFP4VI/AAAAAAAABHg/35joxj43ML4/s72-c/P3070003.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1312817955874967811</id><published>2010-03-13T16:50:00.004+08:00</published><updated>2011-04-03T18:04:05.989+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='電子'/><title type='text'>自製電路板用曝光機(使用掃瞄器改裝)－實作</title><content type='html'>在上篇對曝光機的事前規劃、成本計算後，這篇將實做的曝光機照片和過程貼出來。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;二手掃瞄器(已拆解)&lt;/li&gt;如果還留有掃瞄器的，可以直接使用，家裡曾經有一台，但幾年前就丟了，這台則是上網拍買的，基於回收價格多半都NT 100元，因此網拍大概都是NT 100元比較多也比較合理。 至於哪種好？反正都是要拆的，差別不大，我當時的需求是高度要10cm上下，當時是考慮到可能用日光燈管和燈座，但使用LED的話，高度問題比較小，如果有疑慮，可以找差不多8cm~10cm高的掃瞄器。 下面是掃瞄器的照片：&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/h7zAEOkmsccc1hQ70dr2yQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/S5tNvXYacdI/AAAAAAAABI4/Lg9i14J62bc/s288/P3050005.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;曝光機外觀&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Ho1X_K_rMI_3VYwGw_XhCA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/S5tNwNmvZaI/AAAAAAAABI8/HGhkqwTqLiE/s288/P3050009.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;曝光機拆解1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Fcr3sGRDJafwkuEz9s6yMg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/S5tNwsvqCsI/AAAAAAAABJA/XuPIgBHIy-M/s288/P3050012.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;曝光機拆解2&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;li&gt;UV LED洞洞板&lt;/li&gt;前篇成本篇計算過，要作曝光機，UV LED的C/P值高，而在真正製作時，我們需要洞洞板。 常見的洞洞板有兩種，綠色的是玻璃纖維板；咖啡色的是電木板。一般來說，玻璃纖維板比電木板耐用很多，不過價格也貴很多。基於高職時候做的8051板子到現在都還能動，電木板材質的板子也都一切正常，加上最重要的價格因素，因此我還是買了電木板。 施工過程並沒有拍照，因此只有完成品，但差別僅在於電烙鐵的銲接。 UV LED電路板照片： &lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/pUUzq2sMakuEAPRHZUyxjA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_bwwN4YEyoAU/S5tNxOVex8I/AAAAAAAABJE/cuFfPic8zuA/s288/P3050013.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;UV LED電路板正面&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/EUv-VwSGFuBi4ssnt19FLw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/S5tNxSHq7gI/AAAAAAAABJI/7BEqIl4-cq8/s288/P3050014.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;UV LED電路板背面&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;li&gt;掃描器+UV LED電路板&lt;/li&gt;在UV LED電路板完成後，接著就是把它和掃描器結合，這邊比較麻煩的是電源接頭的固定，我最後是在掃描器背後打兩個洞，用螺絲倒鎖卡住電源接頭，效果相當不錯。雖然解釋的不清楚，但大家可以點選下面第一張照片放大來看，注意到電源部份，就可以清楚看到固定用的螺絲了。&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/DZmJy5AY1mpjflWOJXws4g?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/S5tOwJtR75I/AAAAAAAABJY/BpzbeuERx7U/s288/P3050017.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;掃描器、UV LED電路板結合照1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/l9tVTy1OVz6ALm9NBVmjhw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_bwwN4YEyoAU/S5tOw8qTcfI/AAAAAAAABJc/nZc5aZ0Ty_M/s288/P3050018.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;掃描器、UV LED電路板結合照2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/rYTl9Xr9_KxOS9vJpgyQzg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/S5tOyLwHUKI/AAAAAAAABJk/sMOfT7dHECI/s288/P3050021.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;曝光機完成照&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;li&gt;實際測試&lt;/li&gt;曝光機至此已完成，接著實際插電測試看看。&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/KgH-2dAXBtTww77_vwu_cg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/S5tOy5dJutI/AAAAAAAABJo/JHlV_y3i0iw/s288/P3050022.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;曝光機測試照&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1312817955874967811?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1312817955874967811/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1312817955874967811&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1312817955874967811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1312817955874967811'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/03/blog-post_13.html' title='自製電路板用曝光機(使用掃瞄器改裝)－實作'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_bwwN4YEyoAU/S5tNvXYacdI/AAAAAAAABI4/Lg9i14J62bc/s72-c/P3050005.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4791600750402653464</id><published>2010-03-03T02:56:00.004+08:00</published><updated>2011-04-03T18:04:05.989+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='電子'/><title type='text'>自製電路板用曝光機(使用掃描器改裝)－前傳(成本計算)</title><content type='html'>最近打算開始自己洗電路板，因此著手購置相關器具。&lt;br /&gt;在網路上搜尋後得知，要洗出成功好看的電路板，曝光的程序是很重要的。&lt;br /&gt;常見的曝光包括：&lt;br /&gt;1. 曬太陽，這方法穩定性不好，時間不好掌控。&lt;br /&gt;2. 檯燈+玻璃(或壓克力板)，這方法滿常見的，但檯燈會有死角，而且我手邊沒有大玻璃或大壓克力板，買起來都不便宜&lt;br /&gt;3. 專用曝光機，這個效果當然一級棒，但機器很貴，家裡不可能有&lt;br /&gt;4. 投影機曝光，這個很新奇，看起來效果也不錯，可是我家也沒有投影機&lt;br /&gt;&lt;br /&gt;基於上述理由，加上網路搜尋後，發現自行DIY曝光機的人很多，我稍微列出一些相關的網頁：&lt;br /&gt;中文：&lt;br /&gt;&lt;a href="http://www.haifeng.idv.tw/leo/cgi-bin/topic.cgi?forum=241&amp;topic=3&amp;show=0"&gt;http://www.haifeng.idv.tw/leo/cgi-bin/topic.cgi?forum=241&amp;topic=3&amp;show=0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://61.70.96.216/phpbb2/viewtopic.php?f=3&amp;t=118&amp;start=0"&gt;http://61.70.96.216/phpbb2/viewtopic.php?f=3&amp;t=118&amp;start=0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;英文：&lt;br /&gt;&lt;a href="http://www.scienceprog.com/pcb-exposure-using-uv-light-led-box/"&gt;http://www.scienceprog.com/pcb-exposure-using-uv-light-led-box/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hackedgadgets.com/2009/04/21/diy-uv-led-double-sided-pcb-exposure-box/"&gt;http://hackedgadgets.com/2009/04/21/diy-uv-led-double-sided-pcb-exposure-box/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.embedds.com/ultraviolet-light-box-for-pcb-exposure/"&gt;http://www.embedds.com/ultraviolet-light-box-for-pcb-exposure/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.webtreatz.com/index.php/projects/39-electronic-projects/60-uv-led-based-pcb-exposure-unit"&gt;http://www.webtreatz.com/index.php/projects/39-electronic-projects/60-uv-led-based-pcb-exposure-unit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;中文的大概是上述兩個最經典，是使用掃瞄器+日光燈管或UV燈管製成的。&lt;br /&gt;英文的則不少，很多是隨便找個工具箱就做了，另外，注意到很多都是用UV LED來製作。&lt;br /&gt;&lt;br /&gt;接著，開始計算成本。&lt;br /&gt;1. 二手掃瞄器，網拍很多，NT $100&lt;br /&gt;&lt;br /&gt;使用燈管製作時，需要2組日光燈，包括2組燈座、2組電子安定器、2根燈管。&lt;br /&gt;粗略估計&lt;br /&gt;2a. 電子安定器約 NT $100 x 2&lt;br /&gt;2b. 燈座(沒查，估計一組低於 NT $100) x 2&lt;br /&gt;2c. 燈管，如果是日光燈管，一根約 NT $30 x 2；如果是UV燈管，一根約 NT $200~NT $350 不等 x 2&lt;br /&gt;&lt;br /&gt;如果用日光燈管製作，估計成本大概要 NT $500 左右，應該可以低於NT $500。&lt;br /&gt;但日光燈曝光時間大概需要10分鐘左右。&lt;br /&gt;&lt;br /&gt;而如果用UV燈管製作，則成本大概要到NT $800 ~ NT $1000，要看UV燈管的價格而定。&lt;br /&gt;使用UV燈管曝光時間大概只需要1分鐘～2分鐘的時間。&lt;br /&gt;&lt;br /&gt;而使用UV LED製作，需要ｎ顆UV LED、多張洞洞板、多顆電阻、一個變壓器、一個電源母座、一堆銅柱。&lt;br /&gt;2a. UV LED我在露天拍賣有找到一顆NT $3，根據我在國外網站的搜尋，大概需要56~90不等的數量，這要根據LED矩陣的鋪設來決定，目前我使用88顆&lt;br /&gt;2b. 洞洞板，因為洞洞板尺寸和一般的紙不大一樣，我設計時以A4為大小，因此準備了4張洞洞板，每張為10cm x 16cm，價格一張NT $30&lt;br /&gt;2c. 多顆電阻，因為LED是二極體，需要有電阻來匹配，因此需要多顆電阻，電阻數量根據變壓器的輸入電壓、LED電壓、電流、串並聯方式而定，關於電阻的選擇，可以用&lt;a href="http://led.linear1.org/led.wiz"&gt;這個網站&lt;/a&gt;幫你計算，原則上來說，變壓器的輸入電壓越大，LED可以串連越多，則矩陣並聯數量越少，電阻需要量也越少。以我這邊來說，需要16根150歐姆電阻，2根330歐姆電阻。購買UV LED時，網拍很貼心的有附上電阻和二極體，如果剛好和需要的一樣，則可以省下電阻費用，電阻一顆NT $0.5&lt;br /&gt;2d. 變壓器很貴，尤其大電壓大電流的更貴，不過好在現在筆記型電腦便宜，幾乎人手一台，像我有報廢的舊筆電，變壓器都剩下來了，筆電的變壓器除了小筆電外，幾乎都是19V，電壓夠大，電流更是不用說，可以到2A以上，非常適合拿來替用，因此費用可以省下來&lt;br /&gt;2e. 電源母座，找個筆電變壓器可以插的母座接頭，一個大概NT $3。&lt;br /&gt;2f. 銅柱，用來把電路板固定在掃瞄器裡面的，因為有4塊電路板，至少需要16根銅柱，一個NT $2~NT $3。&lt;br /&gt;&lt;br /&gt;整個成本算下來，大概在NT $500上下，和日光燈版的曝光機差不多費用，但UV LED曝光時間大概只要2~3分鐘，看起來C/P值很高，因此最後決定使用UV LED製作曝光機。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4791600750402653464?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4791600750402653464/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4791600750402653464&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4791600750402653464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4791600750402653464'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/03/blog-post.html' title='自製電路板用曝光機(使用掃描器改裝)－前傳(成本計算)'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-2708460329345255767</id><published>2010-01-07T14:40:00.011+08:00</published><updated>2011-04-03T18:02:00.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>FFMpeg與SDL之播放器～心得 - 1</title><content type='html'>FFMpeg是Linux上知名的影音編解碼函式庫。&lt;br /&gt;有多知名呢？這樣描述吧～Linux上播放程式並不多，但有數的播放程式幾乎都靠它進行解碼，就算這類播放程式有自帶解碼器或介面，也都會支援FFMpeg。&lt;br /&gt;&lt;br /&gt;在這篇開始之前我必須要說清楚，FFMpeg是有軟體專利問題的，理論上無法用於商業開發，一旦被軟體專利的組織查到，是要花大錢的。&lt;br /&gt;我在一年前左右就開始看FFMpeg，當時就是因為看到軟體專利問題，就停止了，這次會繼續的原因主要是：&lt;br /&gt;1. FFMpeg是Linux上主要的編解碼函式庫，除了它別無選擇，Google Chrome的影音播放器目前也是以它為基礎，連Google Browser都用它，我只能相信在一般使用上，軟體專利問題應該不很大。&lt;br /&gt;2. FFMpeg本身其實只是個編解碼函式庫的介面，意思是它在編譯時，可以選擇要編譯的編碼器和解碼器，我認為在商業化使用時，應該可以把有問題的編解碼器全部拿掉，只留下沒問題的(theora/ogg)，如此一來對於自主的播放器來說，沒有軟體專利的問題，但程式又不需要更動即可使用。&lt;br /&gt;3. 現在新版的FFMpeg有提供Nvidia的VDAPU的支援，可以直接用VDAPU進行H264的解碼，我一廂情願的認為，Nvidia的VDAPU應該已經有付過相關解碼器的專利費用了，所以用FFMpeg的VDAPU對影片解碼應該是沒軟體專利的問題。&lt;br /&gt;&lt;br /&gt;因為上述的幾個想法，所以決定繼續FFMpeg和SDL的學習。&lt;br /&gt;&lt;br /&gt;FFMpeg和SDL的播放器，最主要的學習是以&lt;a href="http://www.dranger.com/ffmpeg/"&gt;An ffmpeg and SDL Tutorial - ffmpeg tutorial&lt;/a&gt;為主，不幸的是，隨著2010年跨年，跨完年它網站資料就不見了...@_@!&lt;br /&gt;好加在它html雖然都不見了，但txt和source code倒是到還在，連結如下：&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial01.txt"&gt;Tutorial 01文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial01.c"&gt;Tutorial 01原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial02.txt"&gt;Tutorial 02文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial02.c"&gt;Tutorial 02原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial03.txt"&gt;Tutorial 03文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial03.c"&gt;Tutorial 03原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial04.txt"&gt;Tutorial 04文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial04.c"&gt;Tutorial 04原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial05.txt"&gt;Tutorial 05文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial05.c"&gt;Tutorial 05原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial06.txt"&gt;Tutorial 06文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial06.c"&gt;Tutorial 06原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial07.txt"&gt;Tutorial 07文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial07.c"&gt;Tutorial 07原始碼&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dranger.com/ffmpeg/tutorial08.txt"&gt;Tutorial 08文字版&lt;/a&gt;  &lt;a href="http://www.dranger.com/ffmpeg/tutorial08.c"&gt;Tutorial 08原始碼&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;最後，有一點必須要說的，整篇FFMpeg與SDL的教學，是基礎在ffplay這個播放器，我按照他的教學寫了2週，在EeePC上播放都有問題，一執行CPU就滿載且播放一陣子程式就卡住，必須要強制關閉，結果搞半天，我用ffplay也遇到一樣的問題，所以測試上有問題，目前我打算改看mplayer，看播放器的設計上有何不同，來瞭解ffplay為啥在EeePC上執行會有這樣的問題。&lt;br /&gt;前言結束。 &lt;br /&gt;&lt;br /&gt;第一篇：&lt;br /&gt;本篇的教學在理解之後其實很簡單，目前網路上找得到的FFMpeg範例，程式碼幾乎都類似這篇的內容，如果只是想要進行影片的轉檔(不含聲音)，那麼本篇足矣。&lt;br /&gt;&lt;br /&gt;再次重申，FFMpeg是影音的編碼/解碼函式庫，因此它的主要工作都是在編碼解碼上，今天我們要寫個播放器，那麼單單只有FFMpeg是不夠的，所以還會需要SDL這樣的函式庫，不過這在第二篇才會細說，這邊僅針對FFMpeg的影片解碼過程進行解說(不含聲音)。&lt;br /&gt;&lt;br /&gt;在瞭解FFMpeg的操作前，我們要先瞭解兩樣東西，一個是「檔案讀取流程」，另一個是「FFMpeg解碼處理流程」。&lt;br /&gt;首先我們看到「檔案讀取流程」 。&lt;br /&gt;&lt;br /&gt;檔案讀取流程：&lt;br /&gt;&lt;code&gt;char ch;&lt;br /&gt;FILE *fp = fopen("test.txt","r");&lt;br /&gt;while((ch = fgetc( fp )) != EOF)&lt;br /&gt;printf("%c", ch);&lt;br /&gt;fclose(fp);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;上述這是一個非常常見的檔案讀取的程式段，它的流程很單純，就是下面三個步驟：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_bwwN4YEyoAU/S0VqS9dAR6I/AAAAAAAABFo/G7pX0LDPkc0/s1600-h/%E8%AE%80%E6%AA%94%E6%B5%81%E7%A8%8B.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_bwwN4YEyoAU/S0VqS9dAR6I/AAAAAAAABFo/G7pX0LDPkc0/s320/%E8%AE%80%E6%AA%94%E6%B5%81%E7%A8%8B.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;這裡關於流程圖的符號細節我們就不要考究了，菱形、圓弧型之類的會讓圖片一大團。&lt;br /&gt;&lt;br /&gt;在FFMpeg也是一樣，FFMpeg操作的大架構事實上和檔案讀取相同，下面是它部份的程式段：&lt;br /&gt;&lt;code&gt;AVFormatContext *VideoFormatInfo;&lt;br /&gt;av_open_input_file(&amp;amp;VideoFormatInfo, "test.mpg", NULL, 0, NULL);&lt;br /&gt;.....&lt;br /&gt;while(av_read_frame(VideoFormatInfo, &amp;amp;VideoPacket) &amp;gt;= 0)&lt;br /&gt;{&lt;br /&gt;影片操作;&lt;br /&gt;.....&lt;br /&gt;}&lt;br /&gt;av_close_input_file(VideoFormatInfo);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;操作上大概就上述這樣，不過我把大部分細節都去除了，因為這部份還沒提到。&lt;br /&gt;這裡要讓人瞭解的是，FFMpeg的核心操作，其實就像是檔案讀取一般，只是FFMpeg要使用&lt;br /&gt;1. av_open_input_file() 代換 fopen()&lt;br /&gt;2. av_read_frame() 代換 fread()&lt;br /&gt;3. av_close_input_file() 代換 fclose()&lt;br /&gt;&lt;br /&gt;接著我們看到「FFMpeg解碼處理流程」。&lt;br /&gt;&lt;br /&gt;FFMpeg解碼處理流程：&lt;br /&gt;要瞭解FFMpeg的對影音檔的處理流程，基本上流程如下圖：&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_bwwN4YEyoAU/S0V2biH60OI/AAAAAAAABFw/tlLoVFONlX8/s1600-h/FFMpeg%E8%A7%A3%E7%A2%BC%E8%99%95%E7%90%86%E6%B5%81%E7%A8%8B.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_bwwN4YEyoAU/S0V2biH60OI/AAAAAAAABFw/tlLoVFONlX8/s320/FFMpeg%E8%A7%A3%E7%A2%BC%E8%99%95%E7%90%86%E6%B5%81%E7%A8%8B.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;幾乎所有的播放程式，解碼的處理流程都像上圖這樣。&lt;br /&gt;&lt;br /&gt;上述圖片中，關於聲音處理的部份都以半透明方式表示，原因在於，目前這篇文章僅討論影片處理，並沒有處理聲音部份，因此聲音部份並沒有在下面的程式碼和說明中。&lt;br /&gt;&lt;br /&gt;上述的流程相對應到FFMpeg，會類似下面這樣的程式段：&lt;br /&gt;&lt;code&gt;.....&lt;br /&gt;1. 解析出影音檔中的串流資訊&lt;br /&gt;av_find_stream_info(VideoFormatInfo);&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;2. 從影音檔的串流資訊取得影片軌是哪一軌&lt;br /&gt;int VideoStreamIndex = -1;&lt;br /&gt;int i = 0;&lt;br /&gt;for(; i &amp;lt; VideoFormatInfo-&amp;gt;nb_streams; i++)&lt;br /&gt;{&lt;br /&gt;if(VideoFormatInfo-&amp;gt;streams[i]-&amp;gt;codec-&amp;gt;codec_type == CODEC_TYPE_VIDEO)&lt;br /&gt;{&lt;br /&gt;VideoStreamIndex = i;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;3. 從影片軌中取得影片的編碼&lt;br /&gt;AVCodecContext *VideoCodecInfo = VideoFormatInfo-&amp;gt;streams[VideoStreamIndex]-&amp;gt;codec;&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;4. 根據影片的編碼找出相對應的解碼器&lt;br /&gt;AVCodec *VideoDecoder = avcodec_find_decoder(VideoCodecInfo-&amp;gt;codec_id);&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;5. 開啟解碼器&lt;br /&gt;avcodec_open(VideoCodecInfo, VideoDecoder);&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;6. 對讀取出來的影片資料進行解碼&lt;br /&gt;avcodec_decode_video(VideoCodecInfo, VideoFrame, &amp;amp;frameFinished, VideoPacket.data, VideoPacket.size);&lt;br /&gt;.....&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;到此，FFMpeg解碼的主要部份都解說了，接著我們把讀取影音檔的程式段和影片解碼的程式段整合，並且加入一些細節做說明。&lt;br /&gt;&lt;code&gt;#include "libavcodec.h"&lt;br /&gt;#include "libavformat.h"&lt;br /&gt;#include "stdio.h"&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv)&lt;br /&gt;{&lt;br /&gt;//註冊所有FFMpeg的編碼器&lt;br /&gt;av_register_all();&lt;br /&gt;&lt;br /&gt;AVFormatContext *VideoFormatInfo;&lt;br /&gt;&lt;br /&gt;if( av_open_input_file(&amp;VideoFormatInfo, argv[1], NULL, 0, NULL) !=0 )&lt;br /&gt;return -1; // Couldn't open file&lt;br /&gt;&lt;br /&gt;if( av_find_stream_info(VideoFormatInfo)&lt; 0 )return -1; //顯示dump_format(VideoFormatInfo, 0, argv[1], 0);AVCodecContext *VideoCodecInfo;int VideoStreamIndex = -1;int i = 0;for(; i &lt; VideoFormatInfo-&gt;nb_streams; i++)&lt;br /&gt;{&lt;br /&gt;if(VideoFormatInfo-&gt;streams[i]-&gt;codec-&gt;codec_type == CODEC_TYPE_VIDEO)&lt;br /&gt;{&lt;br /&gt;VideoStreamIndex = i;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;if(VideoStreamIndex == -1)&lt;br /&gt;return -1;&lt;br /&gt;&lt;br /&gt;VideoCodecInfo = VideoFormatInfo-&gt;streams[VideoStreamIndex]-&gt;codec;&lt;br /&gt;&lt;br /&gt;AVCodec *VideoDecoder;&lt;br /&gt;&lt;br /&gt;VideoDecoder = avcodec_find_decoder(VideoCodecInfo-&gt;codec_id);&lt;br /&gt;if(VideoDecoder == NULL)&lt;br /&gt;{&lt;br /&gt;fprintf(stderr, "Unsupported codec!\n");&lt;br /&gt;return -1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if(avcodec_open(VideoCodecInfo, VideoDecoder) &lt; 0)return -1;int frameFinished;AVPacket VideoPacket;i = 0;while(av_read_frame(VideoFormatInfo, &amp;VideoPacket) &gt;= 0)&lt;br /&gt;{&lt;br /&gt;if(VideoPacket.stream_index == VideoStreamIndex)&lt;br /&gt;{&lt;br /&gt;avcodec_decode_video(VideoCodecInfo, VideoFrame, &amp;frameFinished, VideoPacket.data, VideoPacket.size);&lt;br /&gt;&lt;br /&gt;if(frameFinished)&lt;br /&gt;{&lt;br /&gt;//影片檔圖片讀取完成，進行圖片操作或影像處理&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;av_free_packet(&amp;VideoPacket);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;av_free(VideoFrame);&lt;br /&gt;avcodec_close(VideoCodecInfo);&lt;br /&gt;av_close_input_file(VideoFormatInfo);&lt;br /&gt;&lt;br /&gt;return 0;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;上述的程式碼比之前2段程式段都更複雜些，但相似度非常高，沒加入的部份很少，這裡會對沒加入的部份進行說明。&lt;br /&gt;這個程式碼應該算是可以動作的，但它並不會對取出的影片圖片進行處理，只是單純的解碼而已，更完整的部份再接著才會進行。&lt;br /&gt;在這個程式碼中，有幾個前面沒提到的部份。&lt;br /&gt;首先：&lt;br /&gt;&lt;code&gt;av_register_all();&lt;/code&gt;&lt;br /&gt;這個function是用來告訴FFMpeg，我們要註冊所有的FFMpeg解碼器，註冊之後，我們後面的解碼器操作才能順利進行。&lt;br /&gt;&lt;br /&gt;接著：&lt;br /&gt;&lt;code&gt;while(av_read_frame(VideoFormatInfo, &amp;amp;VideoPacket) &amp;gt;= 0) //跟讀取檔案方式相同，只要影片還有 Frame，就一直讀，av_read_frame會將讀到的 Frame 放入 AVPacket結構 中&lt;br /&gt;{&lt;br /&gt;// Is this a packet from the video stream?(這個 packet 是從 video stream 來的？)&lt;br /&gt;if(VideoPacket.stream_index == VideoStreamIndex)  //從已經讀到的 AVPacket結構 中，判斷這個 Packet 是哪個 stream 的，在這裡我們只需要 video stream，因此這行判斷&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;在使用av_read_frame()遞迴的讀取時，因為讀取到的影音資料是影片、聲音混合的，所以我們在讀取後要使用 if(VideoPacket.stream_index == VideoStreamIndex) {} 來判斷影片或聲音，判斷出影片後才能進一步操作，聲音在此則不管它。&lt;br /&gt;&lt;br /&gt;接著：&lt;br /&gt;&lt;code&gt;if(frameFinished)&lt;br /&gt;{&lt;br /&gt;//影片檔圖片讀取完成，進行圖片操作或影像處理&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;這裡這段想必會很疑惑，frameFinish用途何在。&lt;br /&gt;其實FFMpeg使用 av_read_frame() 讀出時，讀出的單位並不是一張圖片，而是影音的 Packet(封包)，因為一部分的「Packet」並不能表示成一張「畫面」，因此我們在使用 avcodec_decode_video() 進行影片解碼時，要傳入 frameFinish，讓FFMpeg透過 frameFinish 告訴我們是否完成了一張完整的圖片解碼，當完成了一張圖片解碼時，if(frameFinished) {} 才會符合，我們也才能對這個解出的圖片(畫面)進行進一步的處理。&lt;br /&gt;&lt;br /&gt;為了讓這個程式有意義，而不是虛無飄渺的甚麼東西都沒有，我們加上最後一個部份，把解碼出來的畫面進行輸出，整個程式可以把影片的最前面5張畫面輸出成5個圖片檔。&lt;br /&gt;&lt;br /&gt;首先加入下面這段程式碼：&lt;br /&gt;&lt;code&gt;void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame)&lt;br /&gt;{&lt;br /&gt;FILE *pFile;&lt;br /&gt;char szFilename[32];&lt;br /&gt;int  y;&lt;br /&gt;&lt;br /&gt;// Open file&lt;br /&gt;sprintf(szFilename, "frame%d.ppm", iFrame);&lt;br /&gt;pFile=fopen(szFilename, "wb");&lt;br /&gt;if(pFile==NULL)&lt;br /&gt;return;&lt;br /&gt;&lt;br /&gt;// Write header&lt;br /&gt;fprintf(pFile, "P6\n%d %d\n255\n", width, height);&lt;br /&gt;&lt;br /&gt;// Write pixel data&lt;br /&gt;for(y=0; y&lt;height; y++)  fwrite(pFrame-&gt;data[0]+y*pFrame-&gt;linesize[0], 1, width*3, pFile);&lt;br /&gt;&lt;br /&gt;// Close file&lt;br /&gt;fclose(pFile);&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;這段程式碼功能很簡單，將讀取出來的畫面(圖片)，以 fwrite() 的方式寫入到檔案中，就成為了 ppm 格式的圖片檔。&lt;br /&gt;&lt;br /&gt;為了要能使用 SaveFrame()，我們還需要改寫剛剛的程式碼。&lt;br /&gt;&lt;code&gt;.....&lt;br /&gt;if(avcodec_open(VideoCodecInfo, VideoDecoder) &lt; 0)return -1;//針對 SaveFrame() 新加程式段 開始AVFrame *VideoFrame;AVFrame *VideoFrameRGB;VideoFrame = avcodec_alloc_frame();VideoFrameRGB = avcodec_alloc_frame();if(VideoFrameRGB == NULL)return -1;uint8_t *VideoBuffer;int numBytes;numBytes = avpicture_get_size(PIX_FMT_RGB24, VideoCodecInfo-&gt;width, VideoCodecInfo-&gt;height);&lt;br /&gt;VideoBuffer = (uint8_t *)av_malloc(numBytes*sizeof(uint8_t));&lt;br /&gt;&lt;br /&gt;avpicture_fill((AVPicture *)VideoFrameRGB, VideoBuffer, PIX_FMT_RGB24, VideoCodecInfo-&gt;width, VideoCodecInfo-&gt;height);&lt;br /&gt;//新增 結束&lt;br /&gt;&lt;br /&gt;int frameFinished;&lt;br /&gt;AVPacket VideoPacket;&lt;br /&gt;i = 0;&lt;br /&gt;while(av_read_frame(VideoFormatInfo, &amp;VideoPacket) &gt;= 0)&lt;br /&gt;{&lt;br /&gt;.....&lt;br /&gt;if(frameFinished)&lt;br /&gt;{&lt;br /&gt;//針對 SaveFrame() 新加程式段 開始&lt;br /&gt;if(new_img_convert == NULL)&lt;br /&gt;{&lt;br /&gt;new_img_convert = sws_getContext(VideoCodecInfo-&gt;width, VideoCodecInfo-&gt;height, VideoCodecInfo-&gt;pix_fmt, VideoCodecInfo-&gt;width, VideoCodecInfo-&gt;height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);&lt;br /&gt;}&lt;br /&gt;if(new_img_convert == NULL)&lt;br /&gt;{&lt;br /&gt;fprintf(stderr, "Cannot initialize the conversion context!\n");&lt;br /&gt;exit(1);&lt;br /&gt;}&lt;br /&gt;sws_scale(new_img_convert, VideoFrame-&gt;data, VideoFrame-&gt;linesize, 0, VideoCodecInfo-&gt;height, VideoFrameRGB-&gt;data, VideoFrameRGB-&gt;linesize);&lt;br /&gt;&lt;br /&gt;// 將 frame 存入檔案中&lt;br /&gt;if(++i &lt;= 5){SaveFrame(VideoFrameRGB, VideoCodecInfo-&gt;width, VideoCodecInfo-&gt;height, i);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;.....&lt;/code&gt;&lt;br /&gt;最後，下面這個連結就是完整的程式碼檔案。&lt;br /&gt;&lt;A HREF="http://sites.google.com/site/ycfunet/ffmpeg_1x.c"&gt;ffmpeg_1x.c&lt;/A&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-2708460329345255767?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/2708460329345255767/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=2708460329345255767&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2708460329345255767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2708460329345255767'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2010/01/ffmpegsdl-1.html' title='FFMpeg與SDL之播放器～心得 - 1'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwwN4YEyoAU/S0VqS9dAR6I/AAAAAAAABFo/G7pX0LDPkc0/s72-c/%E8%AE%80%E6%AA%94%E6%B5%81%E7%A8%8B.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3887362475448968460</id><published>2009-09-14T00:50:00.003+08:00</published><updated>2009-09-14T01:18:32.532+08:00</updated><title type='text'>LUXGEN7 MPV試駕開始～</title><content type='html'>之前blog的&lt;a href="http://ycfunet.blogspot.com/2008/04/blog-post_09.html"&gt;台灣～裕隆～汽車設計&lt;/a&gt;提到現在裕隆正在自製汽車，最近這段時間可以注意到，開始陸續有廣告出現，mobile01也出現了LUXGEN的版面和相關活動介紹。&lt;br /&gt;&lt;br /&gt;雖然我買不起，但支持還是要的，針對這台非常現代化的自製汽車，專業介紹很多，我也就不獻醜了。&lt;br /&gt;&lt;br /&gt;網路雜誌對LUXGEN7 MPV的介紹：&lt;br /&gt;&lt;a href="http://www.auto-online.com.tw/news/48-15780"&gt;汽車線上：【國內試駕】LUXGEN7 MPV &lt;上&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.auto-online.com.tw./news/15781"&gt;汽車線上：【國內試駕】LUXGEN7 MPV &lt;下&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;網友的試駕心得：&lt;br /&gt;&lt;a href="http://www.mobile01.com/topicdetail.php?f=444&amp;t=1214330"&gt;智慧車款新體驗-LUXGEN7 MPV試駕分享&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;從這台車的介紹看起來，我個人覺得它倒車攝影機相當方便，和我之前想到的想法差不多，把攝影機放置在後照鏡，可以方便的透過LCD即可看到後方的狀況，是很方便的設計，想想看，每次開車看後照鏡時，總是會卡一條黑邊擋住視線，或者有些地方就是因為鏡子角度不好橋看不到，能夠有個這樣的攝影機可以無死角的看到後方，真的是很棒；此外，它的夜視系統真的很不錯哩，0.1流明的極低亮度下，可以看到前方100公尺，寬度40公尺範圍內的畫面，這性能相當的好。&lt;br /&gt;&lt;br /&gt;其他部份，我沒親自看過車，對汽車瞭解也不深，也就不方便評論太多(好壞不會分)，不過站在資工人的角度來看，它的電腦系統還有剛剛提到的夜視系統和攝影系統，我覺得相當的先進。&lt;br /&gt;&lt;br /&gt;對於mobile01上一些人批評它只是加了電子設備的飛羚101，或者說這台車號稱世界第一的智慧型汽車，根本沒把大廠車放眼裡...等等的說法，我只能說，這台車好歹是台灣人自己做的，未來要賣大陸賣歐洲賣美國的，這台車在研發過程中，夜視系統跟中科院技轉，酒精測試系統跟工研院，使用了醫療上的無接觸感測技術，加上它電腦系統跟HTC合作，這些裝置、設備、技術還有和汽車本身的高度整合，並不是全世界所有車廠都有的，你可以說它某部份比不過BMW、賓士、Toyota(像停車輔助系統，BMW、賓士都提供自動停車)，但這台車並不是所有技術其他車廠都有，有些是它才獨有的，有些則是賓士、BMW這種高級車款才有的，如果僅僅只是在旁邊打嘴砲，看看DM就說這個賓士有、這個BMW有，這個Toyota做更好是不公平的，因為最終能夠把這些技術統統整合放入一台汽車中，售價又能比賓士、BMW低很多符合台灣人口袋的水準，那就是一台好車，對於這樣的車子，只是在旁邊看熱鬧，那就多點讚美少點批評吧！！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3887362475448968460?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3887362475448968460/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3887362475448968460&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3887362475448968460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3887362475448968460'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/09/luxgen7-mpv.html' title='LUXGEN7 MPV試駕開始～'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7479531212715795527</id><published>2009-08-21T21:19:00.003+08:00</published><updated>2009-08-21T21:32:07.163+08:00</updated><title type='text'>軌跡記錄器有無機會變成自救器？</title><content type='html'>這次風災，開始出現一些新聞是討論空投位置錯誤，因此拿不到救援物資，也出現了女兒給國軍座標後，救出父親的新聞。&lt;br /&gt;&lt;br /&gt;在現在這個資訊發達的時代，GPS ＆ GIS已經普遍到深入一般人的生活中了，而在遇到災難時，只要能夠有GPS座標且人沒死，能夠獲救的機會就很大。&lt;br /&gt;&lt;br /&gt;目前軌跡記錄器已經十分普遍了，記錄器本身其實就是GPS，透過不斷地紀錄目前位標，最後透過USB傳輸線傳回電腦後，和GIS結合並顯示。&lt;br /&gt;既然這樣，有沒有可能把軌跡記錄器和救生器結合？當發生意外時(按下按鈕或者受到強烈碰撞)，記錄器便會自動發送訊號，告知目前的GPS座標，如此一來就能自救。&lt;br /&gt;我認為這樣的想法不錯，但最大的問題可能是在「發送訊號」這部份，是要送出無線電信號(摩斯電碼)？SMS簡訊？無線網路？3G？&lt;br /&gt;&lt;br /&gt;我個人是覺得，如果size許可，軌跡記錄器結合無線電，在遭遇災難時，固定30分鐘或1小時發送一次SOS+GPS座標的無線電信號，應該是不錯的idea。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7479531212715795527?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7479531212715795527/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7479531212715795527&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7479531212715795527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7479531212715795527'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/08/blog-post_21.html' title='軌跡記錄器有無機會變成自救器？'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-8836283063679670899</id><published>2009-08-14T23:39:00.004+08:00</published><updated>2009-08-15T00:05:02.808+08:00</updated><title type='text'>颱風災情嚴重，請大家有錢出錢有力出力</title><content type='html'>首先，我在今天下午終於辦完離校，拿到畢業證書了，雖然還要留學校幾天寫交接文件和測試，但這算是負責了～沒有直接跑掉～&lt;br /&gt;&lt;br /&gt;回主題～&lt;br /&gt;先po上我最近幾天的MSN標題：&lt;br /&gt;&lt;span style="color:red;"&gt;讓我們一起用愛與善款幫助88水災受難者！我決定捐出半個月薪水3000元給紅十字會！http://tw.charity.yahoo.com/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;因為我還算是學生身份，薪水還只有6000元，我在8/11號已經透過&lt;a href="http://tw.charity.yahoo.com/"&gt;Yahoo!奇摩 公益&lt;/a&gt;捐出半個月薪水3000元，我想這是目前我還有能力做到的事情。&lt;br /&gt;我其他實驗室的同學在口試完畢後，因為他們老闆並沒有太多要求，沒什麼事情～已經去當義工幫忙好幾天了！&lt;br /&gt;&lt;br /&gt;這次捐款也是我繼上次四川震災後的第二次捐款，金額也都是3000元。&lt;br /&gt;&lt;br /&gt;我的捐款紀錄&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;日期&lt;/td&gt;&lt;td&gt;公益團體&lt;/td&gt;&lt;td&gt;專案名稱&lt;/td&gt;&lt;td&gt;需求名稱&lt;/td&gt;&lt;td&gt;捐款金額&lt;/td&gt;&lt;td&gt;方式&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2009/08/11&lt;/td&gt;&lt;td&gt;中華民國紅十字會&lt;/td&gt;&lt;td&gt;八八水災援助計畫&lt;/td&gt;&lt;td&gt;災後重建&lt;/td&gt;&lt;td&gt;3,000&lt;/td&gt;&lt;td&gt;信用卡&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;這次的風災災情非常誇張，南台灣降下2500毫米以上的雨，這樣的量已經超過了200年防洪標準，我相信就算在美國、日本等更先進的國家，這樣的雨量造成的災害並不會比較好。&lt;br /&gt;這次風災，似乎也是第一次看到派出特戰隊員去搜救探路，我不確定之前有沒有過，但上新聞應該也是第一次，值得鼓勵，畢竟養兵千日，就是用在這時候。&lt;br /&gt;&lt;br /&gt;我相信目前的物資應該已經夠了，救災物品應該已經爆了，特別把捐款紀錄列出來不是炫耀，是建議可以把錢捐給災後重建，我認為：&lt;br /&gt;1. 目前看來物資不缺，再捐物資意義不大且浪費資源&lt;br /&gt;2. 目前快進入災後重建的步驟，災後重建就會開始需要花錢&lt;br /&gt;3. 災後重建需要的費用更高，而且耗費時間更長&lt;br /&gt;4. 這時候在無法預料未來需求時，錢比物資更有用&lt;br /&gt;5. 到災後重建的階段，大家心都冷了，捐款會變少，到時候指定用途為救災用途的捐款可能會過多卻沒用，變成浪費&lt;br /&gt;&lt;br /&gt;基於上述5點，我把錢捐來做「災後重建」，相信可以讓3000元達到最大的效力，也希望大家還要捐款、捐愛心的，有錢可以捐給重建基金，有力有時間的可以去當義工幫忙。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-8836283063679670899?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/8836283063679670899/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=8836283063679670899&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8836283063679670899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8836283063679670899'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/08/blog-post.html' title='颱風災情嚴重，請大家有錢出錢有力出力'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7116152368395380117</id><published>2009-08-03T03:28:00.006+08:00</published><updated>2011-04-03T18:04:05.990+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>PDAMessager成果展示</title><content type='html'>口試結束了～搞了四年終於快畢業了～&lt;br /&gt;口試後 新Media Center 計畫繼續。&lt;br /&gt;&lt;br /&gt;新Media Center打算用朋友建議的，主機和外接盒分離，外接盒部份就只放光碟機、讀卡機...等，主機部份就用個舊PC殼加上Core 2 Pentium CPU、入門主機板和N9400GT顯示卡。&lt;br /&gt;&lt;br /&gt;因為目前的Media Center－ASUS DigiMatrix是有個小小地LED顯示幕的，我上面透過程式擷取中央氣象局的資訊，它能顯示時間和目前的氣溫。&lt;br /&gt;為了能夠有同樣的訊息顯示，我考慮在外接盒上加入一個LCM顯示幕，不過後來受到&lt;a href="http://buy.yahoo.com.tw/gdsale/gdsale.asp?gdid=924518"&gt;銀欣 GD02-MT 家庭劇院機殼&lt;/a&gt;和&lt;a href="http://buy.yahoo.com.tw/gdsale/gdsale.asp?gdid=924559"&gt;銀欣 CW03-MT 全鋁家庭劇院機殼&lt;/a&gt;的啟發，想到可以仿照它的方式，加個LCD顯示器，而這樣的LCD顯示器不過就是個ARM開發板+LCD螢幕罷了，在網拍後發現目前舊的PDA價格非常不錯，NT 1000多就可以買到iPAQ 3xxx(3600、3800、3900都有)，而LCM顯示幕一塊128x64 藍底白字版本，網拍要NT 500，光華要NT 800，這還不算Printer Port...等零件的費用，考慮到CP值，用舊PDA當然划算，因此就有了PDAMessager的計畫。&lt;br /&gt;&lt;br /&gt;PDAMessager功能上，就是一個類似捷運的資訊看板，它的主要功能就是替代ASUS DigiMatrix上氣溫、時間的顯示，不過既然全彩又更大，當然希望加些新功能，因此開發上訴求是：&lt;br /&gt;1. 要能顯示時間、溫度&lt;br /&gt;2. 要能夠按遙控器時，顯示訊息(像「播放」)&lt;br /&gt;3. 因為PC不可能一直開著，當PC關機時，要能顯示PC為關機狀態&lt;br /&gt;&lt;br /&gt;這次這個是口試後開工的成果，到目前為止大概花了3周的時間，原則上就是SDL + Socket Server的成品。&lt;br /&gt;&lt;br /&gt;首先如下圖，這是測試的示意圖，原則上它就是USB接電腦，USB網路就會自動連線並設定好IP。&lt;br /&gt;&lt;table style="width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com.tw/lh/photo/Kn6d4_kvKKhRwjOo2WEBzQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/SnXpSrvjheI/AAAAAAAAA1c/j6heI-2Sxhk/s400/P8020002.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;寄件者 &lt;a href="http://picasaweb.google.com.tw/ycfunet/IPAQ3950?feat=embedwebsite"&gt;iPAQ3950&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;接著看到它的成果影片：&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jE7BrUomzzY&amp;hl=zh_TW&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/jE7BrUomzzY&amp;hl=zh_TW&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;畫面的內容是這樣的：&lt;br /&gt;當程式啟動後，會進入MODE 1，也就是一般的天氣、時間顯示的模式。&lt;br /&gt;&lt;br /&gt;當PC關機時，我們可以透過Socket Client的方式下指令，讓它進入MODE 0，也就是畫面切換成只有時間的模式，注意看，右下角有個關機。&lt;br /&gt;&lt;br /&gt;再來展示的是當遙控器按下時，PC同樣可以透過Socket Client下指令，將要顯示的文字、字體大小、顏色(RGB)傳過去，之後切換到MODE 2，即可顯示出文字內容，為了展示這個程式可以支援多國語言，因此顯示了「中文 にほんご EN」，表示中文、日文、英文都ok。&lt;br /&gt;&lt;br /&gt;再來看到畫面變成了一張風景照，這是考慮到傳入的訊息，如果只是文字可能太單調了，顏色又只有一種，也許未來可以在PC端即時的產生「圖片」來顯示，因此也提供了可以傳入圖片顯示的功能，這功能說不定還能當作相簿來使用。&lt;br /&gt;&lt;br /&gt;最後我們看到最後一個畫面，同樣也是風景照，但是上面印了文字「風景照片」四個字，這是考慮到遙控器動作時，可能希望顯示個背景加上訊息，因此結合了上面顯示文字和顯示圖片的功能，讓它能夠同時顯示圖片和文字。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7116152368395380117?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7116152368395380117/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7116152368395380117&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7116152368395380117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7116152368395380117'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/08/pdamessager.html' title='PDAMessager成果展示'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_bwwN4YEyoAU/SnXpSrvjheI/AAAAAAAAA1c/j6heI-2Sxhk/s72-c/P8020002.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4598771996752328227</id><published>2009-06-28T12:30:00.006+08:00</published><updated>2011-04-03T18:02:00.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>FreeBSD MPD PPPoE斷線檢查Script</title><content type='html'>家裡是用中華電信FTTB的VDSL，設定實際上就是PPPoE的設定，而我使用FreeBSD+pf+mpd當NAT。&lt;br /&gt;&lt;br /&gt;雖然中華電信大部分情況下都滿穩的，不大會斷線(可能VDSL過熱、機房改設定...等原因吧)，但有時候就是會不知道什麼原因斷線，mpd上關於重新連線的設定雖然有加，但似乎沒啥效果，斷線後就是沒IP不會重新連線。&lt;br /&gt;&lt;br /&gt;這次又發生了這樣的情況，為瞭解決這樣的問題，寫了個超簡單斷線檢查Script，在發生PPPoE斷線時自動把電腦重新開機。&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/tcsh&lt;br /&gt;&lt;br /&gt;if(== `/sbin/ifconfig | /usr/bin/sed '/--&gt;/\\!d' | /usr/bin/awk '{ print $2 }'`) then&lt;br /&gt;  /sbin/reboot&lt;br /&gt;endif&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;程式碼超級簡單，當執行它之後，它會執行&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/sbin/ifconfig | /usr/bin/sed '/--&gt;/\!d' | /usr/bin/awk '{ print $2 }'&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;也就是執行ifconfig，然後找「--&gt;」，找到後把第二個字串取出(PPPoE取得的IP)，如果找不到，顯然就是PPPoE斷線了。&lt;br /&gt;接著透過 tcsh 的 if 判斷式，判斷上述指令「找不到時」，就執行裡面的指令&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/sbin/reboot&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;完成後改好權限，把它放入/etc/crontab中&lt;br /&gt;&lt;code&gt;&lt;br /&gt;*/30    *       *       *       *       root    /usr/local/bin/disconnect-check.sh&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;如此一來，每30分鐘它都會執行一次，看看PPPoE有沒有秀斗，如果秀斗了，就把電腦重開。&lt;br /&gt;&lt;br /&gt;我有測試過，應該是能夠work的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4598771996752328227?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4598771996752328227/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4598771996752328227&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4598771996752328227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4598771996752328227'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/06/freebsd-mpd-pppoescript.html' title='FreeBSD MPD PPPoE斷線檢查Script'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4283799005228060271</id><published>2009-05-15T21:12:00.001+08:00</published><updated>2009-05-15T21:14:04.779+08:00</updated><title type='text'>FreeBSD登入後中文亂碼問題</title><content type='html'>在 FreeBSD 中，雖然已經支援 Unicode(UTF-8) 了，但如果我們只有設定在 csh.cshrc 中，我們會發現登入後的訊息依然是亂碼，原因是在於登入時候的環境設定並沒有設定成 zh_TW.UTF8。&lt;br /&gt;&lt;br /&gt;這意思是說，雖然我們在 csh.cshrc 裡面設定了環境是 zh_TW.UTF8，但在我們登入時，系統完成認證，並執行 SHELL 的時候，並沒有設定環境是 zh_TW.UTF8，因此這時候的訊息如果是 UTF-8 的編碼，會是亂碼的狀況。&lt;br /&gt;&lt;br /&gt;解決辦法很簡單，我們在 /etc/login.conf 裡面加入相關設定，修改如下：&lt;br /&gt;&lt;code&gt;default:\&lt;br /&gt;        :passwd_format=md5:\&lt;br /&gt;        :copyright=/etc/COPYRIGHT:\&lt;br /&gt;.....&lt;br /&gt;        :ignoretime@:\&lt;br /&gt;        :umask=022:&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;改成&lt;br /&gt;&lt;code&gt;default:\&lt;br /&gt;        :passwd_format=md5:\&lt;br /&gt;        :copyright=/etc/COPYRIGHT:\&lt;br /&gt;.....&lt;br /&gt;        :ignoretime@:\&lt;br /&gt;        :charset=zh_TW.UTF-8:\&lt;br /&gt;        :lang=zh_TW.UTF-8:\&lt;br /&gt;        :umask=022:&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;修改完畢後，要記得執行如下指令，將設定寫入系統中：&lt;br /&gt;&lt;code&gt;# cap_mkdb /etc/login.conf&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;即可！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4283799005228060271?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4283799005228060271/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4283799005228060271&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4283799005228060271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4283799005228060271'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/05/freebsd.html' title='FreeBSD登入後中文亂碼問題'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-8853572107763704364</id><published>2009-04-08T22:41:00.002+08:00</published><updated>2009-04-08T22:53:26.952+08:00</updated><title type='text'>永豐開戶ok嚕～～</title><content type='html'>今天天氣不錯，特別在下午跑了一趟永豐銀行。&lt;br /&gt;&lt;br /&gt;永豐銀行的無摺戶我想不用再介紹了，它的跨行免手續費很優，我就是衝著這點辦的(4/1開始，跨行提款、轉帳免手續費改成4次，不再是8次了)，在此之前，我是用富邦的V Banking，不錯是不錯，一家富邦分行離我家又超近(走路就可以到了)，但它只有2次跨行轉帳免手續費，有時候會不大夠用。&lt;br /&gt;&lt;br /&gt;也剛好有一家永豐銀行離學校不會非常遠，以距離來說，從學校出發，到永豐的距離比到富邦近。&lt;br /&gt;&lt;br /&gt;今天開戶很順利，並不像網路說的被一直刁難，倒是有說我不是在戶籍地，我就直接說我是學校的學生，然後服務小姐跟我要學生證，整個過程都很順利，幾乎就簽簽名，填填個人資料就完成了。&lt;br /&gt;接下來就是等下週去銀行拿提款卡嚕～～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-8853572107763704364?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/8853572107763704364/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=8853572107763704364&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8853572107763704364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8853572107763704364'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/04/ok.html' title='永豐開戶ok嚕～～'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3531917474858112961</id><published>2009-04-08T20:06:00.002+08:00</published><updated>2011-04-03T18:02:30.076+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Google App Engine支援Java啦~</title><content type='html'>自從去年的Google Developer Day之後，我就對Google App Engine頗有興趣，想想看，我們能夠免費的利用到Google龐大的Cluster系統，是一件多棒的事情阿！&lt;br /&gt;可惜它一直以來都只支援Python，我跟它完全不認識，因此對Google App Engine一直都只能看著流口水.....&lt;br /&gt;現在不同了~Google App Engine在昨天4/7正式發佈支援Java，未來我就可以用熟悉的Java來開發App Engine，不論是玩票性質的寫個留言板，還是其他奇怪的想法，都會是很棒的事情。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3531917474858112961?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html' title='Google App Engine支援Java啦~'/><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3531917474858112961/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3531917474858112961&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3531917474858112961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3531917474858112961'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/04/google-app-enginejava.html' title='Google App Engine支援Java啦~'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4041252812104835277</id><published>2009-03-29T01:08:00.017+08:00</published><updated>2009-04-01T02:03:22.078+08:00</updated><title type='text'>Smoothie光合舒果昔試飲心得</title><content type='html'>每次到便利商店要買喝的，看到琳瑯滿目的飲料都不知道要買什麼才好。&lt;br /&gt;看到果汁、蔬果汁，就會注意到果汁成份只有30%、50%，甚至還有10%的。&lt;br /&gt;喝紅茶、綠茶、奶茶，就會發現裡面果糖加很大，好像整瓶果汁有半瓶都是糖的感覺。&lt;br /&gt;喝烏龍茶、綠茶儘管不錯，也有無糖可以選，但永遠都只有烏龍茶和綠茶可以選。&lt;br /&gt;&lt;br /&gt;這次因為看到「Smoothie光合舒果昔」的試飲心得活動，我注意到了這個新的飲料，更因此愛上了它。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_bwwN4YEyoAU/SdJVc40jmyI/AAAAAAAAAuM/jhGzmMbH63s/s1600-h/P3280016.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_bwwN4YEyoAU/SdJVc40jmyI/AAAAAAAAAuM/jhGzmMbH63s/s320/P3280016.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5319408064655498018" /&gt;&lt;/a&gt;&lt;br /&gt;Smoothie光合舒果昔從拿在手上到喝下第一口的感覺，都讓我注意到了它的用心，它使用的不是傳統的鋁箔包，而是目前最新的「利樂鑽包裝」，這種包裝拿在手上握感很不錯，不像傳統的鋁箔包，哪個方向握感覺都怪怪的；此外這種包裝和傳統的鋁箔包相比，從表面看感覺大小差不多，但它的內容量卻足足有330ml，份量比傳統的鋁箔包多了很多。&lt;br /&gt;&lt;br /&gt;一個新的飲品單單只有包裝好是沒有用的，Smoothie光合舒果昔的口感相當的棒。&lt;br /&gt;&lt;br /&gt;我這次買的是「strawberry &amp; banana」的口味，正如名字中的Smooth，飲料倒入嘴巴、滑過喉嚨的感覺非常滑順，不會有喝冰水的刺激感；此外，非常值得一提的，在喝過後一陣子，不會殘留不自然的甜味或化學糖份的苦味、澀味。&lt;br /&gt;喝一口放入口中，香蕉的綿密感讓人印象深刻，其他的水果像是草莓、水蜜桃、蘋果的香甜滿溢口中，此刻會有一種幸福的感覺，好像煩惱都煙消雲散一般。&lt;br /&gt;&lt;br /&gt;感謝7-11能夠研發出這麼讚的飲品，讓我自烏龍茶、綠茶後，又找到一個新的選擇。&lt;br /&gt;&lt;br /&gt;下面是我和它的親密合照。&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_bwwN4YEyoAU/SdJVSEADhYI/AAAAAAAAAuE/n4irJnHoGg4/s1600-h/P3280011.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_bwwN4YEyoAU/SdJVSEADhYI/AAAAAAAAAuE/n4irJnHoGg4/s320/P3280011.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5319407878677955970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;晚餐與它的合照。&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_bwwN4YEyoAU/SdJVmICnhHI/AAAAAAAAAuU/QEqxCmmzbWc/s1600-h/P3280015.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_bwwN4YEyoAU/SdJVmICnhHI/AAAAAAAAAuU/QEqxCmmzbWc/s320/P3280015.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5319408223359829106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.7-11.com.tw/diary.asp?blogid=153"&gt;http://blog.7-11.com.tw/diary.asp?blogid=153&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4041252812104835277?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4041252812104835277/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4041252812104835277&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4041252812104835277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4041252812104835277'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/03/smoothie.html' title='Smoothie光合舒果昔試飲心得'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwwN4YEyoAU/SdJVc40jmyI/AAAAAAAAAuM/jhGzmMbH63s/s72-c/P3280016.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1084025378658418839</id><published>2009-03-27T03:17:00.005+08:00</published><updated>2011-04-03T18:04:38.073+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><category scheme='http://www.blogger.com/atom/ns#' term='電子'/><title type='text'>FON變身大絕招</title><content type='html'>剛剛因為學弟send給我關於FON賺錢相關的文章，勾起了我對FON的回憶。&lt;br /&gt;&lt;br /&gt;之前曾經google過FON可以怎麼改裝，而查到下面這個網址：&lt;br /&gt;&lt;a href="http://www.lefinnois.net/wpen/index.php/2007/05/13/i2c-bus-for-la-fonera/"&gt;http://www.lefinnois.net/wpen/index.php/2007/05/13/i2c-bus-for-la-fonera/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;當然還有其他類似的網站，原則上以「FON i2c」來搜尋就能找到了。&lt;br /&gt;&lt;br /&gt;很多人都會問，FON要怎麼改裝？能夠變成怎樣？能不能當電話？能不能跑BT？&lt;br /&gt;但大部份都還侷限在軟體相關的服務，通常把它和無線基地台或IP分享器劃上等號，然後查詢或試想能做什麼。&lt;br /&gt;&lt;br /&gt;但其實～FON它還有個很棒的地方，就是它是個超小且支援802.11g的嵌入式開發板，它上面同樣有I/O可以使用。&lt;br /&gt;這時候我們終於介紹到上述網站的內容了。&lt;br /&gt;&lt;br /&gt;在國外瘋狂的FON hacker的努力下，FON已經被完全且深入的瞭解了。&lt;br /&gt;&lt;br /&gt;FON內建的I/O並不多，經過「處理」後(以4根GPIO模擬2組I2C介面)，FON可以拉出「2組I2C」介面，這是FON僅能利用的I/O介面，但對於電子相關科系的同學們來說，這已經足以讓我們開始各種惡搞計畫。&lt;br /&gt;&lt;br /&gt;I2C是近年熱門的介面，它有幾種表示方式，IIC、I2C，其中的2其實是平方，因為打字的關係，通常連著打。&lt;br /&gt;在電子相關科系中，大部分同學可能還沒聽過它，但它被用的很多了。&lt;br /&gt;I2C其實和RS-232(UART)差不多，同樣是串列傳輸埠，但它只需要2條線就能動作了，I2C因為只有2條線，又只是high/low的表示，因此在遇到沒有內建I2C的時候，可以用2根標準IO來模擬出I2C的動作，而目前一些單晶片像是部份AVR就有內建I2C介面。&lt;br /&gt;&lt;br /&gt;既然FON有I2C可以操作，而且還有2組，我們就能夠透過I2C將FON和AVR之類的單晶片進行連接，由FON對AVR下指令，再由AVR實際動作，開發上其實和PC&lt;-&gt;RS232&lt;-&gt;8051差不多。&lt;br /&gt;&lt;br /&gt;有了類似AVR這樣的單晶片，我們就能夠用AVR開發各類電子專題，像是常見的自走車、警報器...等。&lt;br /&gt;AVR+FON，我們就能夠開發802.11g的遙控自走車。&lt;br /&gt;&lt;br /&gt;人家說沒圖沒真相，事實上國外已經有不少人以FON開發出自走車，原理不外乎就是FON+單晶片組合而成，影片如下：&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=7qqthHWTheA"&gt;http://www.youtube.com/watch?v=7qqthHWTheA&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=2hBb3F27Tsc"&gt;http://www.youtube.com/watch?v=2hBb3F27Tsc&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=A4wdrhiMO0s"&gt;http://www.youtube.com/watch?v=A4wdrhiMO0s&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;而關於FON的I2C介面如何拉出來，下面的blog有不錯的教學：&lt;br /&gt;&lt;a href="http://www.lefinnois.net/wpen/index.php/2007/05/13/i2c-bus-for-la-fonera/"&gt;i2c bus for La Fonera&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;另外，下面這個網頁雖然不是拉出I2C，拉出來的是SPI介面，但用的I/O腳相同，同樣可以參考：&lt;br /&gt;&lt;a href="http://www.larsen-b.com/Article/262.html"&gt;Fonera SD Card Hack&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1084025378658418839?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1084025378658418839/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1084025378658418839&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1084025378658418839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1084025378658418839'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/03/fon.html' title='FON變身大絕招'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4195414177069871423</id><published>2009-03-26T20:44:00.007+08:00</published><updated>2010-03-13T17:44:52.923+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>該用64bit Linux嗎？(新測試已逆轉)</title><content type='html'>剛剛朋友問我，它們公司在考慮新環境是否該改用64bit Linux，問我是否適合換成64 bit，換了有什麼好處？效能表現差異多大？&lt;br /&gt;&lt;br /&gt;我曾經在摩托學園詢問過&lt;a href="http://moto.debian.org.tw/viewtopic.php?t=12171"&gt;Intel 64 bit 在 Debian 上要怎麼設定？&lt;/a&gt;，另外也搜尋到&lt;a href="http://moto.debian.org.tw/viewtopic.php?t=12265"&gt;大家的 x86-64 CPU 都跑 amd64 還是 i386 呢?&lt;/a&gt;，看起來大部分都還是建議用32bit Linux。&lt;br /&gt;&lt;br /&gt;而一般來說，64 bit Linux的效能應該會比較好，那以效能表現來說，64 bit Linux效能能好多少？是否以效能為考量的Linux Server用64 bit會比較好呢？&lt;br /&gt;&lt;strike&gt;於是我用「32bit 64bit linux performance」為關鍵字在Google搜尋，找到下面2篇：&lt;br /&gt;&lt;a href="http://www.phoronix.com/scan.php?page=article&amp;amp;item=998&amp;amp;num=1"&gt;AMD Phenom 32-bit vs. 64-bit Performance&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.phoronix.com/scan.php?page=article&amp;amp;item=616&amp;amp;num=1"&gt;Ubuntu: 32-bit v. 64-bit Performance&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這邊要特別注意，&lt;a href="http://www.phoronix.com/scan.php?page=article&amp;amp;item=616&amp;amp;num=1"&gt;Ubuntu: 32-bit v. 64-bit Performance&lt;/a&gt;這篇是2006年的測試。&lt;br /&gt;&lt;br /&gt;從上述2個網頁中，作者針對32bit和64bit的Linux的比較，我發現到幾個事情：&lt;br /&gt;1. 在遊戲相關的效能中比較，64 bit Linux幾乎都比32 bit Linux差，而且差不少&lt;br /&gt;2. 在I/O相關的行為上，包括RAM的讀寫...等，32 bit Linux和64 bit Linux表現差不多，32 bit Linux略快&lt;br /&gt;3. 針對CPU處理頻繁的工作，包括kernel make(gcc compiler)、MP3轉檔(lame)、檔案壓縮(gzip)上，64 bit Linux的表現要比32 bit Linux好&lt;br /&gt;4. 可能是因為硬體不同，也可能是新版有針對64 bit做最佳化，2006年的那份測試和2008年的測試，gzip的表現反應差異較大，lame的表現差距幅度也有差異&lt;br /&gt;&lt;br /&gt;整體來說，我認為64 bit Linux應該只有在CPU關聯性大的工作會有較突出的效能表現，其他部份「&lt;font COLOR=RED&gt;效能不一定比較好&lt;/FONT&gt;」，此外，在摩托學園的討論中看得出來，目前64 bit Linux還是有不少應用程式不支援。&lt;br /&gt;所以&lt;font COLOR=RED&gt;我認為，目前還不是全面使用64 bit Linux的時候&lt;/FONT&gt;，除非&lt;font COLOR=BLUE&gt;對於CPU效能極度要求的情況下，那麼我個人的建議是，先瞭解該Linux Server要運作的應用程式或服務，目前對64 bit Linux的支援狀況(包括相容性、是否針對64 bit指令集EM64T最佳化...等)，全部確定後，一切ok再上路&lt;/FONT&gt;。&lt;br /&gt;&lt;font COLOR=BLUE&gt;如果是個人PC或桌面系統，那麼正如上面說的，我認為目前還不是使用64 bit Linux的時候。&lt;/FONT&gt;&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;感謝回覆留言的匿名網友，從最新的測試中可以發現，現在64 bit Linux在64 bit平台上效能已經超越32 bit，而且超越很多，上述評估已經不正確了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4195414177069871423?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4195414177069871423/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4195414177069871423&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4195414177069871423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4195414177069871423'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/03/64bit-linux.html' title='該用64bit Linux嗎？(新測試已逆轉)'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-2985130238852567283</id><published>2009-03-24T11:41:00.006+08:00</published><updated>2009-09-03T23:45:45.490+08:00</updated><title type='text'>詐騙電話</title><content type='html'>剛剛又接到詐騙電話了～&lt;br /&gt;可能因為上次耍了他，這次打來一接就掛斷～&lt;br /&gt;因此上網搜尋後，下面列出搜尋到的詐騙電話，未來會持續更新：&lt;br /&gt;0913925523&lt;br /&gt;0927344966&lt;br /&gt;0927429858&lt;br /&gt;0938822315&lt;br /&gt;0938822531&lt;br /&gt;0989041218&lt;br /&gt;0989041220&lt;br /&gt;0989041385&lt;br /&gt;0989382037&lt;br /&gt;0989385003&lt;br /&gt;0989385004&lt;br /&gt;0989385031&lt;br /&gt;0989385032&lt;br /&gt;0989385033&lt;br /&gt;0989385034&lt;span style="color: rgb(255, 0, 0);"&gt;(我剛剛接到這隻)&lt;/span&gt;&lt;br /&gt;0989385037&lt;br /&gt;0989385039&lt;br /&gt;0989385040&lt;br /&gt;(以上來源：&lt;a href="http://www.wretch.cc/blog/hsueh925/10138374"&gt;http://www.wretch.cc/blog/hsueh925/10138374&lt;/a&gt;)&lt;br /&gt;0989677972&lt;br /&gt;(以上來源：&lt;a href="http://www.wretch.cc/blog/may931107/20411495"&gt;http://www.wretch.cc/blog/may931107/20411495&lt;/a&gt;)&lt;br /&gt;0989565193&lt;br /&gt;0989506753&lt;br /&gt;(以上來源：&lt;a href="http://blog.yam.com/speed777/article/14211587"&gt;http://blog.yam.com/speed777/article/14211587&lt;/a&gt;)&lt;br /&gt;0982649297&lt;br /&gt;0982752752&lt;br /&gt;0923790350&lt;br /&gt;(以上來源：&lt;a href="http://blog.sina.com.tw/t_mango/article.php?comment_page=19&amp;amp;pbgid=1523&amp;amp;entryid=16674"&gt;http://blog.sina.com.tw/t_mango/article.php?comment_page=19&amp;amp;pbgid=1523&amp;amp;entryid=16674&lt;/a&gt;)&lt;br /&gt;0980486012&lt;br /&gt;(以上來源：&lt;a href="http://www.mobile01.com/topicdetail.php?f=37&amp;t=791387&amp;p=7"&gt;http://www.mobile01.com/topicdetail.php?f=37&amp;t=791387&amp;p=7&lt;/a&gt;)&lt;br /&gt;0980149288&lt;br /&gt;(以上來源：網友留)&lt;br /&gt;最後寫下防堵的辦法&lt;br /&gt;如果使用新款的智慧型手機(高階手機)，可以針對不同手機作業系統來找「來電黑名單(也叫來電警衛...等類似名稱)」軟體並安裝，輸入上述電話號碼後即可幫你自動過濾，未來有新的，再持續更新。&lt;br /&gt;如果像我一樣使用舊款手機，我記得Sony手機有黑名單功能，之前的T68記得有看過，而我正在用的Nokia 6230沒有黑名單功能，不過Nokia手機可以設定「號碼分組」，目前設定一個「黑名單分組」，把上述號碼全部加入，接著錄製一段無聲鈴聲並設為分組鈴聲即可。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-2985130238852567283?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/2985130238852567283/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=2985130238852567283&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2985130238852567283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2985130238852567283'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/03/blog-post.html' title='詐騙電話'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1119921590090928449</id><published>2009-03-21T10:35:00.002+08:00</published><updated>2009-03-28T18:36:49.244+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>建置1080p Media Center事項</title><content type='html'>最近家裡要換客廳電視，目前我是看好SONY 32S4000，雖然它只有32吋，又雖然它只支援到1366x768，但沒辦法～目前1080p的LCD TV都還很貴，老爸缺錢又要換電視的現在，只能選擇32吋了～&lt;br /&gt;我的想法是，反正目前都還是看有線電視，高畫質有線電視目前還不普及，就算有了也不能保證一定是1920x1080的解析度，至於數位電視，那個就更不用說了～所以我認為，3年內要讓1920x1980普及應該是有難度的，與其買台用不到這麼高解析度的，不如買台SONY 32吋高品質的LCD TV，看起來應該會爽很多。&lt;br /&gt;關於電視最後提一下，SONY 32吋系列，S和V根據Mobile01魔人的深入分析，兩者雖然差價3000元，但內容相同，此外，SONY 32吋系列再次根據Mobile01的魔人檢查，發現裡面的面板用的是奇美的，在這經濟艱困的時期，別懷疑～買SONY也是愛台灣啦～&lt;br /&gt;&lt;br /&gt;雖然電視沒辦法用到1080p，但Media Center播放的高畫質電影檔情況稍稍不同，Media Center是電腦，它在播放影片時，並不會因為輸出的解析度比較差，就因此能夠節省CPU使用率或系統資源，因此，為了能夠播放所有影片，包括高畫質影片，Media Center需要升級，來應付720p以上畫質的影片檔，所以，最近開始尋覓目前針對高畫質影片的電腦建置。&lt;br /&gt;&lt;br /&gt;我在之前的Media Center中應該提到過，我家目前的Media Center是P4-2.4G的CPU，主機板的整合式晶片組是Sis 630，因此顯示卡部份也是Sis的晶片。&lt;br /&gt;P4-2.4G看起來很新，但事實上對於720p以上的影片，它是不足的。&lt;br /&gt;目前我實際使用的經驗是，以網路上下載的720p日劇，播放時CPU使用率大約75%~100%，中間的Range是關係到影片播放當時的影片狀況，通常較細膩的片段就會lag，此時就是100%，因此網路上通常有人會說，720p影片P4-2.4G可以看，那是不精確的，測試的人八成只是把影片拿來開開看，看CPU使用率只有80%上下，就認為ok，這實際上是錯誤的結論。&lt;br /&gt;&lt;br /&gt;此外，有一類720p的影片P4-2.4G CPU也是不夠力的，那就是下載的高畫質電影常使用的H264編碼，就算這部H264編碼的片子只是720p，P4-2.4G還是不夠力的，情況會比前面的日劇更糟(720p日劇編碼通常是DivX 6)。&lt;br /&gt;&lt;br /&gt;高畫質影片往往需要更大的儲存空間，為了盡可能的減少儲存所需的空間，因此都會壓縮，而傳統的影片壓縮格式像是MPEG-1、MPEG-2、MPEG-4、DivX...等，壓縮率已經不足以應付FullHD(1920x1080)的影片，因此H264被提出並成為了FullHD影片的標準壓縮格式之一。&lt;br /&gt;H264能讓高畫質影片儲存空間更小，但所付出的代價就是運算量，因此對CPU的負擔非常大。&lt;br /&gt;很不幸的，如果要以軟體解碼的方式來處理，目前要能夠處理包括H264在內高畫質影片的CPU，至少需要中階以上的CPU才能應付，而中階以上CPU的價位並不很親民。&lt;br /&gt;&lt;br /&gt;可能是因為上述的原因，最近幾年Nvidia和ATi(AMD)的顯示卡都內建了高畫質影片的硬體解碼晶片，而且具備這樣能力的顯示卡並不貴，大概NT $2000上下就能買到了，因此最近配Media Center的電腦，幾乎都會額外添購一張能夠支援FullHD的顯示卡，而挑選這樣的顯示卡，就變成了一個新的學問了。&lt;br /&gt;&lt;br /&gt;在1080p Media Center建置的事項中，我們可以分為硬體和軟體兩類：&lt;br /&gt;&lt;br /&gt;硬體：&lt;br /&gt;要能夠處理1080p的影片，硬體上有2種解決方式，1種是買強力的CPU用軟體解碼來解決，另一種是買張新的顯示卡用硬體解碼來解決。&lt;br /&gt;&lt;br /&gt;1. 使用CPU來解決&lt;br /&gt;  用CPU來解決問題其實不錯，後續問題可以少很多，但CPU很貴，要能夠處理到1080p影片的中階CPU價格通常需要NT $4000以上，如果錢不是問題，那直接買顆高速高貴的CPU統統都能搞定。&lt;br /&gt;但這邊要注意一點，高速CPU通常很燙，高畫質影片軟體解碼時CPU使用率通常不會只有10%~20%，至少也有30%~50%，它會較耗電也會較熱，如何選擇高效能的散熱器又可以減少噪音，會是一個大問題。&lt;br /&gt;&lt;br /&gt;2. 使用顯示卡來解決&lt;br /&gt;以目前(2009-03-21)來說，目前NVIDIA主流的顯示卡大致有8000系列和9000系列兩種，網路上許多人會說這時候買8000系列的中階顯示卡最划算，因為8000系列是NVIDIA的舊晶片組，它的中階卡在之前都是NT $5000、NT $6000，現在只要NT $2000、NT $3000即可買到了，可以說是物超所值，但是，我在這邊要提出完全不同的結論。&lt;br /&gt;如果以Media Center為用途，專門用來播放高解析度影片，那麼～買9000系列低階顯示卡會比8000系列中階顯示卡更合適，2者價格差不多～9000系列低階卡稍微低一點。&lt;br /&gt;原因有2個：&lt;br /&gt;1. 溫度&lt;br /&gt;9000系列使用新的晶片，它的低階顯示卡溫度較低，8000的中階顯示卡通常都需要很大的散熱片和風扇，對Media Center來說，噪音是非常難搞的，沒有人會希望看電影的同時旁邊有個嗡嗡嗡的聲音，因此就溫度來說，9000系列更合適。&lt;br /&gt;&lt;br /&gt;2. 硬體解碼的支援&lt;br /&gt;NVIDIA在8000系列的顯示卡中就已經支援高畫質影片的硬體解碼(稱為PureVideo)了，但是8000全系列都只支援3種格式的硬體解碼，包括：&lt;br /&gt; a. MPEG-1&lt;br /&gt; b. MPEG-2&lt;br /&gt; c. H264&lt;br /&gt;&lt;br /&gt;而9000系列使用的新晶片，內建則支援4種格式的硬體解碼，包括：&lt;br /&gt; a. MPEG-1&lt;br /&gt; b. MPEG-2&lt;br /&gt; c. H264&lt;br /&gt; d. VC-1&lt;br /&gt;&lt;br /&gt;關鍵在新出現的VC-1，VC-1乍看之下很陌生，但其實被應用的地方不少，VC-1是Microsoft提出的wmv中使用的編碼。&lt;br /&gt;Microsoft在高畫質影片中一樣插了一腳，以類似H264的演算法來設計，並使用在wmv當中，Microsoft稱之為VC-1。&lt;br /&gt;如果使用NVIDIA 8000系列的顯示卡，不論是低階、中階或是高階，全部都沒有包含VC-1的硬體解碼，換句話說，未來如果看到wmv的影片，就算使用的是8000系列中最高級的顯示卡，同樣都必須用CPU來運算，CPU不夠力，就是lag。&lt;br /&gt;&lt;br /&gt;軟體：&lt;br /&gt;如果使用CPU來做軟體解碼，基本上軟體的設定沒什麼問題，按照傳統的作法把codec安裝上去即可。&lt;br /&gt;但如果是使用顯示卡來進行硬體解碼，軟體的配置就需要注意了。&lt;br /&gt;&lt;br /&gt;接下來我會以NVIDIA來說，ATi的不清楚。&lt;br /&gt;&lt;br /&gt;在Windows上，首先NVIDIA的顯示卡驅動程式是「一定要安裝」的，不安裝不可能支援硬體解碼，而且要安裝到最新版本的驅動程式。&lt;br /&gt;安裝好驅動程式是不夠的，目前在Windows上，幾乎所有的codec都是軟體解碼，支援硬體解碼的codec很少，根據這陣子在網路上看到的，大概只有CyberLink PowerDVD提供的CyberLink Decoder和CoreAVC的Decoder可以支援顯示卡的硬體加速(使用硬體解碼)。&lt;br /&gt;因此在設定上，必須要指定特定的檔案給特定的decoder才能使用到顯示卡的硬體加速。&lt;br /&gt;而這部份，需要在各個播放程式裡面單獨的定義，像是KMPlayer可以設定，Media Player Classic目前我還不清楚。&lt;br /&gt;&lt;br /&gt;在Linux上，為了讓Linux也能使用顯示卡的PureVideo(硬體解碼)功能，NVIDIA提出了VDPAU (Video Decode and Presentation API for Unix)。&lt;br /&gt;VDPAU是專門針對NVIDIA顯示卡PureVideo(硬體解碼)功能的API，透過這組API程式設計師就能夠應用NVIDIA顯示卡上硬體解碼的晶片。&lt;br /&gt;因為Linux上不同的文化和錯綜複雜的歷史因素，所以Linux上的播放軟體都直接內建decoder，所以目前要在Linux上支援VDPAU，必須針對播放軟體進行patch，讓播放軟體能夠支援VDPAU，才能夠使用硬體解碼。&lt;br /&gt;目前在Linux上，確實有提供patch檔的播放軟體只有mplayer，而vlc、xine對VDPAU的支援都還在開發中。&lt;br /&gt;比較讓人高興的是，Linux上的編解碼器軟體ffmpeg，已經有提供VDPAU的patch，所以是不是可以直接用vlc或xine呼叫ffmpeg來使用VDPAU，是之後使用時可以注意的部份。&lt;br /&gt;&lt;br /&gt;整體來說，為了要處理1080p，我認為代價是很高的，以顯示卡的硬體解碼來處理1080p目前看來是不錯的選擇，但軟體設定很麻煩，而且硬體解碼只支援到1920x1080，未來更高解析度的影片它沒辦法處理(這邊指的沒辦法處理不是速度不夠快，而是顯示卡不能動作，有更高解析度的影片，顯示卡並不能支援，到時候完全只能用CPU來處理)。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1119921590090928449?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1119921590090928449/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1119921590090928449&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1119921590090928449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1119921590090928449'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/03/1080p-media-center.html' title='建置1080p Media Center事項'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-9099719415038211061</id><published>2009-02-12T04:30:00.004+08:00</published><updated>2009-03-28T18:36:49.244+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Media Center Linux升級</title><content type='html'>(本文同步回覆在&lt;A HREF="http://moto.debian.org.tw/viewtopic.php?p=61822#61822"&gt;Linux Media Center設置心得(使用DiGiMatrix搭配Debian使用MythTV或Freevo)&lt;/A&gt;)&lt;br /&gt;在今年過年的連假，將Media Center改灌成Mythbuntu了(又一台電腦被Ubuntu佔領啦～)。&lt;br /&gt;整個安裝的確方便快速很多，以往lirc需要自己重新編譯相對應的kernel module或kernel，現在已經完全不需要了，在安裝時直接可以用選單選擇，選好、安裝完畢後即可使用。&lt;br /&gt;&lt;br /&gt;由於Ubuntu和Debian系出同源，所有原先Debian上的設定全部都可沿用，整個移機重灌的過程中，雖然沒有完全無痛～但頂多也只是小痛～非常推薦Mythbuntu。&lt;br /&gt;&lt;br /&gt;如果是完全沒裝過Media Center，希望以Linux作為Media Center的話，強烈推薦Mythbuntu，幾乎所有以前需要辛苦的設定，Mythbuntu都只需要簡單的選單選項即可完成，不需要花費功夫處理。&lt;br /&gt;&lt;br /&gt;關於diskless的部份，目前已經處理完畢了，這部份是整個移機過程中最痛的部份，因為Mythbuntu預設的kernel initramfs是硬碟開機，因此無法直接diskless安裝，我是先用硬碟裝好，然後複製到NFS Server上的。&lt;br /&gt;&lt;br /&gt;而設定上，大部分參照&lt;A HREF="http://www.howtoforge.com/pxe_booting_debian"&gt;Booting On PXE And On A Customized Debian System&lt;/A&gt;的設定即可，&lt;br /&gt;比較不一樣需要處理的，是要修改&lt;br /&gt;&lt;code&gt;/etc/initramfs-tools/initramfs.conf&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;確定以下幾個參數：&lt;br /&gt;&lt;code&gt;BOOT=nfs&lt;br /&gt;DEVICE=eth0&lt;br /&gt;MODULES=most&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;首先最關鍵的是 BOOT=nfs，不設這項，則開機後會出現「/dev/nfs does not exist」，反過來如果設了，則會無法硬碟開機。&lt;br /&gt;&lt;br /&gt;接著是 DEVICE=eth0，這裡要設定相對應的網路裝置，沒設對則開機後會造成在網路卡的位置死掉！&lt;br /&gt;&lt;br /&gt;再來是 MODULES=most，這項可以改成 netboot，改成 most 則所有 module 都會載入。&lt;br /&gt;&lt;br /&gt;存檔後執行&lt;br /&gt;&lt;code&gt;update-initramfs -u&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;完成後即可用diskless的系統開機了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-9099719415038211061?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/9099719415038211061/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=9099719415038211061&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/9099719415038211061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/9099719415038211061'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/02/media-center-linux.html' title='Media Center Linux升級'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3124690703452184405</id><published>2009-02-03T10:03:00.003+08:00</published><updated>2009-02-03T10:09:22.987+08:00</updated><title type='text'>關於「有趣的預言＆先知」</title><content type='html'>因應原網站作者早先留言，該文已於1月初即已收編，&lt;br /&gt;未來該文將不再登載，&lt;a href="http://ycfunet.blogspot.com/2008/01/blog-post.html"&gt;原文連結&lt;/a&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3124690703452184405?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3124690703452184405/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3124690703452184405&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3124690703452184405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3124690703452184405'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/02/blog-post.html' title='關於「有趣的預言＆先知」'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6675445805703218715</id><published>2009-02-02T04:48:00.006+08:00</published><updated>2009-03-28T18:36:49.244+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>自力開發的Java FTP Server</title><content type='html'>去年年底忙完國科會計劃書之後，就開始發瘋的用Java寫FTP Server，過年期間同樣沒有懈怠，持續發瘋中～&lt;br /&gt;&lt;br /&gt;既然是發瘋的成果，自然成果驚人。&lt;br /&gt;&lt;br /&gt;我寫的FTP Server取名叫做「MyFTPBox」。&lt;br /&gt;&lt;br /&gt;和其他自己寫得程式一樣，在開發時有注意使用的套件授權。&lt;br /&gt;目前MyFTPBox使用的第三方套件只有&lt;A HREF="http://www.zentus.com/sqlitejdbc/"&gt;SQLiteJDBC&lt;/a&gt;，這個SQLite的Java API授權是BSD，非常自由。&lt;br /&gt;因此目前來說，產權沒有任何問題。&lt;br /&gt;&lt;br /&gt;MyFTPBox目前已經支援下面功能：&lt;br /&gt;1. 完全支援 UTF8，啟動時偵測系統的檔案編碼，並以此作為預設編碼，FTP Client登入後，可以使用OPTS UTF8 ON支援UTF8(Linux下由於預設都已經是UTF8編碼，因此FTP Server預設編碼直接是UTF8)&lt;br /&gt;&lt;br /&gt;2. 經過簡單的測試，看起來能夠正常支援&lt;A HREF="http://www.raidenftpd.com/tw/modez.html"&gt;MODE Z&lt;/A&gt;，&lt;A HREF="http://www.raidenftpd.com/tw/modez.html"&gt;MODE Z&lt;/A&gt;是一種壓縮技術，使用zlib作為壓縮的演算法，它會在資料傳輸過程中自動壓縮，不需要額外設定，但FTP Client同樣需要支援&lt;A HREF="http://www.raidenftpd.com/tw/modez.html"&gt;MODE Z&lt;/A&gt;，目前用CuteFTP Pro、SmartFTP測試，在使用&lt;A HREF="http://www.raidenftpd.com/tw/modez.html"&gt;MODE Z&lt;/A&gt;後，&lt;A HREF="http://www.cuteftp.com/"&gt;CuteFTP Pro&lt;/A&gt;、&lt;A HREF="http://www.smartftp.com/"&gt;SmartFTP&lt;/A&gt;仍舊能夠正常的顯示出檔案列表，證明應該是work的&lt;br /&gt;&lt;br /&gt;3. 流量控制，每個使用者能夠設定流量限制，但目前只能對每個連線限制流量，例如我限制10k，當同時下載2個檔案時，2個檔案都是10k&lt;br /&gt;&lt;br /&gt;4. 極端混亂且可能有問題的虛擬檔案系統，我仿照ZFTP Server的模式設定，可以新增虛擬目錄，也可以把實體目錄對應到虛擬目錄下，但目前還有些bug(混亂原因在於，ZFTP那應該是用linklist寫的，我是用SQL寫的，SQL上資料都是平面的，而且因為欄位的關係，目前我處理目錄的方式很笨，寫得也亂)&lt;br /&gt;&lt;br /&gt;5. 帳號管理、虛擬檔案系統均使用SQLite管理，因為都使用SQL code，因此未來很容易可以移植到mysql、M$ SQL Server，甚至M$ Access中，至於Server的設定，由於要可以指定使用的SQL Server和帳號密碼等，目前傾向另外用xml來儲存，用xml儲存的設定應該會包括Server Port、Admin Port、SQL、系統編碼&lt;br /&gt;&lt;br /&gt;6. 簡易的Telnet管理介面，目前有實做了管理用Telnet Admin Server，目前可以用telnet的方式連入進行帳號、虛擬檔案系統的管理，未來畫出GUI的管理程式後，就可以有類似ZFTP Administraotr Interface那樣的管理程式來操作了。&lt;br /&gt;&lt;br /&gt;7. 其他比較值得提到的，大概就是PASV/PORT mode，正式一點的FTP Server原則上都支援了，只有那種超小型的FTP Server半成品才不支援PASV mode，我的Java FTP Server能夠正常的支援PASV/PORT mode；此外，大概就是檔案列表吧～目前我的Java FTP Server支援UNIX Style檔案列表和MLSD/MLST Style檔案列表，這也是比較正式的FTP Server原則上都支援的(UNIX上的FTP Server有可能只支援UNIX Style)&lt;br /&gt;&lt;br /&gt;整體來說，基於老王賣瓜的心裡，我認為這FTP Server還不錯，不過還需要花很多時間繼續加功能和修程式，但以功能性來說，目前Windows上主流FTP Server有的幾個功能都有支援了，不過都不夠完善就是了。&lt;br /&gt;那最容易被問到的就是，既然都有了，那寫它幹嘛？它作用是？&lt;br /&gt;首先，它就基本的FTP Server來說算是完成度很高的，它再加入SSH Tunnel的功能後，可以寫成類似Tunnelier這樣的SSH Tunnel程式，並且和Tunnelier一樣可以作到FTP-SFTP-Bridge的功能。&lt;br /&gt;而目前Java的SSH Tunnel API很多，而且幾乎都是BSD、LGPL的，要開發Java版的SSH Tunnel並不難。&lt;br /&gt;除了可以延伸寫成支援FTP-SFTP-Bridge的SSH Tunnel外，它算是我第一個檔案傳輸伺服器的程式，基本樣式完成了，未來要改成影像串流或其他檔案傳輸用的Custom Server都可以節省伺服器開發的功夫。&lt;br /&gt;而這套Java FTP Server本身可能的賣點是，雖然在Windows上FTP Server選擇很多，像ZFTP Server、FileZilla Server、G6都是常見的選擇，我也是以它們為範本開發的，但首先，ZFTP Server在3.0之前都還不支援UTF8，G6要錢，FileZilla Server的管理介面非常難用。&lt;br /&gt;其次，我們把場景放到Linux上，Linux上的FTP Server幾乎都強調高效能、高穩定性，但是很少可以像ZFTP Server、FileZilla Server這樣有虛擬檔案系統可以讓我們自己拉目錄，使用者管理又幾乎都跟系統帳戶綁在一起，不用系統帳戶，就要透過複雜的步驟讓FTP Server支援mysql。&lt;br /&gt;對大部分人來說，僅僅希望在Linux上安裝個FTP站台，專門放mp3、動畫這樣簡單的需求，卻要搞得好像要開ftp.ntu.edu.tw這樣的大型站台。&lt;br /&gt;然而對於一般性的需求，像是頻寬限制，帳戶登入時間管制之類的，卻要辛苦的k 使用手冊，找設定找半天才能作到，如果以這樣的角度來看，我認為我這套Java FTP Server是有賣點在的，因為它跨平台，又以Windows FTP Server為範本，用在Linux上反而能凸顯出它的特殊性，像&lt;A HREF="http://www.raidenftpd.com/tw/modez.html"&gt;MODE Z&lt;/A&gt;，Linux上有多少FTP Server支援它？應該很少吧～&lt;br /&gt;&lt;br /&gt;PS：&lt;br /&gt;最後附註一下，一直以來Java都號稱對網路程式開發可以很容易的設計，我一直都對此疑惑，但這次寫FTP Server，我發現Java在開發FTP Server時，其實滿容易的，Java本身幾乎支援FTP Server所需的所有功能，像MODE Z的核心zlib，Java直接就有InputStream、OutputStream可以套用，套上去就有了，像UTF8也是，直接套個InputStreamReader加個編碼就搞定了，同樣是開發FTP Server，我相信用gcc和glibc應該會複雜很多，光要把zlib library套進socket stream應該就有點麻煩了，再處理UTF8和non-UTF8應該也不是輕鬆的事。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6675445805703218715?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6675445805703218715/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6675445805703218715&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6675445805703218715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6675445805703218715'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/02/java-ftp-server.html' title='自力開發的Java FTP Server'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7024153373403028021</id><published>2009-02-02T04:00:00.004+08:00</published><updated>2009-12-16T02:12:37.880+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Office 2007專用的2003選單外掛</title><content type='html'>最近把家裡自己的桌機改安裝成WinXP Pro，也許會納悶～是「XP Pro」嗎？&lt;br /&gt;是的～我自己的桌機之前一直都是Win2000 &amp;amp; Ubuntu雙系統。&lt;br /&gt;前陣子Ubuntu用比較多，這陣子Windows用比較多，兩個系統適應的都不錯。&lt;br /&gt;&lt;br /&gt;由於Win2000沒有終端機服務，MSN又只能用可憐的7.5，加上這台電腦CPU是P4-2.4HT，卻因為Win2000對HT支援並不好，始終有個疙瘩在，因此這次過年就把他更新成XP Pro了。&lt;br /&gt;&lt;br /&gt;因為更新成XP Pro，C碟有了很大很大的空間，所以也一併把Office從2003升級成2007。&lt;br /&gt;&lt;br /&gt;眾所皆知的，M$不知道發甚麼神經病，把Office2007的選單介面換了，更神經的是，它竟然不提供2003選單樣式，強迫可憐的芸芸眾生只能一邊幹一邊接受(XP至少都還提供所謂的「Windows Classic Theme」)。&lt;br /&gt;&lt;br /&gt;不過沒關係，我們廣大的網際網路，萬能的Google給了我們選擇其他選擇。&lt;br /&gt;&lt;br /&gt;用Google以「office 2007 classic」進行搜尋會發現，大概有2~3套的國外套裝軟體提供了這樣的功能，只要安裝它並輸入序號，就能夠變身成原來2003的樣式。&lt;br /&gt;如果有人跟我一樣對正版軟體有奇怪的執著，沒關係，這裡提供了一個免費的選擇，和其他自由軟體、免費軟體一樣，要好好感謝開發的作者。&lt;br /&gt;&lt;a href="http://shahshaileshs.web.officelive.com/MenuAddins.aspx"&gt;Excel Add-ins&lt;/a&gt;這個網站作者特別針對Office2007的Word、Excel、PowerPoint、Access開發了增益集外掛，只需要下載並直接點選執行它，它就會彈出視窗問你，是否要啟用這個「看起來很危險的增益集」，二話不說，啟用它～&lt;br /&gt;重新開啟程式後就會看到選單多了一項叫做「增益集」，點它之後就會看到下面出現一排熟悉的選單。&lt;br /&gt;&lt;br /&gt;我個人覺得相當不錯，讓我很方便的就能夠適應Office2007的操作。&lt;br /&gt;&lt;br /&gt;至於XP Pro和Office2007怎麼來的？&lt;br /&gt;相信許多人都知道去年M$有提供Office2007的學生方案(話說～這應該是因為Office2007銷售太差，普及率太低的原因才提出的吧...)，身為對正版軟體、免費軟體有奇怪執著的我，就以自己和老妹的名義各買一套。&lt;br /&gt;至於XP Pro，最近因為M$好像要淘汰XP了，XP Pro教育版價格跟之前隨機版、升級版一樣，而隨機版、升級版都不見了，擔心未來買不到XP，因此砸錢買了一套。&lt;br /&gt;&lt;br /&gt;至於身為Linux/FreeBSD愛好者兼免費軟體愛好者的我為啥要花錢贊助M$？&lt;br /&gt;相信我，目前的XP(Win2000)、M$ Office還是有非常大的必要性，OpenOffice我不是沒在用，但因為一堆原因，它跟M$ Office就是無法完全相容，可我老闆、國科會範本、學校論文範例，都是用Word格式，在這個看老闆看學校吃飯的環境下，我也只能低頭了。&lt;br /&gt;至於Linux上的wine？相信我，它對M$ Office的支援只是「不錯」，並不是「非常好」，原因包括：&lt;br /&gt;1. 像我有在使用Zotero管理參考文獻，WINE的M$ Office沒辦法支援&lt;br /&gt;2. WINE的M$ Office甚至不能按「ctrl + s」進行存檔動作&lt;br /&gt;3. 因為WINE的中文需要額外設定，也因為額外設定的關係，M$ Office顯示的字型會和一般Windows上的Office不大一樣(設定會有些差別)，讓文件看起來就不同會不一致&lt;br /&gt;&lt;br /&gt;PS：&lt;br /&gt;我會因為遠端桌面而改用XP也許看來有點可笑，不過我有原因。&lt;br /&gt;目前在Windows上，效能最好、支援性最好、各平台都有Client程式的，只有俗稱遠端桌面的終端機服務&lt;br /&gt;有跨平台能力的，多半直接想到VNC，我之前win2000時的確都是用VNC，不過我相信任何用過遠端桌面的人，只要用一次VNC，就會直接移除了。&lt;br /&gt;VNC底層不是用DirectX寫的，因此無法像終端機服務可以遠端直接看影片，VNC也不支援音效功能，沒辦法遠端聽音樂，在棒球8搶3轉播時，我不少同學用遠端桌面直接連到宿舍，用電視棒看轉播，邊看還會邊說，影像有點lag，但這在VNC上，是完全辦不到的。&lt;br /&gt;VNC檔案傳輸能力很弱，到現在～只有Windows上的VNC可以傳檔案，而且是一個檔案一個檔案傳，還要用類似FTP那種選單來傳輸，遠端桌面整合網路芳鄰，非常方便，離譜的是，Linux上的遠端桌面client(rdesktop)也支援這能力，可以把Linux的「/」對應到遠端桌面上。&lt;br /&gt;此外，不知道是不是VNC protocol不好，幾乎所有用VNC核心的遠端遙控，感覺效率都不好，反應鈍鈍的，吃頻寬又兇，而且解析度差、畫面常常不會更新&lt;br /&gt;至於其他的遠端遙控程式，多半都還是小眾市場，大多只提供Windows的client，Linux上無法操控。&lt;br /&gt;而以遠端遙控軟體來比較，不論Windows、Linux，M$的終端機服務整體來說，相當的優秀，它吃使用的頻寬小，因為使用圖示快取，畫面品質很不錯，加上前面提到的它直接用DirectX，影像、聲音都能通，而且品質非常好，它甚至能把遠端的Printer Port、Serial Port對應過來，要達成這些條件的遠端遙控軟體真的不多，在Linux上，我認為只有NX最接近，但NX目前還無法處理影像，聲音部份會lag大約3秒。&lt;br /&gt;&lt;br /&gt;補圖：&lt;br /&gt;Word 2007&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bwwN4YEyoAU/Sc3-ZN3l3tI/AAAAAAAAAro/B0DeI0n1E9c/s1600-h/office2007_menu.gif"&gt;&lt;img style="cursor: pointer; width: 320px; height: 86px;" src="http://1.bp.blogspot.com/_bwwN4YEyoAU/Sc3-ZN3l3tI/AAAAAAAAAro/B0DeI0n1E9c/s320/office2007_menu.gif" alt="" id="BLOGGER_PHOTO_ID_5318186444167438034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Excel 2007&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bwwN4YEyoAU/Sc3-zaYbTEI/AAAAAAAAArw/dfQuFYhG9AY/s1600-h/office2007_menu.gif"&gt;&lt;img style="cursor: pointer; width: 320px; height: 86px;" src="http://4.bp.blogspot.com/_bwwN4YEyoAU/Sc3-zaYbTEI/AAAAAAAAArw/dfQuFYhG9AY/s320/office2007_menu.gif" alt="" id="BLOGGER_PHOTO_ID_5318186894202981442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PowerPoint 2007&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bwwN4YEyoAU/Sc3_SXwP42I/AAAAAAAAAr4/YmfMNlP2sTo/s1600-h/office2007_menu.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 86px;" src="http://4.bp.blogspot.com/_bwwN4YEyoAU/Sc3_SXwP42I/AAAAAAAAAr4/YmfMNlP2sTo/s320/office2007_menu.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5318187426073535330" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7024153373403028021?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7024153373403028021/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7024153373403028021&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7024153373403028021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7024153373403028021'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/02/office-20072003.html' title='Office 2007專用的2003選單外掛'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bwwN4YEyoAU/Sc3-ZN3l3tI/AAAAAAAAAro/B0DeI0n1E9c/s72-c/office2007_menu.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1074406505267163935</id><published>2009-01-07T11:08:00.002+08:00</published><updated>2009-01-07T11:12:23.041+08:00</updated><title type='text'>台南永康正金宮新回信</title><content type='html'>感謝「台南永康正金宮」的意見與指教。&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;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1074406505267163935?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1074406505267163935/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1074406505267163935&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1074406505267163935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1074406505267163935'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/01/blog-post_07.html' title='台南永康正金宮新回信'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3481068012374659792</id><published>2009-01-02T01:22:00.002+08:00</published><updated>2009-01-02T01:37:51.047+08:00</updated><title type='text'>馬英九說到「正體中文」</title><content type='html'>今天元旦各新聞台都在介紹馬英九帶頭大家寫書法，我只有在國小時寫過，很久很久沒碰過了～不過這不是重點～&lt;br /&gt;&lt;br /&gt;他提到了「正體中文」是很重要的，應該要ooxx.....&lt;br /&gt;&lt;br /&gt;這是我第一次聽到政治人物說出「正體中文」四個字阿！&lt;br /&gt;&lt;br /&gt;看到新聞轉述「正體中文」，有種「繁體中文」終於被正名的感覺阿！！&lt;br /&gt;&lt;br /&gt;我認為，與其說什麼獨立、台灣國，去中國化～&lt;br /&gt;還不如正視「正體字」、「Big5」...等，像現在，一群人一直說台灣國、說獨立，說不要被大陸如何如何....可是看看我們的電腦，Big5到現在還是沒有簡體、日文、韓文，人家日文系統、韓文系統可都有「正體字」的，現在主流的簡體編碼GBK也都是「正體」、簡體、日文、韓文都有。&lt;br /&gt;試問以後中文電腦要使用編碼系統，會偏好GBK還是Big5？&lt;br /&gt;那一直說的獨立在哪？嘴巴嗎？&lt;br /&gt;要喊獨立好歹先把正體編碼弄好吧～現在全世界用正體的地區(國家)不多了，看來看去編碼只有Big5是針對正體中文，Big5都弄不好，光電腦系統都會被統一，其他還有什麼好說的？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3481068012374659792?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3481068012374659792/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3481068012374659792&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3481068012374659792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3481068012374659792'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2009/01/blog-post.html' title='馬英九說到「正體中文」'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4824057872367829019</id><published>2008-12-30T19:12:00.003+08:00</published><updated>2008-12-30T20:14:57.056+08:00</updated><title type='text'>台南永康正金宮回信</title><content type='html'>感謝「台南永康正金宮」的意見與指教。&lt;br /&gt;&lt;br /&gt;回信內容如下：&lt;br /&gt;=====================================&lt;br /&gt;阿呆站長您好:&lt;br /&gt;&lt;br /&gt;由於您一篇文章涉及到對本宮的傷害&lt;br /&gt;http://ycfunet.blogspot.com/2008/01/blog-post.html&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;再經過您所屬的Blogger網站調閱您的個人ip位址&lt;br /&gt;這樣的稽查費用往返就要台幣6千多元&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;我的blog如此之小都還可以被您找到，真的讓我萬分榮幸，讓我知道原來我的東西還有人在看，而且是本人，讓我看了真的非常感動。&lt;br /&gt;&lt;br /&gt;如果您對本站blog的文章有疑慮，通知一聲我刪掉就算了，反正也不是第一次，之前有人反應我對SSD的描述有問題，我看了自知了解不足直接就刪了。&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;此外，我提的內容，都是您網站上自己打的，沒有多加字、也沒有少加字，其他僅是個人意見，硬要說的話，頂多侵犯個人著作，我道歉～主動拿掉～這我前面提到了，我是很樂意的！(您不也把奇摩新聞網整個網頁抓圖貼在你網站，人家最下面還註明，版權所有屬Yahoo!奇摩哩！)&lt;br /&gt;&lt;br /&gt;最後的最後，我是個窮學生，你知道窮學生的特色是啥嗎？&lt;br /&gt;1. 沒錢～我一天花費不過150，吃住在學校，死宅男一個～跟我要錢，我還希望你施捨我一點香油錢讓我生活勒！神？肚子都快餓死了～神也要救濟我阿！&lt;br /&gt;2. 時間多～同樣的，身為死宅男的我，平常沒啥娛樂，不是上網看新聞、上ptt看八卦就是看日劇或台劇，你喜歡一直花錢請律師，就為了跟我耗時間，我實在也不能說什麼～&lt;br /&gt;3. 到處找人求救～居士您是著名宮廟的廟主，我相信您是公平正義的化生，代表的是鏟奸除惡的神明，並不會有任何詐騙、逃漏稅、詐財、勒索的行為。如果真的有，那麼可能就是所謂的神棍，我相信刑事警察會更喜歡這樣的人&lt;br /&gt;&lt;br /&gt;目前我的決定是，正如前面提到的，還有您以匿名方式在文章中回應的，我基於尊重您網站上的著作，畢竟那都是你寫的，原作者有意見，要求一個月內刪除，我會將該篇文章刪除，但是會照您的要求，在一個月刪掉。&lt;br /&gt;不過我會把這篇永久保留，畢竟這也算是特殊的回憶阿～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4824057872367829019?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4824057872367829019/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4824057872367829019&amp;isPopup=true' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4824057872367829019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4824057872367829019'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/12/blog-post.html' title='台南永康正金宮回信'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-5104781132761247440</id><published>2008-12-14T13:00:00.002+08:00</published><updated>2009-03-28T18:36:49.244+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>免費Floppy Image軟體</title><content type='html'>現在時間都快2009年了，從我很小時候玩286時候，就已經有軟碟機(1.2MB大片、1.44MB小片)了，甚至更小時候玩Apple II時，大片的磁碟片、磁碟機(當時還不是1.2MB)就已經在用了，然而到了現在，有時候還是需要軟碟片、軟碟映像檔來開機。&lt;br /&gt;&lt;br /&gt;在Floppy Image的工具中，名氣最響亮的就是WinImage了，可惜的是，它要花錢使用，當然，如果是偶爾需要，下載試用版用下還是很方便的。&lt;br /&gt;那除了WinImage外，有沒有免費的方案呢？&lt;br /&gt;我找了許久之後，找到了「&lt;a href="http://chitchat.at.infoseek.co.jp/vmware/vfd.html"&gt;Virtual Floppy Drive&lt;/a&gt;」，我認為這應該是免費中相當不錯的軟體了。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chitchat.at.infoseek.co.jp/vmware/vfd.html"&gt;Virtual Floppy Drive&lt;/a&gt;的核心使用的是VMWare的API，透過它，我們就能夠建立、讀取、寫入映像檔，而它就是一個呼叫VMWare API的介面程式。&lt;br /&gt;&lt;br /&gt;它的使用非常簡單，下載後，全部解壓縮到C:\VFD，然後點選vfdwin.exe並執行。&lt;br /&gt;透過vfdwin.exe，我們可以建立出虛擬的A:、B:，然後透過介面將image掛載到A:、B:上，此外，它也提供格式化功能，可以方便快速的將image格式化。&lt;br /&gt;除了一般的功能之外，它也提供了2.88MB的軟碟Image格式，讓我們建立出這種較特殊的Floppy Image。&lt;br /&gt;這個程式可以說簡單、方便、好用。&lt;br /&gt;&lt;br /&gt;除了&lt;a href="http://chitchat.at.infoseek.co.jp/vmware/vfd.html"&gt;Virtual Floppy Drive&lt;/a&gt;之外，另一個可以搭配的好用工具是&lt;a href="http://www.towodo.com/products/floppyimage/"&gt;Floppy Image&lt;/a&gt;。&lt;br /&gt;&lt;a href="http://www.towodo.com/products/floppyimage/"&gt;Floppy Image&lt;/a&gt;可以讓我們方便的把上面建立好的image檔案，透過它輕鬆轉換成.exe執行檔，以後要使用，只要直接執行該檔案，就會提示插入磁碟，並且將Image寫入軟碟片，如此一來，就不用擔心別的電腦上沒有Floppy Image的軟體了。&lt;br /&gt;&lt;a href="http://www.towodo.com/products/floppyimage/"&gt;Floppy Image&lt;/a&gt;現在是商業軟體，不過既然這邊提出來，自然有好康。&lt;br /&gt;Floppy Image在1.5.2版之前都是freeware，可以免費使用，不過公司網站已經不提供下載了，雖然如此，我們還是可以利用偉大的google大神幫我們找到它。&lt;br /&gt;&lt;a href="http://www.321download.com/LastFreeware/"&gt;Last Freeware Version&lt;/A&gt;提供了許多免費版變商業版的最後一版免費軟體，其中&lt;a href="http://www.321download.com/LastFreeware/page3.html"&gt;這裡&lt;/a&gt;就有提供&lt;a href="http://www.321download.com/LastFreeware/files/floppyimage152.zip"&gt;Floppy Image 1.5.2的下載&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;如果有在使用VMWare、VirtualBox...等VM軟體，或者系統要重灌，又或者要自製開機光碟、開機軟碟、開機USB，需要建立開機片或操作Floppy Image，上述2個軟體絕對有幫助。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-5104781132761247440?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/5104781132761247440/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=5104781132761247440&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5104781132761247440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5104781132761247440'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/12/floppy-image.html' title='免費Floppy Image軟體'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-2523191354644803062</id><published>2008-11-30T14:37:00.005+08:00</published><updated>2008-11-30T20:31:15.864+08:00</updated><title type='text'>EeePC新拍檔(EeePC專用轉換器)</title><content type='html'>我的EeePC就不在多做解釋了，之前提過了。&lt;br /&gt;&lt;br /&gt;有EeePC的人不知道有沒有個困擾，就是它的變壓器沒辦法和一般NB共用，因此EeePC通常都會另外帶一顆小小看起來很可愛的變壓器，不可否認，這顆變壓器真的很小、很可愛，攜帶起來比一般NB變壓器要輕便很多，但是還是很不方便。&lt;br /&gt;&lt;br /&gt;EeePC儘管優點很多，但是他的變壓器，和一般NB是沒辦法相容的，主要原因就是變壓器的供電電壓，一般NB的電壓是19V，而EeePC的則是12V，既然電壓不同，我們能不能做個小變壓器，讓他的電壓相同呢？&lt;br /&gt;&lt;br /&gt;還記得之前做過電池轉5V的ARM開發板用變壓器電路，也做過19V轉5V的ARM開發板用變壓器，它的元件並不多，同樣的元件，要把19V轉12V並不難，因此我在EeePC買來沒多久就想做一個，但可惜的是，一直沒時間弄它。&lt;br /&gt;上週週末和這周週末，我特別把這個電路弄出來了。&lt;br /&gt;&lt;br /&gt;下面我們就來看圖說故事，看看成品吧！&lt;br /&gt;首先看看第一張，這張是成品，也是經過遮掩後看起來最正常的一張：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/habYezIBVQL4FuLdss69Ag"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/STJFIbVkpaI/AAAAAAAAAdo/y_5R-hF6jTE/s400/PB300022.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;接著我們慢慢越來越深入的看它，首先看它輸入的部份，它輸入部份就是一個一般的DC插頭，基本上我用的是2.5mm的插頭，一般NB變壓器通常都能插入，像台製的變壓器還能更換，那更是沒問題，至於塑膠殼的孔，我是用美工刀割的，所以並不好看：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/0n7gE4Kpg_e4c0B0_naAiw"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/STJFJsL0n9I/AAAAAAAAAdw/SSbpPMNVGU8/s400/PB300025.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;看完了輸入端，我們看看輸出端，輸出端則是用電鑽磨出來的小開口，讓電線能夠有個出口，同樣並不很好看，但相信已經比輸入端要好的多了：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/oAQbp11afwybq3FYC7c9wg"&gt;&lt;img src="http://lh6.ggpht.com/_bwwN4YEyoAU/STJHWj11L7I/AAAAAAAAAfM/Sva1RTs1uk8/s400/PB300028.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;接著我們把它打開，看看它的廬山真面目，首先看看電路板的正面，看得出來元件並不多，而且我並沒有做任何處理，我使用的是LM2576-ADJ，這顆變壓IC是目前最容易取得的Switching Power IC：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ipLckul1zNxOtgssPsbw6A"&gt;&lt;img src="http://lh6.ggpht.com/_bwwN4YEyoAU/STJFKwrstpI/AAAAAAAAAeA/Ke3xl_9lrUU/s400/PB300029.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;再來我們看看電路板的背面，我必須說，我的銲接技術從高職到現在，始終沒有太大的進步：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/MOYbCZyoP7lDh_dId2QXHw"&gt;&lt;img src="http://lh4.ggpht.com/_bwwN4YEyoAU/STJFLdH4uwI/AAAAAAAAAeI/np72vNC0TYM/s400/PB300030.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;接著我們看看塑膠殼的底板，這裡有點玄機，因為我的銲接中，一些地方是直接用銲錫拉的，因此比較厚，溫度也高，造成了塑膠殼底板其實會稍微燒融掉，這其實滿危險的，畢竟誰知道啥時會走火呢？&lt;br /&gt;因此我在底板貼上一層鐵佛龍膠帶，沒錯～就是被大家用來貼滑鼠的鐵佛龍膠帶，我最近剛買了一卷使用... :p&lt;br /&gt;鐵佛龍膠帶除了很滑(摩擦係數很低)外，他其實也可以耐高溫(可耐200度C以下)、防水、絕緣(導電係數低)，因此它其實很好用，可以用在陽台、電路板、室外...等各式場合，如果你四周圍有人買了鐵佛龍膠帶，卻只是用來貼滑鼠，強烈建議跟他要一卷放著，很快就會注意到他好用的地方了。&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/GxSkfLjH5s2jBias2Fx-fg"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/STJG0jJoV5I/AAAAAAAAAeU/Kle8RlZIorA/s400/PB300031.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;接著，來個醜陋大集合，電路板背面和塑膠殼打洞處的合照：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/df0yBgtgFtnTmNYSCpEViQ"&gt;&lt;img src="http://lh3.ggpht.com/_bwwN4YEyoAU/STJG1WxLPRI/AAAAAAAAAec/SN1DteXXzm4/s400/PB300033.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;最後，讓我們看看實際運作時的樣子，這張照片我們實際的把NB用的變壓器接上它，然後將它接到EeePC，EeePC就會顯示目前正在充電中，除了系統的顯示外，也可以注意到電池的燈號，它顯示橘燈，並且持續亮著，表示電池充電中：&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Rje8z_RtCr28ngvnEv0Nhw"&gt;&lt;img src="http://lh5.ggpht.com/_bwwN4YEyoAU/STJG2dnlSGI/AAAAAAAAAes/QRd6AYvfmAk/s400/PB300038.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;寄件者 &lt;a href="http://picasaweb.google.com/ycfunet/EeePC"&gt;EeePC變壓器電路&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;以上就是這次EeePC新拍檔的介紹，當然，不可免俗的，來列出它的成本吧。&lt;br /&gt;LM2576-ADJ NT $20(不大確定，有點忘了，約NT20~25元)&lt;br /&gt;線繞電感   NT $20(工型電感比較便宜，效果相同)&lt;br /&gt;精密電阻   NT $1 x 2&lt;br /&gt;SMD電容    NT $25(不大確定，有點忘了，約NT20多元)&lt;br /&gt;日製電容   NT $18(不大確定，有點忘了，約NT15~25元)&lt;br /&gt;塑膠盒     NT $40(不大確定，有點忘了，約NT40元)&lt;br /&gt;DC IN接頭  NT $5(不大確定，有點忘了，約NT5元)&lt;br /&gt;DC OUT線   NT $30&lt;br /&gt;&lt;br /&gt;總成本約 NT $150左右，比買一顆EeePC專用變壓器便宜，而且因為我之前在玩ARM開發板的變壓器時，買了上面這些零件，所以這次實際上並沒有買很多元件，只有買DC OUT線、電阻，其他都是現成的，這對現在不景氣的環境來說，可以說是非常不錯的，一方面好玩、一方面實用、一方面也省錢，可以說一石三鳥。&lt;br /&gt;&lt;br /&gt;電子零件細節：&lt;br /&gt;LM2576-ADJ&lt;br /&gt;用的穩壓IC是LM2576-ADJ，LM2576是switching power的穩壓IC，它的輸入電壓可以吃8V~40V，有固定輸出版本和可調整輸出的版本，-ADJ是可調整的版本，這顆的轉換效率大概80~85%左右。&lt;br /&gt;&lt;br /&gt;線繞電感&lt;br /&gt;根據LM2576的datasheet，使用100uH的電感，電感建議用線繞電感，網路上關於電感的建議是，線繞電感比較適合Power這類功率用途，而工型電感適合在通訊類用途，不過這最後要看買得到什麼......&lt;br /&gt;&lt;br /&gt;精密電阻&lt;br /&gt;因為是用可調式的LM2576，因此需要用電阻來控制輸出電壓，專業的說法叫做分壓，為了輸出電壓的穩定性，我們不希望輸出電壓的變化太大，所以我們希望電阻的誤差小一點，因此買精密電阻，精密電阻的誤差在1%，一般的則是10%。&lt;br /&gt;輸出電壓的算法是(一樣，datasheet寫的)：&lt;br /&gt;R2 = R1 x ( ( 輸出電壓(這邊是12V) / 1.23 ) - 1 )&lt;br /&gt;根據上述算法，我使用的電阻是：&lt;br /&gt;1.37k&lt;br /&gt;12k&lt;br /&gt;&lt;br /&gt;電容&lt;br /&gt;LM2576需要2顆電容，一顆在輸入端，一顆在輸出端，datasheet建議用鋁製電容。&lt;br /&gt;不過我去光華商場，只有看到SMD電容看起來像是鋁製電容，價格也像鋁製電容，因此輸入端我就用SMD的電容。&lt;br /&gt;輸出端我找不到鋁製的電容或SMD電容，所以我買比較高級的日製電容，反正奇摩拍賣上也有人在賣日製電容，給人換在顯示卡上，我想品質應該ok。&lt;br /&gt;datasheet對電容的要求是：&lt;br /&gt;1. 輸入端為 100uF，輸出端為 1000uF&lt;br /&gt;2. 電容的電壓規定是，電容的電壓必須比電壓(輸入端看輸入電壓，輸出端看輸出電壓)大，建議大1.5倍，datasheet解釋，這是避免突波的發生。&lt;br /&gt;我使用的是：&lt;br /&gt;SMD電容 100uF 50V&lt;br /&gt;日製電容 1000uF 25V&lt;br /&gt;&lt;br /&gt;這樣的規格，輸入端上到40V應該都ok，輸出12V沒問題。&lt;br /&gt;&lt;br /&gt;二極體(上面漏掉了)&lt;br /&gt;二極體要求要用蕭特基二極體，電流要求能耐3A。&lt;br /&gt;耐3A的原因是，LM2576的最大輸出電流是3A，因此要能耐3A。&lt;br /&gt;用蕭特基的原因是，switching power因為切換速度很快，因此二極體反應要夠快，蕭特基二極體能夠符合需要。&lt;br /&gt;&lt;br /&gt;塑膠盒&lt;br /&gt;隨意即可，不裝也ok&lt;br /&gt;&lt;br /&gt;DC IN接頭&lt;br /&gt;NB電源插的上去即可。&lt;br /&gt;&lt;br /&gt;DC OUT線&lt;br /&gt;我去國際電子廣場，拿著EeePC的變壓器對店員問，它就給我線了.... = =&lt;br /&gt;&lt;br /&gt;datasheet的網址：&lt;br /&gt;&lt;a href="LM2576的DataSheet" target="_blank"&gt;http://datasheet.eeworld.com.cn/pdf/164979_MOTOROLA_LM2576-15.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-2523191354644803062?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/2523191354644803062/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=2523191354644803062&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2523191354644803062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/2523191354644803062'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/11/eeepceeepc.html' title='EeePC新拍檔(EeePC專用轉換器)'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_bwwN4YEyoAU/STJFIbVkpaI/AAAAAAAAAdo/y_5R-hF6jTE/s72-c/PB300022.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3848948329404467234</id><published>2008-11-24T06:40:00.003+08:00</published><updated>2009-03-28T18:36:49.245+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>HPLIP掃描功能終於支援HP Color LaserJet CM1015</title><content type='html'>今年年初和年中，台灣HP的彩色雷射印表機都有優惠，因此我在年中就參加了。&lt;br /&gt;優惠方案原則上就是用比較便宜的價格買彩色雷射印表機，不過要寫個心得報告。&lt;br /&gt;便宜多少呢？以我買的HP CM1015來說，我當時砸了NT13000左右(真的是很用力的砸下去了，我的24' LCD因此飛走了)，基本上便宜個NT4000元。&lt;br /&gt;&lt;br /&gt;家裏的印表機目前都由File Server在管理，File Server是Linux(Debian)，因此使用上就有很大的限制，目前上面接了3台印表機，分別是：&lt;br /&gt;Epson Photo 790&lt;br /&gt;HP PSC 1315&lt;br /&gt;HP Color LaserJet CM1015&lt;br /&gt;&lt;br /&gt;由於Epson的惡習，因此目前已經停用了，而自從CM1015來了之後，主軸就幾乎都放在它身上。&lt;br /&gt;&lt;br /&gt;在這邊我不得不說，HP印表機、掃描器、事務機對Linux的支援真的「比較好」(尤其是事務機)，儘管它的支援和Windows相比，大概是天和地的分別，但已經比其他廠牌要好得多，而比較少聽過的品牌，很多都沒辦法在Linux上使用。&lt;br /&gt;&lt;br /&gt;HP印表機、掃描器、事務機在Linux上的支援，基本上是透過一個稱之為HPLIP的OpenSource專案(HP Linux Imaging and Printing (HPLIP))，它和HP的密切程度之高，我基本上認為它應該是HP公司在維護和開發的。&lt;br /&gt;透過HPLIP，在Linux上我們能夠比較方便的設定印表機、掃描器、事務機，大致來說只需要執行：&lt;br /&gt;&lt;code&gt;hp-setup&lt;/code&gt;&lt;br /&gt;一問一答之間，就完成設定了，而能用的功能就是能用，不能用的功能，大概也沒機會可以用到了，真的是很方便。&lt;br /&gt;&lt;br /&gt;CM1015有2個型號，分別在於有沒有網路的功能，價格大約差NT3000元，而這台專案機，原則上沒的挑，就是沒有網路。&lt;br /&gt;不過這對我不是問題，我也不希望它有網路，畢竟接上File Server後，透過網路就能夠列印、掃描，加上File Server上數據機的傳真功能，這3000元實在沒有花的必要。&lt;br /&gt;&lt;br /&gt;從買來的第一天開始，我就在關注HPLIP對CM1015的支援性，我本來以為這台機器不新，加上HP對Linux的支援性，應該都ok了，沒想到我還是高估了。&lt;br /&gt;HPLIP一直以來，對CM1015都只支援列印功能，不支援掃描，這讓我很不舒服，畢竟花了這麼多錢，還要靠PSC 1315來掃描，那CM1015上的掃描器只是好看而已嗎.... :(&lt;br /&gt;&lt;br /&gt;終於～HPLIP在2.8.10將CM1015的掃描功能加入了，我剛剛試用了，的確可以正常工作，這讓人非常興奮，CM1015終於正式變成事務機了。&lt;br /&gt;&lt;br /&gt;最後提一下目前關於家中掃描、列印、傳真的整個配置：&lt;br /&gt;列印部份：&lt;br /&gt;使用CUPS進行列印的處理，這問題不大，設定很常見，在Windows、Linux上都能順利工作，網路列印也ok。&lt;br /&gt;&lt;br /&gt;掃描部份：&lt;br /&gt;Linux上的掃描器主要靠SANE，SANE是一個非常老牌的Linux掃描器系統，因為掃描器的硬體混亂，因此SANE本身分成前端、後端：&lt;br /&gt; SANE前端：&lt;br /&gt;   SANE前端提供一些SANE的掃描軟體呼叫，對掃描器進行操作，在Linux上問題不大，基本上直接用xsane即可，在Windows上比較麻煩，Windows要透過TWAIN介面，而目前在Windows上TWAIN和SANE的溝通，主要是&lt;A HREF="http://sanetwain.ozuzo.net/"&gt;SaneTwain&lt;/A&gt;和&lt;a href="http://www.xsane.org/xsane-win32.html"&gt;XSANE&lt;/a&gt;，我個人認為，&lt;A HREF="http://sanetwain.ozuzo.net/"&gt;SaneTwain&lt;/A&gt;比較好用，而且順道一說，它目前的中文介面，是我幫忙翻譯的。&lt;br /&gt;   SANE前端要能夠讓Windows透過網路來溝通，必須要啟動saned這個daemon，只要run起來，就能夠讓其他SANE的掃描軟體透過網路和SANE前端溝通。&lt;br /&gt;&lt;br /&gt; SANE後端：&lt;br /&gt;   SANE後端主要就是掃描器的驅動程式介面，各種掃描器驅動程式都可以透過SANE後端的介面，讓SANE可以支援，前面提到的HPLIP，它就是提供了SANE後端的介面，讓SANE後端可以連結HPLIP來對掃描器進行操作。&lt;br /&gt;&lt;br /&gt;所以Linux的掃描功能，基本上只要SANE能夠搞定，一切都沒問題，要網路掃描，SANE也能做到，整體來說我是相當滿意的。&lt;br /&gt;&lt;br /&gt;傳真部份：&lt;br /&gt; 我在Linux上的傳真，使用HylaFax這套傳真軟體，HylaFax分成Server和Client，File Server上安裝的自然就是HylaFax Server，而各個Client(包括Windows、Linux)都需要安裝HylaFax Client才能夠透過網路來傳真。&lt;br /&gt; Linux上問題不大，GFax就支援HylaFax傳真，最慘下指令也能傳真，Windows上比較麻煩，我個人推薦&lt;a href="http://winprinthylafax.sourceforge.net/"&gt;Winprint HylaFAX&lt;/a&gt;，這套軟體能夠簡單的傳真，並且容易操作，缺點是，它無法取消傳真，也無法看目前收到的傳真。&lt;br /&gt; 為此，我的解決方案有2個：&lt;br /&gt; 1. 在File Server上另外建立一個資源分享，目錄指定到&lt;FONT COLOR=RED&gt;/var/spool/hylafax/recvq&lt;/FONT&gt;，這樣一來，透過網路芳鄰，就能夠簡單的瀏覽、刪除已收到的傳真。&lt;br /&gt; 2. 除了&lt;a href="http://winprinthylafax.sourceforge.net/"&gt;Winprint HylaFAX&lt;/a&gt;之外，另外搭配&lt;a href="http://whfc.uli-eckhardt.de/"&gt;WHFC Windows HylaFAX client&lt;/a&gt;使用，這套軟體介面不好看，而且久久沒更新，但還算堪用。&lt;br /&gt;&lt;br /&gt;有了上述的幾個部份互相搭配，只要在家裏，我可以透過有線網路、無線網路在任何地方直接列印、掃描、傳真任何資料，那麼～誰還需要多花NT3000元購買有網路功能的事務機呢？誰又需要購買列印伺服器呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3848948329404467234?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3848948329404467234/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3848948329404467234&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3848948329404467234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3848948329404467234'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/11/hpliphp-color-laserjet-cm1015.html' title='HPLIP掃描功能終於支援HP Color LaserJet CM1015'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-5268534160733675115</id><published>2008-11-23T12:20:00.002+08:00</published><updated>2009-03-28T18:36:49.245+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>我所知道的嵌入式系統</title><content type='html'>嵌入式系統是我近6年來不斷嘗試要摸索的東西，但是一直到現在，我都還沒有學會嵌入式系統。&lt;br /&gt;blog一直到現在，好像也從來沒有寫過嵌入式系統相關的東西，因此就發一篇來說說我所知道的嵌入式系統。&lt;br /&gt;&lt;br /&gt;早在8年前，我在讀二專時，當時我曾經有個疑惑，到底IP分享器是怎麼做的？&lt;br /&gt;同樣是微電腦系統，IP分享器一台不過NT2000元，硬體應該跟8051差不多，那8051可以作成IP分享器？可以有網路功能？可以寫Visual C++程式嗎？&lt;br /&gt;二專畢業後，我當兵去當替代役，在當時買了生平第一台，也是目前唯一一台的PDA～iPAQ 3970，當時我從網路知道，它是嵌入式系統，一些人用它來搞嵌入式的實驗和開發，因此我就買了，也嘗試灌Linux上去，還因此燒掛過2次機板，其中一次還是自費6000元換的。&lt;br /&gt;當完兵回去念二技，在當時專題老師說有塊ARM的板子可以玩，我就自告奮勇，很興奮的接下來玩，在當時，我知道ARM是嵌入式系統，但不瞭解它們間的關係。&lt;br /&gt;在當時，為了能夠瞭解嵌入式系統、ARM的開發，死k那厚厚的說明文件，還有參加嵌入式系統的研討會，不過對嵌入式系統一直瞭解得很模糊，直到一場在中國技術學院辦的研討會，其中一個主講者的一句話，我終於瞭解了，這也是我到現在對嵌入式系統的理解。&lt;br /&gt;所謂的嵌入式系統，其實可以這樣解釋，就是「嵌入式作業系統」，它的本質，實際上就是把作業系統嵌入到某個硬體平台上，就叫做嵌入式系統。&lt;br /&gt;但因為作業系統的定義其實有模糊地帶，所以嵌入式系統也被泛指各種微電腦系統，原因在於，所謂的作業系統，它可能很單純，但也可以很複雜，我們用個&lt;br /&gt;&lt;code&gt;while(1) {}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;裡面包入幾份工作，輪流的執行，這廣義的來說就算是作業系統。&lt;br /&gt;因此很多微電腦系統都號稱是嵌入式系統，說起來也不完全是錯的。&lt;br /&gt;&lt;br /&gt;而事實上，目前大部分指的嵌入式系統，多半是指32位元處理器形成的微電腦系統，並且在上面執行Linux、BSD、WinCE、WinXP這類的作業系統，這類客制化硬體 + 流行、功能強大的作業系統，是目前多半描述的嵌入式系統。&lt;br /&gt;不過事實上，現在有些8051開發板，上面搭配了網路晶片、USB晶片，甚至音效晶片，並且在上面執行8051可以執行的簡易作業系統，這其實也是嵌入式系統的成員之一。&lt;br /&gt;&lt;br /&gt;我們可以從上面我對嵌入式系統的名詞解釋(個人的理解)，我們可以發現到，嵌入式系統包含了硬體、軟體、軔體(有時也稱驅動程式)，因此嵌入式系統的門檻真的很高，我認為，一個嵌入式系統的工程師，至少需要具備一部分電子能力、一部分作業系統的瞭解、還程式開發的能力，我自認目前我還不具備上述所有的能力，至少每個部份我都還欠缺很多。&lt;br /&gt;但同時，我認為35歲以下的年輕人(包括快30的我)，要同時具備所有能力，應該很有難度，除非25歲就進入公司，並且被公司磨練了10年才有辦法。&lt;br /&gt;而我認為，嵌入式系統要入門，有人帶的情況下，至少需要3年的時間，才能瞭解這些東西。&lt;br /&gt;&lt;br /&gt;我在研究所至今，我必須說，我很不幸的遇到了很糟的老闆，以至於我唸了第四年，能不能畢業都還很難說，但最慘的是，我因此浪費了至少2年的嵌入式學習機會，儘管我老闆號稱做嵌入式系統，但其實他幾乎不瞭解嵌入式系統，我曾經聽他說過，他說「uC/OS這樣的作業系統，根本不能稱之為作業系統」，他也不懂硬體，看到電路、組合語言就完全畏懼，但很不幸的，我認為要搞嵌入式系統，這些是必要的。&lt;br /&gt;因為正如我前面說過的，uC/OS和Linux相比，是一套小作業系統，但我們要開發商品或硬體，很多時候因為各種因素的限制(成本、體積、散熱、耗電...等)，我們沒辦法使用32位元處理器，沒辦法有MB級的Flash，沒辦法有鋰電池電源，但是我們需要OS，這樣的系統它還是嵌入式系統，但沒辦法使用Linux、WinCE，因此uC/OS這類小型作業系統成了必要的選項。&lt;br /&gt;此外，搞嵌入式系統，寫應用程式應該已經是非常幸福的了，因為沒有莫名其妙的問題，但既然是搞嵌入式系統，相信寫應用程式的應該是少數，就算是寫應用程式，也應該是受限制的嚴重，像是沒有加密函式庫，而像是.NET？我想應該很難看到他的身影，否則公司何必一個月NT40000請你呢？外包出去可能20000一週就能搞定了。&lt;br /&gt;因此搞到軔體、驅動程式的機會其實很大，那麼在一個客制化硬體中寫軔體、驅動程式，不會碰到硬體IO、不會看到組合語言的機會有多大？我個人悲觀的認為並不大，因此，我會認為我老闆只是號稱做嵌入式系統，他其實對嵌入式系統並不瞭解。&lt;br /&gt;&lt;br /&gt;我注意到這兩年嵌入式系統已經不像4,5年前那麼神秘了，被老闆綁越久，其實越難過，因為我很早就知道要走這條路，也很早就努力在摸索，但這兩年不但沒辦法進一步研究，還被綁著沒辦法出去，我估計再過2,3年，嵌入式系統的發展會更成熟，到時候人力需求會更少，相關的人才會更多(這兩年已經有這樣的傾向了)。&lt;br /&gt;&lt;br /&gt;我認為，嵌入式系統在2年前甚至4年前，還是一團混亂，我認為這樣的情況會越來越少，我認為嵌入式系統在未來的發展，可能有幾個方向：&lt;br /&gt;1. 開發走向標準化開發，會出現統一的開發方式，統一的函式庫&lt;br /&gt;2. 會出現一些認證，因為目前嵌入式的工程師，程度差異性太大，像我老闆這樣「號稱」的人很多，因此認證變得有需要&lt;br /&gt;3. 各層開發能夠分離，應用程式歸應用程式，作業系統歸作業系統，硬體歸硬體，能夠更有效的分散&lt;br /&gt;4. 導入軟體工程，目前的嵌入式系統很亂，經常連開發時程都不好算，能不能開發出來都很難說，但軟體開發始終需要有計劃，否則對公司來說，漫無目的的砸錢並不是辦法，如何導入軟體工程，我相信目前還算是趨勢，套我之前學長說的，軟體工程中，說到itest這類測試工具，能夠有效的對程式開發時，錯誤的問題進行處理，但在嵌入式系統，三不五時就crash，不要說程式除錯，系統都死了怎麼除？顯然，軟工在這部分還有可以著墨的地方。&lt;br /&gt;5. 硬體的相容性會越來越好，很難想像，嵌入式系統從8年前到現在，光OS的porting，就幾乎是非常大的問題，就算到現在，隨便一顆處理器的微電腦系統，要找到能用的作業系統都很難，要自己porting，還是只能看天，至於公司，除了求助硬體廠商之外，少不了至少3個工程師，花上2個月的時間進行porting，完畢後可能還需要2周,1個月進行測試，除了一堆bug後，工程師才會說「應該ok了」，所以我相信，這問題會逐步改善。&lt;br /&gt;&lt;br /&gt;其實上述的問題，儘管我不喜歡M$，但不得不說，M$在嵌入式系統的發展上，很有計畫，而且做的很不錯。&lt;br /&gt;1. M$把硬體相容性用驅動程式的概念來推行，在網頁直接列出某個版本的WinCE支援哪些硬體，並且新的WinCE都能支援舊的硬體，且不斷增加。&lt;br /&gt;2. M$不得不說，對OS的Support至少是還ok的，讓硬體或軔體(驅動程式)廠商在開發WinCE時，不像Linux這麼無助。&lt;br /&gt;3. M$把IE、Windows Media Player...等直接移植到WinCE，這讓開發多媒體、網路的廠商，可以不用辛苦的知道mplayer怎麼porting、mozilla怎麼porting就能直接開發多媒體、網路的產品。&lt;br /&gt;4. M$直接提供 .NET CF...等函式庫，它知道開發嵌入式系統時，混亂的函式庫環境造成了多大的開發麻煩。&lt;br /&gt;5. M$的共享程式碼計畫和龐大的WinCE架構(WinCE的一堆API)，能夠讓嵌入式開發分層化，儘管因為架構很大很亂，分層起來還是很難搞，但至少有一堆interface，讓開發上能夠輕鬆些，Linux不得不說，這方面還是很亂，其他OS就更不用說了。&lt;br /&gt;&lt;br /&gt;基於上述這些理由，還有M$對嵌入式的行銷，不得不說M$在嵌入式的市場真的是玩真的，而且這快10年的發展，真的讓M$在嵌入式的市場搶下很大的份額，至少手機、PDA部份，它吃掉了很大一塊，M$最近的新聞是，他要搞車用電腦。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-5268534160733675115?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/5268534160733675115/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=5268534160733675115&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5268534160733675115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5268534160733675115'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/11/blog-post.html' title='我所知道的嵌入式系統'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-5416369858428671148</id><published>2008-09-30T17:16:00.003+08:00</published><updated>2009-03-28T18:36:49.245+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>FreeBSD NFS Client 與 not responding</title><content type='html'>長久以來，我家的NAT都是用FreeBSD，這在之前文章提過了。&lt;br /&gt;&lt;br /&gt;因為系統精簡化，因此FreeBSD上面，現在只用CFtoIDE + 2G CF(創見266x)。&lt;br /&gt;在原本的計畫中，我希望用的是1G CF，無奈266x的世界中，已經是2G起跳了.... :(&lt;br /&gt;&lt;br /&gt;有用FreeBSD的人這時可能會問：「那port和src放哪？這兩個傢伙可是很肥的耶～」&lt;br /&gt;我用NFS，把它們丟到File Server(Debian)上了。&lt;br /&gt;&lt;br /&gt;ok...重點出現了～&lt;br /&gt;在上次更新完畢之後，我的NAT就一直無法連上File Server的NFS，它可以連，建立檔案或目錄有時候也正常，但只要傳輸大檔案或者持續的改寫檔案(cvsup)，就會出現.....&lt;br /&gt;not responding&lt;br /&gt;not responding&lt;br /&gt;not responding&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;這非常麻煩，不但檔案無法繼續傳輸，還會讓整個系統當掉。&lt;br /&gt;以至於我的NAT有半年以上沒有make world和更新port了，非常不舒服～&lt;br /&gt;&lt;br /&gt;上網路找資料發現，not responding很多人問，問的人多，但回答的少，不然就是跟我情況不同。&lt;br /&gt;在經過了長久的嘗試之後，我終於發現問題所在了。&lt;br /&gt;現在我在fstab中NFS的options改成如下設定：&lt;br /&gt;192.168.1.6:/usr/freebsd_dir/src /usr/src nfs   rw,nfsv3,tcp,noauto     0      0&lt;br /&gt;&lt;br /&gt;簡單的說，我設定FreeBSD使用NFSv3，並且使用TCP protocol，問題就全部解決了。&lt;br /&gt;&lt;br /&gt;由解答倒推問題原因，我認為FreeBSD的NFS預設應該是用UDP，可能我這邊網路環境並不大穩定，或者Debian上網路不大穩定(我這台Debian，網路卡是用atl1的driver，會有&lt;br /&gt;atl1 0000:01:00.0: tx busy&lt;br /&gt;的問題)，因此NFS會有問題，改用TCP後就能夠解決了。&lt;br /&gt;&lt;br /&gt;如果有其他人也有類似的問題，也許可以試試看～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-5416369858428671148?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/5416369858428671148/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=5416369858428671148&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5416369858428671148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/5416369858428671148'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/09/freebsd-nfs-client-not-responding.html' title='FreeBSD NFS Client 與 not responding'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7031047789437732000</id><published>2008-09-02T22:49:00.004+08:00</published><updated>2009-03-28T18:36:49.246+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>VirtualBox小發現～電池電量顯示</title><content type='html'>這是無意中發現的，原來當VirtualBox勾選ACPI的支援之後，VirtualBox的Guest OS就能夠顯示出Host OS上的電源資訊，連電池電量都能夠正確顯示，沒圖沒真相，真相如下圖：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bwwN4YEyoAU/SL1TXgE9ypI/AAAAAAAAAcM/j2jUKnU5rMg/s1600-h/eeepc_battery.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_bwwN4YEyoAU/SL1TXgE9ypI/AAAAAAAAAcM/j2jUKnU5rMg/s400/eeepc_battery.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241437204541983378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;插電之後，電池充電中的顯示如下：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bwwN4YEyoAU/SL1U2r5zDoI/AAAAAAAAAcU/cvTilv-QzW8/s1600-h/eeepc_battery1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_bwwN4YEyoAU/SL1U2r5zDoI/AAAAAAAAAcU/cvTilv-QzW8/s400/eeepc_battery1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241438839803940482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以上圖片環境如下：&lt;br /&gt;機器：EeePC 901&lt;br /&gt;Host OS：Ubuntu 8.04&lt;br /&gt;Guest OS：WinXP Home&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7031047789437732000?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7031047789437732000/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7031047789437732000&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7031047789437732000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7031047789437732000'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/09/virtualbox.html' title='VirtualBox小發現～電池電量顯示'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwwN4YEyoAU/SL1TXgE9ypI/AAAAAAAAAcM/j2jUKnU5rMg/s72-c/eeepc_battery.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6958858344811571402</id><published>2008-08-31T09:56:00.013+08:00</published><updated>2008-08-31T10:52:27.012+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>NX Server 3.x 的新功能 (Linux上的遠端桌面)</title><content type='html'>這篇算是繼&lt;a target="_blank" class="gs-title" href="http://ycfunet.blogspot.com/2006/07/nx.html"&gt;NX使用心得&lt;/a&gt;、&lt;a target="_blank" class="gs-title" href="http://ycfunet.blogspot.com/2007/01/nx.html"&gt;新NX使用心得&lt;/a&gt;後，的小小新介紹。&lt;br /&gt;&lt;br /&gt;NX細節就不說了，在目前 Linux 環境中，它算是相當優異的 遠端控制 軟體。&lt;br /&gt;&lt;br /&gt;NX Server 2.x 甚至 1.x 有個功能，我們一直希望能提供，那就是類似 XP遠端桌面，或者 VNC 那樣(像 &lt;a href="http://www.karlrunge.com/x11vnc/"&gt;x11vnc&lt;/a&gt;那樣)，可以直接操作目前 Linux 本機的畫面(在GNOME環境下，就是&lt;a href="http://gnomejournal.org/article/29/remote-desktop-administration-using-vino"&gt;vino&lt;/a&gt;這套VNC Server提供的能力)。&lt;br /&gt;這樣的功能其實在 NX Server 3.x 就已經支援了，算起來也提供了有半年以上了，不過本來一直沒注意，最近心血來潮才發現(這裡要抱怨一下，NX 的說明文件寫的真的是...，設定的部份帶個圖片就很清楚了，硬是讓我看了半天才看懂)。&lt;br /&gt;&lt;br /&gt;那就直接進入主題了。&lt;br /&gt;&lt;br /&gt;首先我們要先確定 NX Server 是 3.x 版，如下：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bwwN4YEyoAU/SLoAhi18rbI/AAAAAAAAAbQ/EFpRIzkJTTA/s1600-h/NX1.gif"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_bwwN4YEyoAU/SLoAhi18rbI/AAAAAAAAAbQ/EFpRIzkJTTA/s400/NX1.gif" alt="" id="BLOGGER_PHOTO_ID_5240501692687756722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;接下來我們要確定 NX Client 也是 3.x 版，如下：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bwwN4YEyoAU/SLoAo1wz9II/AAAAAAAAAbY/YN5lCfHQExs/s1600-h/NX2.gif"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_bwwN4YEyoAU/SLoAo1wz9II/AAAAAAAAAbY/YN5lCfHQExs/s400/NX2.gif" alt="" id="BLOGGER_PHOTO_ID_5240501818025571458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NX Server 3.x 預設的設定，就能夠支援遠端桌面這樣的功能了。&lt;br /&gt;&lt;br /&gt;接下來很容易，直接在設定部份設定如下：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bwwN4YEyoAU/SLoAo1GJWSI/AAAAAAAAAbg/4ufxxuWTYDc/s1600-h/NX3.gif"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_bwwN4YEyoAU/SLoAo1GJWSI/AAAAAAAAAbg/4ufxxuWTYDc/s400/NX3.gif" alt="" id="BLOGGER_PHOTO_ID_5240501817846618402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;使用時的連線則會顯示如下：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bwwN4YEyoAU/SLoBR2pgDvI/AAAAAAAAAbo/Y8fmBF2C-F4/s1600-h/NX4.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_bwwN4YEyoAU/SLoBR2pgDvI/AAAAAAAAAbo/Y8fmBF2C-F4/s400/NX4.gif" alt="" id="BLOGGER_PHOTO_ID_5240502522637979378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;連線後畫面如下，而本機的螢幕畫面會更著變動：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bwwN4YEyoAU/SLoBxdYMbXI/AAAAAAAAAbw/MyRSNQW1Q9A/s1600-h/NX5.gif"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_bwwN4YEyoAU/SLoBxdYMbXI/AAAAAAAAAbw/MyRSNQW1Q9A/s400/NX5.gif" alt="" id="BLOGGER_PHOTO_ID_5240503065610317170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;完成。&lt;br /&gt;&lt;br /&gt;相關設定的細節可以參考：&lt;br /&gt;&lt;a href="http://www.nomachine.com/documentation/admin-guide.php"&gt;NX Server Administrator's Guide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6958858344811571402?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6958858344811571402/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6958858344811571402&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6958858344811571402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6958858344811571402'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/08/nx-server-3x-linux.html' title='NX Server 3.x 的新功能 (Linux上的遠端桌面)'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwwN4YEyoAU/SLoAhi18rbI/AAAAAAAAAbQ/EFpRIzkJTTA/s72-c/NX1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-803385156934978488</id><published>2008-08-27T16:14:00.004+08:00</published><updated>2008-08-31T10:52:27.013+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>EeePC 901在Ubuntu上得wireless、wired支援</title><content type='html'>正如前兩篇寫的，ITE後來送了我一台EeePC，意外的是，ITE是直接在PCHOME訂購的，所以直接就是PCHOME送來，當時送來的是EeePC 701(含webcam、白色)版本，後來經過了一番努力之後，它終於找到新主人，本來還擔心它新主人知不知道它的習性，後來面交時有詢問過，我也因此放心了，不然還擔心它會不會被遺棄或再換主人。&lt;br /&gt;&lt;br /&gt;後來經過一番考慮後，我決定購買EeePC 901，考量因素有幾個：&lt;br /&gt;1. Aspire One的SSD只有8G，而且是MLC，買SD是必要的，可是SD一張差不多就要1000,2000元&lt;br /&gt;2. 除了SSD外，Aspire One的wireless只有802.11 b/g，沒有藍牙、802.11 n的支援&lt;br /&gt;3. Aspire One的webcam是30萬像素，901是130萬像素&lt;br /&gt;4. Aspire One的電池容量和901容量差很多&lt;br /&gt;&lt;br /&gt;這些差異，價格差距卻在3000元，因此就決定買901了。&lt;br /&gt;&lt;br /&gt;以上介紹完畢，正式進入這次的主題。&lt;br /&gt;本篇文章同步po在mobile01的回覆中。&lt;br /&gt;=================================&lt;br /&gt;EeePC 在安裝 Ubuntu 時常見的問題主要是目前 Ubuntu 8.04 中的 Kernel 還不支援 EeePC 上有線、無線的網路卡，需要另外編譯 Kernel，不過.....&lt;br /&gt;&lt;br /&gt;針對 Eee PC 的 Ubuntu Linux Kernel 已經有了，現在已經不需要辛苦的自己編譯 ralink module。&lt;br /&gt;&lt;br /&gt;Kernel 的下載網址在&lt;a href="http://www.array.org/ubuntu/" target="_blank"&gt;Array.org EeePC Ubuntu Repository - Custom Linux Kernel&lt;/a&gt;，作者針對 Eee PC(包括901/1000/1000H) 製作了 Ubuntu 客制化的 Kernel Image 和 Module，並且持續提供更新。&lt;br /&gt;&lt;br /&gt;目前它提供的 Kernel 包括下列部份：&lt;br /&gt;1. Wired ethernet support (via atl1e module from Asus) (提供 EeePC 有線網路卡的 module 支援)&lt;br /&gt;2. Wireless ethernet support (via rt2860sta module from Ralink) (提供 EeePC 無線網路卡的 module 支援)&lt;br /&gt;3. Complete WEP and WPA wireless encryption support (via unreleased Ralink patch) (無線網路卡的 module 已經 patch 過，可以直接支援 WEP 和 WPA 無線網路模式)&lt;br /&gt;4. Complete sound card support (via unreleased AlsaProject code) (完整音效卡支援)&lt;br /&gt;5. ACPI with Bluetooth support (via patched eeepc-acpi module) (EeePC 內的 ACPI 能夠支援藍牙)&lt;br /&gt;6. SMP enabled (for hyperthreading your Intel Atom CPU) (能支援 EeePC 中 ATOM CPU 的 HT 功能)&lt;br /&gt;7. Simplified Persistent USB support (via an "always-on" patch) (USB 不知道什麼碗糕的 patch )&lt;br /&gt;&lt;br /&gt;此外，根據網頁介紹，這個針對 EeePC 客制化的 Kernel，能讓開機時間快上 20~30 秒。&lt;br /&gt;原文：Along with routine upstream updates, additional benefits include faster boot times (20-23 seconds), and pre-compiled eeepc &amp; madwifi modules.&lt;br /&gt;&lt;br /&gt;我的經驗是，使用它的 kernel 之後，有線網路直接就能看到，wireless 的部份還不太會開，需要 patch 讓 wireless 的功能鍵能夠動作。&lt;br /&gt;&lt;br /&gt;設定 wireless 功能鍵，我是參考&lt;a href="http://forum.eeeuser.com/viewtopic.php?id=39341&amp;p=3" target="_blank"&gt;EeeUser ASUS Eee PC Forum / [HELP NEEDED] Ubuntu-Support-Script for EeePC 901/1000/1000H&lt;/a&gt;的&lt;a href="http://forum.eeeuser.com/viewtopic.php?pid=354550#p354550" target="_blank"&gt;這個設定&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;設定方法就按照它作法即可。&lt;br /&gt;&lt;br /&gt;這時候也許會問，我 EeePC 現在裝好 Ubuntu 8.04 就是沒網路，那這些要怎麼搞？&lt;br /&gt;&lt;br /&gt;可以準備一個 SD，容量不拘，大概只需要 128MB 就夠了。&lt;br /&gt;&lt;br /&gt;把前面提到的 Kernel、Module 和 wireless 功能鍵 的 patch 檔案放進 SD，連結分別是：&lt;br /&gt;&lt;a href="http://www.informatik.uni-bremen.de/~elmurato/901/Ubuntu_ACPI_scripts-EeePC_901_1000.tar.gz" target="_blank"&gt;ACPI_scripts-EeePC_901_1000.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.array.org/ubuntu/dists/hardy/eeepc/binary-i386/linux-image-2.6.24-21-eeepc_2.6.24-21.39eeepc1_i386.deb" target="_blank"&gt;Linux Kernel(linux-image-2.6.24-21-eeepc_2.6.24-21.39eeepc1_i386.deb)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.array.org/ubuntu/dists/hardy/eeepc/binary-i386/linux-ubuntu-modules-2.6.24-21-eeepc_2.6.24-21.30eeepc3_i386.deb" target="_blank"&gt;Linux Module(linux-ubuntu-modules-2.6.24-21-eeepc_2.6.24-21.30eeepc3_i386.deb)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;把 SD 插入 EeePC 當中，Ubuntu 就能自動找到並掛載了。&lt;br /&gt;&lt;br /&gt;接著打開終端機，並按照下列動作操作：&lt;br /&gt;&lt;table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#ff4747"&gt;&lt;tr align="left" valign="left" bgcolor="#ffd4d4"&gt;&lt;td bgcolor="#ffd4d4"&gt;1. 切換到 SD 的路徑&lt;br /&gt;cd /media/disk&lt;br /&gt;&lt;br /&gt;2. 安裝 Linux Kernel 和 Module&lt;br /&gt;sudo dpkg -i linux-image*.deb linux-ubuntu-modules*.deb&lt;br /&gt;&lt;br /&gt;3. 切換到 暫存區 路徑&lt;br /&gt;cd /tmp&lt;br /&gt;&lt;br /&gt;4. 將 wireless 功能鍵 patch 壓縮檔解開&lt;br /&gt;tar zxvf /media/disk/Ubuntu_ACPI_scripts-EeePC_901_1000.tar.gz&lt;br /&gt;&lt;br /&gt;5. 安裝 wireless 功能鍵 patch&lt;br /&gt;cd Ubuntu_ACPI_scripts-EeePC_901_1000/&lt;br /&gt;chmod +x install.sh&lt;br /&gt;sudo ./install.sh&lt;br /&gt;&lt;br /&gt;6. 重新開機，並享用 EeePC 上的 Ubuntu&lt;br /&gt;reboot&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;目前我所感覺到還需要 patch 的部份，大概就是 wireless 功能鍵，上述的 patch 似乎只有 wireless 的開關，沒有 wireless開 / 藍牙開 / wireless+藍牙 開 / 全關 這樣的切換，看起來需要在翻些資料來修改它的內容，不過目前我都還沒用到 藍牙，因此這對我還不是個問題。&lt;br /&gt;&lt;br /&gt;最後一點，以上動作我都操作過沒問題，我的環境是 EeePC 901。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-803385156934978488?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/803385156934978488/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=803385156934978488&amp;isPopup=true' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/803385156934978488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/803385156934978488'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/08/eeepc-901ubuntuwirelesswired.html' title='EeePC 901在Ubuntu上得wireless、wired支援'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4214524536663435676</id><published>2008-08-26T21:59:00.008+08:00</published><updated>2008-09-01T07:35:39.922+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Linux的RAM Disk(資料不消失版)</title><content type='html'>RAM Disk是一個非常方便的東西，尤其現在DDR2的RAM很便宜時，善用RAM Disk可以有很大的效能改善。&lt;br /&gt;雖然RAM Disk已經不是什麼新鮮的東西了，但是這次我針對Linux上的RAM Disk Script加入了開/關機備份/還原的功能，應該就很少見了。&lt;br /&gt;&lt;br /&gt;我個人認為Linux上的RAM Disk比Windows和FreeBSD來得方便好用，Linux的shm(Share Memory)實在太強大了。&lt;br /&gt;在Windows上，RAM Disk的軟體不少，但多半都是切割一塊RAM當磁碟，舊版的FreeBSD上也是(FreeBSD的tmpfs實做在FreeBSD 7.0開始提供～)，在Linux上，因為tmpfs技術的關係，能夠直接使用Share Memory當成檔案系統來使用，因此能讓檔案系統上的資料能複製到Share Memory當中，和其他process共用Memory。這樣的優點是，系統記憶體和RAM Disk是共用的，RAM Disk不需要額外割一塊出來，舉個例子：&lt;br /&gt;假設RAM有1024MB(1G)，我要512MB的RAM Disk&lt;br /&gt;在Windows、FreeBSD上，系統記憶體就只剩下512MB，另外512MB變成一個RAM Disk。&lt;br /&gt;而在Linux上，系統記憶體還是1024MB(1G)，假如我在RAM Disk上吃掉了100MB的空間，則系統記憶體會變成924MB，而RAM Disk(Share Memory)的上限是多少？1024MB嗎？&lt;br /&gt;這可以自己設定，系統預設是RAM的一半，以這例子來說，Linux預設的RAM Disk(Share Memory)就是512MB。&lt;br /&gt;&lt;br /&gt;RAM Disk速度很快，尤其是拿來compile kernel時特別明顯，可以明顯感受到，花費的時間比較短，這要歸功於Linux Kernel Source Code很大，所以感受得出來。&lt;br /&gt;&lt;br /&gt;另一個重要的場合大概就是Eee PC這類輕巧筆電了，輕巧筆電因為「輕巧」、「價格」...等因素，往往硬碟很小，而且硬碟經常速度很慢(EeePC 900、901的第二顆Flash，Aspire one 110的8G Flash)，在無法擴充或是擴充價格很誇張時，加大RAM並善用它變得很重要，因此在輕巧筆電上設定RAM Disk，幾乎是「必要的設定」(不論是XP或Linux)。&lt;br /&gt;&lt;br /&gt;RAM Disk的致命傷就是重開機資料就消失，稍微搜尋後可以發現，Windows上已經有不少人提供備份、還原的script，搭配XP Pro的系統原則就可以在關機時備份RAM Disk的資料，那Linux呢？就在這裡啦～～&lt;br /&gt;&lt;br /&gt;首先，我RAM Disk的建立，是使用&lt;a href="http://moto.debian.org.tw/viewtopic.php?t=4100"&gt;[閒聊]有趣的 tmpfs&lt;/a&gt;最後的script版本，並不是寫在/etc/fstab當中。&lt;br /&gt;RAM Disk(tmpfs)的詳細介紹可以參考&lt;a href="http://plog.longwin.com.tw/my_note-unix/2006/01/08/ram_disk_build_method"&gt;Tsung's Blog的拿 RAM 當硬碟來用(RAM Disk)&lt;/a&gt;，作者把所有的tmpfs建立方法全部敘述了，內容清楚明確，非常值得參考，我使用的屬於方法一。&lt;br /&gt;&lt;br /&gt;簡單敘述建立RAM Disk的方法：&lt;br /&gt;&lt;br /&gt;1. 把下列script內容編輯，並&lt;span style="color: rgb(255, 0, 0);"&gt;存檔為/etc/init.d/mounttmpfs.sh&lt;/span&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# mounttmpdir Mount /tmp after mounvirtfs exec-ed&lt;br /&gt;#&lt;br /&gt;# Version: @(#)mounttmpdir 0.01 24-Dec-2004 antony shen&lt;br /&gt;# 參考網址：http://moto.debian.org.tw/viewtopic.php?t=4100&amp;amp;highlight=shm&lt;br /&gt;# 執行指令：update-rc.d mounttmpfs.sh start 37 S .&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Script needs to be robust and continue when parts fail,&lt;br /&gt;# so we're not setting the "-e" flag.&lt;br /&gt;#set -e&lt;br /&gt;&lt;br /&gt;PATH=/lib/init:/bin:/sbin&lt;br /&gt;&lt;br /&gt;if [ -d /dev/shm ]&lt;br /&gt;then&lt;br /&gt;if [ ! -d /dev/shm/tmp ]&lt;br /&gt;then&lt;br /&gt;echo -n "Mounting tmpfs(/tmp,/var/tmp) under /dev/shm..."&lt;br /&gt;&lt;br /&gt;mkdir /dev/shm/tmp&lt;br /&gt;mkdir /dev/shm/vtmp&lt;br /&gt;chmod 1777 /dev/shm/tmp&lt;br /&gt;chmod 1777 /dev/shm/vtmp&lt;br /&gt;mount --bind /dev/shm/tmp /tmp&lt;br /&gt;mount --bind /dev/shm/vtmp /var/tmp&lt;br /&gt;&lt;br /&gt;echo "OK."&lt;br /&gt;fi&lt;br /&gt;else&lt;br /&gt;echo "Failed to find /dev/shm, unable to link /tmp under it!"&lt;br /&gt;fi&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. 執行&lt;br /&gt;&lt;code&gt;update-rc.d mounttmpfs.sh start 37 S .&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. 重新開機&lt;br /&gt;&lt;br /&gt;4. 複製個檔案 (&lt;span style="color: rgb(255, 0, 0);"&gt;cp /boot/* /tmp/&lt;/span&gt;) 到 &lt;span style="color: rgb(255, 0, 0);"&gt;/tmp&lt;/span&gt; 執行 &lt;span style="color: rgb(255, 0, 0);"&gt;df&lt;/span&gt;，查看 &lt;span style="color: rgb(255, 0, 0);"&gt;/dev/shm&lt;/span&gt; 的使用空間有沒有變化，有變化就是成功了。&lt;br /&gt;&lt;br /&gt;接下來，我們進一步來玩Backup/Restore的部份，如下：&lt;br /&gt;&lt;br /&gt;1. 把下列script存檔為&lt;span style="color: rgb(255, 0, 0);"&gt;/etc/init.d/backuptmpfs.sh&lt;/span&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# 參考 mounttmpfs.sh 修改而成&lt;br /&gt;#&lt;br /&gt;# Version: @(#)backuptmpfs.sh 0.01 2008-08-26 YCFu&lt;br /&gt;# 執行指令：update-rc.d backuptmpfs.sh stop 1 0 6 .&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Script needs to be robust and continue when parts fail,&lt;br /&gt;# so we're not setting the "-e" flag.&lt;br /&gt;#set -e&lt;br /&gt;&lt;br /&gt;PATH=/lib/init:/bin:/sbin&lt;br /&gt;&lt;br /&gt;if [ -d /dev/shm ]&lt;br /&gt;then&lt;br /&gt;if [ -d /dev/shm/tmp ]&lt;br /&gt;then&lt;br /&gt;echo -n "Backup tmpfs(/tmp) to /RAMDISK_bak.tar..."&lt;br /&gt;&lt;br /&gt;tar -X /etc/non-list -C /tmp -cf /RAMDISK_bak.tar .&lt;br /&gt;chmod 600 /RAMDISK_bak.tar&lt;br /&gt;&lt;br /&gt;echo "OK."&lt;br /&gt;fi&lt;br /&gt;else&lt;br /&gt;echo "Backup Fail!"&lt;br /&gt;fi&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. 把下列script存檔為&lt;span style="color: rgb(255, 0, 0);"&gt;/etc/init.d/restoretmpfs.sh&lt;/span&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# 參考 backuptmpfs.sh 修改而成&lt;br /&gt;#&lt;br /&gt;# Version: @(#)backuptmpfs.sh 0.01 2008-08-26 YCFu&lt;br /&gt;# 執行指令：update-rc.d restoretmpfs.sh start 38 S .&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Script needs to be robust and continue when parts fail,&lt;br /&gt;# so we're not setting the "-e" flag.&lt;br /&gt;#set -e&lt;br /&gt;&lt;br /&gt;PATH=/lib/init:/bin:/sbin&lt;br /&gt;&lt;br /&gt;if [ -f /RAMDISK_bak.tar ]&lt;br /&gt;then&lt;br /&gt;echo -n "Restore tmpfs(/tmp) from /RAMDISK_bak.tar..."&lt;br /&gt;&lt;br /&gt;tar -C /tmp -xf /RAMDISK_bak.tar&lt;br /&gt;rm /RAMDISK_bak.tar&lt;br /&gt;&lt;br /&gt;echo "OK."&lt;br /&gt;fi&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;3. 執行下列指令：&lt;br /&gt;&lt;code&gt;update-rc.d restoretmpfs.sh start 38 S .&lt;br /&gt;update-rc.d backuptmpfs.sh stop 1 0 6 .&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. 執行下列指令建立排除檔案列表&lt;br /&gt;&lt;code&gt;touch /etc/non-list&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5.完成&lt;br /&gt;&lt;br /&gt;上述程式說明：&lt;br /&gt;簡單的說，我改了2個script，一個用在關機時備份RAM Disk，一個用在開機時還原RAM Disk。&lt;br /&gt;&lt;br /&gt;關機時備份RAM Disk的叫做backuptmpfs.sh，它會在inittab狀態為0和6時執行(放到rc0.d和rc6.d)，0和6分別是關機狀態和重新開機狀態。&lt;br /&gt;&lt;br /&gt;開機時還原RAM Disk的叫做restoretmpfs.sh，「它必須在 mounttmpfs.sh 之後執行」，它會在開機時，建立RAM Disk之後，將RAM Disk資料還原回去。&lt;br /&gt;為什麼不整合到mounttmpfs.sh之中呢？&lt;br /&gt;我試過了，它似乎會和mount --bind衝突，可能需要delay一點時間吧。&lt;br /&gt;&lt;br /&gt;由於RAM Disk中，通常會放置Firefox的暫存目錄，我們不希望所有東西都備份，因此我們要設定個排除檔案名單，將特定的目錄或檔案排除。&lt;br /&gt;排除名單放在&lt;span style="color: rgb(255, 0, 0);"&gt;/etc/non-list&lt;/span&gt;，只需要把不要備份的名稱加入即可&lt;br /&gt;以Firefox的暫存目錄來說，Firefox會自動建立暫存目錄/tmp/Cache，我們只需要在/etc/non-list中寫上：&lt;br /&gt;&lt;code&gt;Cache&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;如果我們希望排除多個檔案或目錄，例如檔案「EEE」和目錄「Cache」，則在/etc/non-list中寫上：&lt;br /&gt;&lt;code&gt;Cache&lt;br /&gt;EEE&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;備份的檔案會存在哪裡？檔名是什麼呢？&lt;br /&gt;備份的檔案會存為&lt;span style="color: rgb(255, 0, 0);"&gt;/RAMDISK_bak.tar&lt;/span&gt;，&lt;span style="color: rgb(255, 0, 0);"&gt;會在還原後自動刪除&lt;/span&gt;。&lt;br /&gt;此外，&lt;span style="color: rgb(255, 0, 0);"&gt;為了安全性的考量，/RAMDISK_bak.tar的權限會設為600&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;最後，因為這是第一版，所以我並沒有將上面提到的參數設為變數，不過這幾個script並不複雜，相信稍微看一下，就能夠看懂並修改，歡迎大家修改使用，改過後記得再貼出來造福更多人。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4214524536663435676?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4214524536663435676/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4214524536663435676&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4214524536663435676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4214524536663435676'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/08/linuxram-disk.html' title='Linux的RAM Disk(資料不消失版)'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-550773757332827368</id><published>2008-07-20T05:56:00.002+08:00</published><updated>2008-07-20T06:32:12.612+08:00</updated><title type='text'>得獎嚕～</title><content type='html'>這篇純粹是炫耀文。&lt;br /&gt;&lt;br /&gt;話說之前ITE(經濟部資訊專業人員鑑定)有寄廣告給我(因為我有考過網路通訊類證書)，說有個評比，又送MP3隨身聽、又送ASUS Eee PC，考的還是我熟悉的Linux，因此，我拿出了傳說中的小算盤撥弄了一下。&lt;br /&gt;恩～扣掉報名費，但是可以賺到MP3隨身聽和證書，甚至有機會賺到Eee PC.....&lt;br /&gt;划算～因此二話不說就報名了。&lt;br /&gt;&lt;br /&gt;本來想說，賺個MP3隨身聽，然後看看成績有沒有機會拼Eee PC，沒想到第一次考試的成績都很不錯(90,90)，這時候心想，Eee PC看來很有機會，這種成績，應該聽牌了吧～&lt;br /&gt;於是乎又把小算盤拿出來撥弄一下，考第二次之後，報名費要多少，加上第一次的報名費要多少～&lt;br /&gt;再查看一下評比的規定：&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;自符合評比資格之應考人開放式系統類合格成績中，取分數最高之兩科目計算&lt;br /&gt;            平均分數(小數點後第二位四捨五入)進行評比，若結果相同時依照以下條件順序決定優先次序：&lt;br /&gt;1. 開放式系統類合格科目數多者優先。&lt;br /&gt;2. 總答對題數多者優先。&lt;br /&gt;3. 總作答時間少者優先。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;看來要拿Eee PC，本錢要下足一點，第二次考試也要過，這樣勝率會更大、更有保障些，因此二話不說，又報名了～第二次雖然成績不非常好看(75)，不過志在通過，不在分數。&lt;br /&gt;因此就每天期待著評比的公佈～&lt;br /&gt;&lt;br /&gt;最後結果出來，我果然得獎了～不過名次比我預期的要低～高手果然是無所不在的～&lt;br /&gt;&lt;br /&gt;最近在煩惱，Eee PC是自用，還是賣掉換2代、3代，還是乾脆賣掉求現就好了。&lt;br /&gt;&lt;br /&gt;最後介紹一下ITE(經濟部資訊專業人員鑑定)，也算是對它即將送我MP3隨身聽和Eee PC的回饋。&lt;br /&gt;ITE全名叫做經濟部資訊專業人員鑑定，網址如下：&lt;br /&gt;&lt;a href="http://www.itest.org.tw/"&gt;ITE資訊專業人員鑑定&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這個鑑定其實算是模仿MCSE、CCNA之類的IT認證而建的，雖然是標示「經濟部」，但主辦其實就是電腦技能基金會，電腦技能基金會辦理的比較有名的認證，就是TQC，專門在考Office之類的操作，考取後一樣有證書。&lt;br /&gt;這張證書實際上並不很有名、也不很好用，根據我在IT公司工作的朋友說(他之前也有考)，IT公司其實不大看這張證書的。&lt;br /&gt;儘管如此，ITE還是有些值得一書地方。&lt;br /&gt;1. ITE算是國家證書，至少是經濟部承認的證書。&lt;br /&gt;2. ITE的起源很有趣，它是在「89年11月亞太經濟合作發展會議&lt;em&gt;部長級&lt;/em&gt;會議(Asia-Pacific Economic Cooperation；簡稱APEC)」時，由日本方面向經濟部提出的建議。&lt;br /&gt;3. 正如上面所說，因此ITE具有跨國性，日本也承認這個證書。&lt;br /&gt;&lt;br /&gt;因此，儘管ITE不怎樣，但是倒是個可以玩玩的證書，考個一張、兩張放身邊，還可以不同時期考，這樣可以拿到好幾個經濟部長的印章。 :p&lt;br /&gt;&lt;br /&gt;至於ITE的現況如何，根據我這次去考的經驗，很多高中生去考，感覺變成了技術士技能檢定的翻版，我不知道這樣是好還是不好。&lt;br /&gt;其次，之前我考網路通訊類的時候，並沒有「應考指南」這樣的東西，因此說實話並不好考，感覺範圍很雜、有些地方很細(指令的參數)；不過這次考試發現，已經有「應考指南」這樣的東西了，我這次考，還「送」了一本給我，到現場，也看到許多人人手一本，網路通訊類的也有。&lt;br /&gt;&lt;br /&gt;有了這樣的東西，要過真的容易很多，就我個人的感覺，它的難易度分配大致如下：&lt;br /&gt;1. Linux初階 應考指南大約200題考題，命中率大約8~9成&lt;br /&gt;2. Linux進階 應考指南大約200題考題，命中率大約6~7成&lt;br /&gt;3. 開放式XXX 應考指南只有40題考題，命中率沒注意，大概7~8題有出現&lt;br /&gt;&lt;br /&gt;上述內容乃我個人的心得，不代表ITE或電腦技能基金會的立場。&lt;br /&gt;&lt;br /&gt;至於名單中哪個是我，為了個人隱私，還是不公佈拉～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-550773757332827368?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/550773757332827368/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=550773757332827368&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/550773757332827368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/550773757332827368'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/07/blog-post.html' title='得獎嚕～'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-3542795961780472192</id><published>2008-07-03T21:02:00.005+08:00</published><updated>2008-08-31T10:52:36.584+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>NAT轉移</title><content type='html'>好陣子沒有po些技術文件或新的電腦、電子文。&lt;br /&gt;&lt;br /&gt;首先，最近世界性通貨膨脹+石油危機已經嚴重到連我都有明顯感受，最近在假日，都儘可能的改搭捷運了，摩托車只有在去學校時才用。&lt;br /&gt;其實我最近頗疑惑，改搭捷運之後，減碳不說，到底和騎車相比，開銷是多點還是少點？&lt;br /&gt;&lt;br /&gt;話說，NAT其實去年暑假和前年暑假其實都有進行升級，短期內其實不大需要進行更動，不過最近朋友在Y拍上看到便宜的ITX主機板，經過一番遊說之後，還是決定更換了。&lt;br /&gt;&lt;br /&gt;這次的NAT更換計畫，其實並不算升級，因為RAM沒換(因為插槽少一個，還變小了)，CPU時脈同樣都是800MHz，網路卡也是沿用之前買的Dual Port網卡，因此除了主機板之外，硬體幾乎沒太大變化，既然這樣，更換的理由是什麼？&lt;br /&gt;1. NAT size縮小，為未來微型化計畫預做準備&lt;br /&gt;2. 「據說」VIA EPIA系列的主機板很省電，這部份目前沒啥感受，唯一能說的是，溫度的確比較低，至少CPU風扇小了好幾號，顯示卡內建，而且不需要風扇也不會燙&lt;br /&gt;&lt;br /&gt;既然NAT已經換裝了，接下來呢？&lt;br /&gt;接續前兩次發文提到的DC-DC穩壓電路，目前的目標是，製作出主機板用的DC-DC Power Adapter，預期會跟Y拍上別人賣得功能類似，功率應該不大，但是純手工製作，成本應該不會太貴。&lt;br /&gt;主機板用的DC-DC Power Adapter怎麼製作？&lt;br /&gt;目前的理解是，ATX需要的電源主要有4組，分別是：&lt;br /&gt;3.3V&lt;br /&gt;5V&lt;br /&gt;12V&lt;br /&gt;-12V&lt;br /&gt;&lt;br /&gt;因此計畫是，製作4組DC-DC穩壓電路，降壓分別如上，然後就衝啦～&lt;br /&gt;&lt;br /&gt;而這部份，最近持續在找零件，因為之前買的那批LM2576-5都是固定5V輸出的，沒辦法製作成3.3V、12V、-12V，因此最近持續在找可調整型的DC-DC IC來使用。&lt;br /&gt;&lt;br /&gt;NAT部分值得一提的是，這次買的ITX主機板是二手的，買回來使用後發現上面有顆電容快不行了，大概在爆炸邊緣，這電容不查則以，一查嚇死人，它可以頂頂有名的GSC電容，google上打上GSC+爆電容，就可以發現到它多有名氣了。:p&lt;br /&gt;巧合的是，GSC的電容規格和我上次買的DC-DC穩壓電路需要的規格相同，而且我買的還是傳說中的固態電容，因此二話不說，就換了～&lt;br /&gt;這也是我第一次自行更換主機板電容，雖然只有換一顆，但是能把主機板修好，這還是非常值得驕傲的。&lt;br /&gt;至於舊的主機板(Abit KT7+杜龍800)，目前考慮把它拿去網拍賣賣看，看能賣多少錢。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-3542795961780472192?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/3542795961780472192/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=3542795961780472192&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3542795961780472192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/3542795961780472192'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/07/nat.html' title='NAT轉移'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6592130403755854861</id><published>2008-06-27T02:51:00.002+08:00</published><updated>2008-06-27T03:11:49.338+08:00</updated><title type='text'>wii台灣版？那也叫台灣版嗎？</title><content type='html'>任天堂的wii很不錯，去年年底就已經賣到爆炸了，當時的「台灣總代理」「博優公司」跳出來說「水貨全部都是盜版的」，後來甚至說什麼「水貨沒有通過電信檢測」。&lt;br /&gt;因為新聞太大了(主要是博優自己跑去NCC告狀)，NCC一查，發現wii主要零件都台灣製造，出口前都經過電信檢測了... = =&lt;br /&gt;而關於盜版說，因為任天堂並沒有在台灣正式販售，意思是，博優還拿不到代理權，那麼根本沒有盜版的說法，因為所謂的盜版，是台灣代理商已經取得該產品的代理，那麼就不能私下販售，但是代理商沒有拿到代理之前，盜版根本不成立。&lt;br /&gt;因為以上2個說法都被戳破了，博優開始唬爛放利多，說「wii會有台灣專用版，會和中華電信合作，架設台灣專用主機」，「會有在地化的中文介面」，「價格將會多便宜多便宜」。&lt;br /&gt;結果事隔將近一年，以上全部幻滅。&lt;br /&gt;台灣版介面仍舊是「日文」，台灣版「沒有辦法連線伺服器」，台灣版價格「趨近於水貨，不算遊戲，定價還比較貴」，這每項每項都像一把劍，深深的、用力的刺進了苦苦等待的消費者們。&lt;br /&gt;&lt;br /&gt;「博優」阿～現在已經是21世紀了，請不要再用30年前的方式經營電玩業了。&lt;br /&gt;沒有中文介面，沒有台灣專用伺服器，這些牽拖了半天，關鍵其實就是因為技術不如人，只想做個「進出口商」，既不想、也沒能力進行產品的相關support。&lt;br /&gt;最近媒體開始說，因為華人市場小...等等，但是說到底，中文介面純粹就是談判跟技術的結果，沒技術不會中文介面的製作，只是跟任天堂喊著要中文介面，怎麼可能會有～&lt;br /&gt;要能夠更進一步的合作，拿出技術和工程師，加上談判才會有阿～&lt;br /&gt;台灣專用伺服器的部份更是，怎麼看都像是沒技術的結果，我想主要問題還是出在伺服器的經營成本上吧～&lt;br /&gt;畢竟台灣版「不能連線伺服器」，這表示問題不是在wii上，而是根本沒伺服器能連，為什麼沒伺服器連？&lt;br /&gt;相信大家心中都有一把尺，任天堂台灣代理商這樣搞，我們只能祈禱，它能趕快因為市場環境被淘汰掉。&lt;br /&gt;最後，還是老話～&lt;br /&gt;與其接受不平等的wii待遇，還是等模擬器比較實際些～&lt;br /&gt;等只要花時間，在現在世界通膨的大環境中，少花錢等於賺了～&lt;br /&gt;等模擬器既不花錢，時候到了又能達到一樣的享受～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6592130403755854861?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6592130403755854861/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6592130403755854861&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6592130403755854861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6592130403755854861'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/06/wii.html' title='wii台灣版？那也叫台灣版嗎？'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6305059014900212326</id><published>2008-06-11T02:24:00.003+08:00</published><updated>2008-07-17T08:25:23.913+08:00</updated><title type='text'>綠卡 ≠ 雙重國籍～別再混淆視聽了～</title><content type='html'>好陣子沒po blog，一來就是一篇政治文，實在是因為覺得太莫名其妙了～&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;a href="http://zh.wikipedia.org/wiki/%E7%BB%BF%E5%8D%A1"&gt;維基百科對綠卡的說明&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;綠卡白話的說，就是「居留許可證」，並不是「公民證」，意思是說，有綠卡不等於有雙重國籍，&lt;span style="color: rgb(255, 0, 0);"&gt;綠卡 ≠ 雙重國籍&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;在政府的法令中有規定，「從事公職者，不能具備多重國籍」，你也許會說，我空口說白話，胡說，沒問題～來個連結：&lt;br /&gt;&lt;a href="http://old.npf.org.tw/PUBLICATION/CL/091/CL-B-091-039.htm"&gt;對「政務官、民選首長宜否納入忠誠查核」之評析&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;其中關於公職者不能具備多重國籍的解說如下，在此轉述：&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;例如未具或喪失中華民國國籍、或具雙重國籍、或動員戡亂時期終止後犯內亂、外患、或有貪污行為經判刑確定，或通緝尚未結案，或判處其他有期徒刑尚未執行或執行未畢，依法停止任用，禠奪公權尚未復權等，依法均不得遴任為政務官。&lt;/span&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;然後說行政團隊，那什麼爛解釋阿，清查政務官綠卡是ok，但是要把綠卡說明清楚阿，只說工作需要，這樣是有國際觀的人才，當然被當箭靶阿～&lt;br /&gt;因為現實狀況是，10個有9個不知道綠卡跟公民權的關係，你們這樣回答，不是讓那些人更能發揮嗎！&lt;br /&gt;拜託～清醒點吧～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6305059014900212326?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6305059014900212326/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6305059014900212326&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6305059014900212326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6305059014900212326'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/06/blog-post.html' title='綠卡 ≠ 雙重國籍～別再混淆視聽了～'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-8646888874809816838</id><published>2008-05-26T22:59:00.002+08:00</published><updated>2008-05-26T23:21:46.141+08:00</updated><title type='text'>省錢省能源省時間～騎機車最好</title><content type='html'>相信買3C商品的人都聽過CP值，也都希望CP值越高越好，同樣的，在全世界省電、省油、省能源的趨勢下，CP值最高的交通工具是什麼呢？&lt;br /&gt;其實就是「騎機車」～&lt;br /&gt;&lt;br /&gt;剛剛看新聞，CNN做了個簡單有趣的實驗，3個記者同時一起出發，一個開車、一個坐地鐵(捷運)、一個騎腳踏車，然後看看誰先到CNN辦公室。&lt;br /&gt;&lt;br /&gt;結果揭曉，開車最快到，地鐵次之，騎腳踏車最慢到。&lt;br /&gt;而花費呢？開車花費約4美金，地鐵2.9美金，腳踏車0美金。&lt;br /&gt;&lt;br /&gt;從這邊的實驗來看，地鐵似乎是最折衷的方案，具備了不多的花費和較快的速度。&lt;br /&gt;&lt;br /&gt;可是實際上，還有個選項沒有實驗，那就是騎機車。&lt;br /&gt;&lt;br /&gt;機車的速度其實不慢，同樣可以到60公里、80公里，但是沒有汽車的重量，因此機車的耗油很省。&lt;br /&gt;根據「&lt;a href="http://www.moeaboe.gov.tw/"&gt;經濟部能源局&lt;/a&gt;」提供的「&lt;a href="http://www.moeaboe.gov.tw/opengovinfo/Plan/energy/WorkStatisticsEng.aspx"&gt;車輛油耗測試資料統計&lt;/a&gt;」，125 c.c. 的機車一公升大約可以行駛40公里左右，而小轎車來說，Toyota的PRIUS (HYBRID)看來已經是最省油的，而且又用了油電技術，它一公升行駛24.7公里，而其他省油車的油耗，多半落在17,18公里左右。&lt;br /&gt;&lt;br /&gt;由此可以發現到，汽車的油耗，至少是機車的2倍，可是機車和汽車在市區的速度，基本上差不多。&lt;br /&gt;此外，機車和腳踏車一樣，當汽車遇到塞車時，機車可以直接穿越，具有和腳踏車一樣，抗塞車能力都不錯，可是和腳踏車不同，機車的車速可以比腳踏車快很多。&lt;br /&gt;而和地鐵相比，首先，機車的能源成本比地鐵便宜，照前面CNN的實驗，汽車4美金，地鐵2.9美金，但如果是機車，成本大約是汽車的一半，也就是2美金，比地鐵還要便宜，可是機車比地鐵更方便，因為地鐵通常沒辦法到達目的地，也沒辦法出門就直接搭地鐵，都需要走一段路，這段路的時間通常會比較久，而機車基本上可以從出門直達目的地，中間不需要任何轉乘或走路。&lt;br /&gt;&lt;br /&gt;從這邊來看我們可以發現，台灣人都很精明，很自動的都選擇了CP值最高的交通工具。&lt;br /&gt;在這樣高油價的時代，是不是該犒賞我們這些機車族呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-8646888874809816838?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/8646888874809816838/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=8646888874809816838&amp;isPopup=true' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8646888874809816838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8646888874809816838'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/blog-post_26.html' title='省錢省能源省時間～騎機車最好'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4931110783764933275</id><published>2008-05-21T12:01:00.004+08:00</published><updated>2008-05-21T14:13:04.116+08:00</updated><title type='text'>四川大震，一起哀悼</title><content type='html'>這次四川發生了8.0的大地震，傷亡慘重，讓我們一起祝福他們。&lt;br /&gt;&lt;br /&gt;這次的四川地震，相信大部分的人都能感受到中國政府對災難的重視程度，儘管有人說，這是因為奧運的而表演給國外看的，但我認為，有重視總是好的，畢竟和過年時的雪災相比，明顯能夠感受到差異。&lt;br /&gt;&lt;br /&gt;而這次的四川地震，大家都希望能夠有錢出錢，有力出力，順應這波潮流，我也透過&lt;a href="http://www.17885.com.tw/szechwan/index.asp"&gt;智邦公益館&lt;/a&gt;捐了3000元，同時也在blog右下角放上了「關懷四川震災」的圖示。&lt;br /&gt;一般都說，捐一日所得，身為研究生的我，3000元可是我1/3個月的所得，相信是很夠意思了。&lt;br /&gt;而我是&lt;a href="http://www.17885.com.tw/npo/npodonate.asp?caseid=26"&gt;捐給「紅十字會」進行賑災&lt;/a&gt;，因為說起來，我很早po過，我個人不是很喜歡慈濟。&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;這邊要附註一點，&lt;/span&gt;&lt;a style="color: rgb(255, 0, 0); font-weight: bold;" href="http://www.17885.com.tw/contribute/question.asp"&gt;四川的捐款是可以百分之百抵稅的&lt;/a&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;，因此可以給老爸抵稅，抵稅方式，憑捐款收據即可。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這次四川地震其實有很多面向可以來看，首先，大規模的利用軍事科技進行救災，這應該是中國的第一次，此外，從中國救難隊配備生命探測儀、救難犬來看，中國現在特別搜救隊基本上已經很有水準了，和其他國外的搜救隊相比，並不差。&lt;br /&gt;比較值得仔細注意到的包括了：&lt;br /&gt;1. 這次中國的軍隊動員能力，大概貼近了最大的動員能力，能在這麼短的時間內動員到這麼多的軍警，真的是相當誇張，如果我沒記錯，24小時內就用運輸機和12架借來的民航機動員了將近7000名解放軍。&lt;br /&gt;&lt;br /&gt;2. 這次應該是中國第一次在救災行動中動用空降部隊，事實上，我在台灣，印象中從來沒看過有利用空降部隊進行登陸，相當聰明而有效的作法，而且也看得出來，中國的空降能力相當優異。&lt;br /&gt;&lt;br /&gt;3. 這次中國的強行軍，也很讓人驚訝，能夠動員這麼多步兵部隊，而且以強行軍的方式快速的進入災區，這點也非常了不起。&lt;br /&gt;&lt;br /&gt;4. 台灣在八掌溪事件之後，政府終於了解到，成立一個直昇機的搜救部隊是很重要的，不論在高山救援、救火都非常重要，因此現在，每次到了山難、森林火災、颱風、海難、地震，都可以看到搜救直昇機。而這次，中國大規模的利用直昇機進行物資運補、人員運補，可以說是一大進步，而事實證明，效果的確非常好。&lt;br /&gt;&lt;br /&gt;5. 衛星定位的優勢，這次一個很搶鋒頭的系統，就是衛星定位系統，尤其是大陸自行研發的北斗一號，之前曾經在網路上查過北斗一號的資料，北斗一號和一般常用的GPS相比，北斗一號只能用在亞洲，只有3顆衛星進行定位，此外，北斗一號的通訊和GPS不大一樣，北斗一號的定位方式，是和衛星或無線電站台通訊後定位的，也就是說，北斗的系統是雙向通訊，而GPS不同，GPS是單向的由衛星不斷發射信號，沒辦法和GPS衛星通訊。&lt;br /&gt;相比之下，北斗系統的缺點是，當使用人數很多的時候，會因為頻道忙碌、或者衛星負載太重而斷線或失效，但這樣的設計也有優點，而且在這次救災中完全顯現出來。&lt;br /&gt;這次救災應該是中國第一次將衛星定位投入救災中，而且我們可以注意到，所有北斗的定位系統，因為能和衛星雙向通訊，因此就算因為地震，災區沒水沒電，但仍然可以準確的讓衛星站定位出所有北斗的終端機位置。&lt;br /&gt;和北斗相比，GPS因為是單向的，所以位置通常需要靠其他通訊方式來傳送，最常用的就是基地台，但是像這次，災區沒水沒電沒通訊，基地台都不通，其實GPS用處就受到了限制。&lt;br /&gt;不過相對來說，這次台灣的旅行團能夠找到，GPS還是主要的功臣。&lt;br /&gt;&lt;br /&gt;6. 這次大陸非常難得的對新聞媒體寬待，甚至有網友質疑部份新聞的真實性，表示中國已經從以往的控制媒體，轉而開放媒體、利用媒體來宣傳，這其實很值得鼓勵，表示大陸對媒體比以前更開放了。&lt;br /&gt;&lt;br /&gt;7. 這次大陸對救災的分工很明確，總理(也就是我們的行政院長)第一時間趕到現場，也很積極的發佈指示和勘災，這很值得讚賞。&lt;br /&gt;想想看，如果高層不到第一線，只在辦公室裡面指揮，第一線的各級幹部又怎麼會推進到災區呢？畢竟人都多少有惰性，上面沒指示，下面沒動作。&lt;br /&gt;而雖然總理在災區，但是仍可以發現，對於指揮調度其實不錯，沒有因為人在第一線導致指揮調度出現問題。&lt;br /&gt;&lt;br /&gt;8. 無人飛機探測災情，這在大陸應該也是首次出現的吧。對無人飛機的探測，在台灣我好像只聽說過颱風時候有用無人飛機去偵查，賑災、火災、風災...等，我還沒看過台灣有動用過無人飛機偵查，這也很值得我們學習。&lt;br /&gt;&lt;br /&gt;整體來說，大陸這次的震災應變，的確有展現出大國的應變態勢，而且可以注意到現代化程度很高，非常值得讚賞。&lt;br /&gt;&lt;br /&gt;話說回來，這次台灣的新聞媒體我就很有些意見，所有的新聞都圍繞在台灣捐錢世界第一，大陸富豪不捐錢；搜救隊去大陸，大陸民眾沒見過，感覺很新奇；旅行團利用GPS找到了；旅行團在大陸醫院接受X光等檢查；台灣提供高解析度衛星照片給大陸...等。&lt;br /&gt;感覺上，台灣的新聞報導，一直一直都以一種優越感在報導四川地震的新聞，好像大陸是不毛之地，設備落後、人民沒常識一樣，偏偏所有新聞頻道都這樣，民Ｘ尤其嚴重。&lt;br /&gt;可是實際上，如果去「&lt;a href="http://www.sconline.com.cn/"&gt;四川在線&lt;/a&gt;」的網頁看，你會看到大陸的大部分新聞畫面，正如前面提過的，大陸現在也有設備先進的救難隊，大陸這次救災，運輸直昇機幾乎都是大型的，他們一樣使用了非常先進的設備，我覺得新聞媒體在報導的時候，還是把優越感收起來吧。&lt;br /&gt;&lt;br /&gt;最後，上面說了一些我對這次震災的看法，重點還是只有一個，這次大陸遇到的，是世界少見的超大型地震，對於大陸、對於收災者、對於罹難者，我們都應該用心來祈福，並期望四川能夠趕快復原回來。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4931110783764933275?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4931110783764933275/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4931110783764933275&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4931110783764933275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4931110783764933275'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/blog-post_21.html' title='四川大震，一起哀悼'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-734936633891795374</id><published>2008-05-18T03:37:00.002+08:00</published><updated>2008-05-18T04:15:27.097+08:00</updated><title type='text'>LM2576T-5穩壓電路一號</title><content type='html'>之前曾經寫過，要開始自走車的開發計畫，希望能夠把ARM的小電腦放在自走車上跑，不過一直以來都沒辦法開展，其中一個原因就是電源。&lt;br /&gt;&lt;br /&gt;大部分的ARM開發板都提供小變壓器供電，可是仔細看，這些變壓器清一色都是Switch Power，電流都可以到2.0A～3.0A，在我們沒辦法準確的估計出ARM的耗電量時，我們只能相信，給它2.0A～3.0A的電源應該就夠了。&lt;br /&gt;&lt;br /&gt;回想8051單晶片自走車的電源電路，儘管我一直沒做過8051自走車，但是找資料這種事還是會的，大部分8051自走車的電源電路，都是使用7805或LM317這兩顆穩壓IC，可惜的是，這兩顆穩壓IC的輸出電流都很小，像7805只有100mA，這和我需要的2.0A～3.0A相差很大，因此，我們需要找其他解決方案。&lt;br /&gt;&lt;br /&gt;看看目前新式的DC-DC Converter，幾乎都是Switch的天下，除了降壓的電路外，甚至也有升壓電路和升降壓電路，也都有做成穩壓IC，可惜的是，一般散貨市場非常不好找，幾乎找不到這類IC，因此計畫幾乎放棄。&lt;br /&gt;&lt;br /&gt;最近的一次搜尋中，終於發現簡單、便宜、好找、好用的穩壓IC，那就是LM2576，這顆穩壓IC很好找，而且很便宜，在Y拍上就可以找到，也可以零買，網拍價格只需要30~35元，而這顆IC，它是一顆Switch降壓IC，它的輸出電壓有固定式的3.3V(LM2576-3.3)、5V(LM2576-5.0)、12V(LM2576-12)...等，也有可調式的LM2576-ADJ，輸出電流最大可達3.0A，至於輸入，可以容許8V～40V的輸入電壓。&lt;br /&gt;&lt;br /&gt;由此可以發現，LM2576真的很不錯，CP值非常高，因此我就利用這次週末試著找零件做出來。&lt;br /&gt;&lt;br /&gt;在這邊我不得不說，光華商場實在是.....，該有的零件都沒有，電腦倒是賣很多，這也叫光華商場嗎？&lt;br /&gt;這兩天去找零件，還是金華電子賣得比較齊全，至少我要的鋁質電容，那邊都還可以找到，其他在國際電子廣場的幾家，包括B1那兩家(良Ｘ、Ｘ達)，B2靠樓梯那家(B2的Ｘ鄉我沒去)，都沒賣鋁質電容，不是沒有我要的型號，是完全沒有賣。&lt;br /&gt;不過話說回來，金華電子也不是什麼善男性女，它LM2576-5一顆賣我90元，前面說過，Y拍、露天拍都有賣，一顆也不過30、35元，加上30~50元運費，一顆我可以買2、3顆，雖然如此，但是考慮到我只有週末2天的時間，所以我還是先買了2顆來測試(怕一顆被我燒了)。&lt;br /&gt;&lt;br /&gt;關於LM2576-5的電路，我就不多說了，基本上電路我是參考下面的datasheet做的：&lt;br /&gt;&lt;a href="http://www.alldatasheet.com/datasheet-pdf/pdf/167372/MOTOROLA/LM2576-5.html"&gt;http://www.alldatasheet.com/datasheet-pdf/pdf/167372/MOTOROLA/LM2576-5.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;輔助則是參考：&lt;br /&gt;&lt;a href="http://forum.jorsindo.com/viewthread.php?tid=13708"&gt;http://forum.jorsindo.com/viewthread.php?tid=13708&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;目前我已經把電路生出來了，雖然很醜，但是看起來應該是會動的。&lt;br /&gt;&lt;br /&gt;下面是我電路的正反面照片：&lt;br /&gt;正面&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201415202712084226"&gt;&lt;img src="http://lh5.ggpht.com/ycfunet/SC8jkY74XwI/AAAAAAAAAUw/aV442ci925k/s144/P1010009.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;背面&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201415228481888018"&gt;&lt;img src="http://lh3.ggpht.com/ycfunet/SC8jl474XxI/AAAAAAAAAU4/pTrDZQ1lCVY/s144/P1010011.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;當然，我也進行了些簡單的測試：&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201414274999148226"&gt;&lt;img src="http://lh5.ggpht.com/ycfunet/SC8iuY74XsI/AAAAAAAAAT0/8Rx3nNoJmyw/s144/P1010016.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201414292179017442"&gt;&lt;img src="http://lh5.ggpht.com/ycfunet/SC8ivY74XuI/AAAAAAAAAUE/qF_kswaCc5g/s144/P1010018.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201414283589082834"&gt;&lt;img src="http://lh3.ggpht.com/ycfunet/SC8iu474XtI/AAAAAAAAAT8/JFhIPdJ_mwY/s144/P1010017.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;接上ARM開發板後的照片：&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201414296473984754"&gt;&lt;img src="http://lh6.ggpht.com/ycfunet/SC8ivo74XvI/AAAAAAAAAUM/VXv9kAAeBwE/s144/P1010020.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com.tw/ycfunet/LM2576T5/photo#5201415795417571106"&gt;&lt;img src="http://lh3.ggpht.com/ycfunet/SC8kG474XyI/AAAAAAAAAVA/nd0zIkwA4BY/s144/P1010022.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;目前我還測不到最大電流，剛剛稍微想了下，因為V=IxR，所以V = 5V，I = 3A，則R = 1.66666&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-family:新細明體, serif;"&gt;Ω&lt;/span&gt;&lt;/span&gt;。&lt;br /&gt;所以看起來，電阻應該要用1.7&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-family:新細明體, serif;"&gt;Ω&lt;/span&gt;&lt;/span&gt;～2.0&lt;span style="font-family:Times New Roman, serif;"&gt;&lt;span style="font-family:新細明體, serif;"&gt;Ω，才能量得到2.5A～3.0A的輸出電流，今天再去找電阻囉！&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-734936633891795374?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/734936633891795374/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=734936633891795374&amp;isPopup=true' title='9 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/734936633891795374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/734936633891795374'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/lm2576t-5.html' title='LM2576T-5穩壓電路一號'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/ycfunet/SC8jkY74XwI/AAAAAAAAAUw/aV442ci925k/s72-c/P1010009.JPG' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-8154546383853248989</id><published>2008-05-13T04:45:00.002+08:00</published><updated>2008-07-17T08:26:59.502+08:00</updated><title type='text'>自助加油成功</title><content type='html'>現在油價越來越誇張，520之後還肯定會漲價，加上我目前還沒畢業，每星期還要不斷的往返林口跟台北，雖然跟之前每天來回相比，已經少了很多了，但是油錢仍然是很大的開銷。&lt;br /&gt;我算過，以我的悍將4V一代來說，我大概來回2趟半(去回-去回-去)，就要加油了，以前每次加油大概80~100，現在則都要100~150，上次騎到很底去加油，還給我加到200元，不只我當場傻眼，我看後面那個機車騎士(還載女友)，表情也怪怪的盯著價格看。&lt;br /&gt;&lt;br /&gt;中油提供的加油優惠並不多，目前在加油上能夠有補償的，以我所知道的就是：&lt;br /&gt;1. 中國信託中油卡(每30元2點紅利；紅利看兌換商品，最划算大概每10點可以換到新台幣1元)&lt;br /&gt;2. 自助加油(每公升便宜0.8元)&lt;br /&gt;&lt;br /&gt;雖然都不多，但總比甚麼都沒有要好。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-8154546383853248989?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/8154546383853248989/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=8154546383853248989&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8154546383853248989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8154546383853248989'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/blog-post_13.html' title='自助加油成功'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-276694700825607995</id><published>2008-05-08T21:00:00.010+08:00</published><updated>2008-08-31T10:52:58.776+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>RRDTool初步認識與入門</title><content type='html'>人就是會手賤，手賤完之後就開始後悔，偏偏這世界沒有後悔藥，沒做前很期待，總覺得會更好，做了之後很後悔，後悔早知道就不做了。&lt;br /&gt;&lt;br /&gt;RRDTool就是這樣，也因此出現了這篇～RRDTool初步認識，其實我一整個無言～&lt;br /&gt;&lt;br /&gt;會玩NAT的，多半都會想玩玩mrtg，幾乎所有講到NAT建置的書，都會介紹SNMP和MRTG，MRTG幾乎已經是流量分析中的王者。&lt;br /&gt;可是在玩過MRTG之後，經常會覺得MRTG不夠好用，總覺得哪裡怪怪的，例如：&lt;br /&gt;1. 一張圖中，沒辦法多個機器的流量相疊比較&lt;br /&gt;2. 一張圖中，統計資料永遠只有2筆，永遠只有線條+長條的圖&lt;br /&gt;3. 那個流量的間隔時間，基本上單位都很固定，要長、要短都很不方便&lt;br /&gt;&lt;br /&gt;而許許多多免費、商業的流量分析軟體，圖片一個比一個好看，當然就會讓人有種嚮往，接著～經過google大師的指點，很容易就會跳入RRDTool的陷阱中。&lt;br /&gt;&lt;br /&gt;我在這邊強烈的建議，想跳但還沒跳的人，務必三思，RRDTool沒這麼好玩～&lt;br /&gt;和MRTG相比，便利性是完全不用說了，覺得MRTG已經很難搞的，RRDTool不要碰。&lt;br /&gt;和MRTG相比，功能性並沒有比較強，仔細看所有對RRDTool的介紹都提到，RRDTool是一套強大的「圖表繪圖軟體」，但很少會說它是一套強大的資料收集軟體。&lt;br /&gt;&lt;br /&gt;如果執意要跳的，我們繼續看下去... :p&lt;br /&gt;關於RRDTool的中文教學，毋庸置疑的，「&lt;a href="http://www.study-area.org/tips/rrdtool/rrdtool.html"&gt;rrdtool 教學&lt;/a&gt;」的確是經典。&lt;br /&gt;但經典不代表解說完整，作者自己也說了，「rrdcgi 或 rrd 的 perl module 皆不在我們的介紹範圍」，但我認為，RRDTool的module才是關鍵。&lt;br /&gt;其實上述的教學，很值得參考的是「語法解說和介紹」，就語法的解說來說，這篇真的是經典，事實上，整篇教學也是著重在語法的部份。&lt;br /&gt;&lt;br /&gt;好拉～其他廢話不多說了，我們開始「初步認識」RRDTool吧！&lt;br /&gt;這邊要備註一下，我這邊不會提到任何語法，因為我還沒看到那邊，而且語法部份上面的教學才是經典，我主要會針對RRDTool入門時的疑問進行解釋。&lt;br /&gt;&lt;br /&gt;首先，我們先從MRTG開始說起，畢竟這是大部分人都聽過的，也是會接觸RRDTool的人多半都有經驗的，所以我假設大家對MRTG都有基本認識，如果問MRTG是什麼的，請先去翻翻書。&lt;br /&gt;MRTG在流量分析來說，算是整合的很好的工具程式。&lt;br /&gt;MRTG其實包含了2個部份：&lt;br /&gt;1. 流量收集&lt;br /&gt;2. 圖表繪製&lt;br /&gt;&lt;br /&gt;我們都知道要使用MRTG前，要先安裝SNMP，事實上MRTG所有的流量資訊都是從SNMP取得的，也就是說，SNMP就是一個提供流量資訊的伺服器，你用程式連它，它就會給你「現在的流量」。&lt;br /&gt;所以MRTG的第一部份功能，就是定期的詢問SNMP Server(通常是用crontab)，取得流量。&lt;br /&gt;這部份MRTG比RRDTool方便非常多，方便的地方在於，MRTG提供了「cfgmaker」這樣的程式，透過它就能幫我們詢問SNMP，並轉換成MRTG的設定，「我們完全不需要知道SNMP查詢出來的資料格式」。&lt;br /&gt;同樣的，在每次MRTG執行時，我們一樣不需要知道SNMP的資料格式，MRTG就會幫我們轉譯成它要的資料，接著自動存成特定的紀錄檔(例如：127.0.0.1_2.log)。&lt;br /&gt;&lt;br /&gt;MRTG的另一部分功能就是「圖表繪製」，前面產生出來的log檔，MRTG會自動把相對應的圖表畫出來。&lt;br /&gt;因此MRTG的動作流程是：&lt;br /&gt;&lt;code&gt;執行 mrtg /etc/mrtg.cfg 後&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;詢問SNMP目前流量 -&gt; 畫出圖表&lt;br /&gt;&lt;br /&gt;比較詳細的流程是：&lt;br /&gt;&lt;br /&gt;判斷 mrtg.cfg -&gt; 根據 mrtg.cfg 詢問SNMP目前流量 -&gt; 儲存成 xxx.log 紀錄檔 -&gt; 畫出圖表 -&gt; 儲存成PNG 圖檔&lt;br /&gt;&lt;br /&gt;而 RRDTool 和 MRTG 也有些類似，但又不完全一樣。&lt;br /&gt;RRDTool 同樣有 2 個部份的功能：&lt;br /&gt;1. 資料紀錄(但不包含 SNMP 的溝通)&lt;br /&gt;2. 圖表繪製&lt;br /&gt;&lt;br /&gt;RRDTool 的紀錄檔格式和 MRTG 完全不同，它使用的紀錄檔格式是 .rrd 的檔案，是自訂的特殊格式。&lt;br /&gt;此外，RRDTool 在圖表繪製的部份有非常大的彈性，在 MRTG 中，「永遠只有一種圖表樣式」，每個圖表「永遠只能有 2 筆資料」，RRDTool 提供了更多的圖表繪製功能，好處是，你能根據需要畫出複雜的圖表，壞處是，你必須從頭到尾自己定義圖表的線條樣式、單位、類型，有點像是M$ Excel中，製作圖表的文字版設定，這讓 RRDTool 圖表繪製變得很複雜。&lt;br /&gt;&lt;br /&gt;和 MRTG 相比，RRDTool 有幾個差異點：&lt;br /&gt;1. MRTG 將全部流程包裹起來，每次執行都是完全動作；RRDTool 則把流程的動作分離，資料紀錄歸資料紀錄，圖表繪製歸圖表繪製&lt;br /&gt;2. MRTG 提供 SNMP 的溝通，能夠自行解析 SNMP 的資料；RRDTool 沒有辦法自行解析 SNMP 資料，它的資料紀錄，只用來產生 .rrd 紀錄檔&lt;br /&gt;&lt;br /&gt;所以我們到這邊可以先做幾個小結論：&lt;br /&gt;1. MRTG 的功能性來說，是比 RRDTool 更強的，因為它包含了 SNMP 的解析，而 RRDTool 沒有&lt;br /&gt;2. 我們可以發現到，RRDTool 使用的資料紀錄不是單純的 .log，而是自有格式 .rrd，就資料儲存的彈性上，會比 MRTG 更好。&lt;br /&gt;3. RRDTool 的效能可以大幅超越 MRTG，原因包括：&lt;br /&gt;a. 因為 RRDTool 把所有操作流程分離，我們在定時操作時，只需要產生 .rrd 紀錄檔，並不需要畫圖表&lt;br /&gt;b. RRDTool 因為使用特殊的格式，能加快處理速度，在 .rrd 紀錄檔的存取上可以比 MRTG 更快&lt;br /&gt;c. RRDTool 並不需要額外解析判斷 SNMP 的 code，因為 RRDTool 定位是圖表繪製工具，並不是專門的流量繪製工具，所以並不負責 SNMP 資料的判讀，這也加快了它的速度，讓程式在這部份更單純&lt;br /&gt;4. MRTG 只提供「一種圖表樣式」，缺乏彈性，但是簡單方便，RRDTool 彈性很大，但是需要自訂很多繪圖的參數&lt;br /&gt;&lt;br /&gt;接下來，我們來介紹&lt;a href="http://www.study-area.org/tips/rrdtool/rrdtool.html"&gt;rrdtool 教學&lt;/a&gt;中沒提到的rrdcgi。&lt;br /&gt;&lt;br /&gt;RRDTool 本身雖然是個應用程式，但是 RRDTool 也有提供其他語言用的 module，可以讓其他語言直接呼叫執行。&lt;br /&gt;以 RRDTool 本身來說，作者開發了 rrdcgi，這個程式可以被用來產生 web-page。&lt;br /&gt;&lt;br /&gt;想想看，我們在上面提到過，RRDTool 把操作流程分離，定時產生 .rrd 資料和圖表繪製是分開的。&lt;br /&gt;而作者又另外提供了 rrdcgi 來產生 web-page，因此我們可以注意到，「RRDTool 的圖表繪製部份並不需要定期來製作(意思是：我們不用每 5 分鐘產生很多張 PNG 流量圖)」，事實上，我們可以利用 rrdcgi，當使用者瀏覽網頁時，動態的產生圖表。&lt;br /&gt;這樣的好處是，我們不需要每 5 分鐘產生一次，可以在有人瀏覽時才產生，對於比較小的伺服器來說(像家裏的電腦)，可以節省很多系統負載；對於專門的 Log Server 來說，可以把圖表的負載轉嫁出去；對於更有即時性的資料來說，我們可以更即時的繪製出目前的資料。&lt;br /&gt;&lt;br /&gt;前面我們提到過，RRDTool 的資料收集並不方便，要蒐集 SNMP 的資料，居然還要我們自己用 snmpget 來抓資料，並且自己分析內容，想到就昏倒了。&lt;br /&gt;有沒有更方便的辦法，尤其是已經使用 MRTG 的我們，要轉移到 RRDTool 有沒有更快的方式。&lt;br /&gt;&lt;br /&gt;有的～我們可以在 mrtg.cfg(通常是 /etc/mrtg.cfg) 中加入下面這條：&lt;br /&gt;LogFormat: rrdtool&lt;br /&gt;&lt;br /&gt;之後執行&lt;br /&gt;mrtg /etc/mrtg.cfg&lt;br /&gt;&lt;br /&gt;MRTG 就會非常聰明且自動的幫我們把 MRTG 的所有 .log 紀錄檔轉換成 .rrd 紀錄檔，未來每次的執行，都會自動更新 .rrd 紀錄檔。&lt;br /&gt;&lt;br /&gt;這樣的意義何在？&lt;br /&gt;前面我們提到過，MRTG 和 RRDTool 的一個不同點在於，MRTG 包含了 SNMP 的資料解析能力，RRDTool 沒有，而使用上面的設定之後，我們就能夠利用 MRTG 幫我們把 SNMP 的資料解析出來，之後它會自動呼叫 rrdtool 把資料寫成 .rrd 格式的紀錄檔。&lt;br /&gt;如此一來，我們不需要擔心 MRTG 轉移時舊紀錄遺失，也不用為了如何用 snmpget 產生 SNMP資料，更不需要煩惱 rrdtool 收集資料時的參數，我們只需要把重心完全放在 RRDTool 的強項，資料繪製上。&lt;br /&gt;這邊要注意，雖然上述辦法似乎不錯，但是 RRDTool 收集資料時有很多參數可以設定，用 MRTG 來幫我們產生 .rrd，這些設定是沒辦法用的，意思是，「如果需要更詳盡的紀錄資訊，自己寫資料解析程式仍舊不可避免。」&lt;br /&gt;這邊我的建議是，「從 MRTG 開始，MRTG 用得很順了，開始改用 RRDTool 來繪製圖表，之後再更進一步自己寫解析程式，自己使用 RRDTool 來建立資料。」&lt;br /&gt;&lt;br /&gt;我們都知道，傳統上來說，CGI 大多是 perl 寫的，CGI 的缺點我就不多說了，這已經是 FAQ 的答案了，而 RRDTool 提供 rrdcgi，從&lt;a href="http://oss.oetiker.ch/rrdtool/"&gt;網頁&lt;/a&gt;上就提到了，它能提供 shell/perl 的操作。而其他語言呢？&lt;br /&gt;&lt;br /&gt;RRDTool 也提供了包括 Ruby、Python 的 module，透過這些 module，可以在不同的語言中呼叫使用 RRDTool，尤其因為這類 module 都是呼叫 librrd(RRDTool Library)，因此速度上、效率上都會比 system() 執行 rrdtool 要更好。&lt;br /&gt;而以我來說，我個人在 shell script 和 web 中，偏好使用 php，也只會使用 php，有沒有 RRDTool 的 php module 呢？&lt;br /&gt;有的～RRDTool 的 php module 教學網址如下：&lt;br /&gt;&lt;a href="http://www.ioncannon.net/system-administration/59/php-rrdtool-tutorial/"&gt;http://www.ioncannon.net/system-administration/59/php-rrdtool-tutorial/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;由於 Debian/Ubuntu 套件庫中並沒有包含 RRDTool 的 php module，因此我們要自己「製造」出來，相關的教學網址如下：&lt;br /&gt;&lt;a href="http://www.ioncannon.net/system-administration/25/how-to-build-the-php-rrdtool-extension-by-hand/"&gt;http://www.ioncannon.net/system-administration/25/how-to-build-the-php-rrdtool-extension-by-hand/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;目前我已經做成功了，phpinfo() 中已經有顯示 rrdtool 的 module，相關的教學會在之後另外 po 一篇。&lt;br /&gt;&lt;br /&gt;最後最後，在初步認識的最後面，我要提出不使用 RRDTool 的意見。&lt;br /&gt;前面提到過，RRDTool 分為「資料紀錄」和「繪製圖表」兩部份，我們可以看作：&lt;br /&gt;前段-資料蒐集&lt;br /&gt;後段-繪製圖表&lt;br /&gt;&lt;br /&gt;1. RRDTool 在前段-資料蒐集中，並沒有提供任何資料解析的能力，因此如果認為 MRTG 的資料處理並不夠好用，那麼不用考慮 RRDTool 了，RRDTool 這部份更差、更複雜(資料建立時，參數很多很麻煩)，此時你該考慮，是否自己試著寫資料解析的程式。&lt;br /&gt;&lt;br /&gt;2. 如果你認為在前段-資料蒐集中，用檔案儲存紀錄很討厭，不幸的，RRDTool 同樣是以檔案來儲存紀錄，並沒有以 SQL Server 儲存，不過目前這部份相關資訊還沒找很齊，目前看起來不太好找。&lt;br /&gt;&lt;br /&gt;3. 如果覺得 RRDTool 後段-繪製圖表的功能不符合需求，例如無法繪製成 .swf 的 Flash 檔案，那麼除非你已經用 MRTG 很久了，轉成 RRDTool 和 .rrd 資料看起來似乎比較好處理，除此以外，不建議使用 RRDTool，自己乖乖的畫 Flash，乖乖的寫分析程式，應該會更方便些，因為這些 RRDTool 都幫不上忙，用了 RRDTool～多此一舉～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-276694700825607995?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/276694700825607995/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=276694700825607995&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/276694700825607995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/276694700825607995'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/rrdtool.html' title='RRDTool初步認識與入門'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6639316607604887112</id><published>2008-05-05T12:36:00.002+08:00</published><updated>2008-05-05T13:55:46.867+08:00</updated><title type='text'>2個發展中的異想</title><content type='html'>我相信創新的想法，來自於莫名其妙的想像和奇特的需求。&lt;br /&gt;&lt;br /&gt;我有時候會想一些奇怪的想法，並且嘗試找找看有沒有人在做，透過google的幫忙，很容易可以發現，但也同時證明了，全世界人實在太多了，創新的想法，其實別人早就想到了，而且已經研究很久了。&lt;br /&gt;&lt;br /&gt;我在去年剛想要做Ad-hoc network時，就想到個問題，在Ad-hoc network上，尤其是Wireless Sensor Network上，省電議題一直是一個大問題。&lt;br /&gt;省電不外乎就是開源跟節流，目前幾乎所有的省電議題，都放在節流上。&lt;br /&gt;事實上，我們在接802.11的wireless AP時，必不可缺的永遠是「網路線」和「電源線」。&lt;br /&gt;如果要做到完全無線，網路線的部份問題很簡單，只需要統統用無線網路即可，但電源呢？&lt;br /&gt;&lt;br /&gt;目前所有野放、移動的wireless device，電源的解決方案都是「電池」，頂多加上「太陽能」之類的充電電路。&lt;br /&gt;電池的問題在於，他的電量只會減少，不會增加，增加的辦法就是充電。&lt;br /&gt;現在讓我們以共享的角度來看，網路的部份大家研究很多，透過網路的方式，共享或交換資源，利用資訊共享的方式，讓所有wireless device一起合作，達成許多神奇的事情，這也是我們使用它的(一堆wireless device)重要原因。&lt;br /&gt;但電力呢？電力有沒有辦法共享？假設一堆wireless device，A device的電量多，B device的電量少，偏偏B device所在位置又很重要，我有沒有可能把A device的電力傳給B device，就算中間有損耗，只要能夠讓B device運作更久，它就是有價值的，這樣的想法有可能實現嗎？&lt;br /&gt;接著讓我們更進一步來想，什麼是無線網路？什麼是無線電？&lt;br /&gt;無線網路的基礎，其實就是無線電，根本來說，它跟AM、FM是一樣的東西，差別只在於上面傳的是類比訊息還是數位訊息。&lt;br /&gt;而無線電是什麼？無線電其實和船上用的燈號一樣，我利用振盪器，把電以能量的形式震盪出去(發射出去)(發射機端)，另一端用接收器，把震盪出來的電能接收進來(接收震盪能量進來)(接收端)，接著判斷這個震盪大小、幅度...等。&lt;br /&gt;由此可以發現，無線電和無線網路，其實就是一種能量傳遞的應用，我們從A device上發出能量，在B device上把能量接收進來，判斷出能量的意義之後，把能量拋棄。&lt;br /&gt;那麼，我們有沒有可能把無線電的信號加強，把接收到的無線電信號，他的電能接到充電電路上回充到電池呢？&lt;br /&gt;其實很有可能，事實上，這樣的電力傳輸機制，MIT已經在研究了，而且研究很多年了，看看如下的介紹：&lt;br /&gt;&lt;a href="http://www.physorg.com/news100445957.html"&gt;Goodbye wires... MIT experimentally demonstrates wireless power transfer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;中文的介紹：&lt;br /&gt;&lt;a href="http://www.wretch.cc/blog/fsj&amp;article_id=7531954"&gt;再見電線... MIT 示範無線電力傳輸&lt;/a&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;今天早上我則是想到了電腦，電腦是非常偉大的發明，掌握電腦在這個時代非常重要，可是是人都知道，電腦速度越快，消耗的能量越高，發出的熱越嚇人，我其實一直不了解，像美國的M1A2坦克，裡面完全資訊化、電腦化，在沙漠作戰，電腦怎麼散熱的？我估計是靠冷氣機～&lt;br /&gt;有電腦和沒電腦，在根本上是有非常可怕的差異的，舉幾個戰場的例子：&lt;br /&gt;1. 每個士兵攜帶通訊電腦&lt;br /&gt;當每個士兵都攜帶通訊電腦時，你們不用交談就能知道彼此位置，甚至知道敵人位置，這種即時的眼睛資訊非常厲害，當對手還在估算同伴位置時，你已經可以用隊形和技巧繞到他們附近擊殺他們。&lt;br /&gt;2. 炸彈有了電腦&lt;br /&gt;本來炸彈、砲彈的施放，需要根據觀測員觀測目標，調整砲的威力、角度、位置，發射數次後命中目標。但炸彈、砲彈有了電腦之後，利用電腦的快速計算，隨時調整位置和速度，可以做到一次命中。&lt;br /&gt;其他就不提了～&lt;br /&gt;&lt;br /&gt;既然電腦這麼重要，卻這麼會發熱，有沒有一勞永逸的辦法？&lt;br /&gt;電腦的熱怎麼產生的？目前怎麼把熱消去的？&lt;br /&gt;以CPU來說，CPU裡面有非常多的電晶體和電路，當電腦不執行時，走A線路，跳過所有電晶體，但是當電腦執行時，走的線路會根據程式，錯綜複雜的變化，經過許多電晶體。&lt;br /&gt;熱，其實就是由電晶體和線路產生的，電流過線路時，一定會產生熱，當經過「很多線路」時，熱一定會很多，同樣的，電流走過電晶體也會產生熱，經過越多的電晶體，產生越多熱。&lt;br /&gt;這些由線路(電線)、電晶體產生的熱，其實就是損耗，舉個簡單的小例子。&lt;br /&gt;假設電源產生100W，實際運作時，CPU吃100W，但是CPU上所有元件總消耗功率只有70W，另外30W就是CPU的損耗，它就會以熱的形式發散出來，熱就是這樣產生的。&lt;br /&gt;那目前把熱消去的辦法其實很單純，就是利用風扇，用風快速的把冷空氣帶進來，把30W的熱帶出去。換句話說，就是利用大自然，把熱帶走(就是把熱拋棄掉)。&lt;br /&gt;那有沒有可能進一步把這個熱拿來利用呢？畢竟這個熱也是能量的一種，而且只要CPU不斷再運作，就會不斷的被產生。&lt;br /&gt;我今天早上騎車時想到，是否能夠把這些熱集中，利用熱空氣上升、冷空氣下降的方式，把整台電腦全部的熱導引到某個地方，然後接上一個小型的壓力鍋，透過不斷產生的熱來加熱它，當壓力到達時，推動小引擎來發電。&lt;br /&gt;不過這作法太複雜了，而且效率感覺並不好。&lt;br /&gt;真正目前被視為有價值的相關研究其實是所謂的「熱電發電」，類似如下：&lt;br /&gt;&lt;a href="http://cn.engadget.com/2007/08/19/body-powered-circuits-developed-by-fraunhofer-institute/"&gt;體熱發電機？&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;它的原理如下：&lt;br /&gt;&lt;a href="http://www.eettaiwan.com/ART_8800464850_480502_TA_6eb5c056.HTM"&gt;超薄熱電模組設立熱電應用全新性能標竿&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ericyutw.blogspot.com/2007/07/blog-post_19.html"&gt;利用電腦廢熱發電！ 熱能轉電能技術&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.tier.org.tw/energymonthly/outdatecontent.asp?ReportIssue=9304&amp;Page=14"&gt;神奇的熱電材料——利用溫差的熱電發電技術&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;簡單的說，它的發展和太陽能電池有些雷同，有人發現某些金屬導體，當2片金屬導體的溫度差異很大時，會出現電流的變化，反之亦同。&lt;br /&gt;因此目前出現了2種發展：&lt;br /&gt;1. 以這樣的模式，我們加強上面的電流，這樣一來可以讓2片金屬導體的溫度差異更大(一邊更冷、一邊更熱)，這樣的東西叫做「致冷片」，目前已經很常見了，例如：&lt;br /&gt;&lt;a href="http://www.100y.com.tw/productclassM2.asp?Mat2=16EA855&amp;No=1"&gt;勝特力 - 熱電半導體(致冷片)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. 以同樣的模式，當溫度差異很大時，我們可以從電流的變化中，慢慢的汲取電流，讓它變成一個小發電機，這種作法就是所謂的「利用溫差的熱電發電技術」，目前還不大容易找到產品(可能商業市場有，零售市場還很難買到)，這種作法顯然比我前面提到的想法更好些，這種作法目前是一個再生能源重要的發展之一。&lt;br /&gt;&lt;br /&gt;想法很重要，要能想出別人沒想到的想法很難，儘管如此，我認為能夠有些異想仍舊是很重要的，畢竟所有的創意，都是這樣來的，況且以上面我提得來說，雖然都有人提出一樣功能的作法，而且方法更好，但有時候並不代表我的想法就不適用，有可能我的作法也能走出特別的路，適用在特別的場合中。&lt;br /&gt;前面提到的想法乃我想到的，不過我並沒有深究是否已經被提出過了，如果覺得想法很有趣想討論或研究，我們也許可以聊聊，提出時記得把我的大名列出來，讓我也過過發明人的癮。:p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6639316607604887112?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6639316607604887112/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6639316607604887112&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6639316607604887112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6639316607604887112'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/2.html' title='2個發展中的異想'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-8664456536715543318</id><published>2008-05-05T08:48:00.007+08:00</published><updated>2008-05-05T09:36:10.886+08:00</updated><title type='text'>需要買濾水器嗎？還是別浪費錢吧～</title><content type='html'>這件事起因於我妹。&lt;br /&gt;從很久之前就聽說過最好的開水，還是用煮的。&lt;br /&gt;因此從前年開始，我在夏天都會煮開水放，可是我妹都不喝，她寧可花錢買礦泉水，也不願意喝煮的開水，一方面她認為礦泉水比較乾淨，另一方面她覺得礦泉水沒有異味。&lt;br /&gt;&lt;br /&gt;最近她從我媽那邊聽說濾水器，因此一直遊說我爸買濾水器，昨天去逛家樂福時，還非常認真的聽推銷員解說濾水器，我呢？我看到濾水器的價格，就非常不以為然，非常反對買這種東西。&lt;br /&gt;&lt;br /&gt;首先，濾水器非常貴，這是最大的問題，&lt;span style="font-weight: bold;color:red;" &gt;一台濾水器至少要10,000元(新臺幣)以上，貴一點的甚至要20,000元以上&lt;/span&gt;，以現在來說，20,000多可以買到一台NB、PC了，兩者的價值和技術差異這麼大，是我寧可把錢拿來買NB、PC，況且現在甚麼情況，全球性通貨膨脹，甚麼都超貴，省下來更好。&lt;br /&gt;再者，&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;濾水器並不是一次投資的，它的濾心必須定期更換&lt;/span&gt;，反過來說，不定期更換濾心的濾水器，它出來的水的品質，事實上水的品質會更差，甚至比煮的開水還差，因為經過二次污染。而最重要的，濾心也不便宜，長期下來，其實是不小的開銷。&lt;br /&gt;接著，濾水器出來的水就可以直接喝嗎？所有濾水器的廣告都跟你說濾水器的水可以直接喝，推銷員也跟你說濾水器的水可以直接喝，但是除非是蒸餾式的濾水器，因為它取的水是煮開後的水蒸氣，否則&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;大部份過濾式的濾水器都沒有殺菌的效果&lt;/span&gt;。所以實際上，濾水器的水還是需要煮過，用煮開水的動作來殺菌。&lt;br /&gt;況且，台灣的水質，尤其是身在台北市的我們(外縣市的朋友不好意思拉～)，&lt;a href="http://www.feitsui.gov.tw/"&gt;翡翠水庫&lt;/a&gt;的&lt;a href="http://www.feitsui.gov.tw/cgi-bin/SM_theme?page=41f897b1"&gt;水質&lt;/a&gt;之好是眾所皆知的，只要確定管線是乾淨的，水池、水塔有定期清洗，生飲都可以，在來源可以確保的情況下，多買一個濾水器根本是浪費又莫名其妙的行為。&lt;br /&gt;解釋再多，還是會有很多疑慮，畢竟我不是專門「搞水」的，來看看下面由「&lt;a href="http://www.twd.gov.tw/"&gt;台北自來水事業處&lt;/a&gt;」針對濾水器的說明吧。&lt;br /&gt;&lt;a href="http://www.twd.gov.tw/news/200509/index.htm"&gt;優質自來水，不必多「濾」!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;仔細看其中&lt;a href="http://www.twd.gov.tw/news/200509/p04.htm"&gt;&lt;span style="color:red;"&gt;常見濾水器的不實推銷手法&lt;/span&gt;&lt;/a&gt;，這讓我非常印象深刻，&lt;span style="color:blue;"&gt;&lt;span style="font-weight: bold;"&gt;因為昨天在家樂福，我妹就是聽推銷員用這些方法解說的&lt;/span&gt;&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;我個人認為，我妹一直覺得煮的開水有味道，經過網路搜尋之後，目前來說，我認為應該買個竹炭片，不論是煮開後丟到水裡，或者煮的時候丟進去一起煮，竹炭就能夠把味道吸收，事實上，我認為濾水器中讓水沒有味道，主要也是靠活性碳濾網把味道吸附的，與其花這麼多錢做出一樣效果，還不如買個竹炭片除臭，更加經濟、方便。&lt;br /&gt;對於竹炭的效用或建議，我目前還沒用過，而且同樣都是炭，價格差異性非常大，我也不了解差別在哪，就目前來說，我是覺得越便宜越好，畢竟炭能吸收異味，至於是木炭、竹炭、備長炭，我覺得都差不多，差別要真的用了，而且每個都用很多次才能知道。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-8664456536715543318?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/8664456536715543318/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=8664456536715543318&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8664456536715543318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8664456536715543318'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/05/blog-post.html' title='需要買濾水器嗎？還是別浪費錢吧～'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-8798142835952937224</id><published>2008-04-29T02:33:00.002+08:00</published><updated>2008-04-29T02:41:28.711+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>歷年來的Windows版本與開機音樂</title><content type='html'>在YouTube看到的，這是到目前歷年來各Windows版本的開機畫面和開機音樂，看起來其實還滿懷念的，而且好幾首音樂其實都滿好聽的。:p&lt;br /&gt;廢話不多說，點選播放吧～～～&lt;br /&gt;&lt;a style="left: 0px ! important; top: 0px ! important;" title="歷年來的Windows版本與開機音樂" class="abp-objtab-016252083728956523 visible" href="http://www.youtube.com/v/eSGDeuYJB9A&amp;amp;hl=zh_TW"&gt;&lt;/a&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eSGDeuYJB9A&amp;amp;hl=zh_TW"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/eSGDeuYJB9A&amp;amp;hl=zh_TW" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-8798142835952937224?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/8798142835952937224/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=8798142835952937224&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8798142835952937224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/8798142835952937224'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/windows.html' title='歷年來的Windows版本與開機音樂'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-9143197354074063126</id><published>2008-04-28T08:46:00.005+08:00</published><updated>2008-04-29T02:41:28.712+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>程式設計之快速入門法</title><content type='html'>程式設計對大部分人來說，都會感覺是非常專業的東西。&lt;br /&gt;從我小時候接觸到的電視、電影經常可以發現到，裡面的電腦高手，往往都是對著電腦不斷的打字，然後螢幕不斷顯現各種奇怪的畫面或程式碼，就算程式碼出現的只是9x9乘法表，都還是會讓人感覺非常的專業。&lt;br /&gt;也許因為電腦的發展往往跟『高科技』畫上等號，又也許電腦常常出現在讓人感覺不可思議的場合，也可能是電視、電影長期灌輸的電腦高手印象，不論是任何人，只要看到在寫程式的人，都會從內心升起一股莫名的崇拜。&lt;br /&gt;&lt;br /&gt;而我個人來說，從國小就開始玩電腦，還記得小學六年級上電腦課，還簡單的寫過GW Basic，以我的年紀來說，和一些年長些的高手相比，我還嫩了些(看過有blog，有比我大10歲左右的高手，在那個年代就在超頻286、386)，但跟其他大部分的人相比，我的電腦經驗算是很早的了。&lt;br /&gt;&lt;br /&gt;很多人想要學習程式設計，會去上課、補習，很多人在學校上電腦課上了一個學期，仍然不會寫程式，看著一些所謂的電腦高手，短時間內就可以把程式寫出來、跑出來，往往都會感覺很不可思議，從內心發出一聲『高手阿～』的吶喊。&lt;br /&gt;包括我在內的許多可憐蟲，只有在這種時候，才會莫名的受到歡迎，班上不熟的男女咖，會在這種時間點突然跟你聊天，這種時候就會想，電影上又高又帥的電腦高手，其實從來不曾出現在現實生活中～(抱怨到此結束～)&lt;br /&gt;&lt;br /&gt;那到底程式要怎麼寫？怎樣才可以快速的入門，學會程式寫作？&lt;br /&gt;&lt;br /&gt;經過這麼多年的經驗後，我可以告訴大家，關鍵只有2個：&lt;br /&gt;1. 語法(包含if, for, while...等使用)&lt;br /&gt;2. 函式&lt;br /&gt;&lt;br /&gt;不論是哪種程式語言，不管是硬體的、軟體的，比較硬一點的，比較軟一點的，軟硬適中的，通通脫離不了上述2個關鍵，差別只在稱呼和用法。&lt;br /&gt;&lt;br /&gt;以高階的程式語言來說，我們拿Java來說(我Java還是比較熟些，比較不會漏氣... :p)，跟C相比，Java的語法比較特別，因為它有物件導向的概念，所以程式碼長的會和C比較不同，而和其他物件導向的語言相比(c#、php...等)，因為概念很接近，又都互相摹仿，所以語法會長的很接近。&lt;br /&gt;我在之前曾經提過關於Java物件導向主程式的樣式，這類樣式通常是很固定的語法，建議直接背起來比較快，因為解釋了半天，結論還是把它背起來。&lt;br /&gt;其他比較細節的語法，以Java來說，String a = new String();這種樣式，通過Example的一再練習，可以幫助快速的熟悉語法。&lt;br /&gt;&lt;br /&gt;而程式語言的另一個重點在於函式，當我們語法熟悉之後，最重要的就是要找出這個語言提供的函式，了解我們有哪些函式可以使用。&lt;br /&gt;以我個人感覺來說，以100分為滿分來看寫程式這件事情，會語法可以讓你從0分變成35分，知道函式之後，可以讓你從35分變成70分，2者對於寫程式的重要性就是這樣。&lt;br /&gt;&lt;br /&gt;也許會說，你提的是高階語言，那低階語言呢？&lt;br /&gt;以8051組合語言來說，以我之前當助教的經驗來說，很多人覺得很難，我以前還不相信資工的會怕寫程式，在我親自上課、帶課之後，才深刻發現到，原來資工的同學，對於組合語言有種莫名的懼怕，這是我以前在電子科系時候沒有出現過的。&lt;br /&gt;以8051組合語言來說，同樣可以代入上述的2個關鍵，只是稱呼有些不同，在8051組語中，兩者分別是：&lt;br /&gt;1. 語法&lt;br /&gt;2. 指令集&lt;br /&gt;&lt;br /&gt;其實8051組語給我感覺比PC上的Java簡單非常多，它的函式(指令集)從頭到尾，從尾到頭，怎麼數也都是那十幾二十個。&lt;br /&gt;不論怎麼變化，永遠都是這些指令集的搭配使用，基本上能夠掌握住指令集，看得懂語法，知道如何用指令集來寫出if, for，那麼基本上8051大概前1/3的課你已經ok了。&lt;br /&gt;&lt;br /&gt;同樣的情況也適用在Verilog這類硬體描述語言，尤其是Verilog，它的語法長的跟高階語言比較像，入門其實容易些，因為我這方面不很熟，只修過一個學期的課，能力僅僅只是用C的寫法去寫Verilog，不符合block設計的概念，模擬時還ok，實際下去跑，我相信會有很嚴重的delay問題，細節就不方便拿來解釋了。&lt;br /&gt;&lt;br /&gt;電腦其實是很單純的東西，不論它的程式怎麼變化，最基本就是很多很多的指令(指令集)，所謂的程式，就是指令集的組合。&lt;br /&gt;當程式的層次提昇之後，指令集已經不足以描述程式的動作了，因此變成了function(函式)，但這些函式的設計，本質上和指令集是類似的，當加入物件導向概念之後，function為了適應物件導向的敘述和設計，變成了類別、物件(Class)，但本質上來說，仍舊是指令集的延伸，因此程式設計上，就是先找出能夠使用的指令集、function、Class。&lt;br /&gt;&lt;br /&gt;而語法也是一樣的情況，因為程式的層次不同，最底層就是使用特定的格式把指令集組合起來，並使用if(8051組語中的JZ xx xx，當暫存器內容等於0的時候跳), for(DJNZ xx xx，當暫存器內容-1等於0之後跳；非8051的單晶片，很多沒有DJNZ這樣的指令，同樣可以用SUB xx xx加上JZ xx xx，讓暫存器內容-1，等於0時跳)讓電腦進行判斷和重覆操作，這就是電腦最基本的操作方式。&lt;br /&gt;而層次不斷的提昇，可以讓程式的複雜度越來越高，但是基本上仍舊脫離不了電腦本質的操作方式(if, for)，而為了更接近人的語言，專門設計了int x = 10;這樣的敘述樣式和String x = new String();這樣的敘述樣式，但根本上還是組合函式(組合指令集)，並使用if, for的電腦操作。&lt;br /&gt;&lt;br /&gt;結論，從上面提到的一堆可以知道，要學寫程式，最快的方式就是了解語法，找出可以用的函式，只要掌握這兩點，我相信任何程式語言都能夠比較快速的上手。&lt;br /&gt;&lt;br /&gt;看到這裡其實文章算是結束了，但是可能會有人有疑問，感覺還差了甚麼，也有人會問，上述2點掌握了，我能拿到70分，那要拿80,90甚至更高要怎麼拿？所以我加了這段～&lt;br /&gt;&lt;br /&gt;要拿到70分很容易，要拿更高就有難度了，關鍵在於：&lt;br /&gt;3. 了解程式語言的模式、設計&lt;br /&gt;&lt;br /&gt;這部分以8051組合語言來敘述很貼切，8051前面1/3除了頭2堂課解說8051的接腳、歷史之外，主要在教基本I/O和語法，先讓同學熟悉語法。&lt;br /&gt;但是從1/3開始，會開始教Timer、中斷、七段顯示器操作、鍵盤掃瞄...等，這每個部分的程式設計都很特別，都具有某些特色，像Timer要使用要先設定某些暫存器，中斷要使用要設定某些暫存器，中斷又能和Timer搭配使用，鍵盤掃瞄要以迴圈方式不斷的檢查按鍵...等，這些就是8051組合語言的模式、設計。&lt;br /&gt;同樣的道理也出現在Java上，Java許多Class我們都需要看Example，而且Class之間使用的方式差異性很大，像是Java的I/O(BufferedReader、BufferedWriter)這種設計就和C的I/O完全不同，沒看過範例，可能很難了解怎麼使用它，這就是Java在I/O的模式、設計。&lt;br /&gt;在Java上同樣情況也發生在資料庫呼叫(JDBC操作)，JDBC固定那4,5個步驟，如果沒看過Example，很難理解它要怎麼寫，這就是Java在資料庫操作的模式、設計。&lt;br /&gt;而在Linux上的C也是這樣，因為在Linux上，相對Java來說又是比較低階的程式語言，有許多POSIX特性的設計和function，像我之前寫MYVIDEO時才學到的IOChannel，這在舊版的Java是沒有的，都要用Thread，新版的Java(1.5還是1.6吧～)才加入了類似的機制。&lt;br /&gt;而在Verilog更是明顯，Verilog的設計都以Block為思考方式，設計上比較接近pipeline的概念，程式設計強調的是同時所有Block一起操作，但每個Block只操作一個動作，而且Block設計的程式碼以精簡為訴求，Block內程式愈短，整顆IC在每個clock的delay可以控制的愈短。&lt;br /&gt;這以高階語言來看，有點像是同時設計超多的Thread，每個Thread要求又要像Interrupt內容一樣，愈短愈好。&lt;br /&gt;而程式多半建議以加法器、減法器來組合，概念類似AND、OR、NOT的邏輯閘算式，這就是硬體描述語言的模式、設計。&lt;br /&gt;&lt;br /&gt;這部分的經驗愈豐富，看的Example愈多，分數可以拿的愈高，掌握基本的幾個模式、設計，分數可以從70分拉到80甚至90分沒問題。&lt;br /&gt;&lt;br /&gt;而我認為最後一個程式設計的要點，算是：&lt;br /&gt;4. 演算法＆Model&lt;br /&gt;&lt;br /&gt;這點和3有些關係，畢竟很多模式、設計，都是演算法＆Model實作出來的，所以第3點和這第4點間的界定有些模糊。&lt;br /&gt;不可否認，電腦其實就是計算機，計算機主要就是用來算數學用的，所以電腦最初的發展，就是用來進行高速運算，一直到現在，儘管電腦有了很多發展方向，但運算能力仍舊是電腦的主要核心，高速運算也一直是電腦發展中一個主要的領域之一。&lt;br /&gt;正因為如此，演算法在電腦的程式設計中，是很重要的部分，目前全世界有數不清的演算法正在發展，但更多的是成熟的電腦演算法，要晉升到電腦高手，程式設計能力要從80~90上升到90以上，學習電腦演算法是不可避免的，正如前面提到的，很多模式、設計都是從演算法、Model實作出來的，但我們無法保證所有程式語言都有提供這些演算法，這時候如果能夠自行寫出符合環境需要的演算法，那麼對於程式效能、程式功能都會有決定性的影響。&lt;br /&gt;而Model也是，因為電腦程式越來越複雜，大量的Interface和Model是不可避免的，這可以降低程式的複雜度，讓程式碼更容易理解，更方便開發，電腦設計中同樣有很多成熟的Model被廣泛運用，這類的Model接觸愈多，對於程式設計的幫助愈大。&lt;br /&gt;&lt;br /&gt;我個人評價，當你已經是個腦中有許多演算法設計、許多Model設計，又對於很多程式的模式、設計很有經驗，那麼你可以打聽看看別人對你的電腦評價，應該不會低於85分。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-9143197354074063126?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/9143197354074063126/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=9143197354074063126&amp;isPopup=true' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/9143197354074063126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/9143197354074063126'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post_28.html' title='程式設計之快速入門法'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1883761830591568751</id><published>2008-04-27T23:58:00.004+08:00</published><updated>2008-04-29T02:41:28.712+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>unixODBC 教學</title><content type='html'>在Windows上寫過資料庫程式的，應該都聽過ODBC這個東西，這東西全名是Open Database Connectivity，由M$所制定的，相關說明可以參考&lt;a href="http://zh.wikipedia.org/wiki/ODBC"&gt;中文維基百科-ODBC&lt;/a&gt;或更詳細的&lt;a href="http://en.wikipedia.org/wiki/Open_Database_Connectivity"&gt;英文維基百科-ODBC&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;簡單的說，M$為了統一所有資料庫系統在Windows上的存取方式，因此訂出了ODBC這樣的介面標準，並開放給資料庫廠商呼叫使用，而且美其名叫『Open Database Connectivity(開放資料庫互連)』，但實際上，開放在哪裡？&lt;br /&gt;而且一直來說，都是M$說，別人做，哪來開放的道理？&lt;br /&gt;更有趣的是，翻翻Visual C++、Visual C#、Visual Basic...等任何一本書，M$實際上建議大家使用&lt;a href="http://zh.wikipedia.org/wiki/ADO"&gt;ADO&lt;/a&gt;，並說使用ADO呼叫資料庫會有比較好的存取效率，因此我們完全可以認為，M$提供一個介面給別人用，但是包括他自己在內的所有人都知道，多一個介面來存取資料庫，並不會提昇效能。&lt;br /&gt;不過這個介面並非都是缺點，有了ODBC，Windows上所有資料庫存取都有了統一的呼叫方式，這讓程式開發時，有了統一的資料庫呼叫，對資料轉移，程式碼的彈性都有幫助。&lt;br /&gt;&lt;br /&gt;可惜ODBC的這一切都只在Windows上，事實上除了Windows之外，很多OS並沒有ODBC，結果說到底，感覺M$比較像是自己定規則給別人(ODBC)，但是自己也建議別人不要用(建議用ADO)。&lt;br /&gt;&lt;br /&gt;目前Linux/FreeBSD上已經有Open Source的ODBC實作，要設定使用都很容易，教學如下：&lt;br /&gt;===================================&lt;br /&gt;Linux 上要設定 ODBC 很容易，首先要知道，Linux 上的 ODBC 有兩套，分別是：&lt;br /&gt;iODBC&lt;br /&gt;unixODBC&lt;br /&gt;&lt;br /&gt;這裡我們使用 unixODBC，並搭配 MySQL。&lt;br /&gt;&lt;br /&gt;使用 Ubuntu 時(Debian 應該一樣)，安裝套件：&lt;br /&gt;&lt;font color=blue&gt;unixodbc&lt;/font&gt;  &lt;font color=green&gt;unixODBC 主程式&lt;/font&gt;&lt;br /&gt;&lt;font color=blue&gt;unixodbc-bin&lt;/font&gt; &lt;font color=green&gt;unixODBC 圖形化設定介面&lt;/font&gt;&lt;br /&gt;&lt;font color=blue&gt;libmyodbc&lt;/font&gt;  &lt;font color=green&gt;MySQL 的 unixODBC Driver&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;安裝好之後，要設定很容易，他的設定分 2 部分：&lt;br /&gt;一個部分是設定 unixODBC 的 Driver，MySQL Driver 的設定有提供 example，位置如下：&lt;br /&gt;&lt;code&gt;/usr/share/libmyodbc/odbcinst.ini&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;如果是第一次安裝 unixODBC，這時候正常是沒有任何 Driver 設定的，&lt;br /&gt;那我們可以簡單的直接把設定檔複製到 /etc/ 下，如下：&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# cp /usr/share/libmyodbc/odbcinst.ini /etc/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;如果曾經安裝過其他 Driver，&lt;br /&gt;我們可以把 /usr/share/libmyodbc/odbcinst.ini 內容加入到 /etc/odbcinst.ini&lt;br /&gt;&lt;br /&gt;另一部份就要先提 Windows 上 ODBC 的設定，&lt;br /&gt;在 Windows 上『&lt;span style="color:blue;"&gt;控制台&lt;/span&gt;』-&gt;『&lt;span style="color:blue;"&gt;系統管理程式&lt;/span&gt;』有個『&lt;span style="color:green;"&gt;ODBC資料來源&lt;/span&gt;』&lt;br /&gt;&lt;br /&gt;裡面可以設定 ODBC 的資料庫來源，內容包括 SQL Server IP、帳號、密碼、資料庫名稱...等，&lt;br /&gt;然後只需要透過 ODBC 的名稱來使用這些資訊，並連線到 SQL Server。&lt;br /&gt;另外值得一提的是，『ODBC資料來源』中，有所謂的『使用者來源』和『系統來源』，&lt;br /&gt;這指的是這個資料庫設定，是只有使用者看得到、用得到的，還是整個系統(所有使用者)都看得到、用得到。&lt;br /&gt;&lt;br /&gt;而在 unixODBC 上也是一樣的，只是這些設定儲存在設定檔中，&lt;br /&gt;以『系統來源』來說，所有使用者都能使用的 ODBC 設定，設定檔是 /etc/odbc.ini；&lt;br /&gt;以『使用者來源』來說，只有自己能使用的 ODBC 設定，設定檔是 ~/.odbc.ini。&lt;br /&gt;&lt;br /&gt;設定檔範例如下：&lt;br /&gt;&lt;code&gt;[MySQL-Optical_Disc_Manage]&lt;br /&gt;Description = MySQL Optical_Disc_Manage&lt;br /&gt;Driver = MySQL&lt;br /&gt;Server = 192.168.1.6&lt;br /&gt;Database = Optical_Disc_Manage&lt;br /&gt;Port = 3306&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;格式說明如下：&lt;br /&gt;&lt;code&gt;[&lt;span style="color:red;"&gt;ODBC連線名稱&lt;/span&gt;]&lt;br /&gt;&lt;span style="color:blue;"&gt;Description&lt;/span&gt; = &lt;span style="color:green;"&gt;這個連線的描述&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Driver&lt;/span&gt; = &lt;span style="color:green;"&gt;Driver的類型，這部分參考 /etc/odbcinst.ini&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Server&lt;/span&gt; = &lt;span style="color:green;"&gt;SQL Server IP&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Database&lt;/span&gt; = &lt;span style="color:green;"&gt;資料庫名稱&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Port&lt;/span&gt; = &lt;span style="color:green;"&gt;連接埠埠號&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;而 odbcinst.ini 正常來說，Driver 都要提供範例，以這邊 MySQL 為例，它的內容如下：&lt;br /&gt;&lt;code&gt;[MySQL]&lt;br /&gt;Description = MySQL driver&lt;br /&gt;Driver  = /usr/lib/odbc/libmyodbc.so&lt;br /&gt;Setup  = /usr/lib/odbc/libodbcmyS.so&lt;br /&gt;CPTimeout =&lt;br /&gt;CPReuse  = &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;注意到『&lt;span style="color:red;"&gt;[MySQL]&lt;/span&gt;』，這就是我們上面 odbc.ini 中提到的 Driver 欄位要填的內容。&lt;br /&gt;&lt;br /&gt;上面說了一堆之後，我們可以發現到 unixODBC 設定實在有夠麻煩，尤其是 odbc.ini 的設定，&lt;br /&gt;有沒有類似 Windows 上『ODBC資料來源』那樣的 GUI 設定介面呢？&lt;br /&gt;&lt;br /&gt;有～我們前面安裝的套件『unixodbc-bin』，裡面就有提供這樣的工具給我們使用，&lt;br /&gt;unixODBC 有 2 個圖形化介面工具可以使用，分別是：&lt;br /&gt;ODBCConfig&lt;br /&gt;DataManager&lt;br /&gt;&lt;br /&gt;其中最重要、好用的，就是 ODBCConfig，如下執行：&lt;br /&gt;&lt;code&gt;# ODBCConfig&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;執行後會看到一個類似 Windows 上『ODBC資料來源』的 GUI 視窗。&lt;br /&gt;&lt;br /&gt;如果前面已經有按照說明設定過了，&lt;br /&gt;以我來說，我將上面 odbc.ini 的設定存成 ~/.odbc.ini，&lt;br /&gt;那麼進入 ODBCConfig 介面後，我會在『User DSN』分頁看到這個設定。&lt;br /&gt;&lt;br /&gt;目前，中文似乎還有問題，如何指定編碼目前我還不會。&lt;br /&gt;==============================================&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1883761830591568751?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1883761830591568751/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1883761830591568751&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1883761830591568751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1883761830591568751'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/unixodbc.html' title='unixODBC 教學'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-6980136086812691743</id><published>2008-04-24T21:01:00.002+08:00</published><updated>2008-04-29T02:41:28.713+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>Ubuntu 8.04 LTS正式發佈</title><content type='html'>這新聞還很熱～&lt;br /&gt;&lt;br /&gt;Ubuntu最新版本正式發佈，值得注意的是，這次發佈的版本是LTS版，所謂的LTS版是指這個版本會有較長的支援服務，原文介紹如下：&lt;br /&gt;The "LTS" version of Ubuntu receives long-term support. 3 years for desktop versions and 5 years for server versions.&lt;br /&gt;&lt;br /&gt;Ubuntu 8.04 LTS Desktop Edition - Supported to 2011&lt;br /&gt;Ubuntu 8.04 LTS Server Edition - Supported to 2013&lt;br /&gt;&lt;br /&gt;下載可以到Ubuntu美國的下載頁面選擇下載，頁面網址如下：&lt;br /&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;http://www.ubuntu.com/getubuntu/download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;如果在台灣，想直接從台灣站台下載，下面是台大的下載連結：&lt;br /&gt;&lt;a href="http://tw.releases.ubuntu.com/hardy/ubuntu-8.04-desktop-i386.iso"&gt;Ubuntu 8.04 LTS Desktop Edition - Supported to 2011&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tw.releases.ubuntu.com/hardy/ubuntu-8.04-server-i386.iso"&gt;Ubuntu 8.04 LTS Server Edition - Supported to 2013&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-6980136086812691743?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/6980136086812691743/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=6980136086812691743&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6980136086812691743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/6980136086812691743'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/ubuntu-804-lts.html' title='Ubuntu 8.04 LTS正式發佈'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-7876455876112348766</id><published>2008-04-21T17:29:00.002+08:00</published><updated>2008-04-21T17:45:14.290+08:00</updated><title type='text'>寶特瓶重複使用來減量～政策倒車？</title><content type='html'>看看如下新聞：&lt;br /&gt;&lt;a href="http://tw.news.yahoo.com/article/url/d/a/080421/4/xnnd.html"&gt;德國採重複使用減量 環團促傚法&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;整篇新聞看起來立意良好，似乎是合情合理的，可是讓我們把時間推到20年前。&lt;br /&gt;&lt;br /&gt;有多少人還記得20年前寶特瓶飲料的價格？&lt;br /&gt;如果我沒記錯，當時是15元一瓶。&lt;br /&gt;&lt;br /&gt;當時環保署(局？)推行寶特瓶回收計畫，為了讓計畫能夠順利推行，當時把所有寶特瓶的價格都漲了2元(變成17元)，這2元叫做什麼寶特瓶處理費還是寶特瓶回收費。&lt;br /&gt;只要我們把喝過的寶特瓶拿回7-11，就可以拿到2元，而學校各個班級，也盡全力要全班努力收集寶特瓶，全校各年級比賽，看哪個班級收集的最多，而這些回收的錢，都是用作班費來使用。&lt;br /&gt;上面這段過去，我相信六年級生和七年級初段班的學生應該都有印象。&lt;br /&gt;&lt;br /&gt;在過了多年之後，我們發現到寶特瓶飲料這2元從來沒有降回來過，而寶特瓶回收也偷偷地消失了，現在的寶特瓶回收，似乎變成了自發性的行為，那我想問，回收金到哪裡去了？當時廠商因為回收金偷漲的2元到哪裡去了？&lt;br /&gt;&lt;br /&gt;而過了20年之後，現在又出現了新聞，建議我們把寶特瓶重複使用，這不是很諷刺嗎？因為類似的政策，在20年前就定了，而且也實行了很多年，既然寶特瓶飲料只有漲價沒有降價，那麼我們是否可以相信，整個回收流程已經制度化拉～&lt;br /&gt;&lt;br /&gt;因此這則新聞我特別有意見，並把它po出來是因為2點：&lt;br /&gt;1. 類似的政策應該以前環保署就推行過了，而且當時還是結合廠商、通路...等，以回收金的方式加到使用者身上了，這顯然變成政策倒車&lt;br /&gt;2. 既然現在又被提出來，那麼台灣當時的寶特瓶回收政策，是否已經失敗了？那我們的回收金呢？是回收業者污了，還是廠商污了？&lt;br /&gt;3. 還是其實台灣這方面已經做的很好了，這則新聞純粹是搞不清楚狀況的記者，加上幾個搞不清楚狀況的人士亂寫出來的？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-7876455876112348766?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/7876455876112348766/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=7876455876112348766&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7876455876112348766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/7876455876112348766'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post_21.html' title='寶特瓶重複使用來減量～政策倒車？'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-811045207182162008</id><published>2008-04-17T23:35:00.003+08:00</published><updated>2008-04-17T23:39:31.045+08:00</updated><title type='text'>Blog性能小提昇</title><content type='html'>新增「&lt;a href="http://funp.com/"&gt;推推王&lt;/a&gt;」推文按鍵。&lt;br /&gt;畫了一張「阿呆的blog LOGO」，使標題從原本單調的文字變成圖片，色調上我沿用了原來的色調，因此整體感覺不會和之前的標題差太多～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-811045207182162008?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/811045207182162008/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=811045207182162008&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/811045207182162008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/811045207182162008'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog.html' title='Blog性能小提昇'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1950627498377663573</id><published>2008-04-10T14:20:00.002+08:00</published><updated>2008-04-10T14:26:29.062+08:00</updated><title type='text'>新增「繼續閱讀」功能</title><content type='html'>因為我blog經常都是長篇大論，所以就想加入「繼續閱讀」的功能，讓版面乾淨點。&lt;br /&gt;&lt;br /&gt;我直接使用「&lt;a href="http://cjhtech.blogspot.com/2007/09/blogger-2x.html"&gt;繼續閱讀懶人加強版&lt;/a&gt;」，因為DIY的版本很多都需要自己設定「隱藏文章」，而繼續閱讀懶人加強版已經寫好JavaScript，除了加入參數方便設定之外，最重要的是有用JavaScript自動計算行數，固定顯示3行，對於我這種打blog不注意行數的人特別方便，因此就用它了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1950627498377663573?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1950627498377663573/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1950627498377663573&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1950627498377663573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1950627498377663573'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post_3597.html' title='新增「繼續閱讀」功能'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1024563617698090310</id><published>2008-04-09T08:51:00.016+08:00</published><updated>2008-04-16T23:28:54.446+08:00</updated><title type='text'>台灣～裕隆～汽車設計</title><content type='html'>昨天上網亂翻，翻到了「&lt;a href="http://www.mobile01.com/topicdetail.php?f=263&amp;amp;t=191258&amp;amp;last=5346789"&gt;飛羚101&lt;/a&gt;」～&lt;br /&gt;&lt;br /&gt;可能是年紀的關係，我四周圍的同學沒有一個聽過這個東西，很不幸的～我竟然知道..... = =&lt;br /&gt;讓我一瞬間就覺得，我老拉～這是兩代間的代溝～&lt;br /&gt;&lt;br /&gt;其實台灣很可憐(不是民進黨的愛台灣)，可能是民族自尊吧～往往大家都覺得我們並不輸別人，事實上，看看&lt;a href="http://zh.wikipedia.org/wiki/%C3%A5%C2%8F%C2%B0%C3%A7%C2%81%C2%A3%C3%A9%C2%AB%C2%98%C3%A9%C2%80%C2%9F%C3%A9%C2%90%C2%B5%C3%A8%C2%B7%C2%AF"&gt;台灣高鐵&lt;/a&gt;，看看&lt;a href="http://zh.wikipedia.org/wiki/%C3%A5%C2%8F%C2%B0%C3%A5%C2%8C%C2%97101"&gt;台北101&lt;/a&gt;，台灣的技術真的不輸別人，再看看當每次打棒球世界盃時，旅外的球員都會盡量趕回來參賽，當政府要發展火箭、飛彈時，總工程師往往也都是在國外有成的台灣人回來協助研發的，雖然這樣，可是很多台灣人不知道為啥都有種自卑感，覺得國外的比較好，外國的月亮比較圓。&lt;br /&gt;也不想想，我們能造出高速鐵路、能蓋出全世界第一高樓，電腦能夠賣到世界第一，世界上多少國家連想都不敢想，去找找韓國高鐵的資料，人家韓國高鐵蓋到沒錢蓋，增資好幾次(增資就是多借一點錢，可能是沒錢了，也可能花費比預算高)，到最後差點蓋不出來，鐵軌有1/3必須沿用現有鐵軌，最近才在慢慢重新改用高鐵專用鐵軌(版式鐵軌)。&lt;br /&gt;世界第一高樓也不是說蓋就ok，看看上海那個什麼環球金融中心，1996年說要蓋世界第一高，結果蓋到後來沒錢了(遇到金融風暴)，然後大樓就這樣放著～一放10年，最近才又繼續蓋～&lt;br /&gt;我們至少是說做，然後就一路按照計畫進行，一直到完成～&lt;br /&gt;這樣看起來，到底我們自卑在哪裡阿？&lt;br /&gt;&lt;br /&gt;昨天因為看到「飛羚101」的影片，就一併找了相關的資料，下面是簡單的介紹：&lt;br /&gt;飛羚101是台灣第一部自行研發的汽車，除了引擎之外，整輛車子都是由「裕隆」設計製造的，這台車子在1986年上市，之後陸續有「飛羚102」、「精兵601」，都是衍生車型。&lt;br /&gt;&lt;br /&gt;根據mobile01的討論串可以知道，飛羚101是裕隆公司心中的痛，也是台灣汽車產業的痛，在20年前，台灣被國際排擠，被中國打壓(到現在)，因此政府希望能夠把工業科技發展起來，除了改善台灣環境，增加台灣的能見度之外，也希望能夠反攻大陸。&lt;br /&gt;&lt;br /&gt;在整個工業發展中，汽車發展是很重要的一個部份，其實我們可以稍微注意一下「偉人傳記」、「Discovery、國家地理頻道的科技介紹、科技成就」，因為這些提到的人物、科技背後，往往都是影響了未來數十年甚至上百年的世界發展，其中福特發明汽車就是一個大家耳熟能詳的故事。&lt;br /&gt;在偉人傳記中，我們只會知道福特發明汽車，然後當時和歐洲其他幾個大型車廠的競爭(克萊斯勒、法拉利...等)，但是書中並沒有提到其他國家的處境，中國就是當時可憐的國家，沒有競爭的機會，自然不可能發展到汽車產業。&lt;br /&gt;其實同樣的情況也發生在火車，看看目前世界上有能力設計、製造高速鐵路、捷運的國家，往前追溯，幾乎都是在火車發展的時期，有公司有碰觸到，擁有技術，然後參與競爭的國家。&lt;br /&gt;至於其他國家，沒機會發展到的，大概終其一身就只能當消費者了～&lt;br /&gt;&lt;br /&gt;正因為這樣，台灣在完全沒有技術背景的前提下要發展汽車，說難聽點，根本是找死～&lt;br /&gt;事實證明了，果然差點把裕隆玩死了～&lt;br /&gt;很多人在罵裕隆根本是賣國，當初政府為了讓它發展汽車，根本就是錢當水在倒，結果你裕隆把車子做出來了，有了汽車的設計技術了，就把整間公司賣給日本的Nissan，現在全部的裕隆車，統統都掛Nissan，這是怎樣～～&lt;br /&gt;&lt;br /&gt;但是mobile01討論串內容推翻了這點，事實是，當時裕隆的確硬尻把車子尻出來了，但是技術背景不夠是事實，而且最重要的，台灣的汽車市場實在太小了，以現在來說，一年的車輛銷售約70000輛，少點就是60000多，多點就是70000多，這市場太小，而且已經飽和了。&lt;br /&gt;裕隆自己慢慢尻，結果是光研發費用都攤不平，更不要說賺錢了，搞到最後裕隆差點破產，而現在整天穿阿曼尼的嚴凱泰之所以有名，就是因為當時他很倒楣的接了這樣的公司，然後透過公司賤賣(賣25%給Nissan)，加上把裕隆很多廠關了才撐下來的，也因此被罵賣國。&lt;br /&gt;&lt;br /&gt;所以飛羚101就成了裕隆和台灣的痛，裕隆因為她差點倒閉，一堆技術人員流失，台灣因為她，花了非常非常多的錢，結果汽車產業還是死了～&lt;br /&gt;&lt;br /&gt;汽車產業是非常封閉的產業，世界上汽車廠商就這麼幾家，相互之間還互向結盟，要進入這樣的產業非常困難，一來沒有技術(技術在汽車100年前發展時就開始累積)，二來沒有市場(市場都已經被這些廠商獨占)，三來還會被惡意排擠(這些廠商會有意的排擠新的車廠)，因此要發展汽車產業難度超級高，目前全世界真正成功把汽車產業發展起來的，就只有日本、南韓。&lt;br /&gt;日本在發展時，也是吃足苦頭，TOYOTA最早時，在美國被視為便宜的破爛車，南韓也好不到哪裡，以前小的時候，就看過中視有播放韓劇「車神」，講韓國發展汽車的艱辛過程，最關鍵的一段場景是，為了證明他們的車子非常耐用，開出50輛汽車，橫越極地(我忘了地方，是很冷下雪的地方)，然後由董事長(男主角)親自帶隊和記者跟隨，過程中還抓到其他車廠派去的間諜，試圖破壞車輛，要讓計畫失敗。&lt;br /&gt;看得出來，汽車產業的發展，在各國都是非常辛苦的，我們自然也不例外，因此裕隆就成了非常好的反面教材。&lt;br /&gt;不過裕隆在這20年沒有白過，他成為Nissan的附庸，但是看來仍舊在努力發展，目前裕隆已經有能力進行整車，根據網友說的，Nissan的SERENA180，就是裕隆的成果，SERENA180除了引擎之外，整輛車子都是由裕隆操刀設計的(應該不含底盤)，因此可以知道，裕隆已經有整輛車子設計的能力，SERENA180甚至也賣回日本和東南亞部份國家。&lt;br /&gt;&lt;br /&gt;在昨天翻找資料過程中發現到，裕隆似乎不甘於幫別人代工，從去年開始就已經陸續有新聞提到，裕隆在經過了20年之後，要再次自製汽車了。&lt;br /&gt;&lt;br /&gt;儘管這件消息網路上有些網友說，裕隆只是因為要賣車到大陸，因為大陸的工業限制，要求一定要有造車能力才能在大陸賣車，所以裕隆才想造個車子，好方便他在大陸賣車。&lt;br /&gt;&lt;br /&gt;但是最近陸續的消息是，裕隆為了這台車子，已經砸了100億台幣了，未來估計還需要砸800億進行行銷，而且裕隆為了造車，將新店舊廠重開，把全集團(裕隆、中華)的高手全部集結，就為了造出車子，我個人是認為，如果只是為了能在大陸賣車，這樣的投資規模也太大太誇張了，媒體甚至用了「&lt;a href="http://blog.xuite.net/abaca/murmur/15964659"&gt;嚴凱泰的豪賭&lt;/a&gt;」來形容這樣的投資，看得出來這不單純只是為了大陸市場，是真的想拼拼看。&lt;br /&gt;&lt;br /&gt;看新聞，目前裕隆這台車子，已經進入最後階段了，也就是說，車輛早已實作完成，測試也進行的差不多了，看來已經到投產的階段了，在這裡我們幫忙他們集氣，希望這台車子未來能夠成功吃下大陸市場，反攻大陸不成，至少讓車子反攻成功。&lt;br /&gt;&lt;br /&gt;最後，把目前已經知道的車子資訊po出來：&lt;br /&gt;&lt;a href="http://www.taiwanpage.com.tw/column_view.cfm?id=896"&gt;嚴凱泰絕不能輸的世紀豪賭 砸兩百億元拚第二輛自有品牌車&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;目前已知的消息是，車型最初將有3種：轎車、SUV及MPV。&lt;br /&gt;引擎使用的是：&lt;a href="http://www.china-engine.com.tw/"&gt;華擎機械工業股份有限公司&lt;/a&gt;設計的引擎。&lt;br /&gt;華擎機械工業股份有限公司是由裕隆、中華(同一家)、工研院(提供技術研發)、國家開發基金(政府資金)開辦的，目前已經設計出數顆引擎，包括：&lt;br /&gt;1200 c.c.引擎&lt;br /&gt;1300 c.c.引擎&lt;br /&gt;2000 c.c.引擎&lt;br /&gt;2200 c.c.引擎(具有渦輪增壓)&lt;br /&gt;&lt;br /&gt;其中比較特別值得說的是，之前的中華威力(應該就是長得很像麵包車，方方正正又小小的中華三菱小箱型車)，就是使用華擎1200 c.c.引擎，大部分人可能以為是三菱引擎吧..... :p&lt;br /&gt;另外有趣的是，這家公司的引擎技術，主要是工研院機械所設計完成，由清大動機系李進修教授擔任顧問(李進修教授在GM進行相關設計非常久的時間)完成的。(參照：&lt;a href="http://www.ntut.edu.tw/~wwwve/cpsub/data/aaa_abstract_complete_typed.doc"&gt;引擎設計與分析技術&lt;/a&gt;、&lt;a href="http://www.cptw.com.tw/BookDetail.aspx?BOKNO=34514000"&gt;汽機車引擎設計與分析技術書籍作者介紹&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;新設計的這台車子將使用2200 c.c.引擎，另外會出柴油款，柴油款使用歐洲某廠的引擎，相關連結：&lt;br /&gt;&lt;a href="http://www.mobile01.com/print.php?f=294&amp;amp;t=534060&amp;amp;p=1"&gt;&lt;span class="rb16"&gt;[新聞] 裕隆品牌車 明年發動引擎&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://5i01.com/topicdetail.php?f=214&amp;amp;t=360874&amp;amp;p=1"&gt;以台灣的技術,做的出汽車引擎嗎?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.libertytimes.com.tw/2002/new/jul/23/today-e5.htm"&gt;華擎國造引擎前進中國 光陽產製機車騎進俄國&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這輛新設計的車子沒有自製的部份，除了柴油引擎之外，大概就是底盤的設計，底盤使用的是雷諾的ESPACE的底盤，是華創車電出面向法國馬特拉集團支付技術報酬金方式，取得ESPACE底盤使用權(參照：&lt;a href="http://forum.u-car.com.tw/forumdetail.asp?fid=52828"&gt;裕隆自創品牌汽車 即將成真&lt;/a&gt;)，目前這台車子最可惜的部份，大概就是油電系統了，目前看起來，這台車子最初版本應該不會是油電車(參照：&lt;a href="http://news.chinatimes.com/CMoney/News/News-Page/0,4442,content+120608+122008031200548,00.html"&gt;油價飆漲 車廠搶推油電混合車&lt;/a&gt;)，注意到參照的新聞，是2008/03/12)，要在年底、明年推出新車，而且車子要是油電車，除非裕隆放假消息，否則看來是不可能的。&lt;br /&gt;&lt;br /&gt;這輛新車由華創車電技術中心所研發，從「車電」可以注意到，它的目標不單單只有車輛研發，還包括了車用電子的研發。&lt;br /&gt;從網路上找到的資料來看，它的股東不只有裕隆和開發基金，更重要的是還包括了宏達電、中華電信...等IT廠商，而且研發的項目不是只有單純的車用播放設備，內容可能包括了汽車晶片、行車電腦、倒車雷達、電子穩定系統、剎車系統、巡航系統、安全氣囊、安全保護系統和汽車視訊...等。&lt;br /&gt;也就是要開發汽車的行車電腦...等車用電子技術，這些車用電子技術之所以不容易切入，主要原因在於目前世界各車廠這部份都是獨家技術，沒有任何兩家車廠的規格是相同的，所以雖然都是電腦、電子，但是廠商沒辦法做，車廠也不會讓你做，要做就必須通過車廠的一堆認證，除了花錢，還花時間～&lt;br /&gt;以下是參照網頁：&lt;br /&gt;&lt;a href="http://blog.yam.com/eat_read/article/5540151"&gt;華創車電能成為另一個聯電或台積電嗎？&lt;/a&gt;&lt;br /&gt;&lt;a href="http://magazine.sina.com.tw/winmoney/332/2007-01-03/181226291.shtml"&gt;嚴凱泰主導華創車電前進中國市場&lt;/a&gt;&lt;br /&gt;&lt;a href="http://news.chinatimes.com/CMoney/News/News-Page/0,4442,content+120601+122008033000267,00.html"&gt;中華電信 跨足車用電子&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.chip123.com/phpBB/archiver/?tid-9615.html"&gt;發展汽車電子 催生新兆元產業&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.libertytimes.com.tw/2007/new/jun/21/today-e6-2.htm"&gt;重兵集結華創車電 打造汽車夢&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.epochtimes.com/b5/5/12/21/n1161513.htm"&gt;推動汽車電子產業 華創車電技術中心成立&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.eettaiwan.com/ART_8800481949_480502_NT_7e63e40a.HTM"&gt;工研院與華創車電共同開發UWB車輛安全感測技術&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;最後，這台車子的照片目前已經被人拍到了，下面就是這台車子被人拍到的照片，地點是中橫武嶺。&lt;br /&gt;&lt;a href="http://www.carnews.com/detail/2007-9/7/article_view_10655.htm"&gt;捕獲「華創車電」打造正港國產車！&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;什麼時候可以正式和大家見面呢？&lt;br /&gt;根據2008/02/27的新聞，&lt;a href="http://blog.sina.com.tw/kwanssg551/article.php?pbgid=34231&amp;entryid=578417"&gt;裕隆品牌車 明年發動引擎&lt;/a&gt;。&lt;br /&gt;看起來大約年底可以正式現身，明年就能在展售中心看到車子了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1024563617698090310?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1024563617698090310/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1024563617698090310&amp;isPopup=true' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1024563617698090310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1024563617698090310'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post_09.html' title='台灣～裕隆～汽車設計'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1288233003035428073</id><published>2008-04-07T08:48:00.005+08:00</published><updated>2008-04-10T15:04:30.571+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>新酷音自訂詞彙心得</title><content type='html'>新酷音要自訂詞彙有兩種方式：&lt;br /&gt;&lt;br /&gt;正常的方式，是以「使用者詞庫」的方式建立，它會另外儲存到一個詞庫檔當中。&lt;br /&gt;這種方式的缺點是，使用者詞庫的優先權似乎超級低，因此當遇到使用者詞庫和內建詞庫衝突時，很容易有問題，相關討論如下網址：&lt;br /&gt;&lt;a href="http://forum.talkdigi.net/phpBB2/viewtopic.php?t=513"&gt;http://forum.talkdigi.net/phpBB2/viewtopic.php?t=513&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;見解如下：&lt;br /&gt;&lt;code&gt;經三交的觀察，應該是使用者自建詞庫（hash.dat）與統計字頻率資料（us_freq.dat）發生搭配上的錯亂所致&lt;br /&gt;而且執行「存入使用者詞庫」的次數愈多，問題就愈嚴重&lt;br /&gt;當然，這有可能三交才會有的情況，或說是個案也可以&lt;br /&gt;在研究「新酷音詞庫修改教學」之後&lt;br /&gt;摸索出以下的方法，不敢保證一定有用&lt;br /&gt;卻有相當程度的解決成效&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;以及&lt;br /&gt;&lt;code&gt;Roger大，讓三交來跟你解釋一下&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;算是內建詞庫的「原罪」吧Orz&lt;br /&gt;共享詞庫沒這麼厲害的說&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;上述的共享詞庫，就是使用者詞庫。&lt;br /&gt;&lt;br /&gt;剛討論內容是，「三交」這個網友認為新酷音詞庫維護團隊更新的實在太慢了，而且更新的並不符合使用習慣，他希望新酷音能夠有類似Google輸入法的功能，可以線上共享詞庫，因此以討論區手動的方式來進行詞庫整理。&lt;br /&gt;&lt;br /&gt;使用者詞庫：&lt;br /&gt;要在Linux上使用「使用者詞庫」，基本上有下列幾點要知道的：&lt;br /&gt;1. 使用者詞庫檔案所在路徑、檔名&lt;br /&gt;&lt;code&gt;~/.chewing/uhash.dat&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. 當使用者詞庫有任何問題時，只需要將該目錄下的檔案刪除即可，尤其是「uhash.dat」這個詞庫檔&lt;br /&gt;&lt;br /&gt;3. 「使用者詞庫」編輯工具&lt;br /&gt;Linux下我目前並沒有找到「使用者詞庫」編輯工具，所以要使用，可以從 Windows 上把「使用者詞庫」編輯工具複製到 Linux，接著搭配 wine 來執行，我測試後，基本上除了「新增詞彙」不能動作之外，其他的功能應該都是正常的。&lt;br /&gt;新增詞彙的動作怎麼辦？&lt;br /&gt;可以直接利用「Ctrl + 2、3、4、5」添加詞彙，再把使用者詞庫檔讀取出來。&lt;br /&gt;&lt;br /&gt;Windows上「使用者詞庫」編輯工具所在的路徑、檔名是：&lt;br /&gt;&lt;code&gt;C:\WINDOWS\system32\IME\Chewing\HashEd.exe&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. 要使用前面網友「三交」的詞彙&lt;br /&gt;步驟其實很簡單，下載他的詞彙檔，解壓縮後會得到檔案uhash.dat，接著刪除「~/.chewing/uhash.dat」，利用「wine HashEd.exe」將網友的uhash.dat匯入(匯入前正常情況應該是完全沒有詞彙的)，接著存檔即可。&lt;br /&gt;&lt;br /&gt;網友「三交」有提到我們自己的詞彙跟他的詞彙整合的問題，方法上其實也很單純，先把我們自己的詞彙輸入之後匯出成「uhash.dat」這樣的檔案，然後刪除「~/.chewing/uhash.dat」，再來把他的uhash.dat匯入，最後再匯入我們自己的「uhash.dat」&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;a href="http://chewing.csie.net/chewing_dict_edit.html"&gt;http://chewing.csie.net/chewing_dict_edit.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;首先我們先把流程列出來，流程如下：&lt;br /&gt;1. 用 svn 下載「新酷音詞庫團隊」最新的詞庫檔&lt;br /&gt;&lt;code&gt;svn co http://svn.openfoundry.org/libchewingdata/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. 產生內建詞庫相關的檔案&lt;br /&gt;&lt;code&gt;cd libchewingdata/utf-8&lt;br /&gt;rm *.dat *.dat_bin&lt;br /&gt;wine dat2bin.exe&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;之後會產生出好幾個「.dat」的檔案，這些檔案就是內建詞庫的檔案，檔案如下：&lt;br /&gt;&lt;code&gt;ch_index.dat&lt;br /&gt;dict.dat&lt;br /&gt;fonetree.dat&lt;br /&gt;ph_index.dat&lt;br /&gt;us_freq.dat&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. 將內建詞庫所需檔案複製到系統中&lt;br /&gt;首先要知道，Ubuntu 下「內建詞庫」的目錄在：&lt;br /&gt;&lt;code&gt;/usr/share/libchewing3/chewing/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;接著要知道，內建詞庫所需的檔案除了上述的 5 個「.dat」外，還有個「pinyin.tab」，操作如下：&lt;br /&gt;&lt;code&gt;cd libchewingdata&lt;br /&gt;cp pinyin.tab /usr/share/libchewing3/chewing/    (pinyin.tab在 libchewingdata/ 下)&lt;br /&gt;cd utf-8&lt;br /&gt;cp *.dat /usr/share/libchewing3/chewing/    (產生出來的 *.dat 在 libchewingdata/utf-8/ 下)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. 最後有個步驟要注意，「內建詞庫」在 Ubuntu 中，有個專門的套件，名稱叫做「libchewing3-data」，要記得把這個套件鎖定，否則系統更新後，改過的「內建詞庫」會被改寫掉&lt;br /&gt;&lt;br /&gt;解說完更新的整個流程後，接著要來稍微解說如何改「內建詞庫」，「內建詞庫」的檔案就 2 個，檔名和功能如下(檔案存在 libchewingdata/utf-8/ 下)：&lt;br /&gt;phone.cin        定義所有字的注音(注意，它的注音是以英文表示，例如：「傅ㄈㄨˋ」會定義成「傅zj4」)，因此要加入破音字可以修改這個檔加入&lt;br /&gt;&lt;br /&gt;tsi.src        定義所有內建的詞庫(這邊注意到，它有個特性，就算「phone.cin」中沒有定義「嫉ㄐ一ˊ」，但它還是可以接受詞彙中同時有「嫉ㄐ一ˊ妒」、「嫉ㄐ一ˋ妒」)&lt;br /&gt;&lt;br /&gt;tsi.src的詞彙格式如下：&lt;br /&gt;酷音 1000 ㄎㄨˋ ㄧㄣ&lt;br /&gt;&lt;br /&gt;其中1000表示優先順序，數值越大優先權越高&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-1288233003035428073?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/1288233003035428073/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=1288233003035428073&amp;isPopup=true' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1288233003035428073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/1288233003035428073'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post_07.html' title='新酷音自訂詞彙心得'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4334855828046472327</id><published>2008-04-05T07:04:00.003+08:00</published><updated>2008-04-29T03:45:24.426+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>壓縮軟體之比較</title><content type='html'>因為之前家裏File Server曾經因為PCI硬碟擴充卡出現問題，250G和80G硬碟的資料全毀，當時所有的卡通MP3和APE無失真音樂全數陣亡，讓我當場傻掉。&lt;br /&gt;也因為這樣，我在之前文章提過了，在去年啟動了RAID計畫，把File Server電腦更新，從K7-度龍800升級到Core 2 Due電腦。&lt;br /&gt;不過RAID仍舊會有資料損毀的可能，RAID雖然能保證壞一顆硬碟時受到保障，但如果同樣遇到PCI硬碟擴充卡出現問題，又或者IDE RAID上，同條排線的IDE硬碟有問題，都有可能造成RAID停止、資料損毀，甚至於說，RAID本身設定比較複雜，當出現問題時的問題排除步驟錯誤，也很有機會讓RAID掛掉(我在Lab的機器上就發生過)。&lt;br /&gt;&lt;br /&gt;最保險的方式，莫過於把資料備份，用燒錄機燒成光碟片，只要光碟片品質好些、不亂丟、不刮傷、不發瘋拿去曬太陽殺菌，原則上來說還算是可以接受的備份方案，最重要的是，和其他備份方式相比，燒光碟成本是最低的。&lt;br /&gt;&lt;br /&gt;把資料備份，我習慣上會先壓縮，尤其是MP3、APE這類檔案，因為光碟片本身會有編碼的問題，再加上經過壓縮打包，在解壓縮時我可以判斷檔案是否正常沒有損壞，所以我認為壓縮後燒錄事比較好的辦法。&lt;br /&gt;&lt;br /&gt;當要燒錄，就牽涉到壓縮軟體的選用了，經過了一番挑選，我選擇了rar來使用，下面是我這次的挑選過程判斷。&lt;br /&gt;&lt;br /&gt;常見的壓縮軟體包括：&lt;br /&gt;zip、rar、7-zip、gzip、bzip2&lt;br /&gt;&lt;br /&gt;這次對壓縮的需求有兩項：&lt;br /&gt;1. 要支援分片壓縮，分片壓縮中最重要的一點，分片壓縮的壓縮檔要能獨立解壓縮&lt;br /&gt;2. 要能正常的對中文、簡體中文、日文...等進行壓縮、解壓縮(也就是要支援Unicode)&lt;br /&gt;&lt;br /&gt;經過了比較之後，我最後使用rar。&lt;br /&gt;&lt;br /&gt;首先我先解釋一下需求，尤其是第1點，什麼叫做分片壓縮的壓縮檔要能獨立解壓縮？&lt;br /&gt;因為我要燒到光碟上，分片壓縮是必要的，雖然光碟片理論上可以放很久，但是大家都知道，實際上光碟片放一放就不能讀的機會其實很高，這也是一片3元和一片12元片子的主要差異～可靠度。&lt;br /&gt;而光碟片除了可能會不能讀之外，也可能因為刮傷等原因出現壞軌，這就會造成某個檔案讀取有問題。&lt;br /&gt;因為媒體的可靠度不是百分之百可靠，因此分片壓縮的壓縮檔，必需要能獨立的解壓縮，這樣一來，就算檔案有損毀，也不會造成資料全毀，頂多是幾首MP3，幾張專輯毀壞罷了。&lt;br /&gt;&lt;br /&gt;第2點相信不用多說了，MP3、APE這些音樂檔，各種語言都有，日文、中文、簡體中文都很常見，連韓文、俄文都出現過，不支援多國編碼(Unicode)的壓縮軟體，遇到日文、韓文就掛了，更不要說備份了。&lt;br /&gt;&lt;br /&gt;而目前這幾種壓縮檔格式中，唯一全部符合的，就只有rar了。&lt;br /&gt;&lt;br /&gt;zip是目前非常常見的壓縮檔格式，不但是使用最廣，也是支援最好，API最齊全的壓縮格式。&lt;br /&gt;很不幸的，zip的歷史因素，造成了zip不支援Unicode的缺憾，正確的說法是，目前大多數的壓縮軟體，對zip的壓縮、解壓縮都不支援Unicode，這包括了WinRAR、WinZip、7-Zip...等。&lt;br /&gt;因此很不幸的，zip落選了，儘管如此，但是因為zip有大量的API支援，目前我嘗試在寫的備份程式，還在試著用zip來達成需求。&lt;br /&gt;&lt;br /&gt;rar對於多國語系竟然意外的好，這點和網路上許多WinRAR解簡體壓縮檔的經驗差異很大，事實上，rar壓縮、解壓縮各式語系的檔案，都能夠正常的操作。&lt;br /&gt;而rar對於分片壓縮，也有很獨到的設計，除了rar分片壓縮出來的檔案能夠分片解壓縮外，rar的分片壓縮甚至有類似RAID的能力，能夠多產生幾個壓縮檔，容許幾個壓縮檔損毀，這功能並不常見。&lt;br /&gt;不過rar也不是沒有缺點，他最大的問題在於，他是商業軟體，因此要花錢買，而且它並沒有免費提供壓縮的API。&lt;br /&gt;&lt;br /&gt;7-Zip我原本對它頗為看好，一方面他的壓縮比可以很高，又是OpenSource的軟體，我一向對商業軟體有些感冒，而且在軟體介紹中有提到他支援分片壓縮，這讓我很興奮，結果感覺像是騙人的。&lt;br /&gt;7-Zip的優點很多，壓縮比高於RAR等壓縮軟體是他的最大特色，加上他是OpenSource，對於Linux平台支援性很好，在各個平台都支援multi-thread，讓7-Zip在Linux上能夠最大程度的使用到多處理器的能力。&lt;br /&gt;7-Zip對多國語系(Unicode)支援也非常好，預設就是UTF-8，因此基本上沒有檔名亂碼的問題，整體評價來說，僅次於RAR。&lt;br /&gt;但是7-Zip的分片壓縮非常鳥，感覺很敷衍，7-Zip的分片壓縮其實只是簡單的檔案分割，動作流程如下：&lt;br /&gt;1. 按照正常程序把一堆檔案壓縮&lt;br /&gt;2. 壓縮完成之後產生 xxx.7z&lt;br /&gt;3. 把 xxx.7z 開始分割，分割成 xxx.7z.000, xxx.7z.001...等&lt;br /&gt;&lt;br /&gt;這有3個很大的缺點：&lt;br /&gt;1. 要分片壓縮，它需要先壓縮，再分割檔案，這表示它的動作過程需要消耗 2倍 的硬碟空間，這在小檔案問題不大，但是當資料大到好幾G，甚至像我這樣好幾十G時，問題就很嚴重了，沒這麼多硬碟空間給它緩衝。&lt;br /&gt;2. 它的每個分片壓縮檔都只是檔案分割，因此要解壓縮前，必需要先合併檔案，把分片壓縮檔還原，之後才能解壓縮，這意味著跟上面同樣的問題，解壓縮時同樣需要消耗 2倍 的硬碟空間。&lt;br /&gt;3. 它必需要先合併分片壓縮檔之後才能解壓縮，這表示只要任何一個檔案損毀，整個資料就報銷了，你無法單獨把某個檔案找出來解壓縮。&lt;br /&gt;&lt;br /&gt;此外，7-Zip還有個缺點，它提供的API非常差，尤其是Java的，基本上只有演算法的實作，還不到能用的程度。&lt;br /&gt;&lt;br /&gt;至於gzip和bzip2，它的壓縮檔無法事後「加入」，只能夠一次壓縮完，這點問題不大～&lt;br /&gt;gzip和bzip2的主要問題其實也是分片壓縮，它的分片壓縮和7-Zip一樣，都是檔案分割，會面臨同樣的問題，檔案編碼部份我則沒有注意。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10062204-4334855828046472327?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4334855828046472327/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4334855828046472327&amp;isPopup=true' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4334855828046472327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4334855828046472327'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post_05.html' title='壓縮軟體之比較'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-4817989277330237181</id><published>2008-04-04T01:26:00.002+08:00</published><updated>2008-04-10T15:04:10.161+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='電腦'/><title type='text'>台製墨水夾的祕辛</title><content type='html'>今天心血來潮要來印東西，發現印表機又開始亂來了～&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;A：原廠色彩清晰，不會色偏(我只印報告，偏不偏不在乎，只要紅色還是紅色就好了)&lt;br /&gt;B：原廠墨水夾容量小一半(ｘ的勒～這怎麼行，我報告隨便都是100頁耶，印個3次就沒了是怎樣)&lt;br /&gt;C：原廠墨水夾比較不會阻塞噴頭(屁拉～那我2星期清墨一次，卻還是一條條白線是怎樣？)&lt;br /&gt;&lt;br /&gt;以上是常見的回答，跟我個人還有廣大民眾普遍的答案～&lt;br /&gt;&lt;br /&gt;可是今天我得到了個可怕的經驗，我今天陪印表機玩了1個多鐘頭，結果發現我頭昏想吐，這顯然並不正常，況且晚餐時候都很正常～&lt;br /&gt;而印表機列印時，會聞到油墨的味道～&lt;br /&gt;&lt;br /&gt;于是乎，我用google打上了『台製墨水夾、致癌』這樣的關鍵字，就彈出了如下的句子：&lt;br /&gt;&lt;span style="color:#000000;"&gt;.....&lt;br /&gt;由於競爭激烈，部分廠商甚至不惜使用苯酚類溶劑           （&lt;b style="color: black; background-color: rgb(255, 102, 255);"&gt;致癌&lt;/b&gt;物）來製作&lt;b style="color: black; background-color: rgb(153, 255, 153);"&gt;墨水&lt;/b&gt;，而有些化學功力不如人，就乾脆在印表機前裝置吹風機，直接烘乾。研發人員對於『理想&lt;b style="color: black; background-color: rgb(153, 255, 153);"&gt;墨水&lt;/b&gt;』Ideal Ink的追求，正隨著現在的技術   進步，不斷地逼近。&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;.....&lt;br /&gt;&lt;br /&gt;出處：&lt;br /&gt;http://www.digital.idv.tw/DIGITAL/Classroom/MROH-CLASS/oh81/index-81.htm&lt;br /&gt;&lt;br /&gt;接著我們可以在PCHOME看到HP原廠墨水夾的宣傳：&lt;br /&gt;.....&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;全面顧及身體健康：&lt;/strong&gt;&lt;br /&gt;                    HP原廠耗材經過嚴格控管及檢測，品質佳、無異味、不含致癌物，不影響人體健康。&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;.....&lt;br /&gt;&lt;br /&gt;出處：&lt;br /&gt;http://buy.yahoo.com.tw/gdsale/gdsale.asp?gdid=636985&lt;br /&gt;&lt;br /&gt;雖然相關訊息的印表機廠牌是不同的，但我認為結果是大同小異的，同樣是墨水夾，原廠價格這麼貴到底貴在哪？只是色偏嗎？色偏不會是全部的答案～&lt;br /&gt;這篇文章，是我親身的經驗，對台製和原廠仍舊有疑問的，還是選原廠吧～&lt;br /&gt;除非你的印表機，是放在&lt;/span&gt;&lt;span style="color:#000000;"&gt;人不會靠近&lt;/span&gt;&lt;span style="color:#000000;"&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/10062204-4817989277330237181?l=ycfunet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ycfunet.blogspot.com/feeds/4817989277330237181/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10062204&amp;postID=4817989277330237181&amp;isPopup=true' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4817989277330237181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10062204/posts/default/4817989277330237181'/><link rel='alternate' type='text/html' href='http://ycfunet.blogspot.com/2008/04/blog-post.html' title='台製墨水夾的祕辛'/><author><name>阿呆</name><uri>http://www.blogger.com/profile/17029531215338378145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://lh4.google.com/image/ycfunet/ReCDawDgloI/AAAAAAAAAAs/Q0dZJ84Yhuo/P6170051.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10062204.post-1625678091778773581</id><published>2008-03-29T05:07:00.004+08:00</published><updated>2008-03-29T05:36:22.785+08:00</updated><title type='text'>在論壇發英文信？</title><content type='html'>這個標題也許很多人看了會疑惑，對於英文程度馬馬虎虎的人，可能會覺得這沒甚麼大不了的，對專科出身的同學，可能會覺得～怎麼可能辦得到... :p&lt;br /&gt;&lt;br /&gt;在下(第一次用唷)我以前高職、二專、二技上來的，國中時英文不算好，但也沒有非常的爛，至少現在進行式、過去式之類的還了解，到了高職，英文課少了很多，但是基本上英文退步基礎還沒退到鴨蛋～&lt;br /&gt;到了二專～當替代役～二技，現在的程度大概比一個上芝麻街美語的小朋友還糟吧 = =||&lt;br /&gt;雖然現在研究所了，但是基本上英文程度仍舊不怎麼樣～&lt;br /&gt;&lt;br /&gt;身為一個可憐的研究生，雖然因為我不抽煙、不喝酒，還沒進入煙酒生的境界，但有時候仍然需要發英文信，像是在論壇詢問、寫信給paper作者，還有對一些軟體的功能發表一些建議.....(最後一個才是重點吧... :p)&lt;br /&gt;&lt;br /&gt;我最早有模式的英文信，算是發給PSPad的，當時用PSPad看code，因為code很醜，理所當然的就需要一大堆的註解，在每次理解了的程式碼或段落的後面加上自己的理解，不然想想看，code這麼多，看這裡想到那個，看那個這個全忘了，這怎麼行～&lt;br /&gt;可是當時的PSPad有個bug，bug問題在於字數計算，當時的PSPad對『中文』字的辨識能力很有問題，把每個字都當作半形來計算，結果就是結尾的中文註解會被切掉～&lt;br /&gt;我因為實在受不了了，終於發出了算是第1篇比較有模式的英文信，至今一直按這個模式在處理，方法很簡單，就是靠『Dr.eye的全文翻譯』。&lt;br /&gt;我們輸入中文讓他翻成英文，然後自己判斷一下他的語句順不順，大家都知道，翻譯軟體的全文翻譯能力差不多趨近於幼稚園程度，太複雜的句子它就會亂翻。&lt;br /&gt;因此我們輸入的中文句子原則就是，句子愈簡單愈好，儘量不要一口氣給他翻譯超過2句(以，隔開的)，第一次翻譯之後，看出規則性之後，然後手動進行調整，這句話就ok拉～&lt;br /&gt;接著換下一句，因此怎麼樣用簡單的句子來描述問題很重要。&lt;br /&gt;像『我在Ubuntu上的grub在開機時會crash』，就可以用『When my Ubuntu booting, the grub crashed』。&lt;br /&gt;雖然語法可能有問題，整句話很醜很像幼稚園寫的，但是正常人看起來都知道，就是Ubuntu開機時會crash，這樣的英文對於我這種人來說，就很足夠了，畢竟是非正式的提問，而不是寫文章。&lt;br /&gt;&lt;br /&gt;像前幾天，在PDF X-Change Viewer的論壇發文，給予建議，文章如下：&lt;br /&gt;標題&lt;br /&gt;&lt;a href="http://www.docu-track.com/forum/viewtopic.php?t=3942" class="topictitle"&gt;Text copy with "-" 
