Patching Qmail for remote smtp authentication
My ISP (Netvigator) goes to great lengths to block spam mails sending out from its users. All its users cannot connect to SMTP severs outside. This creates a problem for me as I host my own mail server at home.
Normally, when a mail server tries to deliver an email, it will connect to the destination mail server directly. e.g.
But as mentioned above, my ISP blocks all the access (port 25) to the outside world. So there is no way for my mail server to connect to other mail servers and deliver the emails.
Luckily, by the SMTP standard, I could force the mails route through my ISP's mail server:
So far so good. The remaining problem is: the Netvigator's SMTP server requires authentication which my mail server (Qmail) doesn't support! Thanks to open source, it is easy to patch the code though.
Normally, when a mail server tries to deliver an email, it will connect to the destination mail server directly. e.g.
Draft an email to abc@yahoo.com on my PC --->
my mail server --->
yahoo's mail server But as mentioned above, my ISP blocks all the access (port 25) to the outside world. So there is no way for my mail server to connect to other mail servers and deliver the emails.
Luckily, by the SMTP standard, I could force the mails route through my ISP's mail server:
Draft an email to abc@yahoo.com on my PC --->
my mail server --->
Netvigator's mail server --->
yahoo's mail server So far so good. The remaining problem is: the Netvigator's SMTP server requires authentication which my mail server (Qmail) doesn't support! Thanks to open source, it is easy to patch the code though.
- First, go get the patch
- Apply the patch to qmail-remote.c
In my case (on FreeBSD), one of the chunks can't be patched. But don't worry, just open the source to patch it manually!!
patch < qmail-remote-auth.patch - The patched source needs a base64 function (the authentication for SMTP is in base64 format). Go get it here. Unpack the file and copy base64.c and base64.h to the qmail source folder. Compile it.
gcc -c base64.c - Build the new binary
Replace the existing qmail-remote (usually under /var/qmail/bin) with the patched version
make qmail-remote - Now, the Qmail SMTP routing file (/var/qmail/control/smtproutes) supports username and password. e.g. To route everything from my mail server to Netvigator's SMTP server:
:smtp.netvigator.com username password
MSN "now playing" plugin for foobar2000 0.9.5 (version 0.5)
A new version of the component is available.
This is version 0.5 of the plug-in. Added new option to send the song info in "Title" format.
This plug-in is for the foobar2000 music player. It sends the song information to MSN Messenger for display.
The C++ source code is available here. You will need to download the foobar2000 SDK in order to build it. The binary DLL is also available (compiled with Visual C++ 2005 Express).
Save the DLL under the components directory of foobar2000 and restart the program. There will be a new item added under the Playback menu. Select the format of info that you want to show on MSN. Also remember to turn on the "Show what I'm listening to" feature on your MSN Messenger.
This is version 0.5 of the plug-in. Added new option to send the song info in "Title" format.
This plug-in is for the foobar2000 music player. It sends the song information to MSN Messenger for display.
The C++ source code is available here. You will need to download the foobar2000 SDK in order to build it. The binary DLL is also available (compiled with Visual C++ 2005 Express).
Save the DLL under the components directory of foobar2000 and restart the program. There will be a new item added under the Playback menu. Select the format of info that you want to show on MSN. Also remember to turn on the "Show what I'm listening to" feature on your MSN Messenger.
挽手袋
「男士應否替女士挽手袋」。一個應該係辯論一世都冇結果o既題目。
早兩日出席左朋友o既婚宴,而當中做伴郎o既係另一位相識o既朋友。只見席間,做伴郎o既朋友一直為伴娘拎住個晚裝手袋。注意: (1) 呢位伴郎朋友乃出名(亦自認)色中餓鬼; (2) 伴郎同伴娘係幫手準備呢場婚宴前,係並不認識的說。 -_-
入番正題。「男士應否替女士挽手袋」。正方代表(通常係女性)會話,咁係男士風度o既表現。就好似男士應該要為女士落車時開車門,落雨時擔遮一樣,好正常喔。 而反方(大男人?)會話男人老狗,拎住個女人手袋通街走係有損尊嚴兼市容喎。
其實,當你的朋友或女伴有需要時,唔理係唔係拎手袋,出手幫忙又有咩唔妥?尤其係當你的女伴要上洗手間、入試身室、或者係季尾減價掃貨時,幫她拎一拎個手袋又何嘗不可?(不過,話說回頭。當你見到女廁門口有一大班男士拎住手袋係到等o既場面,你都咪話唔好笑…)
男士,其實怕o既係一開始幫女士拎手袋,就顯得雄風減弱,驚從此就咁俾個女仔「食住」。
女士呢,其實好多時都唔係要男仔真係幫佢拎手袋。佢地只係想知道個男仔「肯唔肯」拎。到個男仔真係想幫手拎時,反而會話唔洗… -_-
最理想o既情況係:一位男士好禮貌咁問位女士需唔需要幫手挽手袋。女士嫣然一笑咁答:「唔洗喇~」… 咁男o既就顯出左風度,而女o既就可以繼續拎住個成萬銀o既手袋襯番件衫… :P
早兩日出席左朋友o既婚宴,而當中做伴郎o既係另一位相識o既朋友。只見席間,做伴郎o既朋友一直為伴娘拎住個晚裝手袋。注意: (1) 呢位伴郎朋友乃出名(亦自認)色中餓鬼; (2) 伴郎同伴娘係幫手準備呢場婚宴前,係並不認識的說。 -_-
入番正題。「男士應否替女士挽手袋」。正方代表(通常係女性)會話,咁係男士風度o既表現。就好似男士應該要為女士落車時開車門,落雨時擔遮一樣,好正常喔。 而反方(大男人?)會話男人老狗,拎住個女人手袋通街走係有損尊嚴兼市容喎。
其實,當你的朋友或女伴有需要時,唔理係唔係拎手袋,出手幫忙又有咩唔妥?尤其係當你的女伴要上洗手間、入試身室、或者係季尾減價掃貨時,幫她拎一拎個手袋又何嘗不可?(不過,話說回頭。當你見到女廁門口有一大班男士拎住手袋係到等o既場面,你都咪話唔好笑…)
男士,其實怕o既係一開始幫女士拎手袋,就顯得雄風減弱,驚從此就咁俾個女仔「食住」。
女士呢,其實好多時都唔係要男仔真係幫佢拎手袋。佢地只係想知道個男仔「肯唔肯」拎。到個男仔真係想幫手拎時,反而會話唔洗… -_-
最理想o既情況係:一位男士好禮貌咁問位女士需唔需要幫手挽手袋。女士嫣然一笑咁答:「唔洗喇~」… 咁男o既就顯出左風度,而女o既就可以繼續拎住個成萬銀o既手袋襯番件衫… :P
保險
時: 某星期六,晨咁早
地:馬大夫醫務所
人: 奇雲斯,馬大夫, 及妙齡女護士一名
【幕一開,見阿奇雲斯一條友傻傻咁坐係馬大夫醫務所o既候診室入面。而妙齡女護士則坐係 counter 內, 一面冷漠】
妙齡女護士(忽然大叫): 奇雲斯!入去見醫生!
【阿奇雲斯慌忙跳起,雞手鴨腳走入診証室坐低】
奇雲斯(一面惶恐): 呀馬大夫呀馬大夫… 上個禮拜我去見另一個 eason 時呢,咁呢, 個 eason 建議我呢, 話最好做個小 operation 喎。 咁呢, 所以呢, 走黎俾你睇下,拎個 second opinion 咁囉。
馬大夫(非常淡定): 係呀?等我睇下… (一路檢查,一路自然自語) 唔… 唔… 幾好… 唔… 情況唔係太差呀… 唔… 唔… (失驚無神)呀~ 講開又講,我地o的 eason 最鍾意你呢種病人!你睇你,呢到又大又凸,做起手術上黎話咁易!
奇雲斯: …
馬大夫(越講越興奮): 係o架!拿,係人老左都有機會有毛病o架嘛,你呢到咁大,真係做起手術黎都方便o的o架!
奇雲斯: …
馬大夫(繼續好興奮咁): 拿拿拿!你話喇,個 size 咁大,真係開刀又好,要鑽又好,方便好多o架!再唔係呢…
奇雲斯(開始有o的驚,急忙打斷馬大夫): 咁阿馬大夫,咁我即係洗唔洗做 operation 呀?
馬大夫(忽然回復冷靜淡定): 咁我 check 過,又唔洗即刻做喎。
奇雲斯: …
馬大夫: 拿,你半年之後再番黎 check 下喇!到時再睇睇情況先!
奇雲斯(傻傻地): o下? 哦…咁好喇…
【跟著,阿奇雲斯出番去候診室】
妙齡女護士(面容冷漠): 半年後打電話番黎約時間覆診。 多謝四舊水呀!
奇雲斯: …
【鏡頭忽然一轉…唔知轉左去邊】
朋友甲: 咁咪好囉,唔洗做 operation 喇~
奇雲斯: 馬大夫唔係 panel doc 黎o架!無得 claim 保險o架… 半年後又要再睇呀… 大佬!陰公!
朋友甲: …
地:馬大夫醫務所
人: 奇雲斯,馬大夫, 及妙齡女護士一名
【幕一開,見阿奇雲斯一條友傻傻咁坐係馬大夫醫務所o既候診室入面。而妙齡女護士則坐係 counter 內, 一面冷漠】
妙齡女護士(忽然大叫): 奇雲斯!入去見醫生!
【阿奇雲斯慌忙跳起,雞手鴨腳走入診証室坐低】
奇雲斯(一面惶恐): 呀馬大夫呀馬大夫… 上個禮拜我去見另一個 eason 時呢,咁呢, 個 eason 建議我呢, 話最好做個小 operation 喎。 咁呢, 所以呢, 走黎俾你睇下,拎個 second opinion 咁囉。
馬大夫(非常淡定): 係呀?等我睇下… (一路檢查,一路自然自語) 唔… 唔… 幾好… 唔… 情況唔係太差呀… 唔… 唔… (失驚無神)呀~ 講開又講,我地o的 eason 最鍾意你呢種病人!你睇你,呢到又大又凸,做起手術上黎話咁易!
奇雲斯: …
馬大夫(越講越興奮): 係o架!拿,係人老左都有機會有毛病o架嘛,你呢到咁大,真係做起手術黎都方便o的o架!
奇雲斯: …
馬大夫(繼續好興奮咁): 拿拿拿!你話喇,個 size 咁大,真係開刀又好,要鑽又好,方便好多o架!再唔係呢…
奇雲斯(開始有o的驚,急忙打斷馬大夫): 咁阿馬大夫,咁我即係洗唔洗做 operation 呀?
馬大夫(忽然回復冷靜淡定): 咁我 check 過,又唔洗即刻做喎。
奇雲斯: …
馬大夫: 拿,你半年之後再番黎 check 下喇!到時再睇睇情況先!
奇雲斯(傻傻地): o下? 哦…咁好喇…
【跟著,阿奇雲斯出番去候診室】
妙齡女護士(面容冷漠): 半年後打電話番黎約時間覆診。 多謝四舊水呀!
奇雲斯: …
【鏡頭忽然一轉…唔知轉左去邊】
朋友甲: 咁咪好囉,唔洗做 operation 喇~
奇雲斯: 馬大夫唔係 panel doc 黎o架!無得 claim 保險o架… 半年後又要再睇呀… 大佬!陰公!
朋友甲: …
Gravity
Gravity
John Mayer
Gravity
Is working against me
And gravity
Wants to bring me down
Oh I'll never know
What makes this man
With all the love
That his heart can stand
Dream of ways
To throw it all away
Oh Gravity
Is working against me
And gravity
Wants to bring me down
Oh twice as much
Ain’t twice as good
And can't sustain
Like one half could
It's wanting more
gonna send me to my knees
instrumental
Oh twice as much
Ain’t twice as good
And can't sustain
Like one half could
It's wanting more
gonna send me to my knees
Oh gravity
Stay the hell away from me
Oh gravity
Has taken better men than me
Now how can that be?
Just keep me where the light is
Just keep me where the light is
Just keep me where the light is
C’mon keep me where the light is
C’mon keep me where the light is
C’mon keep me where keep me where the light is 是日金句
「順便話你知…如果你又係準備同我講o的無聊o野,免喇!保重!」
-_-
-_-
是日金句
「用眼前o既事抹掉過去o既陰霾」
death of mini
A few days ago, my ancient mac mini (PowerPC G4) hung during OS upgrade. Can't boot up anymore. Using the original OS X installation disc can't recover the system. The recovery also hang in the middle of installation.
Last resort: crack open the machine and tried to replace the RAM. Actually it is sort of upgrade (from 512M to 1G). Mystically, the re-installation finally worked!
The moral here is... "if anything can go wrong, it will"... -_-... who would suspect the cause was a faulty RAM module... after the machine has been running for many years...
Last resort: crack open the machine and tried to replace the RAM. Actually it is sort of upgrade (from 512M to 1G). Mystically, the re-installation finally worked!
The moral here is... "if anything can go wrong, it will"... -_-... who would suspect the cause was a faulty RAM module... after the machine has been running for many years...
是日晚餐
蒜蓉牛油磨菇 + 塔斯曼尼亞牛仔骨鐵板燒牛肉 + 茄醬通粉
食評:唔咁喉… -_-… orz
褔娃儍了
d褔娃唔知做咩… =_="