對於這些基本tool不熟實在是很不方便啊~~
------------
vi t1 t2
t1:
My Name is barry.
I am 20 years old.
Your name is tina.
How old are you?
t2:
My name is marry.
I am 20 years old.
You name is tom.
How old are you?
//產生diff檔,t1視為較舊的檔案,需要被更新
diff -Naur ./t1 ./t2 > t_patch
//patch t1
patch -p0 < t_patch
patch的參數-p0,-p1,-p2表示對於要處理的file/folder的階層。
參考:
Linux中 patch 的用法 @ 研究所學習筆記
Diff 和 Patch 的簡易操作使用筆記 - Tsung's Blog
星期四, 8月 14, 2014
星期一, 6月 13, 2011
星期三, 4月 14, 2010
利用Google App作為proxy
這一陣子公司對網路的管制越來越多,同事們莫不紛紛尋思如何獲得『海闊天空』。像是:
找了好久(公司為了不影響工作,還是開放google讓我們使用,但是一檔網路,大家的心思都在於如何破解。。。。),找到有人利用Google App執行proxy程式,防火牆之後再找一台PC跑proxy agent即可:
因為公司並非如狐狸一般,全面封鎖網路,還可以利用google的資源,所以最後我選擇了GAE+GAppProxy的方式(最上面兩個link是完全攻略)。基本上都可以滿足我對網路的需求:google search、plurk、...,但是對於會redirect很多次的網站卻可能無法配上用場,像是GMail。
另一個有趣的問題就是,我們還可以利用GAE做些什麼好玩的事呢?值得好好想想:)
- 如果網站support的話,將URL換成『https://』、web proxy
- 試試web proxy;但是雖然可以google到一堆,卻得一個一個地試看看,看能夠通到什麼程度。若是在sceure link上的話,web proxy也沒法兒用,例如不公開的plurk。
- 資本夠雄厚的話,用3G網卡或WiMax網卡上網。。。。
- 想辦法走後門。。。。。
找了好久(公司為了不影響工作,還是開放google讓我們使用,但是一檔網路,大家的心思都在於如何破解。。。。),找到有人利用Google App執行proxy程式,防火牆之後再找一台PC跑proxy agent即可:
- 史上最強代理!把Google當Proxy用
- 用Google App Engine做个人代理服务器(Linux版)
- Google App Engine入門指南(python):google提供了一個程式執行平台,讓使用者可以撰寫自己的程式run在GAE上,程式的執行就不再限制在自己的電腦上;目前支援的是python,支援Java的測試版也有了。
- GAppProxy:A Http proxy based on Google App Engine
因為公司並非如狐狸一般,全面封鎖網路,還可以利用google的資源,所以最後我選擇了GAE+GAppProxy的方式(最上面兩個link是完全攻略)。基本上都可以滿足我對網路的需求:google search、plurk、...,但是對於會redirect很多次的網站卻可能無法配上用場,像是GMail。
另一個有趣的問題就是,我們還可以利用GAE做些什麼好玩的事呢?值得好好想想:)
星期三, 1月 27, 2010
Notes about GStreamer Plugin
Ref:
furseal's lair:gstreamer plugin
Note:
_base_init():
_init():
_class_init():
furseal's lair:gstreamer plugin
Note:
_base_init():
- part of GObject system.
- The element details are registered with the plugin here.
- The _base_init () function should be set for this GObject in the function where
you register the type with GLib. - It is meant to initialize class and child class properties during each new
child class creation - In the element _init () function, you create the pad from the pad template that has been registered with the element class in the _base_init () function.
_init():
- Pads are created from its templates in the element’s _init () function using gst_pad_new_from_template ().
- It is used to initialise a specific instance of this type.
- In the element _init () function, you create the pad from the pad template that has been registered with the element class in the _base_init () function.
_class_init():
- It is used to initialise the class only once (specifying what signals, arguments and virtual functions the class has and setting up global state)
星期一, 1月 19, 2009
最近
雖然很久沒寫blog,不過生活依然忙碌地過著,要玩、要工作、要陪小孩。。。。
上一回逛誠品,把活船系列搬回家,幾週前突然心血來潮,一口氣把三部曲、六本書給K完。不得不說,還是『刺客學徒』最好看。雖然,我很喜歡她的idea,像是精技、活船、原智、古靈、...,但是,整個情節鋪陳卻讓人很有言情小說的感覺,特別是刺客後傳和活船系列的ending!不知是不是因為要由上述的ideas、刺客、私生子、海盜...等等去架構出一個世界,有歷史、有經濟、有文化,而想要把故事的前因後果交代清楚,而演變成如此?!感情部分的鋪陳是一大敗筆啊。
由於習慣在windows上工作,看project開發環境在linux下,使得工作很不順暢,上週一氣之下,把NB灌了Fedora 10,花了一天架環境及摸索,讓工作心情好多了;果然是工欲善其事,必先利其器啊!!目前最大的困擾是,不能在Linux上連上中文BBS,尚待努力中。其實,原本在window coding(NB)、Linux build code(PC,Ubuntu),本也相安無事,反正透過網芳、NFS,其實很OK的;但目前手頭上的工作卻得在封閉網路上測試,要一邊build code一邊debug就變得很麻煩。現在,只要帶著NB就可以遊走各式環境,不過,需要加強Linux技能和VI功力;目標是可以不用滑鼠就能順利使用VI!!
黃小弟越來越大,表達能力也越來越好。非常高興他沒有因為我們是假日父母,而跟我們變得越來越疏離(反而週末總愛黏著我)!但,也該是要考慮將他接回身邊的時候了,工作、生活的規劃就是個大題目了!!私心其實是很想在請個育嬰假,陪著黃小弟到三歲、上幼稚園~~
最後,雖然已經很少替黃小弟照相,但良心還是有那麼一丁點兒的,只是因為懶惰和忙碌,使得那為數不多的相片還躺在數位相機裡。。。。。目前,黃小弟身高已破90公分,體重不明,因為已經無法單手抱他持續五分鐘,所以估計應該有十四公斤的份量。愛笑、愛撒嬌、愛吃麵、愛喝湯、愛說話,具備了鸚鵡的基本功。
上一回逛誠品,把活船系列搬回家,幾週前突然心血來潮,一口氣把三部曲、六本書給K完。不得不說,還是『刺客學徒』最好看。雖然,我很喜歡她的idea,像是精技、活船、原智、古靈、...,但是,整個情節鋪陳卻讓人很有言情小說的感覺,特別是刺客後傳和活船系列的ending!不知是不是因為要由上述的ideas、刺客、私生子、海盜...等等去架構出一個世界,有歷史、有經濟、有文化,而想要把故事的前因後果交代清楚,而演變成如此?!感情部分的鋪陳是一大敗筆啊。
由於習慣在windows上工作,看project開發環境在linux下,使得工作很不順暢,上週一氣之下,把NB灌了Fedora 10,花了一天架環境及摸索,讓工作心情好多了;果然是工欲善其事,必先利其器啊!!目前最大的困擾是,不能在Linux上連上中文BBS,尚待努力中。其實,原本在window coding(NB)、Linux build code(PC,Ubuntu),本也相安無事,反正透過網芳、NFS,其實很OK的;但目前手頭上的工作卻得在封閉網路上測試,要一邊build code一邊debug就變得很麻煩。現在,只要帶著NB就可以遊走各式環境,不過,需要加強Linux技能和VI功力;目標是可以不用滑鼠就能順利使用VI!!
黃小弟越來越大,表達能力也越來越好。非常高興他沒有因為我們是假日父母,而跟我們變得越來越疏離(反而週末總愛黏著我)!但,也該是要考慮將他接回身邊的時候了,工作、生活的規劃就是個大題目了!!私心其實是很想在請個育嬰假,陪著黃小弟到三歲、上幼稚園~~
最後,雖然已經很少替黃小弟照相,但良心還是有那麼一丁點兒的,只是因為懶惰和忙碌,使得那為數不多的相片還躺在數位相機裡。。。。。目前,黃小弟身高已破90公分,體重不明,因為已經無法單手抱他持續五分鐘,所以估計應該有十四公斤的份量。愛笑、愛撒嬌、愛吃麵、愛喝湯、愛說話,具備了鸚鵡的基本功。
星期一, 12月 29, 2008
Building C libraries
Sample for shared libraries:
$> ls
a.c a.h lib.c
$> gcc -c -fPIC a.c -o a.o
$> gcc -shared -Wl,-soname,liba.so.1 -o liba.so a.o
$> gcc lib.c -o lib -L. -la
$> LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
$> export LD_LIBRARY_PATH
$> ls
a.c a.h lib.c
$> gcc -c -fPIC a.c -o a.o
$> gcc -shared -Wl,-soname,liba.so.1 -o liba.so a.o
$> gcc lib.c -o lib -L. -la
$> LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
$> export LD_LIBRARY_PATH
星期二, 12月 16, 2008
危險的gets()
今天在寫測試程式的時候,發現compiler給了各warning:
the `gets' function is dangerous and should not be used.
去google了一下,原來是因為它沒有做長度check,如果餵長一點的字串,就會overflow:
*** stack smashing detected ***: ./getstdin terminated
Aborted (core dumped)
除了自己check字串長度做保護外(但很麻煩),可以用fgets代替:
char *fgets(char *restrict s, int n, FILE *restrict stream);
說起來,由於歷史因素,許多好用的standard C functions到了現在這個越來越『先進』的時代,都變得dangerous,像是buffer的allocate和檢驗、是否可以reentrant、變數是否是library內static宣告...等。所以,使用一些有參數是pointer或是沒有限制buffer size的function,應該要提高警覺心,像是sprintf。有一些function有reentrant的版本,會命名為同名加上『_r』的方式。
sprintf --> snprintf
gets --> fgets
time系列functions(ex: asctime --> asctime_r)
search user DB系列functions(ex: getpwnam --> getpwnam_r)
string functions(ex: strerror --> strerror_r、strtok --> strtok)
...
the `gets' function is dangerous and should not be used.
去google了一下,原來是因為它沒有做長度check,如果餵長一點的字串,就會overflow:
*** stack smashing detected ***: ./getstdin terminated
Aborted (core dumped)
除了自己check字串長度做保護外(但很麻煩),可以用fgets代替:
char *fgets(char *restrict s, int n, FILE *restrict stream);
說起來,由於歷史因素,許多好用的standard C functions到了現在這個越來越『先進』的時代,都變得dangerous,像是buffer的allocate和檢驗、是否可以reentrant、變數是否是library內static宣告...等。所以,使用一些有參數是pointer或是沒有限制buffer size的function,應該要提高警覺心,像是sprintf。有一些function有reentrant的版本,會命名為同名加上『_r』的方式。
sprintf --> snprintf
gets --> fgets
time系列functions(ex: asctime --> asctime_r)
search user DB系列functions(ex: getpwnam --> getpwnam_r)
string functions(ex: strerror --> strerror_r、strtok --> strtok)
...
星期四, 8月 07, 2008
創意思考
暫時沒時間整理,把當時課程的幾個重點summarize在這裡。那天上課最大的一個心得是,其實我也是個有創意的人,只是懶惰、懶得想,或者idea常常是晃過腦際、卻沒有keep下來去更驗證它或是更detailed去思索。
創意九式:
組合
消除
改變
反向
轉換
問問題
打破框框
圖像思考
學習孩子的眼光
How to generate ideas:
Brainstorming
Brainwriting 6-3-5
Picture Association
Mind Mapping
創意九式:
組合
消除
改變
反向
轉換
問問題
打破框框
圖像思考
學習孩子的眼光
How to generate ideas:
Brainstorming
Brainwriting 6-3-5
Picture Association
Mind Mapping
星期二, 10月 10, 2006
果然是鍵盤!
雖然待在家裡的時間多了,但總是沒有碰電腦的慾望,有時候覺得是因為自己懷孕的關係,有時候嫌棄小黃的小compaq難用,有時候又覺得Apple的中文輸入法用不慣,總想著趕快替自己買臺新NB;最近覺得,針對小黃的小compaq,問題是出在鍵盤和螢幕,因為它實在太小(10吋),不僅字小(常會忽略錯字),而且鍵盤小,常常讓我按錯鍵。今晚索性找了個PC鍵盤接上來,browser換成用慣了的火狐狸(一堆hotkey,ctrl+"+"就可以讓字放大許多,但又不是640*480的解析度),寫blog就順手許多。針對Apple,有空來survey看看,是否有更好用的中文輸入法可用。
說到鍵盤,實在是我使用PC或NB很重要的一個考量點。Key敲起來要簡潔有力(我反而不喜歡無聲鍵盤,會搞不清楚自己到底按到按鍵沒有?),而且按鍵分布不要太緊密,最好就是一個手掌就可以掌控『半邊天』。我的骨架很大,手掌也不例外,甚至比一些男孩子的手還要大,個性也不喜歡細細巧巧的動作,所以公司配的Acer TravelMate290雖然有不少缺點,但它的鍵盤卻是我用過最喜歡的(小黃就老嫌它像戰車一樣)。以前學中國結時,老師每看我做,就喜歡笑問我:『手不會扭到嗎?』因為我喜歡一股腦地一路做下來,但中國結是小巧的飾品,老師們主張要細細巧巧、慢慢地做;按我的方式,最後就是要花一些功夫做抽線、調整結型的動作。
最近在survey新的NB,看上了Toshiba,但對於它的鍵盤也是有一些顧慮呢。
說到鍵盤,實在是我使用PC或NB很重要的一個考量點。Key敲起來要簡潔有力(我反而不喜歡無聲鍵盤,會搞不清楚自己到底按到按鍵沒有?),而且按鍵分布不要太緊密,最好就是一個手掌就可以掌控『半邊天』。我的骨架很大,手掌也不例外,甚至比一些男孩子的手還要大,個性也不喜歡細細巧巧的動作,所以公司配的Acer TravelMate290雖然有不少缺點,但它的鍵盤卻是我用過最喜歡的(小黃就老嫌它像戰車一樣)。以前學中國結時,老師每看我做,就喜歡笑問我:『手不會扭到嗎?』因為我喜歡一股腦地一路做下來,但中國結是小巧的飾品,老師們主張要細細巧巧、慢慢地做;按我的方式,最後就是要花一些功夫做抽線、調整結型的動作。
最近在survey新的NB,看上了Toshiba,但對於它的鍵盤也是有一些顧慮呢。
星期二, 4月 18, 2006
CMMI
早在三年多前、還在念研究所時,我的指導教授就已經在系上推動CMMI(Capability Maturity Model Integrated),並協助系上請了客座教授開課。事隔三年後的現在,我已經踏入社會兩年多了,我們公司開始對CMMI感興趣,從去年底積極的到外頭上CMMMI的課程、到今年在公司內部開課、聘請顧問公司進行『Gap Analysis』。
業界和學界對於某些topic畢竟還是有落差;儘管公司目前對CMMI顯得積極,但態度還很保留,是否推行CMMI得看顧問公司的Gap Analysis的report、同仁額外增加的effort、導入CMMI之後能夠產生多少效益...等等,才做最後的決定。
很幸運的這一次Gap Analysis,我也能夠被選上參與顧問公司的interview(雖然也花了不少額外的時間),因此瞭解了不少CMMI的基本概念,也大概知道評估的過程。透過這次的interview,我也順便回顧了這兩年多做過的計畫。一般來說,RD都不大喜歡寫design documents,把想法付諸文字還不如把想法付諸程式,結果馬上可見。而且,寫document其實也是一種不斷review自己思路的過程,不斷的重複常常也會讓人覺得無趣。所以,有時候document就只是應付了事。
這一回,我由計畫一開始就參與,因此也就可以由design階段開始,往coding前進,其實是一個挺好的經驗。雖然說,我負責的module並非無中生有,但porting之前撰寫design document的時候,對整體架構思考過(HW、SW),對這個module的functionality就更為清楚;coding時,依照design的架構去implement,也方便許多。
但除去design document,撰寫其他文件對我而言,還是很痛苦的:P,例如user manual、test plan。所以上著CMMI的課時,我心裡浮現的最大問號就是:『CMMI會為我們增加多少overhead呢?!』
業界和學界對於某些topic畢竟還是有落差;儘管公司目前對CMMI顯得積極,但態度還很保留,是否推行CMMI得看顧問公司的Gap Analysis的report、同仁額外增加的effort、導入CMMI之後能夠產生多少效益...等等,才做最後的決定。
很幸運的這一次Gap Analysis,我也能夠被選上參與顧問公司的interview(雖然也花了不少額外的時間),因此瞭解了不少CMMI的基本概念,也大概知道評估的過程。透過這次的interview,我也順便回顧了這兩年多做過的計畫。一般來說,RD都不大喜歡寫design documents,把想法付諸文字還不如把想法付諸程式,結果馬上可見。而且,寫document其實也是一種不斷review自己思路的過程,不斷的重複常常也會讓人覺得無趣。所以,有時候document就只是應付了事。
這一回,我由計畫一開始就參與,因此也就可以由design階段開始,往coding前進,其實是一個挺好的經驗。雖然說,我負責的module並非無中生有,但porting之前撰寫design document的時候,對整體架構思考過(HW、SW),對這個module的functionality就更為清楚;coding時,依照design的架構去implement,也方便許多。
但除去design document,撰寫其他文件對我而言,還是很痛苦的:P,例如user manual、test plan。所以上著CMMI的課時,我心裡浮現的最大問號就是:『CMMI會為我們增加多少overhead呢?!』
星期六, 3月 11, 2006
測試文
測試文。
這篇文章是在我們家的新成員iMac G5上用Dashboard的blogger widget發表的。非常好奇呈現出來會是什麼樣子?奇怪的是,沒有標題欄和日期欄可供輸入;但一樣有粗體和斜體字的快速鍵可用。
這篇文章是在我們家的新成員iMac G5上用Dashboard的blogger widget發表的。非常好奇呈現出來會是什麼樣子?奇怪的是,沒有標題欄和日期欄可供輸入;但一樣有粗體和斜體字的快速鍵可用。
星期日, 7月 03, 2005
突然到處都是blog~~~
突然到處都是blog,連M$都湊上一腳,開了Spaces,又開了一個提供M$工程師和外界溝通的Channel9;CNET一篇名為『微軟Blog強化社群交流』的文章提到:『微軟在星期二結合了網誌(blog)、論壇等技術,悄悄推出了改善開發人員溝通的網站。 』;之前M$也嘗試了一個以Flash為介面的blog『wallop』,不過實在用不順手,已經棄置;我在wallop的account已經被日積月累的email掩埋住,要想再登入它,還不大容易哩(因為wallop不僅採推薦制,而且還不能變更密碼,得先挖出舊信件才能夠登入.....說不定account也不是我自己設的,wallop真的被我丟到腦袋後頭了)!
雖然Spaces跟MSN密切的綁在一起(還用個小星星提醒使用者:『你有朋友在 Spaces 發表文章了』),算是對blog這個概念的推廣出了很大一份力量(相對地,這也是以商業力量很深地介入),不過,我還是不會在這兒落腳,一是沒有狡兔多窟的習慣(maintain兩個窩就很吃力了,常常都是隔一陣子才做sync哩~);另一方面,則沒得解釋,就是我對M$的偏見。
今天這篇文章以Spaces為第一個發表處,算是到此一遊的紀念囉!
雖然Spaces跟MSN密切的綁在一起(還用個小星星提醒使用者:『你有朋友在 Spaces 發表文章了』),算是對blog這個概念的推廣出了很大一份力量(相對地,這也是以商業力量很深地介入),不過,我還是不會在這兒落腳,一是沒有狡兔多窟的習慣(maintain兩個窩就很吃力了,常常都是隔一陣子才做sync哩~);另一方面,則沒得解釋,就是我對M$的偏見。
今天這篇文章以Spaces為第一個發表處,算是到此一遊的紀念囉!
星期五, 6月 24, 2005
Code Complete Ch.1
為了督促自己持之以恆地看完Code Complete,決定每看完一章就做一次摘要;雖然同事A已經對第一章做了摘要,但是為了有頭有尾,所以我也一樣由第一章開始,儘管內容大同小異。
第一章主要是強調一個軟體發展進行的過程中,construction(也就是coding)的重要性。這也是本書的發源,作者表示有許多相當好的技巧能enhance coding,但真正被實際運用的卻不多,如果能加以推廣,必能促進軟體發展的效能。這裡有一點,跟一般軟體工程不一樣,一般軟工強調完善的design(所以有design document)、測試...,本書作者當然並沒有否定;然而,書中有一句話,相信一定讓許多RD心有戚戚焉:『In many projects, the only documentation available to programmers is the code itself』。Design spec 或是requirement document總是跟不上coding的狀況,尤其計畫吃緊的時候,解bugs或maintain features都來不及,就很難將心力用來update這些文件。所以,coding做得好,就很利於之後的RD接手、理解,即使相關的文件不足。
在一個計畫中,construction的重要性有:
第一章主要是強調一個軟體發展進行的過程中,construction(也就是coding)的重要性。這也是本書的發源,作者表示有許多相當好的技巧能enhance coding,但真正被實際運用的卻不多,如果能加以推廣,必能促進軟體發展的效能。這裡有一點,跟一般軟體工程不一樣,一般軟工強調完善的design(所以有design document)、測試...,本書作者當然並沒有否定;然而,書中有一句話,相信一定讓許多RD心有戚戚焉:『In many projects, the only documentation available to programmers is the code itself』。Design spec 或是requirement document總是跟不上coding的狀況,尤其計畫吃緊的時候,解bugs或maintain features都來不及,就很難將心力用來update這些文件。所以,coding做得好,就很利於之後的RD接手、理解,即使相關的文件不足。
在一個計畫中,construction的重要性有:
- Construction is a large part of software development
- Construction is the central activity in software development
- With a focus on construction, the individual programmer’s productivity can improve enormously
- Construction’s product, the source code, is often the only accurate description of the software
- Construction is the only activity that’s guaranteed to be done
星期四, 6月 16, 2005
回過頭來翻字典 & Code Complete
前一陣子,Ruby的blog上介紹了一本微軟出版的書籍『Code Complete』,我覺得是相當不錯的一本書籍,特別是對於我們這些以programming為工作的工程師。
昨天晚上開始『開讀』(請Ruby幫我買了有一、兩週了:P),這本書的作者Steve McConnell用詞遣字相當豐富,很多字和片語都不向一般教科書或是專業書籍很制式化,雖然增加了閱讀上的困難度,但卻也增加了文字上的樂趣,所以查字典是一定要的。打從大四開始用翻譯機、研究所用翻譯軟體開始,已經好多年沒有翻過字典了,昨晚不知怎麼的,開始想念起中學時代查字典的記憶,便也將書架塵封多年(真的有灰塵呢!)的文馨大字典撢一撢、搬下書架使用。其實使用字典查單字的感覺挺好的,很單純(現在的軟體都附加很多有的沒的功能)、很悠閒(使用軟體字典總有總快還要快的感覺,最好看到生字就馬上知道意思),而且解釋也詳盡豐富的多。
前一陣子同事們有倡議要為Code Complete組一個讀書會,大家認領章節、分享讀書心得,後來因為工作一忙也就不了了之(慚愧!我才剛開始看,之前有稍微翻一下,也只停留在第一章)。希望以這篇blog的文章為一個起點,能夠持續不斷地將這本書給看完!!加油!
單字分享!在Code Complete的序看到一個單字guru,覺得很有意思,首先是發音讓我想到魔戒裡的咕嚕,查了一下字典,意思是:『1.精神上的領導者 2.印度教的導師』。
Bookpool對Code Complete的介紹:http://www.bookpool.com/sm/0735619670
昨天晚上開始『開讀』(請Ruby幫我買了有一、兩週了:P),這本書的作者Steve McConnell用詞遣字相當豐富,很多字和片語都不向一般教科書或是專業書籍很制式化,雖然增加了閱讀上的困難度,但卻也增加了文字上的樂趣,所以查字典是一定要的。打從大四開始用翻譯機、研究所用翻譯軟體開始,已經好多年沒有翻過字典了,昨晚不知怎麼的,開始想念起中學時代查字典的記憶,便也將書架塵封多年(真的有灰塵呢!)的文馨大字典撢一撢、搬下書架使用。其實使用字典查單字的感覺挺好的,很單純(現在的軟體都附加很多有的沒的功能)、很悠閒(使用軟體字典總有總快還要快的感覺,最好看到生字就馬上知道意思),而且解釋也詳盡豐富的多。
前一陣子同事們有倡議要為Code Complete組一個讀書會,大家認領章節、分享讀書心得,後來因為工作一忙也就不了了之(慚愧!我才剛開始看,之前有稍微翻一下,也只停留在第一章)。希望以這篇blog的文章為一個起點,能夠持續不斷地將這本書給看完!!加油!
單字分享!在Code Complete的序看到一個單字guru,覺得很有意思,首先是發音讓我想到魔戒裡的咕嚕,查了一下字典,意思是:『1.精神上的領導者 2.印度教的導師』。
Bookpool對Code Complete的介紹:http://www.bookpool.com/sm/0735619670
星期一, 5月 23, 2005
iPod Shuffle使用一週有感~Design Policy
使用iPod Shuffle一週以來,當然會發現不少缺點(特別是我完全沒survey就下訂單...),不過,這些不便並不因此掩蓋他的優點。
和一般市面上的MP3 player相較,iPod Shuffle最大的不同是,你一定得靠iTune才能夠使用『player』的功能,否則,他就真的只是一只512M的隨身碟。小黃家教的學生就complain說:『很不方便!』然而,我認為iPod的policy就是,讓音樂歸音樂,data歸data。
所以,透過iTune和iPod updater,他將整個iPod Shuffle的空間(或者說,是檔案系統)一分為二(可由user於iTune中決定大小);擺放音樂的空間就不是一般windows的FAT32,也無法辨識出一首一首的音樂。
音樂得透過iTune放入iPod中,雖然不若copy & past那麼方便,但是這卻也是他的好處。iTune將iPod視為他的一組播放清單,所以在上傳的同時,user也可以編排曲目的順序(一般的MP3 player都是讀檔、播放,因此是以檔名為播放順序),再加上iPod的size都很大(iPod Shuffle分512 M和1 G兩款),所以辛苦一次編輯好一份自己的音樂清單,就可以使用很久,自己編的清單也特別熟悉,所以找歌也很方便(當然,完全不care音樂播放順序的人,使用iPod Shuffle就很不適合,因為Shuffle連panel都沒有,只能靠聽覺辨別歌曲)。
Apple的多媒體產品總是以quality著稱,iPod也不例外。除了內附的耳機效果極佳,iTune在上傳歌曲時,會將歌曲的音量一致化,使得聽者在享受音樂的同時,無需為音量大小不一困擾,特別是音樂的來源是不同歌手、不同專輯。
另一個我認為是優點、但也被視為缺點的特性是,iPod Shuffle是透過USB充電。據說,美國不少玩家很不喜歡這一點,因為這個透過USB充電的電池大約只有兩年的壽命。而我,卻非常喜歡這個充電機制的方便性(而且電池很耐用,充電一次使用了一週還很夠的樣子),也算環保,因為不用一直換電池。以我家小白3300的身價,使用兩年,其實是差不多的。現在的科技日新月異,使用者也多半被慣得喜新厭舊(我當然不例外),兩年後天曉得我又會看上什麼新玩具,而且我也不大有把握,兩年內都不會把小白給fire掉:P
星期日, 3月 13, 2005
有意思的網頁resource
最近常常沿著朋友們的blog中的好站link一路往外連,拜訪了不少有意思的blog,也發現了一些滿好玩的網頁resource,挺有趣的。
- Site Meter:一個滿有名的網站統計工具,不僅提供訪客數目而已,還根據訪客來源、domain、拜訪時間..等資訊,分析出訪客所在的時區、網站常被拜訪的尖峰時間...等資訊。
- Fresco Workshops:利用java提供網頁訪客的前一個拜訪來源;簡單的說,就是列出訪客是由哪兒link到這一個頁面的,如google或kimo等入口網站。
- 時鐘:提供網頁時間的資源就多了,我的blog上的時間來源是一個日本網站豚,是swf格式。
- Weather Underground:這個網站不僅提供全球各地的氣象報導,也提供數種格式的Weather Sticker(我覺得還是有點兒少就是了)讓喜歡的人貼在網頁上;除了溫度,也有風向、濕度、日升日落時間等。以台灣來說,雖然許多許多都市的氣象報導都有提供,不過Weather Sticker就只有比較大的都市如台北、台南、高雄才有。
星期三, 2月 23, 2005
畢氏定理的證明
今天Ruby問我如何證明『畢氏定理』,曾經是數學系學生的我卻傻眼答不出來,因為很直覺的就想到要用代數的方式去證明,又想到這麼基本的定理一定很難證明,於是舉白旗投降。晚上小黃來家裡跟我拿東西,我隨口問了他一下,小黃先生居然說,似乎有上百種的證明方式!而且國中教師手冊就有!怎麼我一點印象都沒有?我的國中數學啊~
經小黃解釋,畢氏定理的證明方式真的是相當簡單。這裡列舉兩種。
經小黃解釋,畢氏定理的證明方式真的是相當簡單。這裡列舉兩種。
- 利用正方形證明
如圖,畫一正方形邊長為A+B,做出四個全等的直角三角形(藍色),則根據面積相等的觀念可得畢氏定理。
4 x (0.5 x A x B) + C^2 = (A + B)^2
=> 2AB + C^2 = A^2 + 2AB + B^2
=> C^2 = A^2 + B^2 - 利用梯形證明(據說是某一美國總統所提出的)
如圖,證明方式亦雷同。
星期五, 2月 18, 2005
Mac mini
昨天早上和部門的主管聊天,提到了一些電腦產品,主管立刻大力推薦Apple的iMac、iBook、和Mac mini,其中最吸引我的就是Mac mini!尺寸極小(16.51cm寬,5.08cm 高),大約是一個巴掌大,重量是1.32公斤(遠遠輕過我的Acer TravelMate 290),但配備卻並不遜色於一台NB,就差沒有螢幕、鍵盤和滑鼠,價格只有一萬七千多台幣。要挑毛病的話,就是在一本電腦雜誌上看到的,硬碟是5400轉、2.5吋的配備,但對於一般使用者是很夠了。

