作者彙整: dada

關於「dada」

I'm dada

富邦momo購物網的 Touch Cruise 驚爆價!(標錯價?)

話說一個禮拜前貼的一篇文章才提到說我的手機 Siemens 3618 用了五年多了,一直都還是頭好壯壯的,沒想到今天慘事就發生了…



液晶畫面突然變得亂七八糟,雖然看起來還可以接聽來電,但根本看不出來是誰找我,也無法查詢電話簿,看來真的是該換一隻手機了…

不過這一篇的重點不在這邊…

我從 momo 富邦購物網訂購(疑似標錯價錢)的 HTC Touch Cruise PDA 手機今天又有最新消息了,下午有一位 momo 的客服人員打電話過來,說我訂購的手機缺貨,可能要一陣子才能到貨,問我要不要取消訂單。我當然是嚴詞拒絕囉,要求 momo 必須依照網站上的說明於五個工作天內到貨。而且既然客服人員這樣說明,就表示沒有標錯價錢的問題囉 !?

不過這隻手機雖然熱門,但也不可能達到這麼缺貨的地步,網路上甚至有人說被 momo 客服告知要兩個月才會到貨!其實就算標錯價錢,還是有辦法協商的,購物網站仍不見得要完全履行(可參考之前的聯邦銀行案例)如果富邦想用這招來騙買家取消訂單,未免也太低級了一點… 而且這樣可能適得其反,富邦是不是就等於承認沒有標錯價錢了呢?如果有人不接受取消訂單,那 momo 是不是兩個月內都不用想賣這支手機了呢? 沒貨源還放上網站去賣,momo 以後不想混了嗎?

從 momo 網站的訂單查詢已經可以看到目前我這筆訂單處於「物流作業」狀態:



另外,我使用信用卡分期繳費,也已經在信用卡網站上看到第一期的扣款了



關於 momo 富邦購物網這次出的包,可參考 Mobile01 上的 [相關討論],上面還有人說去年十二月底已經遇過相同的事了,那時主角是 HTC 的手機 TyTN II,富邦反悔推說沒貨,強制取消訂單,只送了一個保溫杯,沒想到現在又來一次,這個網站問題還真大…

[2008/02/21 update] 後來 momo 客服說 23 號才會出貨,目前東西還沒收到,慢慢等囉
[2008/02/23 update] 還是沒有收到貨,客服說 HTC 把貨扣住了,真爛的理由..
[2008/02/25 update] 出發到大陸上海出差,但東西還沒收到
[2008/03/01 update] 晚上回到台灣,大樓警衛說剛好今天到貨了,有圖有真相:

[總結]
2008/02/07 大年初一訂貨,二十三天後(2008/03/01) 收到貨品 (照規定應於五個工作日內到貨),與市價約有五千多元價差,從頭到尾富邦 momo 都沒說這是標錯價錢,看來真的是驚爆價吧 🙄

鼠年給自己的第一個新年禮物 HTC Touch Cruise

鼠年第一篇,祝大家新年快樂,鼠年發大財!

昨天除夕夜,用免費簡訊送了幾十通拜年簡訊出去,元宵節前去註冊都還有送100通免費簡訊,想用的人去玩看看吧。註冊時要輸入電話號碼以及真實姓名,據說填錯姓名不會獲得免費點數,雖然我沒試過填假名字,但是有點好奇這家公司怎麼去跟電信公司驗證註冊者的真實姓名,不曉得有沒有違反「電腦處理個人資料保護法

我的手機 Siemens 3618 (沙漠風暴) 小橘已經用了五年多了,這支號稱防塵防震的運動型手機還真的蠻耐用的,摔了無數次,還曾經掉到馬桶裡面,到現在除了電池弱一點,其他功能都沒有任何問題,我想再用個一兩年應該不是問題。



不過,看到同事用 PDA 手機用的很高興,也興起我想買一支有 GPS 功能 PDA 手機來玩看看的念頭。今年一月底宏達電出了一支 Touch Cruise,3.5G+Wifi+Bluetooth+GPS+AF,看來外型及功能都符合我的需求,我想應該就是這支了,打算過年後就去買。這支手機在電腦家的訂價為 $24,990,據說一般通信行最低約可以拿到約 $22,500 的價格(不綁約)。

話說今天大年初一早上,無意中在 momo 富邦購物網 發現 HTC Touch Cruise「驚爆價」只賣 $16,688 元,不確定是促銷還是標錯價錢:



不過上面這項在我看到的時候已經買不到了,但有另一個可分12期的賣 $17,588 元,雖然較貴一點但是還是算便宜:



