February 8,2010
bash裡的進制轉換
之前朋友問說為什麼 010 不是 10? 我告訴他這是因為這樣的數字會被認定為八進位,像很多語言(如C語言)也有一樣的慣例。後來他就問說該怎麼在 bash 裡轉換,後來我找了一下,才知道要用 bc 來轉換。
#!/bin/bash
# program name: forloop.sh
ss=`echo "ibase=10;$1"|bc`
ee=`echo "ibase=10;$2"|bc`
for((var=$ss; var<=$ee; var++ ))
do
echo $var
done
上面的程式演示了 bc 的用法,所以你輸入 ./forloop.sh 001 011 的話,就會印出 1~11,而不是 1~9。
你可以試著把 ss 跟 ee 換為 ss=$1、ee=$2,然後再執行 ./forloop.sh 001 011 看看,會很清楚地發現差異點。
February 3,2010
電影流水帳(2010/1/26~2010/2/1)
一月就這樣過了,尾牙也在 1/29 辦完,今年沒中任何獎,接著就要過農曆年了。
- 十月圍城(IMDB, Wikipedia)。這是描述孫中山到香港討論同盟會起義事宜,陳少白跟李玉堂號召了六個烈士來保護他的故事。這部片子不差,前面都在鋪梗,也就是在找人、交待前後始末,後面一個小時沒冷場,全在打鬥。藍色電影夢的這篇十月圍城:群星難為戲寫的不錯,可以參考,我的確也很喜歡周韵跟謝霆鋒演的角色。另外場景也很令人驚訝,後來才知道這是真的根據當時的香港搭起來的,花了很多功夫。
- The men who stare at goats(IMDB, Wikipedia),中譯:超異能部隊。失意的記者Bob在Iraq遇到Lyn,跟著他卻發生了奇妙的遭遇。劇裡有些橋段令人發噱,但我認為這並不是搞笑片,片名翻為超異能部隊實在會讓人誤導。坦白說,因為字幕的關係,我看的不是很懂。你可以看看 Forever Fish 寫的 [電影] 超異能部隊 / 以眼殺人。。
February 1,2010
我的 mod_python 初體驗
上週因為覺得老是要用遠端桌面登入 server 去管理 subversion 這件事情很麻煩,所以就在想,該怎麼簡化這工作?
剛好 server 上的 Apache 有裝 mod_python,就想用 django/turbogear2 來寫 web 介面來管理,但仔細 survey 之後,發現 django/turbogear2 並不是那麼的方便,最後決定用 viewvc 的方法,也就是用 mod_python 提供的 library 來寫。
寫起來出乎想像的簡單,我最主要是參考官方提供的 example site 以及 Manual。
mod_python 提供的 psp (python server page) 基本上就是類似 ASP 的機制,你可以在 template 放 python 的程式或是用 <%=變數%> 引用變數,然後就可以在程式裡呼叫函式,將 template 轉為字串,然後送出去,這裡拿 example site 的程式來改是最方便的了。
我並不是用最基本的 handler,而是用 publisher handler,所以不需要在 .htaccess 指定 handler 的函式名稱,而是交給 publisher handler 來處理,他會根據網址自動找到你程式裡的函式,例如:http://examplesite.org/index,publisher 會呼叫你程式裡的 index() 函式。這邊可以參考 Manual 裡的 7.1.2.1 Traversal 一節。
帳號認證機制,也很簡便,就只要提供 __auth__ 跟 __access__ 即可,__auth__ 是作帳號認證,而 __access__ 則是作控管。這部份可以參考 Manual 的 7.1.2.3 Authentication 一節。
用這些,基本上就可以搭出類似 MVC 架構的網站了。有了這些,要解決的就是 svn server 帳號管理、svn 目錄管理以及存取 svnmailer 設定檔的問題了。
剛好 server 上的 Apache 有裝 mod_python,就想用 django/turbogear2 來寫 web 介面來管理,但仔細 survey 之後,發現 django/turbogear2 並不是那麼的方便,最後決定用 viewvc 的方法,也就是用 mod_python 提供的 library 來寫。
寫起來出乎想像的簡單,我最主要是參考官方提供的 example site 以及 Manual。
mod_python 提供的 psp (python server page) 基本上就是類似 ASP 的機制,你可以在 template 放 python 的程式或是用 <%=變數%> 引用變數,然後就可以在程式裡呼叫函式,將 template 轉為字串,然後送出去,這裡拿 example site 的程式來改是最方便的了。
我並不是用最基本的 handler,而是用 publisher handler,所以不需要在 .htaccess 指定 handler 的函式名稱,而是交給 publisher handler 來處理,他會根據網址自動找到你程式裡的函式,例如:http://examplesite.org/index,publisher 會呼叫你程式裡的 index() 函式。這邊可以參考 Manual 裡的 7.1.2.1 Traversal 一節。
帳號認證機制,也很簡便,就只要提供 __auth__ 跟 __access__ 即可,__auth__ 是作帳號認證,而 __access__ 則是作控管。這部份可以參考 Manual 的 7.1.2.3 Authentication 一節。
用這些,基本上就可以搭出類似 MVC 架構的網站了。有了這些,要解決的就是 svn server 帳號管理、svn 目錄管理以及存取 svnmailer 設定檔的問題了。
January 29,2010
c# 的 static ctor()
沒看 c# in depth,還真不知道可以在 ctor 前加上 static 的修飾詞。以下是實驗結果:
using System;
namespace Sample
{
class Class1 {
static Class1() {
// Name="static"; // 不行,static function 只能存取 static member
StaticName = "StaticName";
Console.WriteLine( "Class1 static ctor()" );
}
public Class1() {
Console.WriteLine( "Class1 ctor()" );
}
public Class1( string name ) {
Console.WriteLine( "Class1 ctor( string )" );
Name = name;
}
public string Name { private set; get; }
public static string StaticName;
}
class MainClass
{
public static void Main(string[] args)
{
Class1 obj1 = new Class1("obj1");
Class1 obj2 = new Class1();
Class1 obj3 = new Class1("obj3");
Console.WriteLine("Hello World! {0}", Class1.StaticName );
}
}
}
執行結果如下:Class1 static ctor() Class1 ctor( string ) Class1 ctor() Class1 ctor( string ) Hello World! StaticName可以很清楚看到,無論如何,static ctor() 都會先被執行到,而且只會被執行一次。這很適合用來初始 static member。
January 26,2010
電影流水帳(2010/1/15~2010/1/25)
1月好快又要過去了~所以就只剩下11個月了。下次應該來算算看,好萊塢一年在台灣上幾部片才對。
- Avatar(IMDB, Wikipedia),台譯:阿凡達。地球人藉著基因與那美人基因混種的Avatar,派主角打入納美人社群,後來卻又等不及,直接以武力進攻。主角在混入納美人社群之後,發現到納美人原本族群的善良,決定投入納美人,最後打敗並遣返了地球人。故事有像風中奇緣,事實上,美國在開國的時候,或是早期台灣的移民,對待原住民多半都是如此,要不就是很有耐心地跟原住民打成一片,要不就是以武力解決,這部電影算是想讓人有所反省吧。不過賣點在3D,看的出來,很多鏡頭都是為了3D而拍的。帶兵的將軍很硬,就是印象中標準的美國大兵,堅決不放棄,你可以在片尾看到他,即使是軍隊幾乎被滅,他還是很堅持地要打倒主角。總而言之,還不錯看的一片。
- Cloudy with a Chance of Meatballs(IMDB, Wikipedia),台譯:食破天驚。主角小時候就發明了好東西,被人認為是Nerdy,後來受到媽媽的鼓勵發明了更多東西。故事從他發明了FLDSMDFR開始,FLDSMDFR能將水轉換成食物,由於這玩意兒不小心被放到天上,所以食物就從天而降,再加上鎮長的宣傳跟氣象預報員Sam,讓他所在的小鎮變成舉世皆知。當然,科學難免會有意外,機器失控,變成了可怕的氣候災難,最後在受到父親的鼓勵之下,當然是順利解決了。這部片笑點很多,能讓我從頭笑到尾,真的很不錯。除了有點weak的氣象故事主軸之外,也提到部份對Nerdy的歧視、父親的不認同(親子的衝突與相處),算是相當的不錯。蠻值得看看,然後放鬆的片。
- Invictus(IMDB, Wikipedia),台譯:打不倒的勇者。這算是曼德拉的傳記電影,描述曼德拉如何藉著舉辦橄欖球世界杯的機會,化解全國種族對立的問題。感覺上電影想說的很多,但卻被濃縮在兩個多小時裡講完,所以我覺得細節有些講的不清楚,並不是那麼的讓人感動(話說,我老婆公司的老闆覺得很感動,請全公司的人去看呢~)。當然,當時南非所舉辦的橄欖球比賽絕對是一場契機,而曼德拉也緊緊地抓住了,才能藉此讓全國人上下一心。我深深的覺得,曼德拉不但胸襟夠開闊,不記仇,也能把握機會,不愧能得到諾貝爾和平獎。
- 刺陵(IMDB, Wikipedia),英譯:The Treasure Hunter。坦白說,我覺得要不就是劇本爛,要不就是導演爛,我完全搞不清楚這部電影想說些什麼,全片唯一可看之處只有志玲姊姊。
