2008年8月29日 星期五

openser debug experience

/* You can start the openser as following command for debuging usage */
# /usr/local/sbin/openser -D -ddddd

How to run the debug agent(only provide register function) of eXosip2(sip_reg), tools/sip_reg
# ./sip_reg -r sip:SIP-Registrar-Address:5060 -u sip:abc@SIP-Registrar-Address -e 120 -d

2008年8月22日 星期五

Some confuse about semaphores...

There are seems two ways to use semaphore? I am not exactly sure :(

First way as follows
sem_open() /* Set the initial value, but I happen with the initial value that is differ with what I am setting */
sem_init() /* Set the initial value */
sem_getvalue()
sem_wait(), sem_trywait() /* lock the semaphore */
sem_post() /* unlock the semaphore */

Second way
ftok()
semget()
semctl() /* Set the initial value */
sem_op() /* lock/unlock the semaphore */

2008年8月19日 星期二

Add static route in the linux system

Before RehHat 8 version
/etc/sysconfig/static-routes
eth0 net 172.16.0 netmask 255.255.0.0 gw X.X.X.X

After RedHat 8 version (include RedHat version 8)
/etc/sysconfig/network-scripts/route-eth1
172.16.0.0/16 via 172.17.0.254

2008年8月18日 星期一

殺價哲學

在日常生活中, "買東西"是一件每天都要做的事情, 而殺價是一門學問, 尤其是不常買的東西, 更有殺價的空間, 通常殺價的起點可以考慮訂價的"5~6" 折, 再和老闆談價錢



轉載自 Yahoo!奇摩 知識+ ___小胖達

[生活]殺價的技巧--人人都可以是”殺價達人”喔?^^(目前有5篇)
殺價是人類活動中相當富有挑戰的行為!
殺價是一種你跟老闆互相鬥智、比耐力的挑戰,
常常殺價,有助頭腦的靈活運用與刺激人類潛能,對於人類生活的提昇,
都是非常正面、有益的!


殺價第一篇:天時篇
什麼時候殺價,也會影響殺價的成功率,殺價最好時機依序是:
1.打佯前
老闆想收了,不賺白不賺,隨便賣,只要價格不要太離?,
通常都很容易殺成功的。

2.沒有顧客時
當生意冷清時,老闆抱著有賣總比沒賣好的心態,
所以殺價就跟著容易了!

3.剛開店時
如果你剛好是第一個顧客的話,也許老闆為了博得好彩頭,
有可能就讓你殺成了!

殺價第二篇:地利篇
同樣的物品,在不同的地方賣,也會有不同的價格跟不同的成功率;
1.夜市
夜市因為人潮多,加上同性質的產品也多,相對的老闆的
競爭也大,因此只要你敢出價,通常老闆也願意跟你拉抬價格。

2.地攤\r
地攤的性質同於夜市,多半是在鬧區的路旁。當然,人多,
老闆就不怕賣不出去,因此要殺價的話,就是找比較偏遠或較沒人的
攤位。因為這些偏遠地攤的老闆通常是新來佔不到核心地盤的,所以\r
價格會比較軟。

3.店面\r
一般店面的價格就比較硬了,只買一樣東西是很難殺的,除非
是買個兩樣以上,然後跟老闆殺個零頭,這樣成功的機率會比較大。

4.百貨公司\r
百貨公司的專櫃基本上是不太可能殺的,要殺價的話,只好
”以時間換取金錢”,多跟老闆聊聊天,每一樣東西都問久問仔細一點,
最後因為已經有點像朋友了,而且他不賣給你的話,他會覺得自己像笨蛋
一樣跟你耗那麼久,所就算沒有辦法殺到最低價,至少也能用對方的名義\r
買到”員工價”。
注意!用員工價要自己開口,跟對方說,我不要拿發票,你用員工價賣給\r
我。(這箇中的原因有點複雜,主要是方便老闆用之後別人的發票來抵你
的折扣)

5.便利商店
這個就直接放棄了,根本殺不了價!我在某一個星期二晚上,到萊爾富買\r
一本再過二小時就過期的壹週刊,剛好也剩最後一本,還有點被折到,我
跟老闆說便宜5塊,賣我70好不好?結果他死都不肯....殘念\r

殺價第三篇:人合篇
”人合”講的是跟人有關的技巧,底下一一道來
1.對象\r
首先要看清楚殺的對象,所謂賣方,一般會有老闆、店員跟工讀生的差別,
工讀生就不要去為難人家了,他根本沒有額度可以讓你殺。
至於店員的話,因為有業績壓力,也有空間額度讓你殺,所以是最好殺的!
最後如果面對的是老闆,雖然老闆的決定權最大,但因為老闆大多很會計較,故可殺的空間反而不一定大。除非你多帶其他東西,或買的東西單價高,
這樣才殺的成功,如果只買一樣就比較需要其他條件的配合了。

2.人潮
要殺價的時候,千萬要挑人少的時候,因為人多,老闆不好意思便宜了你,
卻沒便宜別人,因此只好都不便宜。故,如果談到一半人潮變多了,寧願
先讓老闆招呼別人,等其他人走了再來殺,才能造就雙贏!

3.技巧\r
討價還價前,要先跟老闆多問、多聊天,原因跟前面百貨公司的用法相似,
聊了這麼久,他不賣給你要賣給誰?接著重頭戲來了,
要殺價的時候,心裡一定要有個底價,然後先出比底價更低的價格,
並一路堅持下去。例如100元的東西,我心裡的底價是70元時,就直接出60元,
等老闆一路搖頭,一路降到75元時,再假裝妥協放鬆的說,
好啦,大家各退一步,70啦!

4.士可殺,不可辱
如果你都說70了,老闆還膽敢說75的話,不要妥協,直接掉頭就走,
千萬不要說半句話!如果老闆把你拉回來的話,那就成功了!
如果老闆沒拉你時,也不要怕,就繼續走,等到逛個五分鐘後,
(不是真的要你去逛街,不要一高興繞的太久,等再回去後,老闆早忘了你)
確認沒有其他客人時,走過去再給老闆最後一次機會,然後說:
”最後一次,70元,要不要?”
通常這一招百分之七八十都會成功,如果不成...
那面對這麼機車的老闆,你就放棄吧!
因為根據莫非定律,
你剛自以為買的是最便宜了,但過沒幾天一定會看到一模一樣,
但更便宜的價格?\r
所以,過二天你一定可以找到更便宜...喔,不,是更沒那麼機車的老闆.....

殺價是人類活動中相當富有挑戰的行為!
殺價是一種你跟老闆互相鬥智、比耐力的挑戰,
常常殺價,有助頭腦的靈活運用與刺激人類潛能,對於人類生活的提昇,
都是非常正面、有益的!

由於網上規定一個答案不能兩用,因此個人將先前的回答置於最後,
裡頭包含殺價的"天時"、"地利\"與"人合"三篇內容,
今天我就補述第四篇:"心理篇"

殺價第四篇:心理篇
心理?殺價的人抱的是什麼心理?被殺價的人又是抱什麼心理呢?

1.殺價的心理素質\r
殺價的過程中,雙方比的除了是鬥力,還有"鬥智\",
"鬥智\",講的就是心理戰術,只要能運用心理戰術,
就能知己知彼,百戰不殆!
注意,這裡是百戰不殆,不是百戰百勝!
要知道,每一場殺價戰役都不能確保一定勝利,
但要能從失敗中學取教訓,才能再接再厲,獲取最終的勝利!
因此,要先有這種的心理素質,才不會因為殺價失敗而喪志,
也才能有這攤殺不成,馬上轉而殺下一攤的勇氣!

2.心理建設
很多人買東西時,明明想殺價卻不敢殺,怕的是殺不成功,
甚至因為臉皮薄,所以連要開口殺價的勇氣都沒有?\r

我問大家一個問題,為什麼平常道貌案然的人,到了網路上,
卻變成很開放,甚至會有變態的表現呢?
那是因為大家都知道,反正又看不到,誰會知道我是誰啊?

沒錯,就是最後這一句話,誰會知道我是誰啊?
網路上的活動是如此,殺價的時候也是如此!

準備殺價前,先自我催眠,告訴自己:
我這輩子也不會再跟這老闆有什麼來往了,
所以就算待會殺的很難看,可是,
誰會知道我是誰啊!?

再告訴自己一次:誰會知道我是誰啊?

沒錯,誰?會知道,我,是誰呢?

有沒有覺得臉皮厚了,勇氣也夠了?
去吧!你的獵物(老闆)就在你的正前方!

殺價第五篇:技巧篇
當所有天時、地利、人和都俱備,同時你的心理也已建設完成,終於準備與敵\r
人(老闆)開始正面廝殺了!此時,請注意!再強的兵馬(天時、地利、人和),沒有戰術的運用(技巧),還是可能鍛羽而歸的!

第一步:創造雙贏-作戰的方針
為什麼技巧的運用,首在”創造雙贏”呢?因為所謂的雙贏,就是”協助”
老闆把東西賣給你時,還能賺到應有利潤;同時你因能用合乎自己想要的
價格,買到想要的東西。

因此,除非你想敷衍老闆,否則很多人一開口就把價格砍的七零八落的,
只會落得老闆一句奚落:XX元?我跟你買好了!

所以古人捕鳥也會”網開一面”,不會趕盡殺絕,因為把老闆逼絕,沒有利\r
潤了,也是會讓老闆”狗急跳牆”的!

第二步:目標心理價-出價的先鋒
現在要出價了,那麼?怎麼樣的價格才是能”創造雙贏”的呢?其實你要知\r
道,一般貨品的進價約在售價的六成左右,當然,這裡是抓個概數,實際狀
況也得看產業種類,以及大、中、小盤商的不同。

有了這層概念後,你看到任何東西的售價,就都可以自動在心裡打個七八折,
這個心理價格,我把它稱為”目標心理價”。

例如490元的衣服,你的”目標心理價”就應該定在400元,如果你認為450元
就很好的話,那我勸你就不要再往下看了!因為490元的東西,開口450元的
話,通常是直接成交,沒有什麼挑戰性,你至少應該把他砍到420元,這樣才
對的起你的父母!

第三步:太極哲學-兩軍交戰\r
什麼?殺價跟太極有什麼關係?其實這裡取的是太極拳中的一句口訣:
後發至人!

什麼意思呢?就是當我們開始拋出一個價格後,接下來就不急著要出價了,
為什麼?記得三國的”空城計”吧!兩軍準備相接交戰了,但諸葛亮反而一
派輕鬆的在城上彈琴飲酒,率領大軍的司馬懿,終於沉不住氣的撤退而回!

是的,我們的目的就是要讓老闆沉不住氣,自動現出底牌來!
因為當你越急的跟老闆出價的話,那代表你很想買,這樣氣勢就會倒向老闆;
反之你出了一次價後,就不再積極,一副無所謂的話,反會讓你掌握整個氣\r
勢!有點像有些女生面對男生的追求,採取卻拒還迎的態度,反讓男生追的
更勤!

因此,這裡的原則是,要讓老闆三鼓而竭時,我們再一鼓作氣掌握局面!

可以跟老闆說, 這個東西(普利司通輪胎)我之前在別的地方買過, 只要900就可以了, 為什麼你這裡賣那麼貴? 語氣柔和, 態度要堅決, 就必定能殺價成功, God bless me..

Don't forget this philosophy, anytime/anywhere/anyamount/anyone just do it, make the prices as lowest as possible. :)

2008年8月14日 星期四

udev experience

udev allows Linux users to have a dynamic /dev directory and it provides the ability to have persistent device names.

# pwd
/etc/udev/rules.d

# grep -R -H "eth" ./*
./rules.d/75-persistent-net-generator.rules:KERNEL!="eth*|ath*|wlan*[0-9]|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
./rules.d/70-persistent-net.rules:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1a:4d:9d:af:36", ATTR{type}=="1", NAME="eth0"
./rules.d/70-persistent-net.rules:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1c:f0:c7:f6:92", ATTR{type}=="1", NAME="eth1"

# ifconfig eth0 ==> the mac address of eth0 is the same as the eth0 recorded by the udev (list as above line)
eth0 Link encap:Ethernet HWaddr 00:1A:4D:9D:AF:36
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21a:4dff:fe9d:af36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3811224 errors:0 dropped:0 overruns:0 frame:0
TX packets:3039504 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4258641035 (3.9 GiB) TX bytes:548058354 (522.6 MiB)
Interrupt:17 Base address:0xa000

# ifconfig eth1 ==> the mac address of eth1 is the same as the eth0 recorded by the udev (list as above line)
eth1 Link encap:Ethernet HWaddr 00:1C:F0:C7:F6:92
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:20

locate the new installed file

If you want to search the new installed file, you need to use "updatedb" first to update the database

2008年8月11日 星期一

2008年8月10日 星期日

Good books for students

強調全方位成功的《與成功有約》
有效經營大學生活的《哈佛經驗:如何讀大學》

2008年8月4日 星期一

Disable selinux

When packaging an application on RHEL or CentOS, you may receive the following error:
# cannot restore segment prot after reloc: Permission denied
This is likely due the the SE Linux setting being set to "enforcing"
To temporarily disable enforcement on a running system

# /usr/sbin/setenforce 0

Or you can disable selinux temprary by the following method
# echo 0 > /selinux/enforce