剛開始買的時候,填入信用卡卡號後,還是一樣跟我說商品數量不足,買不到。不過不死心的我過一個小時又試了一次,沒想到竟然成功了…



哈哈,就當作鼠年給自己的第一個新年禮物囉 😛 希望富邦不要反悔不出貨就好了


話說將近四年前我也遇過類似的案件,聯邦銀行的購物網站 UBMall 賣一台當時市價約19萬的Panasonic 37吋電漿電視,網路上標價僅為19,499元,我就刷卡買了1台,後來聯邦銀行發現錯誤(少標了一個零),跑來和解希望取消訂單,我接受了,不過也收到了幾樣贈品以及6,000元的和解金。當時有十幾個人堅持不願接受和解,分別告上法院要求履行契約,後來結果法院好像均判決聯邦銀行不用履行契約,詳細資訊可參考這邊

不過每個案件的情況不同,聯邦銀行這個案件當時判決理由之一是「原告既有意購買此類電視,依社會通念及客觀情況判斷,理應曾於市場訪價並知悉該類商品之市場一般價格,故被告聯邦銀行絕無可能以低於二萬元價格於網路上販售系爭電漿電視,此應為原告所明知或可得而知,揆諸前揭說明,原告應無可資保護之信賴利益」。但這次價差只有幾千元,看起來很像是促銷,尤其第一個網頁商品說明還寫著「驚爆價」,與聯邦銀行案件的情況不同,就看富邦怎麼處理囉。

Using Flickr API with phpFlickr

本來我的私人照片都是放到自己架的網站上面的,一直在考慮要不要改放到 Flickr 上面…
最重要的一個考量因素就是與我自己的網站程式容不容易整合

雖然利用 Yahoo 送的免費三個月 Flickr Pro 帳號已經把幾年來、數十本相簿統統丟上去備份了,但一直沒有時間去實驗一下 Flickr API 到底合不合我用

拖了一陣子,結果免費三個月的 Flickr Pro 帳號在今天終於到期了,而且 Flickr Gift 買一年送三個月(備註)的活動也即將在一月底結束了,因此今天還是花了點時間評估了一下 Flickr API,結果還蠻滿意的,這幾天應該就會刷卡買了吧

我用的是 phpFlickr 這套程式庫,使用起來還蠻容易的,所有 Flickr 提供的 API 都有支援,而我要的其實只是列出所有相簿(sets)列表而已。唯一有點可惜的是,Flickr API 還沒有支援珍藏集 (collections),目前僅能到相簿(sets)這個層次而已,但這不是 phpFlickr 的問題

使用 phpFlickr 前,要先去生一個 Flickr API Key 出來,然後就可以用這個 Key 來連接 Flickr API 了

要用 phpFlickr 程式去使用 Flickr API 需要認證,有兩種模式:

1. 每次都去認證使用者的帳號,phpFlickr 會把你導到 Flickr 的認證頁面再導回來

先把 API Key 的 callback 指到 phpFlickr/auth.php,然後程式呼叫 auth() 後再作想作的事

1
2
3
4
5
6
7
8
9
10
11
12
<?
 
include('phpFlickr/phpFlickr.php');
 
$f = new phpFlickr("[API Key]","[Auth Secret]");    //  填入 API Key 及 Secret
$f->auth();
 
// 作自己的事
 
print_r( $f->photosets_getList() );
 
?>

呼叫 auth() 會把使用者瀏覽器導到 Flickr 的認證網頁,而程式本身會結束執行:

Flickr API authentication

認證網頁可以讓使用者授權讓你的服務去存取使用者的 Flickr 帳號,不一定是上面產生 API key 的那個帳號。當認證完畢後,Flickr 會再把使用者瀏覽器導回之前設定的 callback (phpFlickr/auth.php),然後再導回你原本呼叫 auth() 的那隻程式

再導回這個程式時,會有相關認證資訊 (authentication token) 放在 session data 中,這時呼叫 auth() 就不再會把使用者導到其他網頁了,而是會回傳認證的權限狀況,接下來程式就可以作自己的事了

使用者隨時可以經由 這個網頁 來取消對你的程式的授權:

Flickr extended authentication

2. 每次都是用固定的帳號去認證,不會導到 Flickr 認證頁面

要使用這種作法,請參考 http://www.phpflickr.com/tools/auth/ 去產生一個永久的 token,接下來程式就可以直接使用了:

1
2
3
4
5
6
7
8
9
10
11
12
<?
 
include('phpFlickr/phpFlickr.php');
 
$f = new phpFlickr("[API Key]","[Auth Secret]");    //  填入 API Key 及 Secret
$f->setToken("[Token]");                 // 填入上面產生的 token
 
// 作自己的事
 
