2010-08-23

【婚】房間佈置 - 自製蝴蝶鐘

2 comments

最近在網路上看到我很呷意的一個時鐘,叫蝴蝶鐘,超有設計感的啦~~
是鋼製的,但要價8000大洋,實在是買不下手,

2010-08-19

【趣】有沒有近視,看這張圖就知道了

0 comments

這圖超有趣的耶~~

沒近視的人看到的是愛因斯坦
有近視的人看到的是瑪麗蓮夢露


不近視的人把眼睛瞇起來也可以看到瑪麗蓮夢露
近視的人戴眼鏡看的是愛因斯坦 , 取下眼鏡看到的是瑪麗蓮夢露
近視或是不近視,看這圖就可以看出來了,真好玩。

 

 

 

【軟體】Ubuntu : Shutter - 可以取代 SnagIt 的好物

0 comments

終於讓我找到,在 Ubuntu OS ,足以取代 Windows 上 SnagIt 的軟體了。

那就是 Shutter !!

執行後畫面如下。但我發現…Edit 的功能居然是 Disable 的狀態,

後來發現只要再裝上 libgoo-canvas-perl 即可。

$ sudo apt-get install libgoo-canvas-perl



接著來抓一張圖,他有很多種模式可以抓圖,也可以直接點工具列上的 Window ,選擇你要抓的畫面。很方便。

抓完圖後,按 Edit ,就可以進到下面的畫面來編輯。這超方便的,寫文章的時候,常常可以用到,哈~

下圖就是我亂編輯後的畫面。

 

不錯用~~在這裡記錄一下。

 

 

 

 

2010-08-18

【軟體】Windows : Revo Uninstaller

0 comments

Revo Uninstaller Pro

Uninstall software, remove programs and solve uninstall problems

這軟體還真不錯用,他主要是拿來把電腦裡,移除不完全的東西,

可以乾乾淨淨的移掉。

像我之前在安裝軟體的時候,結果當機了,

重開機後,他說我已經裝好了…

可是卻沒辦法移除,這時我用這套軟體,

就可以輕鬆的找出軟體所安裝的位置,跟所有的註冊檔。

一次全部乾乾淨淨的移掉。

在這裡記錄一下這個軟體,還蠻不錯用的,以防以後用到。

 

這軟體有30天試用,有興趣可以下載來玩玩。

 

 

 

 

2010-08-06

【食】10-0727 藝奇

0 comments

為了慶祝熊找到工作,還有交了女朋友,

所以在他領了第一個月的薪水後,

要請我們吃大餐~~最後決定來吃 【藝奇】

聽說也是王品旗下的,所以,服務都還不錯。

話不多說,看圖吧~~

 

最近覺的黑白照片,好有FU~~~~























 

這篇寫好快喔~~貼完圖~~就寫完了 哈哈

 

 

 

2010-07-14

【軟體】SVN : Could not use external editor to fetch log message !!

0 comments

今天在執行 svn ci 時,出現了下面的錯誤

svn: Commit failed (details follow):
svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found

看起來就是沒設定 SVN_EDITOR,所以在 commit 時,

他不知道要用那個編輯器。

記得以前的也沒設定過呀,真奇怪。

反正就設定一下吧。

# vi ~/.bash_profile

輸入

# export SVN_EDITOR="/usr/bin/vim"

存檔離開,重新登入,

echo $SVN_EDITOR 檢查一下。

沒問題的話,再去 commit 一次,就可以了。

2010-07-06

【系統】Linux : 使用 iftop 即時監控網路流量

0 comments

Garlic 跟我說的一個軟體,可以拿來監控本機的網路流量。

很簡單就可以安裝了。

SUSE : zypper in iftop

Ubuntu : sudo apt-get install iftop

我只能說 Linux 真的是愈來愈人性化了。

裝完後,執行 iftop ,即可看到網路流量的資訊了。

 

PS. 他的 b 是小 b, 不是大 B

 

 

 

 

 

2010-06-29

【PHP】下載 YouTube 影片

1 comments

常常覺的Youtube上的影片有些還真有趣,

就會想要下載下來,以後無聊可以看看。

所以就研究了一下怎麼寫。

其實程式不難,短短的就可以搞定了。

下面就貼上我亂寫的一些Code。

