l

2011年9月20日 星期二

Android 平版電腦初體驗:絕世好套

September 20 21:52~23:17


相信很多人買了新手機或是平板電腦,第一件事情就是去幫新玩具找個『套子』...嗯嗯...有人會去包膜,有人買背蓋,有人買螢幕保護貼。在昨天的『Android 平版電腦初體驗:賣國篇』中 Teddy 提到當初在 PxHome 上面買 Samsung Galaxy Tab 10.1 時加買了一個原廠的『原廠書本式皮套 (塑膠做的皮套?!)』,1900 NTD,還真貴。






既然是原廠的配件,當然和 Samsung Galaxy Tab 10.1 搭配起來很是『合身』完全不需修改(廢話...),Teddy 拿到  Samsung Galaxy Tab 10.1 之後就趕緊幫它穿上這件黑色的『西裝外套』。用了幾天之後,問題來了,怎麼拿著穿上西裝外套的 Galaxy Tab 覺的有點重,而且加了外套之後雖然放在桌上會比較方便,但是拿在手上反而不太好拿,有點『卡卡』的


想說查一下這件西裝外套的重量,哇哩ㄟ...三爽的官方網站居然沒寫,PxHome 上面也沒寫...家裡也沒電子秤...好吧,那就參考一下 PxHome 上面其他非原廠保護套的資料好了...首先找到『SamSung Galaxy Tab 10.1 專用高質感荔枝皮紋套』,也是沒寫重量,真是英雄所見略同。再來看到『SamSung Galaxy Tab 10.1 專用 360度 保護皮套』,沒寫重量。『SamSung 10.1 平板電腦專用卡夢定型保護套』,還是沒註明重量。最後終於讓 Teddy 找到一個有註明重量的產品:『SamSung 10.1 平板電腦專用三折式荔枝皮紋套』,一看之下嚇一跳,350 公克...天啊,Galaxy Tab 10.1 的『表定重量』也才 560 公克,『西裝外套』的確是有點太沈重了些(乾脆脫光光算了...XD)。


***

像 Teddy 這種『手無扶 Pad 之力』的人,光是拿著『光屁屁』的  Galaxy Tab 10.1 都覺的有點重了(心中突然出現應該買 Galaxy Tab 8.9 的小小吶喊...幾乎一樣的產品,幹麼分兩梯次,怎麼不同時開賣呢?),還要外加一個 200 - 300 公克左右的外套,那就更受不了了。其實平常拿在手上使用的時候,不幫 Galaxy Tab 10.1 穿衣服是 OK 的,但是如果要放在背包裡面出門的話,沒有穿件外套又怕它會冷到...嗯嗯...刮到...。


扯了這麼多,那就出門的時候把幫它穿好衣服,等到要使用的時候再把衣服脫掉不就好了(...怎麼覺的這句怪怪的...XD)。講是這樣講,但是這件西裝外套要穿進去的時候,要稍微『壓一下』才可以卡住。所以要『脫衣服』的時候,要稍微在四個角落的某一邊稍微『折一下』才可以把衣服脫掉。如果常常穿穿脫脫,又怕把機器給磨到(真龜毛...)。




最後,想到一個最簡單,又省錢,又輕便,又達到保護效果的方法,答案就是:




混在一起做撒尿蝦牛丸不就好了...嗯嗯...找一個『防震氣泡袋』不就好了,Teddy 家裡剛好有一個直接給它拿來用。




放進去之後的樣子,長度剛剛好,寬度則是上下各有約 2 公分的距離。這件新衣服 size 比 Galaxy Tab 10.1 稍微大一點點,這樣子要『穿脫』都很方便,真是太讚了。




露出頭來證明真的有給它放進去了。





這個套子...袋子...啊,隨便啦,裡面上下兩邊都有『氣泡』保護。


***


這樣的『絕世好套』,一個要不要賣你 2000 塊,不用。要不要 1000,500,都不用。其實 Teddy 也忘了當初是多少錢買的,總之最貴也就是幾十塊 NTD 吧。喜歡嗎,各大文具店均售






到目前為止 Teddy 用了 3-4 天左右,每天讓  Galaxy Tab 10.1 穿著這個紙袋陪 Teddy 搭著江湖上人稱『公車之霸』的 307 路公車上下班,到目前為止一切平安。307 公車的勇猛程度,江湖上無人不知,無人不曉,到目前為止 Galaxy Tab 10.1 還沒被撞爛,這個 solution 看起來應該是 OK 的。話說 Galaxy Tab 10.1 和 iPad 的大小差不多,有 iPad 的鄉民們也可以考慮看看。


啊,什麼,你說用紙袋太 low 了... 哪會啊,殊不知穿著一件『紙作的衣服』在身上,可是既環保又時尚呢。但是要小心,不要被別人拿去『燒掉了』...XD。


***


友藏內心獨白:3C 產品帶出去自助旅行時,最重要的就是輕便啦,就算是少一公克也不能放過。

2011年9月19日 星期一

Android 平版電腦初體驗:賣國篇

September 19 21:28~23:19