print_r( $f->photosets_getList() );
 
?>

—–
複雜的認證過後,你就可以開始玩 Flickr API 了… phpFlickr 支援所有的 Flickr API,詳細列表請直接參照 API 說明文件

例如要得到所有相簿列表必須要呼叫 flickr.photosets.getList 這個 API,在 phpFlickr 裡面就直接呼叫 $f->photosets_getList() 這個函數即可。也就是把 API 名字中的 “flickr.” 拿掉,並把 . 換成 _ 就是 phpFlickr 支援的函數名稱了!

更詳細的說明請直接參閱 phpFlickr 的網站: http://phpflickr.com/


[備註]
Flickr 實際上並沒有買一年送三個月的活動,但是現在可以買一年 Flickr Pro 帳號送別人,自己也會得到免費三個月的 Flickr Pro 帳號,而這個活動並沒有限制你不能送給自己,所以等於是買一年送三個月。

想參加這個活動的人千萬不要直接去買一年喔,一定要參加 Flickr Gift 活動 “送禮物給自己” 才有多送三個月。

這個活動於太平洋時間 2008 年 1 月 31 日晚上 11時59分 (GMT-8) 結束,也就是台北時間 2008 年 2 月 1 日下午 3時59分 (GMT+8),想買 Flickr Pro 的人請把握時間囉…

SDHC support on Thinkpad X60

Thinkpad X60 原本並沒有 支援 SDHC 卡,把 SDHC 卡插入 X60 左方的 SD 插槽會讀不到

本來以為 X60 對於 SDHC 的支援是無望了,沒想到現在竟然可以了,而且還只要更新作業系統即可… 詳情請參考微軟發佈的 Hotfix 923293
(標題: 在 Windows XP Hotfix 923293 為高容量的 SD 記憶卡加入支援)

不過這個 Hotfix 微軟還沒有釋放出來讓大家下載安裝,未來新的 Service Pack 3 才會放進去,有需要的人必須自己去線上申請,選擇好你的作業系統版本及語言即可

申請之後,微軟就會把 Hotfix 的下載連結寄給你(還有個密碼來解壓縮),正體中文 WinXP 的 Hotfix 檔名為: WindowsXP-KB923293-v4-x86-CHT.exe,怕麻煩的話網路上搜尋一下應該找得到.. 或者寄信給我吧…

安裝此 Hotfix、重新開機後,果然可以讀到 SDHC 卡了! 同事的華碩 ASUS W5 (WinXP) 原本也是不能讀 SDHC 卡,服用這帖 Hotfix 後也 OK 了

Yeah! 這樣方便多了

2008/04/30 update: Windows XP SP3 已經包含這個修正了,不需要再特別安裝 hotfix 了…

SSH Keyboard-Interactive Authentication

有些 SSH clients (例如: SecureCRT)允許使用者「儲存」密碼,這對系統安全是個大忌,一旦 client 遭受入侵,server 也會暴露在危險之中。

建議直接在伺服器端取消 SSH 的 password authentication 功能,改用 keyboard interactive 的方式認證,通常這樣的話,client 就無法儲存密碼了:

1. OpenSSH – /etc/ssh/sshd_config

PasswordAuthentication no
ChallengeResponseAuthentication yes

2. SSH2 (Tectia) – /etc/ssh2/sshd2_config

AllowedAuthentications          publickey,keyboard-interactive
AuthKbdInt.Optional             pam,password
AuthKbdInt.Required             password

修改好上述 sshd 的設定檔後,送個 HUP 給 sshd 即可(注意不要不小心把目前用的 session 也砍了,不然改錯的話只好到 console 前面去救了)

# ps ax | grep sbin/sshd | grep Ss
 9767 ?        Ss     0:00 /usr/sbin/sshd
# kill -HUP 9767

然後就可以請大家改用 keyboard-interactive authentication 了:

SSH keyboard-interactive authentication

SSH2 vs OpenSSH

常見的 SSH Implementation 有兩種,ssh.com 的 SSH 以及 OpenSSH,詳細發展緣由可參考 OpenSSH History

由於歷史因素,所以提到 SSH 相關用語時,常因不明確而混淆。建議可以參考 O’Reilly book 出版的 SSH, The Secure Shell: The Definitive Guide 一書中對於 SSH 各種詞彙的精確定義:

Terminology: SSH Protocols and Products

SSH
    A generic term referring to SSH protocols or software products.
SSH-1
    The SSH protocol, Version 1. This protocol went through several
    revisions, of which 1.3 and 1.5 are the best known, and we will
    write SSH-1.3 and SSH-1.5 should the distinction be necessary.