第一種方式,是使用 get_video_info 來取得影片資訊,進而拿到token ,取得影片路徑。

function doHttpRequest($url) {
    $ch = curl_init();
    $header[] = "Cache-Control: no-cache";
    $header[] = "Pragma: no-cache";
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
    curl_setopt($ch, CURLOPT_TIMEOUT, 4);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

$url = 'http://www.youtube.com/watch?v=q_gfD3nvh-8';
// video_id
$key = explode("v=",$url);
$key = $key[1];

$content = doHttpRequest("http://youtube.com/get_video_info?video_id=".$key);

$a = explode('&', $content);  
$info = array();
foreach($a as $item){
    $tmp = explode('=', $item);
    $info[$tmp[0]] = urldecode($tmp[1]);
}
$token = $info['token'];
$url= 'http://www.youtube.com/get_video?fmt=18\&video_id='.$key.'\&t='.$token;
$cmd = '/usr/bin/wget '.$url. ' -O /tmp/'.$key;

system($cmd, $ret_val);
echo $ret_val; // 回0表正常抓到檔案。 

但第一種方式會有一個缺點,就是當影片有限制時,會有錯誤,例如回傳下列錯誤訊息。

array(3) { ["status"]=>  string(4) "fail" ["errorcode"]=>  string(3) "150" ["reason"]=>  string(90) "這部影片含有 SM Entertainment 所擁有的內容,禁止在特定網站上播放。" }

所以這時候,可以改成用下列這種方式來抓影片,這個方式是直接把Youtube的播放頁Html全部抓回來,

然後取得所要的token及相關資訊,程式如下:

$url = 'http://www.youtube.com/watch?v=q_gfD3nvh-8';
// 取得 video id, 必要
$key = explode("v=",$url);
$key = $key[1];

$txt = urldecode(file_get_contents($url));
// 取得 title, 非必要
preg_match('/
$title = substr($title[0], 28, -2);
// 取得 keywords, 非必要
preg_match('/
$keywords = substr($keywords[0], 31, -2);
// 取得 token, 必要
preg_match('/&t=[\w-=_]+/',$txt,$t_temp);
$t = substr($t_temp[0], 3);

$url= 'http://www.youtube.com/get_video?fmt=18\&video_id='.$key.'\&t='.$t;
$cmd = '/usr/bin/wget '.$file. ' -O /tmp/'.$key;
system($cmd, $ret_val);
echo $ret_val; // 回0表正常抓到檔案。

所以基本上只要用第二種方式,就可以了抓到影片了。

不過我不太會regExp,所以寫的有點…暴力……

以上~~

 

 

附上 fmt 資訊 ( 來源:一次搞懂十種YouTube格式 )

※影片格式與&fmt參數對應

  • MP4格式:&fmt=18、22、37
  • 3GP格式:&fmt=13、17
  • FLV格 式:其他皆是

※&fmt參數與影片規格對照

參數 檔案格式 影片大小 聲音格式 備註
&fmt=0 FLV 320 x 240 單聲道 22KHz MP3 與&fmt=5相同
&fmt=5 FLV 320 x 240 單聲道 44KHz MP3  
&fmt=6 FLV 480 x 360 單聲道 44KHz MP3  
&fmt=34 FLV 320 x 240 雙聲道 44KHz MP3 YouTube預設影片格式
&fmt=35 FLV 640 x 380 雙聲道 44KHz MP3  
&fmt=13 3GP 176 x 144 雙聲道 8KHz 適合小螢幕手機
&fmt=17 3GP 176 x 144 單聲道 22KHz 適合小螢幕手機
&fmt=18 MP4 480 x 360 雙聲道 44KHz AAC H.264編碼
&fmt=22 MP4 1280 x 720 雙聲道 44KHz AAC H.264編碼
&fmt=37 MP4 1920 x 1080 雙聲道 44KHz AAC H.264編碼

 

2010-08-05 更新:

不久前發現 http://www.youtube.com/get_video 這隻不能用了~

真的很麻煩,現在改成用 get_video_info 取得影片資訊,

然後 Parsing 裡面的 fmt_url_map ,取得各種格式的網址去下載。



PS. fmt_url_map 己經換成 url_encoded_fmt_stream_map。