最近平版電腦很流行,搞得每個人好像不買一台就對不起國家,父母。話說...又是想當年...2000 年 10 月 29 日,所謂的 Pocket PC 剛推出沒多久,年輕氣盛的 Teddy,雖然手邊沒什麼錢,還是狠下心來在沒有多加考慮的情況下跑到光華商場買了一台 Compaq iPAQ 當作自己的生日禮物(型號忘了...機器的『屍體』還藏在家中某處),同時還買了一堆配件,有 CF 介面的外接有線網卡(沒錯,就是『有線』網卡),還有一台 340 MB 的 IBM 微型硬碟(microdrives),還在 Amazon 買了一個裝 iPAQ 的包包。已經忘了花了多少錢,重點是,如果好用也就算了,但是實際使用過後發現實在是很不方便,主要限制有:
  • 沒有無線網路可以用啊,要上網還要接外接網卡和插網路線...XD。
  • 沒網路也就算了,最嚴重的問題是,隨隨便便用一下子就沒電了,沒搞頭。
有了那次不愉快的經驗之後,加上隨著年齡增長,Teddy 對於購買酷炫 3C 產品的欲望已經少了很多。最近一次換手機也已經是四年前的事了,而且是為了出國參加研討會,買了一隻有 GPS 的 Mio A701。

但是眼看著身邊的人紛紛換了智慧型手機或是買了平版電腦,最近 Teddy 就在想是不是也應該要換手機或是買台平版電腦,不然都跟不上時代了。九月十一日凌晨,趁著月圓人團圓的前夕,四下無人,Teddy 一時衝動就在 PxHome 買了『三爽 Galaxy Tab 10.1』。隔天早上九點多就送來了,不虧是傳說中的 24 hr 購物。

掙扎了好久才決定買三爽的產品(只有 16G 又不能直接插 SD 卡擴充...失敗)。為什麼在輸入信用卡號碼的時候,會有種叛國的罪惡感...XD。話說台灣怎麼連海盜王國的美名都讓中國人和韓國人給搶走了...iPAD 都出來那麼久了,台灣廠商做出來的平版都還是那麼厚一個。無奈Teddy 體弱,『手無扶 Pad 之力』,只好買輕一點的,當一次叛國賊了。

***
以下是很無聊的開箱照:




除了 Galaxy Tab 10.1 以外,Teddy 還買了貴死人不償命的原廠書本式皮套(什麼皮套,應該是『塑膠套』才對吧...XD),原廠 USB 相機連接套件,很便宜但很難用的電容式感應筆。中間那隻小小的憤怒鳥是 PcHome 送的...為怎麼不是送紅色的那一隻啊...



網路上寫著,這款 Galaxy Tab 10.1 是『白色』的,怎麼打開之後是黑的(螢幕上面有一張
塑膠保護磨還沒拿起來)...原來...


原來,哇哩勒,只有『背面』是白色的...有點『裝孝帷』的感覺...可以稱呼它為『黑白郎君機』嗎?


包裝中還附了一張隨選影片 10 片包序號卡(序號在背面),還沒時間去試。說真的...沒事不會想在 10.1 吋的螢幕上面看電影。

標準的配件有充電器接頭(左邊那兩坨),USB 排線(中間這一條),以及耳機。還挺陽春的...XD。

加購的原廠書本式 皮套 塑膠套 拆開之後長這個樣子。


放在桌上看起來長這個樣子(路人甲:好亂的桌面啊)。

換一個角度看。


配件打開。

換個角度。

接起來之後長成這個鳥樣子,有種『腫瘤』的 fu...XD...這這造型也太『厚實』了一點吧。

接上 Galaxy Tab 10.1 之後長這樣。

加購的原廠 USB 相機連結套件... 這個配件的名子也取的太奇怪了吧,和『相機』有什麼關聯?英文明阿明是 USB Connection Kit,翻成中文之後『相機』這兩個字是誰生出來的?

打開之後有兩個配件,一個是可以外接 USB(Teddy 有試過接 16G 的 flash disk 還有 USB 讀卡機都可以讀得到),另外一個是可以接 SD 卡(可以讀 32G 的 SD 卡)。


 
開機畫面...在第一次使用之前,要記得先充電一下,不然好像無法開機。


2011年9月4日 星期日

學習犯錯

September 04 21:36~23:08

在古早,古早以前,許多人的求學過程中,都經歷過那段『少一分打一下』的不愉快時光。拜託,考 90 分已經很了不起了,為什麼還要被打 10 下?現在回想起來,覺的實在是很可笑。這種『追求 100 分的心態』,某種程度也迫使學生不得不『造假 微調數據』。記得當年 Teddy 在念五專的時候,需要上化學實驗課以及電子實習課。這兩門課,都需要在實驗室做實驗。其實這些實驗也沒什麼了不起的,就是把書本上教過的一些化學現象或是電子特性,到實驗親自動手確認一次。Teddy 依稀記得當時在做實驗的時候,常常會遇到量測出來的數據和課本上面的理論值有一段頗大的差距。『照道理講』,這時候應該是要好好的檢討一下自己做實驗的步驟或是測量方法有沒有錯誤,找出問題的原因,但是 Teddy 當時並沒有認清到這些實驗的重要性,心裡只想著『準時下班 .... 準時下課』,所以 Teddy 就犯了『全天下學生都會犯的錯』... 把實驗數據改成『長得比較接近理論值的樣子』... 順利過關。

