03 3月 2011

[心機] 智慧手機的智障設計

# 前言:這篇 blog 依長度應該打散成兩篇甚至是三篇的。
# 但由於內容比一般使用者的程度再難一點點,偏偏又還
# 不到高手技術分享文的程度…介於這兩個主要族群之間
# 的文章…應該沒什麼人有耐心看下去吧… -_-
# 奇怪的是,這種因為身處橫跨兩個象限的尷尬,而無法
#被任何一邊接納,承認,卻反而總在誤解中度過的主題,
#在我的人生中總是不斷地出現…這就是習氣使然吧…


為某些緣故,我從弟弟手中購入一部 Nokia N900 型的智慧手機。這裡用的量詞是「一部」而非「一支」實在是因為…這玩意兒並不像一支「有鍵盤的手機」,反而更像是一部「能打電話的電腦」。

推開觸碰式螢幕,下面有完整的鍵盤之外,它的系統還是改自 Debian Linux 的 Maemo 5 !也就是說,對我這個自從遇過狂奔的企鵝開始,就喜歡用企鵝做標誌的 Linux 死阿宅來說,打開 Terminal (終端機) 看到黑底綠色的文字介面時,那股精神上的舒慰感,實在是無可取代的歡快。

但是… (壞就壞在這個「但是」…)

我大概猜得到為什麼, Nokia 的 Maemo 團隊選擇了 ash 當做預設的 Terminal (終端機),因為它是幾種常見的 shell 中佔資源最少的。但是…我就不明白為什麼會把功能強大的 updatedb 和 locate 檔案搜尋工具從預設的安裝項目中拿掉了!

這種感覺就像是你買了一部馬力強大、外型酷炫的跑車,但是車上的方向盤轉起來會卡卡的一樣讓人覺得有一種芒刺在背、魚刺在喉般地

不~蘇~胡~

沒關係, Linux 的世界裡,什麼都能 DIY …既然預設沒有,那我自己動手裝總行了吧…

於是,打開 Terminal (我一直覺得這個東西叫「終端機」的感覺很微妙,好像打幾個指令就會世界末日的感覺,什麼是終端呢?是什麼的終點,還是什麼的開端?)切換到 root 權限後,鍵入…
apt-get install locate
等了一會兒, apt-get 工具處理好相依性的 blah blah blah... 然後就跟我報告安  locate 工具安裝成功了!

我再次鍵入 locate gpe 的指令來尋找 gpe 的相關檔案,想不到…這 Terminal (終端機) 竟然跟我說
-sh: locate: not found (歹勢哦~你說什麼 locate ,我聽不懂耶?!)
啊咧…剛才不是才安裝成功了嗎?現在就給我裝死是什麼意思。沒關係,不然我來找一下到底裝到哪裡去好了。要搜尋東西,當然就是用 locate 這支搜尋的指令囉…於是,我又鍵入…
locate locate (叫 locate 工具去找系統裡叫 locate 的東西在哪裡…)
才按下 Enter 鍵我就後悔了…我在耍什麼笨?它就是不認得 locate 所以我怎麼能叫 locate 去找 locate 呢?

於是,在網路上查了一下,才搞清楚 maemo 把 locate/updatedb 這兩個指令安裝在 /usr/bin/gnu/ 的目錄下,而不是 /usr/bin 的目錄下。多了一層目錄,系統就不能直接調用這套工具了。

也就是說…我要嘛就得更動系統設定,做個連結把 /usr/bin/gnu/ 下面的 locate/updatedb 指令放到 /usr/bin 這層目錄裡,要不然,還可以像這裡的rcull 所建議的,利用 find 和 grep 指令來搭配,變成一個 script 來使用:
取代 updatedb:
find / -print > /home/user/MyDocs/updatedb
取代 locate:
grep "$*" /home/user/MyDocs/updatedb

當然…這也是一條不錯的方法,但是…我都已經裝好 locate/updatedb 兩個東西啦。明明就有這個功能,卻偏偏沒辦法用,就像家裡明明有馬桶,但是廁所門卻不小心被反鎖了一樣有一種「不痛快」的感覺!

好吧…那只好用軟連結的方式,給這個莫名奇妙的 maemo ash 一個痛快。再用以下的指令做出軟連結:
ln -s/usr/bin/gnu/locate /usr/bin/locate
ln -s/usr/bin/gnu/updatedb /usr/bin/updatedb

當然,也別忘了依這裡的 dchky 所說的,把 /usr/bin/gnu/updatedb 裡的第 208 行的 ${find:=${BINDIR}/find} 變成 ${find:=${BINDIR}/gfind} 。

做出軟連結來呼叫工具的心態,就像是明明家裡就有廁所門,但是因為設計的時候開錯方向,所以只好在牆上另外開一個洞似地讓人忍不住想罵這間房子的設計師根本就是莫名奇妙!

Linux 的電腦有一個很特別的地方,就是「系統裡所有看得到、想得到、摸得到的地方,都可以依使用者的意思做設定、做更改甚至是重寫。所以任何一部 Linux 機器都會隨著使用者日積月累的操作而變得愈來愈貼近使用者的個人風格。」

原本想著…那麼…這個系統就這樣漸漸地愈來愈像我自己的機器了吧。想不到,第二天醒來,就發現它的電量掉了一半!驚訝之餘,不禁思考起這個問題:「手機的基本待機時間,應該是多少個小時啊?」

這個問題其實見人見智。也許對一般人來說,每天都會有幾通電話,所以兩、三天就要幫手機充一次電是很平常的事情。但是…對我這種一個禮拜接不到兩通電話的人來說,我的手機待機時間都在五天以上…

