2008年6月30日 星期一
2008年6月29日 星期日
2008年6月25日 星期三
Dev-C++ - wanna make with '-D'
在工作站編譯時可以用 make -D define_variable 以此決定要用哪種 code
最近使用 Dev-C++ 並且將自己寫的 code 從 FreeBSD 移值至 Windows
常常使用一些系統相依性的函數 偶時需要 windows.h 或什麼的
這時常用
#ifdef _WORK_FOR_WIN32_
#include <windows.h>
#include <io.h>
#endif
現在 不必自行改 header file 去定義 _WORK_FOR_WIN32_
可以透過 Dev-C++ :
[專案]->[參數]->[編譯器]
增加 -D _WORK_FOR_WIN32_
原先摸很久找不太到 原來 -D 這個參數可以直接加到 gcc or g++ 啊
現在編譯的方式又乾淨許多了 :D
暑假尚未開始
一不留意,已經在中正待了接近一年,去年我是在七月底進宿舍的。仔細回想,這一年嘛,說沒學到東西也不是,但總覺得心中有點空虛的感覺,大概是學了不少我認為出去工作再學就好的東西吧?說真的,我有種很想趕快畢業的念頭,同時也思考自己是不是適合往博班發展?總覺得博班才是做研究的開始,碩班像極打雜的掃地僧,各憑本事混吃混喝。前陣子猶疑,最近比較定下心了,我想,出去工作才是我想要的生活,未來若沒經濟壓力,加上能申請上的話,再回學校吧?
說得好像已經畢業似的。
下學期我還是想把行銷管理的課程好好地上過一遍,碩一上期中後因為常常膩於程式中,不久也作罷了。除此之外,還有不少課想去聽聽,不曉得未來的生活是否還能抓的穩步調呢?
2008年6月24日 星期二
[C] long long & printf
long long x;
Windows:
printf( "%I64d\n" , x );
Unix:
printf( "%lld\n" , x );
--
"%qd" ?
2008年6月22日 星期日
[C] fopen with 'a' & fseek
fopen with 'a' 無法使用 fseek 對檔案指標進行倒退嚕
這兩天運氣不怎好 總是卡在奇怪的 bug 中
真的是太嫩了 還差得遠
=========================================================
= By finwater (cheer up) @ Mon Jun 23 20:15:07 2008
=
fopen with flag 'a' 的 'a' 是 append 的意思
所以 write 的 data 會被自動 append 到檔案的最後
無論此時 offset 在哪
但還是可以使用 fseek 對 file pointer 的 offset 進行操作
=========================================================
@ code 1 : fopen with 'ab+'
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE * fd = fopen ("dd" , "ab+");
fd = fopen ("dd" , "w+");
fclose ( fd );
fd = fopen ("dd" , "ab+");
fprintf( fd , "0123456789" );
fseek( fd , -5 , SEEK_CUR );
fprintf( fd , "0123456789" );
fclose ( fd );
return 0;
}
結果: 01234567890123456789
@ code 2 : fopen wtih 'rb+'
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE * fd = fopen ("dd" , "ab+");
fd = fopen ("dd" , "w+");
fclose ( fd );
fd = fopen ("dd" , "rb+");
fprintf( fd , "0123456789" );
fseek( fd , -5 , SEEK_CUR );
fprintf( fd , "0123456789" );
fclose ( fd );
return 0;
}
結果: 012340123456789
2008年6月21日 星期六
大量縮圖 By Irfan View
http://www.irfanview.com/
http://www.irfanview.com/main_download_engl.htm
Step 1 :
[File] -> Batch Coversion/Rename
Step 2 :
透過右上角視窗,可以挑選待處理的照片
記得請將[檔案類型]改成 All files (*.*)
選好照片後,請點選 [Add] 或是對指定目錄點選 [Add all]
接著就會在右下角視窗記錄著
Step 3 :
目前打算將原始檔 jpg 檔轉成較小的圖檔
[Batch conversion settings] -> Output format: JPG - JPG/JPEG Format
勾選 [Use advanced options] -> Advanced
Step 4 :
設定 Advanced 參數,我常用的是將照片的寬設成 1024
[RESIZE] -> Set long side to: 1024
勾選常用選項
[Preserve aspect radio(proportional)]
[Use Resample function(better quality)]
[Don't enlarge smaller images]
Step 5 :
選擇輸出的位置
[Output directory for result files]
Step 6 :
[Start Batch]
2008年6月19日 星期四
[C] IO 處理測試 - fopen with "w" or "a"
結論:
沒事不要 truncate !
若一天有 80 萬封信且九成是 spam mail
代表一天 86400 秒 => 平均 1秒需處理約 10 次動作
目前若採用 truncating
FreeBSD 6.2-RELEASE-p1
Intel(R) Pentium(R) 4 CPU 3.00GHz (2992.51-MHz 686-class CPU)
1GB Ram
25000 次花費近 120 秒 => 1秒可處理 200 次
這個數字不曉得撐不撐得住最大量的時候 :P
若改掉的話
25000 次僅需 0.46 秒 => 1 秒可處理 54347 次
=======================================================
@ code 1 : fopen with "w"
int main()
{
int i;
FILE * fd;
for( i=0; i< 25000 ; i++ )
{
fd = fopen( "t_d.txt" , "w" );
fprintf(fd,"%d\n",i);
fclose( fd );
}
return 0;
}
# time ./a.out
0.127u 1.589s 1:57.61 1.4% 5+177k 0+25000io 0pf+0w
======================================================
@ code 2 : fopen with "a"
int main()
{
int i;
FILE * fd;
for( i=0; i< 25000 ; i++ )
{
fd = fopen( "t_d.txt" , "a" );
fprintf(fd,"%d\n",i);
fclose( fd );
}
return 0;
}
# time ./a.out
0.052u 0.410s 0:00.46 100.0% 5+188k 0+0io 0pf+0w
======================================================
--
觀看硬體資訊:
# cat /var/run/dmesg.boot
還在只靠 dmesg -a 已經落伍了 XD
2008年6月17日 星期二
茱蒂口琴樂團
剛老妹丟了一個連結給我,是茱蒂口琴樂團上我猜的表演,好久沒聽到讓人那樣感動的音樂。不過因此我猜的節目比較有版權的關係,建議自行到YoutuBe搜尋一下囉,當天在我猜表演的曲目是「喋喋不休的波卡」,只要打上曲目應該會很快就找到了。
逛了一下官網,很有 fu !前陣子有人一直抱怨我不唱歌,大概是自己唱得不好聽,所以很難開口,不過說起歌唱以外的方式,我還滿想玩樂器的,像是幼稚園、國小玩的直笛,那時感覺自己玩得還滿不錯的,無聊時就是吹直笛,另外還有口琴吧,只是隨著歲月的增減、場地的變換,忙錄的、干擾的、來亂的,漸漸地根本沒什麼時間享受生活了。
若這學期課程都 all pass 的話,之後我只剩兩門課要修,開始有更多的時間規劃生活。
2008年6月16日 星期一
FileZilla Client 之清單亂碼
簡單地說 就是連進去站台內
列出來的清單若有中文 都顯示亂碼
運氣好可以切換進去目錄 運氣差重整後目錄清單還會不見
解決方式:
對於特定站台設定其編碼方式, 如 Big5
[站台管理員]->[指定站台]->[字碼集]->使用自訂字碼集: Big5 等
當然 有時候會是得要設定成 [強制使用UTF-8] 需依情況測試囉
這個現象很怪 有時某些電腦很正常 有時會出錯
反正出錯後再來測試設定囉
2008年6月15日 星期日
幸福香水味
本文引用自 ronnywang - OGC MASTER 黑澤
最近我滿低沉的,心情很繁雜,生活充斥著許多社會壓力,有時反而覺得,工作是最簡單的任務。今天在 Ronny's Blog 看到 OGC Master 的漫畫介紹。月初時已經在不少板上看到討論,不過我很少看漫畫,所以沒有任何的動力,今天風淡雲輕,暫時拋開下禮拜二的期末考,一股腦兒地探索。
看完的第一個念頭?我想,該開始製作幸福了!可能是搭配上這將近半個月的壓力之昇華,與其擔心東擔心西,解釋南解釋北,搞定上解決下的,不如做自己感到快樂而幸福的事吧!我想,這份感覺就像聖誕節看到同學在教室外頭扮演起聖誕老人,發著糖果般,幸福其實就這般地容易。
吃過晚餐後,繞著寧靜湖走著走著,在拱橋上望著市區的夕陽,將近一個禮拜的事彷彿都想通了,真的,心態決定一切。
耍酷,真的解決不了事。唯有靜下心來好好地面對,事情會越來越明朗,持著正面的心態,樂觀與進取吧!
鋼砲 @ 布里斯本
鋼砲的生活,週遭還是有一堆妹!看來我白擔心了,哈。說真的,鋼砲給人一種很舒服的感覺,讓人很容易親近,為人也搞笑。
說起過往的回憶,鋼砲大一寢室在我隔璧,雖然我自己不像其他同學很常串門子,但交集卻也不少,像一起修張麗萍的微積分等,都是不少回憶。我印象中鋼砲好像高微某學期修98分呢!
另外,我記得計概課要求每個人寫網頁,我倒幫鋼砲添加一頁自我介紹,哈,那篇可還留在寢板。大意只有幾個字,「吃垮十舍超商。」沒想到大學還沒畢業,十舍超商真的倒了!哈。
好多好多回憶倏地蹦出來,然後又東翻翻西找找,還真青澀啊。但我們都回不到過去了,最近我也正在思索,究竟,我想變成什麼樣的一個人呢?該規劃人生了。
2008年6月14日 星期六
聽廣播
一早天氣陰灰,不久大雨降臨。今天是畢業典禮,我待在寢室看著天,同時也回想著當年自己參加畢業典禮的情境,真的,沒畢業的感覺。早上發發呆,下午重灌電腦,晚上則是吃了烙餅和雞肉飯,十分滿足。
最近開始聽起廣播,其實一直都是斷斷續續地收聽,工作若需要極靜的思考空間,我便也不會收聽,當然,唸書也是一樣的,那今晚呢?恰巧準備著期末考,正好是比較熟的章節,就這樣偷懶吧!對於廣播的記憶,我想不起來,只記得從小跟爸媽出遊,不少時間都是與車同進退,最便宜的休閒就是聽聽廣播,然而,對我而言,真正享受廣播是國中的日子。
我習慣聽中廣電台,以前比較常聽流行網,現在比較常聽音樂網,純粹自己懶的挑音樂來聽。初中時早起時聽著六點的廣播,我記得當時好像是鄭開來?開頭總會說著一段詞,類似生活體悟方面,當時我可還有寄信想去要呢!但只收到亂碼的回信,兒時不懂事,還請電腦厲害的學長幫我解碼,後來才發現原來是被系統退信罷了。至於為什麼現在比較常聽音樂網呢?大概是前幾次收聽時總聽到對談性的節目,充斥著許多廣告,因此就轉往音樂網了。
初中是個強說愁的年代,算起來也是接觸異性最密集的時光。當年說起來也很巧,喜歡在網路上打滾,喜歡熬夜看文章、寫文章甚至寫信,越夜越美麗!當時寂靜的空間就是與廣播的對話。我想,我老成的語氣可能有一半是廣播,另一半則是網路文章的影響。令人深刻感觸的廣播人是鄭開來,另外,還有一位印象比較淺但我還記得名字,吳建恆。不過都已經是很久以前的印象,不曉得當年的廣播人現在的模式是否如初?
最近偶爾晚上聽見娃娃的聲音,很單純、直率,喜歡那些能用聲音詮釋表情、心情的人,或許我的生活中,缺少那種類似強勢卻又不惹人厭的心情吧!回憶起來,我印象中,以前高中晚上八點有位陳譯賢,給我的感覺也是類似的輕快活潑,陳譯賢我印象中前陣子有到快樂星期天上表演歌唱過呢!有興趣的可以 Google 一下。
廣播,算是我這孤單老人的另一個窗口吧。
2008年6月13日 星期五
照片+音樂=影片 - Tiling Slide Show
Tiling Slideshow - http://www.cmlab.csie.ntu.edu.tw/TilingSlideshow/
2007年秋季,中正資工朱威達教授曾經在 Multimedia Content Analysis 課堂 demo 過,後來我沒打算修課,所以就不了了之。隨後老師又在2008年初的 Seminar 時 demo 一次,這次我有特別記下,因此就可以玩玩啦。這篇是 2008 年初的筆記。
此研究成果可以將指定的音樂(*.wav) 和照片(*.jpg),進行自動化的結合,進而製作成影片,類似成果 demo 可從上述的網站觀看,或點選這裡播放低品質的 demo 影音。
我對這很感興趣,依我的淺學,覺得裡頭主要的技術分成兩類:
- 音樂節拍分析
- 照片人臉分析、照片分類
接著則是將這些資料結合在一起,做成影片。
我覺得這在一些場合使用還挺不錯,特別是在需要短時間完成時,這時就交給程式啦。只不過我測試的結果,當然沒有比人工去製作來得好,但還滿適合給懶人用的,哈。如果要細說的話,我覺得人工簡貼還可加上文句,更讓人回到過去囉。
以下則是年初實際操作使用的流程,除了當作筆記外,也給有興趣的人當作一種參考囉。
- 下載軟體
- 從這裡選擇下載 2006/12/04 Tiling Slideshow v1.01,目前這是最新的,所以就下載這個啦,就只要填一些資料紀錄一下而已
- 檔案內有兩個目錄
- TilingSlideshow_v.1.01
- VirtualDub (空的資料夾)
-
- 請別忘了 TilingSlideshow_v.1.01 和 VirtualDub 必須擺在同一層目錄,不然到時候執行程式會出錯
-
- 閱讀 README
- 上頭說要去下載 VirtualDub,請到 http://www.virtualdub.org/ 下載,可以進入找就直接選download,接著就會跑去 VirtualDub at SourceForge 下載東西,把下載到的東西解壓縮擺到 VirtualDub 這個資料夾,當時我下載到的是 VirtualDub-1.7.7.zip
-
- 再看 README
- 這時則是要準備一些設定,例如照片位置,請開啟 TilingSlideshow_v.1.01 中的 photo_filelist.txt,把照片位置打入存檔
- 據 README 說,提供多個位置以及遞迴目錄結構。
-
- 準備音樂檔
- 找一首音樂,請別忘了要是 wav 檔
- mp3 可以使用 foobar2000 並在播放清單選 convert 轉成 wav 囉
- 另外,請把音樂檔擺在 TilingSlideshow_v.1.01 這個目錄裡,我試了一下,擺在外頭填寫絕對路徑會說找不到 @_@
-
- 安裝所需的編碼
- 由於生成的影片是 avi 的,這部分如果電腦可播放 avi 等影片的話,應該不成問題,在此就不贅述播放 avi 的方式。
-
- 三閱 README
- 裡頭還有一些細部的參數,擺在 parms.txt ,可以依自己想要的進行調整,可使用預設就行,就是可以略過此步啦。
-
- 用 cmd 來執行
- 我將解壓縮的目錄都擺在 C 槽,即 C 槽根目錄有 TilingSlideshow_v.1.01 和 VirtualDub 兩個目錄,且 VirtualDub 中有擺上從 VirtualDub at SourceForge 下載的東西 ( Step 2 )
- C:> cd TilingSlideshow_v.1.01
- C:\TilingSlideshow_v.1.01>TilingSlideshow.exe photo_filelist.txt test.wav parms.txt
- 接著程式就會開始慢慢地動囉!此例的音樂檔是 test.wav,影片會產生在 TilingSlideshow_v.1.01 目錄裡,檔名叫slideshow.avi
-
- 使用心得
- 我沒調參數( Step 6 略過 ),採用的照片是模特兒外拍的,光鮮且分明,主題比較強烈;音樂我使用咖啡王子1號店OST某一首 XD ,後來覺得音樂的節奏不夠強烈分明,柔柔地悠閒,所以最後做出來效果沒有想像中的好,亦有可能是參數沒調的關係
- 這支程式主要會分幾個步驟,一開始好像是音樂分析,是在抓節奏吧,接著是照片分析,好像是在找人臉,這個就有點久,最後則是做成影片。
- 測試的結果
- 260 張圖片
- 一首 2:03 的歌(轉wav後檔案是20.6MB)
- Intel Celeron CPU 2.80GHz , 2.79GHz 0.99GB 的 RAM
- Windows XP with SP2 + 更新到最新 ( at 2008.01.29 )
- 花費時間大概是880秒附近
-
-
停步,歇會
這學期很自豪著自己的實作效率,用比別人少的時間,完成的成效也還不賴,因此沾沾自喜,自覺得步調越走越穩,然而,扣除工作以外的,反而一件件地失去。也許,此刻的我過於悲觀。
又該歇歇會?不要衝的太快?萬物總是事事平衡,一邊表現太好,另一邊很快就容易出包,像極了小時玩「美少女夢工廠」那類的養成遊戲,當時總無法體會,為啥同一時刻學習一件事、為啥學過的能力會隨時間下降、為啥時間內就只能做這些事…,人生就真的是如此,常常同時間只能注目著一件事,甚至只能完成一件事,而讀過的書,也容易隨著時間淡忘,原來,現實生活就是這樣罷了。
有時,完善的路可以很清晰地看見,只是人們最後還是挑選了自在的小逕。期末啊,總覺得得到不少東西,卻也失去不少東西,大概是自我充實的部分做得太差了。
長久的戀愛
人家說,成功的男人背後總有個非常辛苦的女人,雖然我沒任何功名,但跟著我的人真的十分辛苦,我不像其他人能夠第一時間站出來為女友的利益說話,說穿了反而是常常將女友的權利擺在後頭,事情一忙起來,往往被割捨的都是女友。或許這是因為談了太長的戀愛,久了就習慣將一切視為理所當然。
偶爾思考,究竟女友擺在身旁該用什麼心態來對待呢?記得,很久以前聽過別人說嘴「老婆是娶來疼的。」有時自認為自己表現也不差,但更仔細地想想,只能說東補一塊西補一塊罷了,我可以在另一個層面盡心盡力的對待,卻也常常吝嗇給予一些簡單的幸福。那究竟要用什麼心態來相處呢?分享?分擔?還是什麼呢?
面對著許多社會壓力,彷彿失去原動力。我不是沒能力,只是沒了心。
2008年6月9日 星期一
[Unix] Remove a symbolic link
unlink 其實就跟 rm 一樣罷了,當要移除一個 symbolic link ,有時發現怎樣移不掉,一直說 "unkink: my_symbolic_link/ : is a directory" ,這個訊息就跟使用 rm 去移除一個目錄時的錯誤訊息!原來,在移除一個 symbolic link 時,要留意後面不能加個 "/" !這樣,若 symbolic link 是連到一個目錄時,等同於在對那個目錄做 rm 的動作,才會顯示 "is a directory" 訊息。這時可不能一氣之下用 rm -rf !可會將 link 到的目錄給移除掉的!要額外小心。
- 目的地是一個檔案
- # ln -s target_file my_file_link
- # unlink my_file_link
- 目的地是一個目錄
- # ln -s target_dir my_dir_link
- # unlink my_dir_link/
- unlink: my_dir_link/: is a directory
- # unlink my_dir_link
- Done