SSH-2
    The SSH protocol, Version 2, as defined by several draft standards
    documents of the IETF SECSH working group.
SSH1
    Tatu Ylönen's software implementing the SSH-1 protocol; the original
    SSH. Now distributed and maintained (minimally) by SSH
    Communications Security, Inc.
SSH2
    The "SSH Secure Shell" product from SSH Communications Security, Inc.
    This is a commercial SSH-2 protocol implementation, though it is
    licensed free of charge in some circumstances.
ssh (all lowercase letters)
    A client program included in SSH1, SSH2, OpenSSH, F-Secure SSH, and
    other products, for running secure terminal sessions and remote
    commands. In SSH1 and SSH2, it is also named ssh1/ssh2, respectively.
OpenSSH
    The product OpenSSH from the OpenBSD project,
    which implements both the SSH-1 and SSH-2 protocols.
OpenSSH/1
    OpenSSH, referring specifically to its behavior
    when using the SSH-1 protocol.
OpenSSH/2
    OpenSSH, referring specifically to its behavior
    when using the SSH-2 protocol.

OpenSSH 基於相容 BSD license 的 ssh 1.2.12 來開發,後續又加上了對 SSH-2 的支援

但 OpenSSH 對 SSH-2 的實作與 ssh.com 後來對 SSH-2 的實作已經有了一些差異。

現今大部分的 open source 作業系統都已經改用 OpenSSH 了,不過有些地方還是可以看到 SSH2 的蹤跡,可能是商業版本或是非商業版本,例如:

# ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu

SSH Communications Security, Inc. (www.ssh.com) 的商業版本 SSH (SSH2) 正式名稱叫做 Tectia SSH client/server

熟悉 OpenSSH 的人初次接觸 SSH2 最常遇到的問題就是 Public-Key Authentication 的作法以及 Key format 都不太一樣。

OpenSSH/1 與 SSH1 的 authorization file 都是放在 ~/.ssh/authorized_keys 這個檔案之內,identity 則是放在 ~/.ssh/identity 這個檔案內

OpenSSH/2 的 authorization file 一樣是 ~/.ssh/authorized_keys,identity 則是在 ~/.ssh/id_dsa 或 ~/.ssh/id_rsa 內,依據 key type 而異。但其實因為 OpenSSH/2 有向下相容 OpenSSH/1 的功能,所以事實上也會參考 ~/.ssh/identity 來當作 SSH-1 的 identity

SSH2 就很不一樣了。SSH2 允許有多個 identity,因此會有一個檔案 ~/.ssh/identification 可以設定有哪些 identity 可用,例如:

IdKey identity-1
IdKey identity-2
IdKey identity-3

真正的 private key 放在 identity-1, identity-2, identity-3 這三個檔案內,而使用 ssh -i 指定 identity 時,不同於 OpenSSH 是直接指到 key 本身,SSH2 必須指定這個間接的 identification file

SSH2 的 public key format 也與 OpenSSH 不同,不再是一行而已,也因此 authorization file 沒辦法跟 ~/.ssh/authorized_keys 一樣一行放一個 key 值。

SSH2 也是一樣使用一個檔案來設定允許的 public key 有哪些,檔案放在 ~/.ssh/authorization

Key identity-1.pub
Key identity-2.pub
Key identity-3.pub

這個檔案表示可接受三個 public key 分別為 identity-1.pub, identity-2.pub, identity-3.pub

而如同 OpenSSH 一樣,SSH2 的 authorization 檔案內也可以指定各種 options,例如:

Key identity-1.pub
Options no-port-forwarding,no-pty
Key identity-2.pub
Options command="rsync -az --server . /home/backup-x",no-pty

詳細資訊可參考 SSH2 的 manual

SSH2 的 key format 與 OpenSSH 不同,這在兩者之間要作 public key authentication 時造成了一些麻煩。OpenSSH 提供的 ssh-keygen 可以用 -e 和 -i 兩個選項來轉換兩者的 key format:

# ssh-keygen -e -f openssh-key.pub > ssh2-key.pub
# ssh-keygen -i -f ssh2-key.pub > openssh-key.pub

OpenSSH 與 SSH2 之間的問題還不只這樣,SCP 的實作方式也不同

OpenSSH 與 SSH1 的 SCP 是 RCP over SSH,而 SSH2 附的 SCP2 背地裡則是用 SFTP 實作的,因此兩者互相 copy 東西時有時會 copy 不過去,建議還是一律改用有經過 IETF 標準認證的 SFTP 就好了

如果可以的話,全部用 OpenSSH 是最單純的,不過有時不是自己能控制的,碰到使用 SSH2 的系統,其實只要稍微了解一下差異也很容易適應就是了

參考資料: