星期一, 三月 08, 2010

電影流水帳(2010/2/23~2010/3/3)

拖了好久才寫這篇,看片的速度也變慢許多。


  • Jennifer's Body(IMDB, Wikipedia)。這部片子沒有引進台灣上映。這部片,坦白說不好看。簡單說,Megan Fox在被樂團進行黑暗儀式之後,就變成了惡魔,開始吃人肉,女主角知道真相之後,就決定為民除害,就這樣。既不是很恐怖,該露的也沒什麼露。

  • Old Dogs(IMDB, Wikipedia),中譯:歐吉桑卡好。Dan 在7年前因為離婚,Charlies為了讓他轉換心情,就帶他去狂歡。狂歡時邂逅了兩個女人,Dan因此衝動地跟Vicki再次結婚,但旋即離婚。7年後,Vicki 因為要入獄服刑兩個星期,而好友又受傷,所以只好告訴Dan真相,說兩個小孩是他的,並請他照顧。於是發生了許多有趣又搞笑的事情,最後當然是皆大歡喜,不僅顧了親情,也顧了事業。還不錯看的片,蠻搞笑的,雖然劇情不是非常連貫,但瑕不掩瑜。

星期一, 二月 22, 2010

電影流水帳(2010/2/10~2010/2/22)

過年期間並沒有看什麼片,而且從年初三下到初七的雨又濕又冷,實在讓人受不了。

  • The imaginarium of Doctor Parnassus(IMDB, Wikipedia),中譯:帕納大師的魔幻冒險。由帕納大師領銜,演出奇幻表演的劇團救了一個男子-Tony,帕納大師的女兒因此傾心,原本傾心於帕納大師女兒的跟班-Anton開始嫉妒,但是帕納大師困擾的卻是別件事情,因為跟魔鬼打賭的關係,女兒其實就要被魔鬼帶走。所以藉著這個男子的幫忙,跟魔鬼再打了賭,想救回女兒,於是展開了冒險。但最後其實是,女兒了解了安東的愛,帕納大師又跟魔鬼打了賭,讓Tony進了地獄,所以救回了女兒。好吧,沒有預想中的好看,而且預告中有提到的大咖,其實出現的場景並沒有那麼多。讓我有特別注意到的是Lily Cole...
  • Whiteout(IMDB, Wikipedia),中譯:冰天雪地。女警探在南極查案的過程,最後兇手還是自己最相信的朋友,跟她之前被夥伴背叛的情況極為相似。電影對南極的描寫相當寫實,看得出來劇組的用心,像不帶手套去摸金屬,的確是很快就會結冰、甚至會把皮膚撕下,或是需要繩索幫忙行走等。不過劇情上,線索的拼湊、尋兇、兇手如何行兇等,顯得很分散,所以失去了推理的樂趣,實在可惜。

星期四, 二月 11, 2010

電影流水帳(2010/2/2~2010/2/9)

要過年了,過完年,就二月底,時間真的好快。
對了,祝大家新年快樂。

  • Where the wild things are(IMDB, Wikipedia),中譯:野獸冒險樂園。這是由童書改編的電影,描述一個小孩 Max 因為孤單不受到注意,受到刺激而遠離家園,來到一個島上。在島上他遇到了一群野獸,被野獸們推舉為國王,並承諾要讓大家都開心。但是經過一段時間之後,Max 發現要讓大家開心並不簡單。電影的一開始很能讓人感受到 Max 的孤單與寂寞,並且產生同情,但看到最後,我看不出來導演想說什麼,不過主角應該是真的了解了人與人之間並沒有想像中簡單才是...或許是我沒看過原著吧,才會這樣說~不過,這部電影的配樂很不錯,會讓人想買 CD 來聽聽。
  • The final destination(IMDB, Wikipedia),中譯:絕命終結站4。基本架構就跟前幾部一樣,大致能預期到故事怎麼發展,有些部份相當血腥,我轉頭了好幾次。片裡挑選的女主角都不錯,蠻有可看性。

星期一, 二月 08, 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 看看,會很清楚地發現差異點。

星期三, 二月 03, 2010

