2010年3月28日 星期日

照片簡單去白背景 -- Skitch

最近在學 AppleScript,所以想寫些 script 來讓電腦使用更便利,可是有一個問題一直困擾著我....就是畫 icon 的問題 !! Mac 上的軟體大多都有很漂亮的 icon,這跟 Win 上的 icon 解析度很低而且又沒人關心完全不同。可是我並沒有學過這方面的知識,更重要的是我沒有好的軟體工具,若不用那些謎版軟體,剩下來的 Seashore 不太好用 [1]、Image Tricks 好玩歸好玩 [2],實用性不太夠、Paintbrush 綜合能力不錯,但是稍顯陽春 [3],至於 Inkscape 及 Gimp 需要 X11,簡直是零分.....

不過呢,其實要畫出有一點水準的圖,使用 iWork 就可以了,iWork 的圖形工具真的做得很棒,我記得 M$ Office 也是。所以我會先用 Keynote 畫圖,或是在圖片上加點東西 [4],最後才用其他比較專門的軟體去處理。一開始畫圖如下圖 :


好啦,畫好了之後要先存成圖檔吧 ? 複製了之後一貼到預覽程式.....


OOXX 的.....那個白邊是怎樣 ? 這個白邊是因為 iWork 裡面的所有快取圖形都可以調整邊界,所以有一個預設的邊界在那裡,但是一般人不會注意到,因為在 iWork 裡不會讓你看到它在圖形的周圍,頂多是調整邊界的弧度或畫三角形時會看到一下子,完全不影響在 iWork 文件裡的視覺效果。可是當你想把它存成圖片,貼到其他程式時就會變成上圖那樣,貼到 Seashore 裡也是一樣 [5]。

我找了一下,似乎大部分的圖形軟體都只處理矩形的圖 (或者這麼說,預設是矩形,或是該輸入圖片的形狀),想把圖形改變形狀,或切成菱菱角角的還不是很容易....更別說我是要去白底色,自己切割一定切得亂七八糟 [6]。之前有在雜誌上看過 Skitch 的介紹,可是當時沒需求就不在意,今天一用真是驚為天人阿 !! (補充 : 注意 !! Skitch 的去白背景功能並非適用所有有白背景的圖片,我試用過後有發現一些限制,詳情請看第一篇回應。)


將欲去背的圖貼過去 Skitch..

沒變嗎 ? 看看工具列上的圖形選項 :


按下去之後....

有看到白邊出現異狀了嗎 ? 那就是被透明化了,現在在下面檔名的框框上輸入檔名跟副檔名,再從最下面的標籤拉出來....(補充 : 注意 !! 下圖有誤 !! 必須輸出成 png 檔 ! 詳情請見我的第二篇回應。)


再去預覽程式開看看


原來這麼簡單  XD,這個軟體還有截取畫面及基本的修圖能力,可以弄出一些很有趣的搞笑圖,功能很多,安裝好後大約 18 ~ 19 MB,很推薦使用 ! 缺點是使用時要註冊就是了,但是它是可以免費使用的喔 !!

附註
1. Seashore ( http://seashore.sourceforge.net/ ) 是個自由軟體,簡易的 Gimp,有圖層是它的特點,功能很多,但是我一直覺得很不好用....
2. Image Tricks ( http://www.belightsoft.com/products/imagetricks/overview.php ) 可以讓你的圖片作很炫的特效,可是僅只於此......廣度不夠是唯一缺點,免費版比付費版少了一些功能,但已經很夠用了。
3. Paintbrush ( http://paintbrush.sourceforge.net/ ) 簡單的說就是 Win 的小畫家,進階功能不如 Seashore,但是基本功能比它好用很多,適合要塗鴉的輕量使用者。
4. 由於本人風格的關係,常常使用示意圖來表達一些事情,我喜歡走簡單風,這樣比較不會模糊事情的焦點。
5. iWork 裡的 Instant Alpha 效果只有在 iWork 裡存在,貼到別的軟體上都是失效。
6. Seashore 或許可以去背,但是我真的看不懂該怎麼用 (因為我有看到 Alpha 的字眼),它的介面不夠親和是我覺得它的一大缺點,一些基本繪圖工具的缺乏就先不提了。

冰果室 Apple 老機網聚

時間是 2010 0326,地點是 "滴咖啡" 咖啡館。我為了這個而去申請冰果室的帳號 XD,雖然機器沒有我想像中的多,但也算是有點收穫啦~ 照片已經上傳相簿,請自行觀看。 (因為我不想再傳一次..XD.... Blogger 跟 PicasaWeb 共用容量耶 !! 現在用免費版的只有 1G,還是省著點  XD)

http://picasaweb.google.com/Schrodinger959/20100326Apple#

2010年3月27日 星期六

ApplePlan at Opera (後續)

我在上一篇的回應中曾經提到,在網頁底部居然顯示 "Mobile Theme" ! 這表示網頁將 Opera 視為 Mobile Device 上的 Opera,也就是 Opera mini 那一類的瀏覽器 [1]:


那該怎麼解決呢 ? 其實很簡單,就把上圖這個開關關掉就好 :


整個網頁就正常了~

現在我們來探討看看會什麼會發生這種事情,其實這就是 Opera 的 User Agent (使用者代理程式) 沒有做好的關係。一個瀏覽器的 User Agent 就像是該瀏覽器的身分證,它可以告訴網站現在造訪該網站的是哪一種瀏覽器,不過現在的瀏覽器大多都有內建偽裝 User Agent 的能力 [2],比如說 Safari :


Opera 也有 :


有沒有看出問題出在哪裡 ? 不是 Opera 內可以選擇的 User Agent 比較少,那不是重點。重點是 Opera 本身提供的 User Agent 很少,Safari 本身就有提供 Mac、Windows、iPhone 版的 User Agent,甚至本身都還有版本之差。但是 Opera 並沒有將 mobile 跟 desktop 的版本分開,故網站分不出是哪一種 Opera 來讀取網頁的資料,由於 Opera 的手機版比較紅 (?!),所以在瀏覽某些有為 mobile device 量身打造的網頁時,預設就會呈現錯誤的版面,這不是該網頁的問題,而是 Opera 該改進的地方。印象中在 Opera 10.10 時還沒有切換的按鈕,只是告訴使用者現在是 Mobile Theme 而已.....= =|||| 新版 10.51 有做一些改良,可惜沒有做到重點,沒有這一項軟體設定可以調的話,我每一次上這類的網站都要去切換一次這個鈕。

不管如何,現階段總算是水落石出了,能減少使用 IE 的機會就盡量減少,但是 Opera 還是不能在 Blogger 裡上傳照片耶.............= =||| 期待下一次改版.....(不過還是要跟他們的爆肝工程師致敬啦 !!)

附註
1. 話說 Opera 這一次 10.51 大改版改變了很多東西,其中介面簡直超像 Google Chrome....之前 Chrome 抄它,現在它又抄回去......瀏覽器真的都是抄來抄去... = =|||
2. 我之前說過如果一個網頁不能看,改了該瀏覽器的 User Agent 就能看的話,那表示根本不是該瀏覽器功能上的不支援,而是那個網站故意排擠該瀏覽器,這是很下流的做法.....

2010年3月21日 星期日

ApplePlan at Opera

好吧....我發這篇純粹只是想把抓好的截圖放出來,平常我應該是懶得說的.....

ApplePlan 是最近幾個月以來一個很受歡迎的 Mac 討論區,編輯群人數很多,文章更新速度很頻繁 [1]。使用過非 Windows 作業系統的人,大多會比較有相容性的概念,也就是當他們在製作任何作品的時候,都會考慮到其他人是否可以正常且自由地選擇軟體觀看,不會像很多 Windows user 一副 "阿這軟體最多人用,你不想用就不要看" 的死樣子 [2]。

可是最近我發現了一件事,ApplePlan 居然不相容 Opera !! 我用 IE、FireFox,及 Safari 看過都沒問題 (不好意思,我沒在用 Chrome),但是在 Opera 上整個爛掉.......我想或許跟 Opera 封閉原始碼,更新速度又快的原因有關 (他們工程師都沒在睡覺的....),而且 Presto 核心本來就很怪,使用 Google Blogger 每寫必當,還不能上傳圖片......以下貼兩張 ApplePlan 在 Opera 及 IE 的螢幕截圖 :

IE 8

Opera 10.5

Opera 在首頁死得很誇張,而且點進文章裡面也是爛光光,排版全亂,連 Yuotube 的內嵌影片框架大小都有問題,跟不能看沒兩樣。儘管如此,我還是很喜歡用 Opera,我喜歡新奇的東西,它的介面很吸引我 [3],而且該有的功能都有,哪天我有空再來寫信給他們的編輯群好了...目前先用其它瀏覽器頂著.......

附註
1. 不像本網誌....咳咳.....不過一個人怎麼跟他們整個團隊比阿 XD 不過據說團隊裡面有正妹.....有圖有真相 XD (糟糕我真的盜圖盜很大....ApplePlan 的編輯們如果覺得不舒服請告訴我阿~~)


2. M$ Office 跟 IE only 最為常見,可是這些東西又很爛......比如說 Office 檔在不同版本的 M$ Office 上打開居然格式會變......這是多荒謬的事情.....這種爛文件格式居然還一直沒有被捨棄,更可笑的是,不想用的人還會被其他人逼著用;IE only 網頁也差不多,M$ 自己都要給 IE 6 這個垃圾送終了,居然還是有很多企業不離不棄,寫出非標準語法的網頁,而且死不更新。
3. 我不喜歡 FireFox 的原因除了它實在有點慢之外,還有就是介面太像 IE,我看了就不想用。XD

2010年3月20日 星期六

一個像夏天一個像秋天 -- 范瑋琪



其實我第一次聽到這首歌是在快樂星期天節目上,那時是康思婷的演唱。基本上一首歌要能吸引我,除了旋律好聽之外,歌詞也非常重要。這首歌蠻輕快的,敘述的是朋友 v.s. 情人的一些事情,這類的歌很多,把這首歌貼出來完全是意外,因為我以前幾乎沒在聽范瑋琪的歌。 XD

聽這種歌會很有感覺的大概是兩種人 : 1. 情人太煩,想要有一點自己的空間;2. 情場失意,幸好有好友的陪伴與支持。說真的,好像都不是很好,尤其是後者.....orz

魔法世界的報紙成真 -- 漫談對 iPad 的一些看法

iPad 的發表帶給電腦界不小的震撼,很多軟體公司開始為了 iPad 開發軟體,比如說美國連鎖書商 Barnes & Noble 的 B&N eReader,以及網路書店 Amazon 的 Kindle for iPad [1]。上述兩個都與閱讀有關,這篇開頭要介紹的則是 VIV Magazine :


這個公司以相當高成本的拍攝方法去製作影片般會動的雜誌,哈,這不就是哈利波特裡的魔法報紙或書嗎 ? 這讓我越來越期待 iPad 的發售,沒有意外的話我一定會去買一台,因為這剛好符合我的需求。

趁著這篇文章,我來說一下我對 iPad 這個產品的看法。其實本來我很懶得說,畢竟已經過這麼久了,可是我看到很多人對這個產品有不小的誤解,還是不吐不快。

1. iPad v.s. Kindle


這應該是我覺得最荒唐的爭論了,由於發表會上有一個部分提到電子書及 Apple 自己弄的 iBookstore,不出所料地 Kindle 也登上 Jobs 的 Keynote....然後就有一大堆人在討論兩者的優缺點啦,蘋果股市的走向啦之類的話題。聽好,這根本是沒有意義的爭辯,因為 iPad 根本不是 Kindle 殺手,現在不是,以後也不會是,Apple 自己也沒這樣想過,頂多是想搶一點市場而已。

為什麼呢 ? 單單從電子書的角度來看,兩者用的技術完全不同 : iPad 是小電腦,用的顯示技術及硬體跟一般電腦差不多,所以螢幕很耗電,色彩對比也很鮮豔,根本不像 "書",只是能播放文件檔的行動電腦而已;反觀 Kindle 這類的電子書機器 [2],顯示方式是 E-ink,顏色只有黑與白,但是耗電量極低,幾乎可以說翻頁才會耗電,而且人眼對其也感覺比較舒適,可以長久地看而不感到眼酸。由上可知兩者各有千秋,走向完全不同,iPad 有著廣度,比如說像這篇提到的 "動雜誌",允許讀物有各式各樣不同的面貌;但是 Kindle 則有深度,它就像一本書,你可以很舒服地看書數個小時都沒有問題,而且不用太擔心沒電,單單為了愛書人設計。故可知這兩者根本沒有什麼好比的,各有各的支持者,iPad 做這個功能並不是想把 Kindle 幹掉,只是身為行動裝置,螢幕又夠大,不做這個實在太可惜。[3]

2. iPad 是放大版的 iPod Touch ? (因為沒有電話功能)


應該大部分的人都這樣想吧 ? 發表會中的確也提到現在所有的 iPhone app 都可以在 iPad 上執行 [4],只是執行時畫面位於中間的框框裡,但也可以放大至全螢幕,就變成 iPad 原生程式一樣。所以 iPad 沒搞頭嘛,只是放大的 iPod Touch ! NONONO !!! 絕對不是 ! 若為一個軟體開發者,你就會知道螢幕大小影響很大,大一倍的螢幕,能做的事絕不是跟以前一樣,甚至也不是只多一倍 ! iPad 的螢幕比 iPhone 大了那麼多,對於開發者來說,表示可以設計更多更細膩的程式介面,之前受限於螢幕大小的許多軟體點子,可能一下子變得可行,使用者也即將可以享受更多更有趣的軟體在 iPad 上。

另外,對於使用者來說,螢幕變大就象徵用它閱讀會更容易,所以本文一開頭提到的那三個公司不就想盡辦法想搶這杯羹 ? 除了閱讀,使用者也能更舒適地上網、觀看圖片或影片,甚至做些簡單的文書處理,也因此 iWork for iPad 才會在此時才出來,當初 iPhoe 及 iPod Touch 的螢幕那麼小,連看網頁都不是很舒服了,何況還要作文書編輯 ? 看到這裡,還會有人覺得 iPad 只是放大的 iPod Touch 嗎 ?

3. iPad 的市場定位 ?

一開始 Jobs 就說了,他們想做一個介於智慧型手機及筆電之間的產品,這個產品必須要有自己的特性,而且在這個特性上做得比智慧型手機及筆電都好,但並非要取代任何一個。先不管好不好,很多人會說 "介於智慧型手機跟筆電 ? 那不就是小筆電嗎 (Netbook)?" 問題就跟 Jobs 說的一樣,小筆電除了尺寸小好攜帶之外,只有價格便宜這一點可取。原因在於 "筆電" 這種東西本來就不是一種機動性很強的裝置,就我來看只是妥協下的產物,怎麼說呢 ? 我認為原因只是因為桌機帶不走,但是人們又希望能在不同地方使用完整的電腦功能,於是做出這樣的產品。如果要拿著筆電到處跑來跑去,先不管重量,不是要一手拿筆電另一手操作鍵盤及觸控板,就是要找張桌子來放著用,再不然也要坐著放在膝上,根本就不方便,完全沒有機動性可言。

至於智慧型手機才是真正行動裝置的開端,無奈螢幕不能做太大,扼殺了很多發展及創意。兩全其美的方法是什麼 ? 就是卡在中間不上不下的 iPad。我認為 iPad 在市場上的定位是輕量型電腦,專攻行動族群 [5],比如說常常要到處跑的業代,秀產品圖給客戶看很方便,還有一些旅行者及攝影家,在外整理照片跟上網看地圖也很方便;另外由於 iPad 的定價並不高,所以在學術環境裡也不會高不可攀,學生可以拿來整理筆記及文件檔 [6]。當然那些都是有特殊用途,一般人想拿著在家走來走去也可以,吃早飯時上網看電子報也不錯....

我一直很想要這類的行動裝置,因為我覺得筆電帶出去真的太重,如果沒有固定的據點要去用電腦,我一點都不想帶筆電出門。可惜智慧型手機的螢幕太小,Kindle 那類電子書又只能看書,其他什麼事都不能做,所以我都不滿意,去年底找到這個....


雙螢幕設計,左邊電子書,右邊是灌有 Android 的觸控式電腦,怎麼看都覺得很棒,即使我看了一些試用影片,觸控功能做得很鳥,可是還是瑕不掩瑜。沒想到 iPad 一出來就要送它上路了 XDXD,價格沒便宜多少,品質上整個大輸。

其實 OS 也占有很大的因素,行動裝置要螢幕大且好操作,就必須要用觸控的方法控制,可是改一個控制方法是很重大的改變,整個 OS 的邏輯都要重新設計,像 Windows 7 的雞肋觸控就只是噱頭,根本沒有什麼意義,因為 Windows 的使用邏輯從頭到尾都不是為了觸控而設計的。當初 iPad 出來前謠言四起,其中有一則是說 iPad 採用 Mac OSX 10.7 Cloud Leopard (雲豹),而這個 OS 是為了 iPad 量身打造,是個觸控式的雲端系統,聽起來很有道理,結果當然不是 XDXD,只是 iPhone OS 而已,但是的確得到一個獨立的版號,而 iPhone OS 就是一個專為觸控控制而打造的 OS,況且還有 AppStore 數以萬計的應用程式當它的後盾。

我從不認為 iPad 是個完美的產品,世界上哪有完美的產品 ? 我認為它之所以可取,只是 Apple 知道它的定位,走它該走的路。我實在不太欣賞某些人對 iPad 的評論,並不是因為他們說 iPad 的壞話,而是他們沒有弄清楚 iPad 扮演的真正的角色,最後放個大絕好了~  不爽不要用 !!! XDXD

附註
1. 當然啦,前提是這兩個軟體能上架,由於與 iBookstore 重複性太大,有可能在 AppStore 的審核中就被踢掉了。
2. 電子書的機器很多,只是 Kindle 比較有名而已。為了方便,本文以下都只以 Kindle 總稱這類商品。
3. 當然,這是在愛書人堅持下的結果,如果人們都跟 Jobs 說的一樣 "不喜歡單一功能的產品",那 Kindle、iPod 這類單獨功能的商品的確是有逐漸式微的可能。
4.  當然是要在硬體支援的前提下,若 iPad 沒有 iSight 鏡頭的話,當然用到這個鏡頭的所有軟體都不能用。
5. 所以我一直認為 iPad 會打到一點 MacBook Air 的市場,即使 MacBook Air 是完整的筆電.....
6. 這讓我想起 Nature 雜誌發表了一個 iPhone app -- Nature.com,可以讓使用者免費看 Nature 雜誌的文章 !!! 但是不能下載到電腦。現在回頭一想,簡直就是為 iPad 設計的阿 !!!!

畢業紀念冊 -- 優客李林


這是一首非常老的歌了,收錄在優客李林第一張專輯 -- "認錯" 裡,裡面我特別喜歡這首歌,除了歌詞不錯之外 [1],最棒的就是後面的美聲了啊 !!!!! (可惜我已經不是學生,其實我超想在畢業時唱這首的阿 !!!!!!!)

(20121124 Update:其實這首歌應該是在第二張專輯 "黃絲帶" 中,感謝網友的指正 ~)

我仔細琢磨了一下最後的美聲部分,其實對於假聲來說音並不高,但是要 "美" 就不太容易了。如果是一個有在下功夫修飾假聲的人,應該會知道有些 "字" 不管怎麼包裝,就是唱起來很假、不好聽,這首就出現了一些這類令人很為難的橋段,可是林志炫有稍作掩飾,使其維持住它的優美,這對於學美聲出身的他應該是不困難的事。

我已經很久沒有用純假聲去唱歌了,我想林志炫也是,這首是他出道後的第一張專輯,技巧跟現在當然是不能比,頂多是以前年輕體力好,可以硬幹高音而已。這首歌非常不紅,但是如果能聽到現在的林志炫重唱這首,想必是完全不同的風貌。


附註
1. 其實這首歌的歌詞在林志炫的歌裡只能算是中上,因為他實在有太多有好詞的歌了。不過畢竟是姚謙的詞,一定的水平還是有的。

2010年3月18日 星期四

KUSO 照片特效

有些網站提供使用者上傳照片,然後做成搞笑的特效照片,由於筆者的照片太嚇人,故不放出例子了。 XD

這裡提供幾個有趣的網站:

1. http://www.photofunia.com/
特效很多,請自己去底下找 XD 每一個框框都是一種。


2. http://www.festisite.com/money/
將自己的照片做成鈔票、紙牌、LOGO 或 iPhone 背景圖,他們開發了 iPhone app -- BodySnatcher,有 iPhone 的人可以玩玩。


3. http://www.glassgiant.com/wanted/
製作懸賞海報,缺點就是圖很小.....申請免費會員也拿不到大圖  = =


4. http://www.magmypic.com/
登上雜誌封面 !


    http://cover.lifeshow.com.tw/
這是台灣版 XD


5. http://funphotobox.com/
製作會動的 gif 特效圖~



同場加映~ 兩個很有趣的惡搞網站~

1. http://serif.hatelabo.jp/b5afa3c5bb9faf1b423338d01491f3663ed3ae74/
這就是之前紅極一時的中正廟阿 XD



2. http://www.hetemeel.com/einsteinform.php
愛因斯坦寫黑板~


有些都已經隔很久了,沒想到都還沒失效。其實這類網路資源很多,不是只有惡搞用途,現在連簡單的圖形編修及轉檔都可以在網頁上直接來,Web 2.0 的資源可是比想像中還多喔~

2010年3月16日 星期二

ZTerm Applet -- 公用電腦的 Telnet BBS 取代方案

應該很多人跟我一樣已經不是學生,也許你是研究生或上班族,有時候很想上一下 Telnet BBS (比如說 PTT) 看些文章,畢竟 Telnet BBS 還是有網頁無法取代的優點。但是一般瀏覽器是不能使用 Telnet 的通訊協定的,所以一般人都會安裝專門瀏覽 Telnet BBS 的軟體,例如 PCMan、PieTTY、AlienBBS 或 Nally。可是如果你身處的環境不方便使用自己的電腦,或是你沒有筆電可以帶來帶去那該怎麼辦 ? [1]

若要使用公用電腦來連 Telnet BBS,一般人是使用綠色可攜式軟體,點了軟體資料夾內的執行檔就直接打開,用完之後殺掉該軟體的資料夾就好了,但是就我的使用經驗,這類的軟體執行上會慢一點,而且有些功能會不明地失效 [2],就算是 Mac 上的軟體 Bundle,執行時跟原生軟體一模一樣,但結束後還是要自己去殺軟體的個人設定檔 (*.plst),即使比 Windows 裡超亂的登錄檔好處理,每次要自己去砍也是麻煩。

那我們為何不退而求其次,選一個功能稍弱,但尚可接受,可是很方便的替代方案 ? 於是我推薦 ZTerm Applet !

ZTerm Applet  http://chrometerm.appspot.com/
ZTerm 官網     http://zhouer.org/ZTerm/

ZTerm Applet 是一個能讓 ZTerm 這個 Telnet BBS 連線軟體用在瀏覽器上的外掛,由於算是 WebApp (其實我不是很清楚這東西的定義....有誤請指正),所以是跨平台的 [3],而且非常簡單易用,就跟一般書籤一樣,連上網址就可以用,不用裝其他的元件 (當然啦,你還是得裝 JAVA 虛擬機 JVM),開啟之後畫面是這樣 :


可以看見上面有 Telnet BBS 所有該有的基本功能,分頁功能當然也支援,連上 PTT 是這樣..


看看右鍵,複製網頁連結還有基本的複製貼上都有 :


我想應該是很夠用了,反正只是應急的取代方案,自己的電腦想裝什麼都行,平常在外用這個就很不錯了。唯一美中不足的地方是它雖然是跨平台,可是在 Mac 上有不少問題,我寫信給作者過,他似乎沒有 Mac 可以 debug.....真是可惜了。

對了,PCMam 有 Plug-in 可以裝在 FireFox 上,但是問題更多,而且是 FireFox only,故我就不推薦了~ XD

附註
1. 當然你可以用行動裝置,像智慧型手機去連,不過那不是這篇的重點,故先不提。
2. 之前在碩士班時,我在實驗室裡使用過 PCMan Protable,卻無法看無名的相簿....這對於苦悶的研究生是多麼大的不便.....Q_Q....到現在我還是不了解為何會出問題 (或者這麼說,我也懶得去了解了....)。
3. 其實 ZTerm 本來就是跨平台的,因為它是 JAVA 程式。

2010年3月14日 星期日

LabVIEW 的資料流

最近在實驗室寫一些很鳥的 LabVIEW 程式,遇到幾個愚蠢的問題,有幾個是因為 LabVIEW 程式語言 -- G language 的中心思想 -- 資料流的關係,這裡就來談談這種非常特別的程式邏輯。

LabVIEW 程式的寫法非常特別,在人機界面上放好一些控制元件,比如說按鈕或是文字輸入框,寫程式碼 (好吧...不算程式 "碼" XD) 的 Block diagram 裡就會出現對應那些控制元件的 vi 方塊,此時就會用到資料流的概念,舉一個例子好了,如下圖 :


上圖有三個控制項 (框框是 Event structure,不是此處的重點故先不提),資料流的觀念很簡單,就是整個平面的資料一起流動,而資料流動的方向就是程式執行的方向及順序,換句話說,上圖三個控制項是同時執行的。可是有點程式概念的人都知道,哪有什麼同時執行這種事情 ? (OK,我們先不提多執行緒平行處理這種深奧的玩意) 電腦執行程式就是程式碼一行一行地去跑阿 ! 果然上次聽 NI 的課程時,主講人就說,其實沒有人知道哪個先執行,電腦只是隨機抓一個先跑,也就是說還是有先後差別的 [1]。

那要怎麼決定程式執行的順序 ? 有好幾種方式,最基本的就是用牽線的方式,因為 Block diagram 裡所有元件都是左邊輸入,右邊輸出,如果像下圖這樣牽線...


表示資料從 Numeric 流至 Numeric 3,先執行的當然是 Numeric,這樣就決定了執行順序。另外就是使用 Stack structure :


這個像膠卷的框框代表執行的順序,上圖有 0 跟 1 兩頁,所以第 0 頁的 Numeric 執行完之後,要先執行第 1 頁的其他元件才會輪到 Numeric 3。

聽起來好像不錯,這種程式好寫,程式邏輯性也不錯,有什麼不足之處呢 ? 我立刻問一個問題,而且這還是幾乎每個程式都會遇到的 : 要怎麼把一個控制項的值輸出給自己 ? 這很常見吧 ! 你隨時有可能對某個輸入的數值或字串等等資料作一些處理,然後再輸出回原本的輸入框。但是在 LabVIEW 裡,以資料流的邏輯來看,這是很忌諱的事情,所以預設是辦不到的。試想,如果可以將一個控制項同時接上輸出跟輸入的線,這樣變成一個資料流的無限迴圈,程式怎麼判斷哪裡是起點 ? 這就是關鍵了。可是一般的程式語言哪有這種事情 ? 程式跑到該變數的那一行時,就去抓一塊記憶體區塊來用,之後不管對這變數幹嘛,輸入、輸出、修改,都取這一塊記憶體的資料就是了,再簡單不過的事情,在資料流的觀念下完全是罩門。

那要怎麼解決 ? LabVIEW 提供一種方法 -- 區域變數 (Local variable)也就是將該控制項複製一份,做成一個分身,這個分身就可當作輸出或輸入,如下圖 :


但是由於你複製了一份,所以會讓記憶體多一倍的耗損,這可是非常糟糕的,但是沒有辦法,這是資料流天生的限制。除了這個需求,Event structure 也增加區域變數的需要性 [2],如下圖 :


Event structure 可讓程式執行後,依照使用者的某些動作 (event) 產生反應,所以很明顯地,邏輯上各 event 間必須互相獨立,你不可以讓控制項的資料從一個 event 流到另一個 event,因為你不能判定哪一個 event 會先發生。至於將控制項放在 Event structure 外面也不行,因為你觸發 event 前修改的值就讀不到,到頭來不用區域變數都不行。

不過還是有例外,例如兩個不同的迴圈要同時執行,由於迴圈有不執行完就不停止的特性,所以看起來也必須用區域變數 :


可是此時可以用一種高級技術 Quene 來連接,就可以免於使用區域變數,但是很多人沒在使用這東西吧,這算是比較進階的技巧了,我個人也不是很想去深究就是 [3]....

LabVIEW 資料流的構想很好,圖形化的 Block diagram 使得寫程式變得簡單,有些天生的限制也沒什麼好奇怪的,就當作應有的代價也可以讓人接受。只是邏輯上還是跟一般程式語言有差,有時候要小心別犯邏輯錯誤,這種錯誤要 debug 可是很累人的 [4]。

附註
1. 這裡我就犯過一個愚蠢的邏輯錯誤,GPIB Write 跟 GPIB Read 絕不能放在同一個平面上,不然 Read 先執行了就會產生 I/O Error。
2. 我在之前的文章曾說過 Event structure 是非常重要的東西,居然到了第八版才出來,NI 到底在想什麼 ? 沒有這東西,LabVIEW G language 只配稱作一個執行得很慢的 script language 而已。
3. 坦白說這種糟糕的程式語言....我離開這個實驗室之後就不會再用了吧...
4. 邏輯錯誤比起語法錯誤更麻煩,因為程式開發工具沒辦法幫你找錯誤,要靠自己一點一點地檢查。

名字的意義 ?

前一陣子我參加一個英文課程 (一個閒聊的課程),主題是聊大家的名字,不管是中文名字或是自己取的英文名字。一個好的名字很重要,我想每個父母都這麼想吧,取名時可不能馬虎;至於英文名字,不管是不是自己取的,取名的時候總有個原因吧 ? 不要跟我說是閉著眼睛選的。

我的中文名字是依照祖譜取的,至於祖譜在哪 ? 我也不知道,總之是我爺爺取的,然而他已往生,所以若我有小孩,可能就沒有祖譜的 "規則" 可以走了吧~ (我想我爸應該也不知道祖譜放哪...?)

我的英文名字是 Chris,雖然這不是我第一個取的英文名字,但是我想以後都會使用這個名字。為什麼取這個名字咧 ? 其實很多原因唷 (哈哈,我真的想很多),都專門寫一篇文章了,就在這裡講一下好了 :

1. Chris 是一個很普通的名字,去哪裡講這個名字都不會給別人奇怪的感覺,方便低調。 XD
2. Huang 是我的姓,Chris Huang 的縮寫 C.Huang 跟我本名的縮寫一樣。
3. 這應該是主因,不知道有沒有人記得格鬥天王的一個角色 -- Chris ? 這裡有他的圖片 :


看起來就是個死小孩對吧 ? OK,我並不是說我像個死小孩....XD 而是如果玩過格鬥天王 97 跟 98 的人,應該會知道 Chris 不只一種面貌 [1],他有另外兩個面貌,都是魔王等級的人物,圖片如下 :


OK.....我不是指我跟魔王一樣恐怖 XD,我想的是,不管是誰,你能夠完全了解你以外的任何一個人嗎 ? 我想連枕邊人都很難說。我取這個名字,意思是其他人沒辦法了解完全的我,即使我不喜歡說謊,也不喜歡搞心機,但是很多人終其一生可能都只看過我的其中一面。

附註
1. 這跟格鬥天王的故事有關,請自行去看港漫。 XDXD

2010年3月7日 星期日

告別憂傷 -- 蔡藍欽



告別憂傷

詞 : 蔡藍欽
曲 : 蔡藍欽

告別了我的憂傷
我要出發到遠方
這個熟悉的地方
充滿太多的假象
兒時擁有的光芒
依然閃耀在我心上
只是失去它應有的方向
啊.....

天上的白雲
為我張開流浪的翅膀
我要學你瀟灑的模樣
在藍天中飛翔
啊......告別憂傷
告別這熟悉的地方
我要走上我的方向
尋找兒時的遺忘


蔡藍欽是一個英年早逝的歌手,很多老一輩的人也不知道他,經由林志炫的翻唱我才得以知道這首非常輕快的民歌,聽了就讓人心情很好,也是該張專輯裡我最喜歡的一首歌。每個人都要揮別過去走向未來的路,這首歌的旋律不僅讓人心情讓人放鬆,連歌詞都是很有勵志性的好詞,當時的民歌流行這樣的曲風,蔡藍欽的歌幾乎每首都帶有很正面的情感,不知道他還能創作出什麼樣的歌,他死得太早了。