2009年7月6日 星期一

[bash/tcsh] 按上鍵與開頭字,搜尋與顯示上次執行指令

最近比較常用 tcsh 當作 FreeBSD 的開發環境,甚至其它常用的 Linux 亦是如此。然後就會有個需求,希望按"上”時,能夠自動顯示上一個已執行的指令,理論上這都很直觀,好像預設也是這樣,但如果想要做到搜尋的功能,那就要多一些設定。


例如依序打了三道指令



  1. # ls -la

  2. # vim .bashrc

  3. # cat .bashrc


如果只是用單純的 history 功能,接下來我只要按"上”鍵時,此時會自動顯示上一道執行指令,即 cat .bashrc 。但如果我先打了 l 再按"上"鍵時,想要它會去找到 ls -la 這道指令,那就要多做些設定,細節請參考這篇文章:bash 記憶指令 For Linux


設定方式:



  • # vim ~/.bashrc

    • bind '"\x1b\x5b\x41":history-search-backward'
      bind '"\x1b\x5b\x42":history-search-forward'




另外,關於 tcsh 的設定:



  • # vim ~/.cshrc

    • bindkey "^W" backward-delete-word
      bindkey -k up history-search-backward
      bindkey -k down history-search-forward




2009年6月27日 星期六

記憶中的麥可‧傑克森!

我好像在高一時,才對 Michael Jackson 有印象。那年高一我因為國三時補數學而認識幾位同學,因此曾去過他們家玩電動,那年好像非常流行跳舞機,結果我到現在還是不會玩。那時的印象是因為有一位同學是 Michael Jackson 的歌迷,買了幾張專輯,這對從未都不關心歌壇流行的我來說,有些生疏。之後的印象就僅剩電視新聞啥漂白啥戀童的醜聞了!


直到今天,我看到了這篇文章轉錄1》被誤解最深的偉大藝人——麥可‧傑克森!我才知道,我錯了很久,而我的家人也普遍只因新聞覺得他怪怪的,有漂白等奇怪的行為。


如今,我花了一些時間將這些待修正的觀點傳播給家人跟朋友,是的,我們都被媒體誤導了!麥可‧傑克森真的是一位偉大的歌手,他的偉大不在於賺了多少錢,而在於他對社會如此大的包容與付出,真的,我們誤會你了!感謝你對世人的付出與關懷。謝謝你。


第20屆金曲獎-新人獎和作曲人獎:盧廣仲!

其實,也才不到兩個月吧,是我第一次聽他唱歌,當時有種感覺,像當初剛接觸周董音樂般,似乎又將對音樂界有種新的突破?!老實說在得獎前也說不出個所以然,直覺得不能小看他,沒想到真的得獎了!還得到兩個大獎,真是令我佩服。


五月左右,我聽著他演唱會版的 CD ,順便寫寫程式,當時有點被他的音樂吸引,我覺得沒有人是可以被取代的,如同這屆新人獎的各位,看到大家在台上表演,那種感覺真的很不錯,或許是因為當時看到 盧廣仲 - 維基百科,自由的百科全書 介紹,有莫名的欣賞感!


很高興他能得獎,雖然我還是覺得他的風格有點怪怪不習慣,但那種感覺,就像對周董總說不清的歌詞般地,讓人不想釐清,好好享受就好。


2009年6月26日 星期五

[PHP] 實作 XML-RPC Client 筆記 - Blog with Pixnet , Wordpress , Roodo , Blogspot

幾個月前為了實作部落格同步程式,所以使用了 XML-RPC ,但僅小試一下,久了又忘了它,直到上上個禮拜,我又重新整頓一下,正式實作 XML-RPC 的發文程式,在此就順道筆記一下,因為各家實作並非完整。


關於 XML-RPC 可以參考以下資訊



其中,我使用 The Incutio XML-RPC Library for PHP 來實作部落格同步程式,或者是說,部落格發文程式。其版權宣告為 Artistic License


在實作過程中,碰見四類 API



然後,就上述提及的 Blog ,依序使用或支援的 XML-RPC



  • Wordpress

    • WordPress API

    • Movable Type API

    • MetaWeblog API

    • Blogger API

    • Atom API



  • Pixnet

    • WordPress API

    • Movable Type API

    • MetaWeblog API

    • Blogger API



  • Blogspot

    • Blogger API



  • Roodo

    • Movable Type API




接著,探討一個重要的議題:「是否能夠決定發文的時間呢?」



  • WordPress

    • metaWeblog API : Yes



  • Pixnet

    • metaWeblog API : Yes



  • Blogspot

    • Blogger API : No



  • Roodo

    • Movable Type API : No




最好的測法就是打開 Windows Live Writer 去進行測試,其中,Blogspot 可以的原因是使用 GData API ,這是我抓封包時才發現的,原先我一直以為 Blogger API 是可以的。


因此,如果要撰寫部落格同步程式,那可以實作在發表的同時,讓程式自動再透過 XML-RPC 幫你發文到各處去,如此一來將沒有時間上的問題,但這並不是我想寫的程式,我想要的是讓程式默默地幫你完成同步動作,也就是為什麼我需要能自訂發文時間的功能。


簡言之,搞到最後我寫的程式僅能用在 WordPress 跟 Pixnet 上正常使用囉。建議有興趣的人,可以嘗試先下載 Wordpress 的原始檔來看看,裡頭有個 xmlrpc.php 檔,雖然是 Server Site 的,但也挺好參考的喔。


最後,就小試一下啦。此程式可以發文至 Pixnet 和 WordPress ,但對於 Roodo 則是因為無時間支援,僅以當下的建立的時間為準,而 Blogspot 的話,可以把 metaWeblog.newPost 換成 blogger.newPost 並且把 $content 直接設值成文章內文即可,不需保持 Array 的架構,因為它本身僅提供文章內文,連標題設定都沒有。各家的 API 位置,大多是連到對方的 Blog 上,點選原始碼查看 EditURI 的敘述位置,而那個位址基本上不是 API 位置,請再點選它,理論上會蹦出一個網頁再告訴你各個支援 API 的位址,再把你想用的 API 更新在 $blog_info[3] 上。而 Roodo 比較特別,請直接用 "http://xmlrpc.blog.roodo.com/cgi-bin/mt/mt-xmlrpc.cgi",此程式僅適合提供 metaWeblog API 為主。



2009年6月25日 星期四

[VIM] Simple Auto-Completion (auto complete)

vim 7.0 以上即有支持簡單的 auto complete 功能,即文件內出現的關鍵字可以呈列出來,使用方向鍵選取


用法:打出關鍵字前頭,並使用 ctrl+x , ctrl+n 即可。這是簡單版的 auto-completion 非外掛的