其實『竄改...嗯嗯...調整實驗數據』這件事,也不能全怪 Teddy... 想一想,一班有 50 個學生,只有一個助教在帶實習課。做實驗遇到問題的也不只 Teddy 一個人,要是每個人真的都『按照道理』做事,非得把實驗結果失敗的原因給找出來為止,那麼短短三個小時的實驗課絕對是不夠用的。學生們為了『大局著想』,讓助教可以準時下課,實驗室可以準時關門,更重要的一點,讓自己可以準時畢業,只好『想辦法』把實驗給做出來。

想在回想起來,為什麼上這些實習課時,助教們總是期望學生『第一次做實驗就上手』?如果學生很認真的做實驗,但結果失敗,這次實驗拿到 0 分,這樣有誰願意承認自己實驗失敗?反正『正確答案』在書上都有啊,把書上的數據拿來『調整一下』就 OK 了啊,反正助教想看的也只是這些正確答案。

***

假設有一個長成這樣的 story:

As a user, I can modify common attributes of multiple objects.


使用者同時間可以在畫面上選多個『物件』,然後可以一次修改這些物件的『共同屬性』,使用者按下確定之後系統會更新這些物件在資料庫中的值。在討論這個 story 的時候,有人問到:『要不要將多個物件的修改放到一個 transaction 當中』?一開始有人贊成,有人反對,經過一番討論之後,最後大家同意『要用一個 transaction 將多個修改動作包起來』,原因是因為,如果沒有把多個修改動作都放在一個 transaction 當中,那麼假設使用者選了 10 個物件,修改之後 6 個成功,4 個失敗,可是使用者的原意就是要修改這 10 個物件啊,所以最後使用者還要自行去把那 4 個修改失敗的物件再挑出來修改一次(等於手動 retry),這樣感覺不太方便,所以最後大家同意用一個 transaction 把多個修改動作包起來。

這個 story 做完之後功能正常,一直到有人對它做了效能測試,在系統中建了 1000 個物件,然後一次修改這 1000 個物件。由於這 1000 個物件的修改被包成一個很大的 transaction,隨著這個功能的執行,資料庫的幾個 tables 都被 lock 住了(每一個修改動作都需要花一點時間,因此整著 transaction 花了很長的時間才完成)。由於這個系統還有其他幾十個 threads 在執行,也會去更新資料庫,因為需要更新的 tables 被 lock 住了,因此這些 threads 被暫停執行,最後看起來整個系統像是『當機』一樣。

如果鄉民們的團隊發生這樣的問題,要怪誰?怪當初建議這個 solution 的 developer?還是怪 Scrum Master 或是軟體架構師為什麼在 sprint planning meeting 時沒有想到會發生這樣的問題?還是要怪測試這個 story 的人有沒好好測,沒把這個問題給找出來?
 
***

沒什麼好怪的,做軟體就是這樣,『千金難買早知道』。其實把『多個物件的修改放到一個 transaction 中』這件事情本身是沒有錯滴,問題在於在該系統中,每一個修改動作夾帶了另一個修改動作(有點玄...總之就是一個修改動作同時會改到兩個 tables)。這原本也不算是個問題,但是第二個修改動作會隨著『物件數量的增加而變得很慢』。當物件數目很少的時候,整個 transaction 在幾秒內就做完了。但是,當物件數目到達 1000 的時候,每修改一次需要約 25 秒,因此整個 transaction 花了 7 個多小時才完成,整個系統後端的 threads 也被『卡』了 7 個多小時。

昨天在讀 Agile Testing 這本書的時候,看到 p. 25 提到 Have Courage 這一段,其中提到:

We need courage to let ourselves fail, knowing that at least we'll fail fast and be able to learn from the failure. After we've blown an iteration because we didn't get a stable build, we'll start thinking of ways to ensure it doesn't happen again.

We need courage to allow others to make mistakes, because that's the only way to learn the lesson.

傳統上,有些人做事會有『多做多錯,少做少錯,不做不錯』的心態。如果一個 agile team 沒有容許犯錯的空間,也沒有從錯中學習的機制,那麼這樣的 agile team 就很難稱得上是 agile team。

做軟體是沒有『正確答案』可以抄的,所以『答錯也要給分』,因為你已經排除了一種不可能的作法。

最後以 Linda Rising 女士關於 Agile software development 的看法作為結尾(節錄自 Linda Rising 在 Agile 2011 研討會 Keynote speech 的投影片):
  • Fail early, fail often.
  • Fail fast, learn constantly.
  • Failure *IS* an option.
  • Without failure how can learning happen?
  • Perfect is a verb.
***

友藏內心獨白:做軟體可不能只是偷改 test cases,把錯的改成對的就沒事了...XD。