電影流水帳(2010/1/26~2010/2/1)

一月就這樣過了,尾牙也在 1/29 辦完,今年沒中任何獎,接著就要過農曆年了。

  • 十月圍城(IMDB, Wikipedia)。這是描述孫中山到香港討論同盟會起義事宜,陳少白跟李玉堂號召了六個烈士來保護他的故事。這部片子不差,前面都在鋪梗,也就是在找人、交待前後始末,後面一個小時沒冷場,全在打鬥。藍色電影夢的這篇十月圍城:群星難為戲寫的不錯,可以參考,我的確也很喜歡周韵跟謝霆鋒演的角色。另外場景也很令人驚訝,後來才知道這是真的根據當時的香港搭起來的,花了很多功夫。
  • The men who stare at goats(IMDB, Wikipedia),中譯:超異能部隊。失意的記者Bob在Iraq遇到Lyn,跟著他卻發生了奇妙的遭遇。劇裡有些橋段令人發噱,但我認為這並不是搞笑片,片名翻為超異能部隊實在會讓人誤導。坦白說,因為字幕的關係,我看的不是很懂。你可以看看 Forever Fish 寫的 [電影] 超異能部隊 / 以眼殺人。。

星期一, 二月 01, 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 設定檔的問題了。

星期五, 一月 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。

星期二, 一月 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。坦白說,我覺得要不就是劇本爛,要不就是導演爛,我完全搞不清楚這部電影想說些什麼,全片唯一可看之處只有志玲姊姊。

星期六, 一月 16, 2010

電影流水帳(2010/1/1~2010/1/14)

2010 年的目標也是 100 片唷!

  • Astro Boy(IMDB, Wikipedia),中譯:原子小金剛。我已經不太記得以前原子小金剛的故事了,所以我無從判斷起是否有照原來的故事來拍,但我可以肯定的是沒有原來的味道,我想是因為導演太貪心,試圖把冗長的故事在一個多小時的時間說完的關係。故事從博士的小孩發生意外開始,博士照著自己小孩的形象做了一個機器人,然後放了所謂的 blue core,所以超級強大。但卻又因為發現機器人並無法取代自己的兒子而排斥他。Astro在發現這件事情之後很難過,又被追殺,就逃到了下面去,認識了好多朋友,最後又再回到原來出生的地方,解決了之前追殺自己的人,發現了自己應該要走的路。
  • Funny People(IMDB, Wikipedia),中譯:命運好好笑。如果你以為這跟Adam Sandler其他的片一樣是搞笑的話,你就錯了。這部片坦白說,不能算喜劇片,片名叫 Funny People,是因為故事的主軸是在這些講笑話的人身上,事實上故事比較貼近一般的生活。George 是個成功的 comedian,但卻發現自己得了絕症,於是有了不同的想法,在他遇到 Ira 之後,決定聘用他,並且只讓他知道自己快要死的事情。在一起表演、一起生活的過程裡,Ira 成功的說服 George 把自己快死的消息讓朋友、親戚知道,並且把握時間好好跟他們相處,後來甚至跟之前的女友重修舊好。片子的末了,George 奇蹟似地逃過死神的追殺,居然好了!之前的女友認為自己的老公出軌,所以決定自己也要出軌,於是邀請 George 跟 Ira 來家裡,結果捲入女友的家庭風暴。這地方很有趣,女友的老公 Clark 原本是跟 George 扭打成一團的,後來被小孩打斷,帶小孩進去以後出來,居然很快地就看開了,說:這一切大概就是中國人說的報應吧,我之前不應該去嫖妓,我們現在應該都要好好想一想自己從這件事情得到了什麼教訓。於是兩人只能回到洛杉磯,George 因為感覺 Ira 而 Fire 了他,日子又重新回到 Ira 被聘請前的日子,但回程洛杉磯的路上,Ira 說的一些話一直縈繞在 George 心裡。最後兩人重歸於好,回到朋友的關係。

星期二, 一月 12, 2010

用 bash source 時,出現 "file not found"

今天遇到很鳥的問題。