因為充電器的使用次數太低了,用了兩年的手機都已經脫漆掉色,充電器仍然像是剛出廠一樣,幾乎就要和我的手機相逢在海上,然後在離別時放出近乎全新品的光芒!

耐著性子,再查了查資料才發現…唔…原來這部 N900 因為舊版系統在機器因一段時間沒使用,而進入最省電的深層睡眠模式時,會三不五時「驚醒」!也許是驚嚇的程度太大,所以就…嚇得重開機了!

對電腦而言,重開機是一段非常耗電的過程!

哇塞!這簡值就像是以前讀中學的時候在課堂上打瞌睡的真實寫照嘛!如果台上的老師一段時間沒注意,台下的學生就會撐著頭進入最省力的深層睡眠模式。但是,還是會三不五時受到良心的譴責而驚醒!偶爾,驚嚇的程度太大,甚至會嚇得從椅子上跌下來!

對學生來說,在上課中從地上爬回椅子上是一段非常丟臉的過程…

那怎麼辦呢?不管是官方網站的建議,還是其他使用者的經驗分享,都說「重新安裝新版的系統就好了。要不然,如果自動重開機的次數累積到 17 次的時候,你的手機就變成磚塊了!」(@.@"')

哦…但如果重新安裝系統的話,那就是說我前面做的那些種種設定和連結都要重做一遍哦?!

俗話說,萬事都抬不過一個「理」字;
但我說,萬事都敵不過一個「懶」字!

想到要重來一次,我就覺得懶…甚至,我寧可寫一個小小的 python script 來監測現在已經自動重開機幾次了?如果快到 17 次了,那我就來一次手動重開機,讓它的計數器歸零,我也懶得重新去設定一次系統。python script 的內容如下:
#! /usr/bin/env python
import os
os.system("cat /var/lib/dsme/boot_count")
os.system("cat /proc/bootreason")

把上述內容存成 xxx.py 檔後放在家目錄下,再給它執行的權限:
chmod +x xxx.py
這麼一來,只要手動打一次 ./xxx.py ,以後就都可以直接用方向鍵的 ↑ 來調用這支 xxx.py 的 script 了!

我很懶,但我也知道這不是解決問題的方法。既然問題沒有解決,那就像是家裡的垃圾沒拿出去倒一樣,總會有一種「不清爽」的疙瘩在心頭。

好不容易把「懶」字先放一邊,趁一個週末把 ROM 裡的系統給重新安裝了一次。這下總該可以放我一馬,讓「我用手機」而不是「手機用我」了吧?

再放了一天以後,我發現耗電量很兇的問題,依然如故!難道說…智慧型手機的待機都沒辦法撐過 30 個小時嗎?

我之前用了三個多月的 Nokia 5330 能待機五天,充電也只要 20 分鐘的啊!待機時間這麼短的手機,能叫手機嗎?而且現在還是新的電池,就只能撐 30 個小時,那將來電池老化了怎麼辦?我豈不是隨時隨地都要像個老人家帶著點滴袋一樣地帶著旅充跑來跑去?那我還不如帶著電話卡去找公共電話算了…

澄清一下,對於手機,我並沒有什麼特定的品牌忠誠度。只要不是韓國貨就好了。我也不會仇視韓國人,只是單純地覺得,除了要避免和韓國人比賽之外,韓國貨都不太耐用罷了。

基於「耐用」的考量,我也一直對智慧型手機興趣缺缺…因為我覺得,買一支手機用個兩年,它就快要壽終正寢,螢幕也刮花了,機殼也掉漆了。既然使用期限如此地短,那要我花兩萬元去買手機,再加上平常根本就沒什麼人打給我,那麼…我覺得這實在太過於浪費了些,所以對於手機的選擇,我向來是以「便宜,待機時間長,品質實在,耐用」就好了。這次會向弟弟購入這支 N900 也是因為,他已經有兩支智慧型手機,再加一部 Sony Erricson 的 K 系列高階手機了,但還是強運地抽獎抽到這支 N900 …

我馬上去問問手上有兩支 iPhone 的弟弟,是不是智慧型手機的待機時間都這麼短啊?只見他慢條斯理地回說:「對啊。我的 iPhone 也是每天都要充電!」

天天都要充電?天天哦!(腦海裡轟地一聲…我仿彿聽到了有人在唱著「今天明天後天大後天~天天都騙你…」)

哦…天天都要充,這是手機還是水壺啊?我們人類的科技還真是愈走愈回去了。

再上網查了一下,其他的使用者們興奮而熱情地分享著只要把 Wifi 的功能關閉,再把 3G 的手機訊號關掉,讓手機只收 2G 的訊號,最後再把藍芽也關掉,就能延長待機的時間了!甚至,還有一個小程式可以把手機的「電話功能也關掉」,這麼一來,就能待機更~久的時間了。

這些建議很好,但是我是怎麼樣也沒辦法感染這些使用者的熱情。相反地…我覺得『這是哪門子的笨設計啊?明明可以收 3G 訊號,明明有 Wifi 的功能,明明有藍芽的功能,但是為了延長使用時間,所要把這些功能通通閹割掉!而且連電話的功能也關掉,那我買手機幹嘛?還不如去買電話卡,以有效期限計算,可以待機一年咧~』

最後,我並不是針對 N900 這型手機有怨言,相反地,對 N900 型手機的功能、外型以及採用 Linux 做為系統的決定,我都相當喜歡。 但是我不爽的是「所有的智慧型手機」電力不持久的問題以及其他的細節設計上的不貼心。

我不敢說自己是個多偉大的設計者,但是我認為設計者的心,就是時時刻刻懂得體貼人的心啊!

0 意見:

張貼留言