在 deserialization 之後,需要做的一些處理可以寫在這裡。
.Net framework documentation 裡面的例子是以 Circle 類別作例子,圓的面積不 serialize,而是在 deserialize 之後再計算出來。
霍元甲
這部電影應該可以拍的更深沉,我想或許該拍的都拍了吧,只是沒剪出來。
這是蠻可惜的。
覺得裏面挺不錯的幾句話:
- 人心裡不好受,就得哭,哭完了,你還得上路。
- 人呀,要時常洗洗自己,這樣才能清爽地走在世上。
- 秧苗也是有生命的,它們之間不能靠得太近,近了就會妨礙生長,就像我們人,生活中要懂得互相尊重,這樣大家才能活得平安快樂。
- 茶品的上下高低,並不是由茶來對我們說,倒是由人來決定的,不同的人有不同的選擇。
- 喝茶是一種心情,如果你心情中了,茶的高低還有這麼重要嗎?
- 最可怕的競技在自己內心?
NAnt (2)
看完上一篇,你大概會想,要寫的 task 是如此之少,這真是太完美了。
但是對於笨Q來說,不幸的事情發生了…
笨Q 聽說 .Net 也移植到 Linux 上了,所以他想試試看把上篇的程式拿到 Linux 下編譯,於是笨 Q 安裝了 Mono。接著安裝 NAnt。
同樣他下載了 NAnt, 並且解開,放到 /opt/nant 下。
再把整個專案複製到 Linux 下,並且修改了一下 build 檔的內容,由
<property name=”nant.settings.currentframework” value=”net-1.1″/>
改為
<property name=”nant.settings.currentframework” value=”mono-1.0″/>
讓 NAnt 在建立專案前自動把編譯環境切換為 mono。
接著輸入
$mono /opt/nant/bin/NAnt.exe
這時只見 NAnt 很不爭氣的吐了一句:
Invalid element <solution>. Unknown task or datatype
笨Q 只能流淚默默接受這個事實,他知道必須自己學著寫 target。
一個 NAnt 的 build 檔案其實是一個 XML 檔案,最基本的元素是 project,project 則是由 target 與 property 組成的,而 target 則是由許多的 task 組成的。
所以一個空的 build 檔案是長這個樣子:
<?xml version="1.0"?>
<project name="dnsedu" default=“build”>
<property name=“nant.settings.currentframework” value=“net-1.1″/>
<target name=“build” description="Default build target" depends="dnsedu">
</target>
</project>
那麼 target 裡面有哪些 task 可以用呢?你可以參考官方網站的這裡。
裡面真的很多 task,除了基本編譯(csc, vbc, cl, al, ilasm, resgen)之外,他還有 copy, cvs, mail, nunit …等等的 task,絕對可以讓你組合出你想要的東西。
要改寫上篇的 build(我假設你用 c#),我們會用到 csc、mkdir 這兩個主要的 task。
以下是改寫好的 build 檔案
<project name="your_project" default="build">
<property name="nant.settings.currentframework" value="mono-1.0"/>
<property name="debug" value="false"/>
<target name="build">
<mkdir dir="bin" unless="${directory::exists(‘bin’)}" />
<csc target="winexe" output="bin/your_project.exe" debug="${debug}">
<sources>
<include name="*.cs"/>
</sources>
<references>
<include name="System.Drawing.dll" />
<include name="System.Data.dll" />
<include name="System.Windows.Forms.dll"/>
</references>
<resources>
<include name="*.resx"/>
</resources>
</csc>
</target>
</project>
mkdir task 這邊我使用了 unless,意思是 if not,所以意思就是當目錄不存在的時候,就建立一個。這裡判斷目錄是否存在的函數是 NAnt 內建的,想知道有哪些函數可用,可以參考NAnt官方網站的這邊。
csc task 裡面,則需要指定輸出類型(target),輸出檔名(output)以及要不要包含除錯資訊(debug)。
夾在 <csc></csc> 裡面的,就是指定你 c# 程式,所引用(或參考)到的組件以及所使用的資源檔。
很簡單,對吧~
這就是最基本的囉,下次我們來談談 web 應用程式的部份。
Ah Ah / 四季
為甚麼原住民的歌聲永遠那麼嘹亮動聽有力道?
aLin 的這首 Ah Ah 就很 powerful。
Ah Ah
作詞:Anna Tsuchiya
作曲:paul Rein
編曲:周顯哲
主唱:aLin
All the girl, wish to be sexy
Preny red dresses & high hells
Put lip stick on and make me high
How gorgeous I am
I really love myself
Let’s just be sype cute girls
I don’t need expensive things
You want me but you can’t have it
lady come on join the party ‘Dance Dance’
Show me how you’re ‘Movinq’
that have a crush on you
Baby you’re enslaved by my cheam ‘No No’
I don’t mind ‘Ah Ah’
Nobody can stop me
Most of the girls wanna have fun
Going to clubs in the night time
My mom was always angry at me
But when she was young, she was hot
I really love myself
Let’s just be super cute girls
I don’t need expensive things
You want me but you can’t have it
They give me diamond ring ‘Bling Bling’
But they’re nothing ‘To Me’
Cause I’m muc much more
Yes, you can’t buy me ‘No No’
Different from’The Others’
Nobody can stop me
四季Four seasons
中文詞:Alin
作曲:Mad Soul Child
編曲:林於賢
主唱:aLin
明明是春天我卻感到絕望
夏天來臨了我還是看不見陽光
秋天的落葉將往事都埋藏
準備好冬天將你的一切都遺忘
我的愛情 已折斷了翅膀
無法繼續飛翔 在風裡飄飄蕩蕩
等待天亮 好好大哭一場
再讓眼淚風乾 在微笑中釋放
走過四季 是你給我的力量
當我覺得孤單沮喪害怕還依然能堅強
不管四季 如此無情的交替 我已不寂寞
因為你和我曾多麼快樂
你走了以後日子是否無恙
是不是有誰代替我陪在你身旁
你住的城市陽光多麼燦爛
可曾想起我正一個人面對孤單
我的愛情 已折斷了翅膀
無法繼續飛翔 在風裡飄飄蕩蕩
等待天亮 好好大哭一場
再讓眼淚風乾 在微笑中釋放
走過四季 是你給我的力量
當我覺得孤單沮喪害怕還依然能堅強
不管四季 如此無情的交替 我已不寂寞
因為你和我曾多麼快樂
如果沒有你 現在我會在哪裡
過著怎樣的生活 會不會也寂寞
走過四季 是你給我的力量
當我覺得孤單沮喪害怕還依然能堅強
不管四季 如此無情的交替 我已不寂寞
祈禱這世界 祝福我們所有一切
因為你和我曾多麼快樂
NAnt (1)
在 .Net 2.0 以前,如果不使用 IDE 來建立專案,而想要直接在命令列打個指令就可以建立的話,你有 3 種選擇:
- 批次檔
- Makefile
- NAnt
.Net 2.0 之後,多了一種選擇:msbuild。
這一系列文章主要是討論 NAnt,可是為甚麼要用 NAnt ? 又為甚麼要用 NAnt ??
簡單來說,爽。
如果要講跨平台,用 Makefile、msbuild (mono 已經搞了一個工具叫 xbuild,與 msbuild 相容) 都可以跨平台。
如果要講簡單,我個人是覺得 Makefile 比他還簡單。
如果要講功能,msbuild 也不遑多讓。
所以我說,就是一個爽。
Ant 是 Java 平台上一個極為重要的工具,而NAnt 最早是想把 Ant 移植到 .Net 上,所以才叫做 NAnt。
官方網址在:http://nant.sourceforge.net
下載 .zip 檔案以後,解開就可以用了,沒什麼特別的安裝步驟,即便是 Linux 也一樣。
我假設你解開以後會放到 c:\tools 下,並更名為 nant 。
廢話不多說了,直接從第一個實例開始。
我想一般人還是很習慣用 Visual Studio.Net 來開發吧。
所以,先隨便建立一個 Windows form 專案,確定它可以編譯。(或者你也可以用你手頭上的專案來試試)
接著在該專案目錄下,建立一個文字檔,並命名為 your_project.build (是了,your_project 你得自己替換一下。)
裡面放置如下內容:
<?xml version=”1.0″?>
<project name=”your_project” default=”build”>
<property name=”nant.settings.currentframework” value=”net-1.1″/>
<target name=”build”>
<solution configuration=”release” solutionfile=”your_project.sln” />
</target>
</project>
存檔以後,進入命令列模式,輸入
c:\tools\nant\bin\nant
這樣就大功告成了。
為甚麼可以這麼簡單?因為 NAnt 在 0.85.2296 以後已經添加了解析 Visual Studio 專案檔的能力,所以 build 檔裡面就只要用 solution 這個 task 就可以搞定了。
但是很可惜的是還不支援 Visual Studio 2005,即便是最新的版本也還沒看到蹤跡。
我愛台妹
昨天才聽到這首歌,聽完之後只有一個感覺:這真是太屌啦!!
直接列為練習歌曲,下次去KTV點唱。
以下參考自:認真的台妹最美麗,愛台妹才是真男人
歌名:我愛台妹
作詞:姚中仁/張震嶽
作曲:姚中仁/張震嶽
演唱:Mc Hot Dog、張震嶽
我的阿妹妹 快來和我跳阿哥哥 Go 我知道你看到是我 妳不會說No
我不是油頭葉教授 我的homiez都叫我熱狗 4 sure
女孩 就是喜歡妳台台 等等去家裡home pa要不要來
只怕你掛的太快 明天要去廟裡收驚拜拜 How High ?! We can kiss the sky!
人生海海 我們不會只是stand one night 『one night in 墾丁..我留下許多情..』
你是我的可口可樂 幫我解渴 看我穿著就知道我玩饒舌
不要說我壞話 因為我有順風耳 如果是你肚子大我帶你去看順風婦產科
我愛台妹 台妹愛我 對我來說 林志玲算什麼?!
我愛台妹 台妹愛我 對我來說 侯佩岑算什麼…..
我不愛中國小姐 我愛台妹 萬萬歲 妳的檳榔2粒要100 好貴 有沒有含睡
如果能夠和妳共枕眠 更多更多的奶粉錢 我願意為妳貢獻 我不是愛現
請妳噴上一點點銷魂的香水 換上妳最性感的高跟鞋 人群之中 妳最亮眼
台妹來了 我是否和妳一拍即合 跟我去很多的不良場合
大家看到我都對我喊yes sir 因為我是公認最屌的rapper
台妹們 麻煩和我拍拖 我不是凱子 可是付錢我也不會囉唆
純情是什麼 我不懂 我的想法很邪惡 張震嶽他懂
我愛台妹 台妹愛我 對我來說 林志玲算什麼?!
我愛台妹 台妹愛我 對我來說 侯佩岑算什麼…..
為了妳 我可能要投資一家檳榔攤 為了妳 家裡可能要有鋼管
為了妳 我要常常下去台南 為了妳 流氓會來找我麻煩
對於帶著一點風塵味的女生 我的腎上腺素毫不考慮亮起紅燈
畢竟妳不是天使 我也不是聖人 時尚的野獸 那就請你滾 我受夠
你是馬戲團訓練有素的animal 所有男模 女模 你在屌什麼
我就不信你現在還有處女膜 都是凱子搓
我喜歡台妹說話的口音 有時候挾帶幾句口白三字經
愛神的箭 你要射向哪裡 這裡 張震嶽 free9熱狗 這裡 等你
我愛台妹 台妹愛我 對我來說 林志玲算什麼?!
我愛台妹 台妹愛我 對我來說 侯佩岑算什麼…..
我愛台妹 台妹愛我 對我來說 林志玲算什麼?!
我愛台妹 台妹愛我 對我來說 侯佩岑算什麼…..
把手放在空中甩 我叫你什麼都不用管
讓我看妳把手放在空中甩 把手放在空中甩
台妹 手放在空中甩 叫你什麼都不用管
叫你把手放在空中甩 叫你什麼都不用 Ya
台客 手放在空中甩 把手放在空中甩
我讓你感受 這個節奏 身體跟著擺動
這是free9 張震嶽 熱狗 要你跟著我們怒吼
一切都是假象 不是你們想像
我愛台妹 我愛台北 就像這樣
我愛夏天
今天閒逛的時候,發現張國璽要去開飛機了…看這邊…
跟著來串聯祝福他吧~~

我永遠都會記得這首專屬於夏天的歌,還有最適合這首歌的主唱…
歌名:我愛夏天
主唱:脫拉庫
作詞:張國璽
作曲:張國璽
我 我愛夏天
有 漂亮美眉
我 我愛夏天
因為 她們穿的養眼
每到夏天我要去海邊 海邊有個漂亮高雄妹
只打電話不常見面我好想念 不知她會在哪個海邊
(1、2、3、4)
我 我愛夏天
有 漂亮美眉
我 我愛夏天
因為 她們穿的養眼
每到夏天我要去海邊(去海邊) 海邊有個漂亮高雄妹(高雄妹)
只打電話不常見面我好想念 不知她會在哪個海邊
我 我愛夏天
有 漂亮美眉
我 我愛夏天
因為 她們穿的養眼
每到夏天我要去海邊(去海邊) 海邊有個漂亮高雄妹(高雄妹)
只打電話不常見面我好想念 不知她會在哪個海邊
每到夏天我要去海邊(去海邊) 海邊有個漂亮高雄妹(高雄妹)
只打電話不常見面我好想念 不知她會在哪個海邊
Firewall: lokkit 的設定
進入 console mode 之後,輸入 setup
選到 Firewall configuration (或直接輸入 lokkit)
再選 customize,至此即可設定允許哪些協定進入你 linux 防火牆。
到 Allow incoming 那邊,將協定勾選(按空白鍵勾選,Tab鍵切換)。
如果沒有列出來的,你可能要在 Other Ports 那欄自行輸入。
格式大致是這樣:
protocol_name:[tcp|udp]
拿我家裏的 server 來說,除了勾選 HTTP、SSH 之外,我還自行輸入了
pop3:tcp https:tcp netbios-ssn:tcp microsoft-ds:tcp netbios-ns:udp netbios-dgm:udp
不知道有哪些 protocol 的話,可以用 netstat -a 自己去看。
我也是嘗試之後,才發現 Other ports 那欄的輸入格式可以參考 netstat -a 的結果。
Some mono news
MonoDevelop Releaes 0.10 版啦~
這次提供了 GUI designer 了喔,也可以作 Refactoring ~~
另外還有我小小的貢獻:zh_TW 的翻譯 :-p
詳情可以看 Release notes for MonoDevelop 0.10.
看了Tracking Performance in Mono才知道,原來已經有個大學從 2004 年開始就在進行追蹤 Mono 效能,並且提供了詳細的報告呢。
報告的網址:Regression Tests – MONO Regression Benchmarking
TheServerside.Net 訪談 Miguel De Icaza
Q and A with Miguel "Mono Man" De Icaza
這是一篇訪談,對象是Mono專案的 leader,裡面提到很多關於 Mono 的現況與未來發展.
稍微整理一下我看到的:
- 1.2 beta 1 將會在四月釋出,最主要要完成的是 Windows form 1.1 的部份.
- vb.net compiler, 實做狀況不佳,因為 Linuxer 都對 c# 比較可接受,但是你可以先在 windows 編譯好 il (assembly)再拿到 mono 上用.
- 有討論到關於 object pascal / iron python / ruby 的一些事情.
- 對 .Net 2.0 的支援, c# 2.0 compiler 都已經完備了, 目前少的是 2.0 的類別庫. 在1.2之後,他們會排定開發順序.