情境是這樣的:目前的目錄下有 .config,而 scripts 目錄下有個 shell script ,名稱是 Configure。Configure 的內容很簡單,就是 source .config。接著,在目前的目錄下輸入 sh scripts/Configure,你就會遇到 ".config: file not found" 的訊息。

試了好久,雖然知道可以用 bash 執行來解決,但是就是覺得奇怪,因為 9.04 的 bash 3.2 是沒問題的,但到了 9.10 的 bash 4.0 就不行了。
最後在這裡:Re: source command differs if in bash or sh mode 找到答案:

This is a property of bash posix mode when you don't have `.' in $PATH:

28. The `.' and `source' builtins do not search the current directory
for the filename argument if it is not found by searching `PATH'.

> This behavior is new in version 4, old version 3.2 works fine.

The bash-3.2 behavior was a bug. Its fix is listed in CHANGES:

ggg. Fixed a bug that caused a shell running in Posix mode to search $PWD for
a file specified as an argument to source/. when the file was not found
in $PATH.



對,這是 bug,bash 3.2 沒問題,是因為他是 bug,4.0 的時候修正了,所以就有問題了,你必須要在 PATH 裡加入 . 才行。

好鳥。

星期一, 一月 11, 2010

移除七天前檔案

無心幹正事,可是卻有心搞 script,這真是...


#!/usr/bin/env python
# Usage:
# remove_files_older_than.py ./*.jpg

import sys
import glob
import stat
import os
import time

if len(sys.argv)<2:
print "Need 1 argument!"
sys.exit(-1)

expireDays = 7
fileList = glob.glob( sys.argv[1] )
print "Found %d files." % len(fileList)

currentTime = time.localtime()
deletedCount = 0
for filename in fileList:
filestat = os.stat( filename )
modifiedTime = time.localtime( filestat[ stat.ST_MTIME ] )
diff=time.mktime( currentTime )-time.mktime( modifiedTime )
if (diff/(60.0*60*24))>expireDays :
print diff/(60.0*60*24)
print "Remove %s, mtime=%s..." % (filename, time.strftime(
"%Y/%m/%d %H:%M:%S", modifiedTime ) )
os.remove( filename )
deletedCount=deletedCount+1

if deletedCount > 0:
print "Remove %d files" % deletedCount
else:
print "No files expired."


以下則是摘錄自:Windows Shell 刪除七天前資料
PowerShell的用法

Get-ChildItem -Recurse -force C:\files | Where-Object {!($_.Mode -match "d") -and ((Get-Date).Subtract($_.LastWriteTime).TotalDays -gt 7) } | Remove-Item -Force


Bash 的用法

find -mtime +7 -exec rm -f {} \;

星期五, 一月 08, 2010

viewvc 出現 ImportError: DLL load failed

環境:

  • Apache 2.0.x
  • mod_python 3.3.1
  • python 2.5.4
  • Subversion 1.5.6
  • svn-python 1.5.6
  • viewvc 1.0.7


查了好久,原本以為是 PATH 問題,手動在 viewvc 的 mod_python.py 裡加上 sys.path.append( r"c:\program files\subversion\bin" ) 也沒有用。

後來才爬到這篇文:#6739 (trac svn-python mismatch with apache 2.2 under windows),說是要把 subversion 的 dll 複製到 Apache 的執行目錄下。
查了 Apache 的執行路徑,發現真的有重複的 dll:
  • libapr.dll
  • libapriconv.dll
  • libaprutil.dll
  • libeay32.dll
  • ssleay32.dll
,於是備份之後,再把 subversion 下的這些 dll 複製過來,重新啟動 Apache 就解決了。

星期三, 一月 06, 2010

monodevelop 2.0 + asp.net mvc

翻譯 monodevelop 2.0 的時候,有看到跟 MVC 相關的字串,可是跑 monodevelop 2.0 的時候,卻從沒看過。參考了這篇:ASP.NET MVC MonoDevelop Addin Preview,才知道要另外裝上,於是打開 Addin Manager 把 MVC Addin 裝上,試著寫一個簡單的 Hello world,真的是可以開發,看來可以不必被綁在 Visual Web Developer express 上了。

這篇ASP.NET MVC Preview: Using The MVC UI Helpers是額外挖到的,相當有用,對 Html helper 做了詳細介紹,作者就是 ASP.Net MVC 的開發者之一。

星期四, 十二月 31, 2009

電影流水帳(2009/12/26~2009/12/31)

事實上寫這篇的時候,Gamer (2009)看了1/3,為了方便計算,還是先貼上好了,所以今年已經看完 101 片了,希望明年也可以!!

  • Cars(IMDB, Wikipedia),中譯:汽車總動員。中文譯名實在是很歡樂。我是在迪士尼頻道上分兩次看完的,而且是國語配音。描述一台賽車走 66 號公路經過某小鎮時,因違規被扣留在鎮上,這個小鎮因為66號公路被新開的高速公路所取代而日漸荒無。在被扣留的期間,賽車學到了許多事情,所以在後來回去賽車以後,他想起了這些事情,放棄冠軍,但卻因此取得代言,並且將人潮帶回那個小鎮。66號公路(U.S. Route 66)是一條很有名的道路,他橫跨了美國的東西部,Pixar 應該是為了要向這條公路致敬,才製作了這部卡通。卡通不難看,但比起Pixar其他的作品,感覺上就是少了那麼一點感覺。
  • My Sister's Keeper(IMDB, Wikipedia),中譯:姊姊的守護者。片子以有點類似紀錄片的方式進行。一家人事實上因為姊姊的病,都放棄了許多的事情,只為了姊姊能早日康復。但是姊姊得的病是絕症,能活著,是因為媽媽的堅持,妹妹就是由於這份堅持而生下來,所以她捐了血、骨髓。可是現在,姊姊開始腎衰竭了,媽媽希望妹妹能捐出一顆腎臟。姊姊不希望再這樣下去,所以瞞著媽媽,請妹妹去找律師來打官司,爭回醫療監護權,避免捐腎,也不希望全家人再為了自己,而失去其他的幸福。最後,在官司結果尚未宣判前,因為哥哥在法庭上的發言,全家人都知道了妹妹的苦衷是由於姊姊的委託才請律師打這場官司,而姊姊沒能撐過去,走了。但根據Wikipedia上的說明,電影跟小說其實是大相逕庭,小說裡,是妹妹遇到了車禍,變成了腦死,律師同意捐出身體,反而是姊姊活著了。 這部電影很值得人省思,我記得這兩年台灣的新聞也有報導過類似的事情,就是救一個人該救到什麼程度呢??需不需要無限上綱??無限上綱的結果是對病人好,還是對病人的家屬好??這個力道的拿捏,真的是需要一份智慧。
  • Gamer(IMDB, Wikipedia),中譯:極限遊戲。這個故事其實跟獵殺代理人很類似,但卻更為驚悚。獵殺代理人是人控制機器人,而這個故事講的是人控制人。在故事所在的時代,虛擬實境遊戲 Society 跟 Slayer 大行其道,Society 是類似像 Second life 的遊戲,而 Slayer 則是 FPS (第1人稱射擊)遊戲,遊戲公司因此大發利市。遊戲的基本,是有人花錢玩,來控制自願被控制的人,自願被控制的人需要先植入nanites,這會取代部份的腦細胞,以達到控制的效果,光聽到這個技術,就夠令人害怕了。主角因為犯罪被關,但是只要參加 Slayer 能贏過 30 場就能重獲自由身,故事一開始,主角就已經快要贏了,想當然爾,遊戲公司當然是百般阻撓。這時候主角獲得外援,不僅說服控制他的人不要控制他,而且還逃出了遊戲的控制範圍,找到他的妻女,最後終於發現遊戲公司頭頭的陰謀,原來他也植入了nanites,但卻是控制者,並非被控制,所以主角跟控制他的玩家就把遊戲公司的頭頭給幹掉了。故事有點莫名其妙跟理所當然的順利,這當然不盡合理,不過衝著很多的動作跟爆破,讓電影沒什麼冷場。電影還穿插了許多性、暴力的黑暗面,建議受不了的人,就別看了。

 
TEMPLATE HACKS AND TWEAKS BY [ METAMUSE ] BLACKCAT 1.1