認識了Mac mini後,我想到的都是如何跟家庭生活、家電整合在一起。首先是,如果有電漿或液晶電視,便可以將Mac mini接上,在選配無線鍵盤、滑鼠(或藍芽也行)、無線網卡,就可以坐在客廳使用超大的電視螢幕做無敵多的事了:上網、多媒體欣賞、影音剪接....。如果再加上web cam、無線麥克風,還可以用來撥打VoIP電話或視訊電話;甚至設定好網路,裝上USB電話,不需要螢幕也沒關係。
因為MAC很穩,家裡的人也很少用電腦,操作MAC或window$對他們來說也沒有差別,當然更用不到很強悍的performance, Mac mini又便宜又好看,算是非常適合了;再加上不佔空間、接線也少,不會讓家裡的婆婆媽媽們看了很礙眼。有的人也認為拿他做server非常合適,系統穩定不需要螢幕,只要接上網路即可。
認識了Mac mini後,我想到的都是如何跟家庭生活、家電整合在一起。首先是,如果有電漿或液晶電視,便可以將Mac mini接上,在選配無線鍵盤、滑鼠(或藍芽也行)、無線網卡,就可以坐在客廳使用超大的電視螢幕做無敵多的事了:上網、多媒體欣賞、影音剪接....。如果再加上web cam、無線麥克風,還可以用來撥打VoIP電話或視訊電話;甚至設定好網路,裝上USB電話,不需要螢幕也沒關係。
因為MAC很穩,家裡的人也很少用電腦,操作MAC或window$對他們來說也沒有差別,當然更用不到很強悍的performance, Mac mini又便宜又好看,算是非常適合了;再加上不佔空間、接線也少,不會讓家裡的婆婆媽媽們看了很礙眼。有的人也認為拿他做server非常合適,系統穩定不需要螢幕,只要接上網路即可。
星期三, 2月 09, 2005
Blog的備份?
這一篇擺到技術類,真是不大好意思,因為這是我的疑問。
前一陣子,無名一直有狀況,雖然我也是挺擔心、也出了一些些力,不過怎麼備份這些資料就變成了我最近常想到的問題。好友Debby是採狡兔多窟的模式,我也試著在bloger落腳,但用了一陣子卻發現,儘管文章備份起來,不過朋友間的互動、留言版上的內容卻沒法兒複製過去。目前還想到一個方法,大概是最笨但最直接的方法,就是用 telport之類的軟體硬抓個人blog下的所有頁面。
不曉得各位朋友是否有更好的idea可以建議我呢?
前一陣子,無名一直有狀況,雖然我也是挺擔心、也出了一些些力,不過怎麼備份這些資料就變成了我最近常想到的問題。好友Debby是採狡兔多窟的模式,我也試著在bloger落腳,但用了一陣子卻發現,儘管文章備份起來,不過朋友間的互動、留言版上的內容卻沒法兒複製過去。目前還想到一個方法,大概是最笨但最直接的方法,就是用 telport之類的軟體硬抓個人blog下的所有頁面。
不曉得各位朋友是否有更好的idea可以建議我呢?
訂閱:
文章 (Atom)