新增 Linux User 小檔案

由於 Android 4.1 的編譯環境不再支持 32 bits 的 Linux, 一定要用 64 bits. 所以富士通的同事跑來要求加個 server 的帳號. 我想說只是加個帳號, 就順便替他處理一下. 想不到害他前後跑了三趟, 第一次是加帳號, 第二次是要開 Samba, 第三次是要加 sudoer; 既然三大革命應該一次完成, 我還是寫個 SOP 吧!

1. 加帳號

useradd USERNAME

增加一個和帳號同名 (USERNAME) 的目錄在 home 下面,

mkdir /home/USERNAME

把目錄指設定為帳號的 home 目錄.

useradd -d /home/USERNAME USERNAME

chgrp GROUP_NAME USERNAME

chown USERNAME USERNAME

passwd USERNAME, 接著依提示輸入密碼兩次.

2. 開 samba

smbpasswd -a USERNAME, 增加 samba user.

smbpasswd USERNAME, 接著依提示輸入密碼兩次.

3. 加 sudo

sudo 放在 /etc/sudoer, 它不能用普通的 vi 去編輯.

必須使用特殊指令 sudo visudo -f /etc/sudoers

在裡面增加一行

USERNAME ALL=(ALL) ALL NOPASSWD: ALL

紅色部分可以省略, 好處就是打 sudo 時不用輸入 password 了.

按 ^X 離開, 按 Y 確定, 跑出一個選項後, 再按 enter 確認.

問卷的解讀

一般製作問券的人都有先入為主的觀念, 準備好標籤和帽子之後, 等著填問券的人上鉤. 也很有趣的是, 被貼標籤的人也樂此不疲. 或許自由的思考本來就是危險的, 人類很想知道自己是什麼? 所以並不介意被貼標籤.  比方說: 人們早就習慣以十二生肖, 姓名筆劃, 生辰八字, 十二星座, 血型,…甚至是塔羅牌來為自己定位.

從四張塔羅牌中選一張, 來判斷當事人應該怎麼做, 這應該是最簡單的問券了. 然而, 這麼玄妙的分類都有人相信, 那麼經過權威機構包裝的統計分析, 效果就更加厲害了. 一般人將會很容易認同這種解籤詩的方式, 而失去自己的想法.

昨天讀到了擱置很久的八月號 Cheers 雜誌,裡面有個“比現在薪水更重要的事”的問券分析。大意是說, 58.7% 的人對自己目前的薪水不滿意. 而大家認定比目前薪水更重要的事, 依序是這些:

1 做自己有興趣的工作 23.1%
2 工作前景看好 15%
3 遇上好公司好老闆 11.7%
4 建立人生目標 11.4%
5 同事好相處 11.3%
6 投資理財 8.5%
7 拓展人脈 7.5%
8 培養第二專長 7.1%
9 強化自己的第一專長 3.2%
10 以上皆非, 沒有事比薪水更重要 1.2%

這應該怎麼解讀呢? 雜誌上說認為第 2,3 項不能操之在我, 卻得到高票; 能夠自己掌握的 6,7,8 項沒啥人選, 甚至連第 9 項: 強化第一專長的意願都特別偏低, 所以上班族的想法 "令人擔憂". 但是我覺得這個結果相當合理, 沒有什麼好擔憂的. 值得擔憂的是雜誌社, 大家覺得重要的東西, 他們若是不能提供服務, 專題就做不下去了.

這裡面不可控制的天分因素和技能養成所需要的環境和時間, 當事人也並非全無覺悟. 因此暫時或是認命地接受現在的環境, 恐怕才是大多數人心理的想法. 畢竟不滿意薪水的比例 (58.7%) 遠遠多過於業界的離職率 (依經驗估計是 15%). 雖然悶但不離開, 正是其他因素發揮了作用, 這正好解釋了: 興趣, 同事, 老闆, 大餅 (前景),…得以名列前茅的原因.  

何茲伯格(F.Herzberg) 在 1950 年代就提出激勵保健因素的說法. 此理論說大部分的人 (調查對象是工程師和會計師) 的不滿意感往往都是來自 "外在環境", 而滿意感多來自工作的本身. 所以工作的本身 (第一專長的部分) 通常都可以令人接受, 否則他們早就改行了. 至於工作中容易引起不愉快的 "工作環境" 等等, 則稱為保健因子, 用來與激勵因子相區隔.

保健因子一般包括:工作場所、薪水、工作保障、監督、人際關係、組織政策 (from wiki). 基本的薪資是保健因子, 吃不飽飯, 養不起老婆孩子就一定會不滿意, 這與從事什麼工作沒有關係. 超高的薪資是激勵因子, 有了會更高興, 但是它的邊際效益遞減, 屆時再多也不能改變什麼. 當然, 兩者的界限也是模糊的. 本來對自己薪資很滿意, 後來被超過三個人譏笑後就變得不滿意的也所在多有.

問券中的第一名恰好就是 "工作本身", 而前幾名幾乎都是保健因子? 前景, 好公司是工作場所 + 工作保障 + 組織政策 + 薪水, 好老闆算是工作保障 + 監督 + 人際關係 + 薪水, 同事和人脈都是人際關係. 薪水滿意但是討厭同事的人, 或是不滿薪水但是喜歡同事的人都可能勾選 "同事關係比薪水重要".

同樣地的道理, 若是調查現在的正在交往的男女, 什麼東西比 "維持現狀" 更重要? 回答 "找到真愛" (vs 做自己喜歡的事) 的應該還是最多, "保持現狀就好, 其他都不重要" (vs 除了現在的薪水…) 的應該也是最少.

修改既有 APK 的流程

如果從網路上抓到一個 APK, 又想要對它修改的話, 大約需要幾個步驟.

第一步是抓 APK TOOL 或是 APK Manger 回來. 雖然他們都有 Windows 版本, 但是用起來和 MS-DOS 差不多, 並沒有方便的視窗可以操作. 原本聽說 APK Manager 很厲害, 但是選單也相對較複雜, 就沒有再研究了.

APK Tool 這一系列需要抓  apktool-1.0.0.tar.bz2 和 apktool-install-windows-2.1_r01-1.zip. 解開後得到一個apktool.jar 和 apktool. 雖然網路上說 apktool.jar 要 copy 到 c:windows, 但是實際上發現它只有放在 apktool 同一個目錄才找得到 (除非那個目錄就是 c:windows).

接著使用 apktool d ThisIsYourAPK.apk ThisIsYourDirectory

就可以把 APK 的內容解到 ThisIsYourDirectory. 下面可以看到 lib, res, smali 三個基本的目錄, 以及 AndroidManifest.xml.

若是直接把 .apk 重新命名成 .zip 後解壓縮 (unzip) , 同樣也會看到 lib, res, 與 AndroidManifest.xml. 但可能會多出 METAINF  目錄, 與 resources.arsc, 與 classes.dex 兩個檔案. 其中 classes.dex 可以再依序反組譯為 class → jar → java.  對應到 apktool 生出的 smali.

上面兩種方式獲得的結果不同, 特別可以從 AndroidManifest.xml 看出來. 由於 APK 是給 DVM 看的格式, 所以這個檔案已經變得不可讀了. 當然, 它可以再用工具將它還原 Android: 反編譯 Android APK 文件. 一路用工具把 APK 裡面的各個 binary 還原回 source code 也是一個方法.

若是使用 apktool, 反組譯後得到的 source 都是可讀, 包括. 比方說想把免費軟體裡面的廣告拿掉, 畫面從直的改橫的, 可以直接到 res/layout/main.xml 裡面去撈相關的定義來修改 – 一個 APK 反編譯利器 Apktool.

此外, 若是以 apktool 反組譯, 修改完了之後, 還可以用 apktool b ThisIsAAPK.apk  打包回 APK. 最後再加個簽名, 就變成正式的 APK. 如果是用 unzip 提出來的修改的, 要再打包成 APK 似乎比較麻煩.

如果得到的是一個已經打包好的 APK, 那麼重編 Android 系統時可以將它放在 device 的某層目錄下一起編譯. 在這個 APK 同層的目錄裡, 寫一個 Android.mk – android 編譯系統 makefile (Android.mk) 寫法. 就可以把 APK 編進系統裡面了.

雖然上面的那個連結的內容很多, 但是 Adroid.mk 裡面只要有下面幾個基本要素就夠了. 制式定義好的部分根本不用動. 

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ThisIsYourAPK
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX :=$(COMMON_ANDROID_PACKAGE_SUFFIX
include $(BUILD_PREBUILT)

如果像這樣寫了很多 APK, 上層目錄再加一個 Android.mk,  寫上這兩行即可.

include $(CLEAR_VARS)
include $(call all-makefiles-under, $(LOCAL_PATH))

寫完本篇之後, 忽然找到兩個厲害的網站, 順便記在這裡.

[1] [android反编译小结]apktool/ AXMLPrinter2.jar/ dex2jar.bat/ jd-gui/ Jodeclipse/ JadClipse

[2] 把玩"魔術師" — 認識、把玩 APK 檔

雲端小整理

雲端時代來到, 光碟片可以打包拿去小七換茶葉蛋了. 然而, 雲端包括哪些呢? 我稍微看了一下, 排除架站空間這種前一代的產品之外. 大概可以還分成 4 大類. 第一類就是免費 (免註冊) 空間, 第二類是網路硬碟, 第三類是企業私有雲, 第四類則是個人私有雲.

以前我們和客戶傳那些有 bug 的影片時, 為了避免把 ftp server 的帳號密碼弄得客戶在波蘭的客戶都知道, 乾脆就直接上傳到免費空間. 到時候只要給一個 link, 他們就可以自己去下載. 此類的雲端包括 FileSonic, FileDeck, uploadstation, megaupload, rapidshare…等等, 族繁不及備載.

花錢的人主要可以得到頻寬 – 高速下載, 沒花錢的人則需要等待好幾秒才能慢速下載 (時間 = 金錢). 網站的空間大小相對比較不重要, 因為既然不需要註冊, 也就不用分你的我的了. 也由於此類免費空間可以不需要註冊, 使它成為盜版軟體交流的天堂. 故前一兩年好幾個知名網站都被美國政府禁了.

第二類的雲端就是公有雲, 泛指資料儲存在別人家裡的軟體空間, 例如 dropbox, SkyDrive, Google 硬碟. 由於自己的資料等同被廠商綁架, 免費空間用完之後, 還得掏腰包去買更大的空間來維持使用習慣. 以一顆 2TB 硬碟有 3 年保固, 且售價 4199 NTD 來算的話, 每個月花 1.167 NTD 去租 20GB 基本上是划算的. 可惜實際上得花 300 NTD 才能搞定 [註1]. 花錢的人主要得到空間, 而不是保證頻寬.

第三類的雲端是企業私有雲. 原本我看到微軟也搞私有雲, 有心想要下載來試試看. 不料安裝了好久好久, 才想通我根本就不是他們的目標客戶. 這些大公司的主要客戶是大企業 [註 2] . 比方說: HP, IBM, Oracle, VMware-EMC-Cisco, 以及 Microsoft 都推出了企業私有雲的解決方案.  

第四類才是個人的 “私有雲". 假如不放心把資料放在別人那裡, 更不想花冤枉錢; 那麼使用者得自備 server, 頻寬, 下載並安裝軟體. Tonido, B driver 都是這類的雲端公司. 由於天下沒有白吃的午餐, 廠商的賺錢之道在於卡住某些功能, 或是販賣升級版.

Tonido 軟體包括 server 端以及 client 端. Server 端就是放檔案資料的地方, 支援 Windows, MacOS, 和 Linux 三大平台. 而 client 是透過網頁的方式連接 server, 包括下載或上傳檔案的 app. Tonido 最大的敗筆就是不能從 client 更新 server 的同名檔案  [註 3], 也許這是我的使用錯誤或是程式的限制. 不過, 只要在 Google 輸入 Tonido IO error 就可以看到和我同病相憐的人.

B Driver 基本上是變形的 Dropbox, 所以它沒有 server 的概念. 在 Windows, IOS, 和 Android 三個平台上都可以看到同一個帳號在不同主機下的硬碟 (的某個目錄). 不論從哪裡連進來, 都是一個 device. 而且點進去之後, 它還直接有一個 dropbox 的功能, 可以和 dropbox 互傳內容.

最後, 整理第二三四類雲端如下表, 第二類詳見 [註 1]. 第一類免費空間 (簡稱 “免空") 的相關訊息太多了, Google 就可以得到完美解答.

名稱 容量 儲存位置 Windows Mac Android IOS 註解
DropBox 2 GB 公有 V V V V 非常方便, 唯二的缺點就是空間太小和資料在別人手上.
Tonido 不限 私有 Server Server V V Server 還支援Linux. Client 還支援 WP7 和黑莓機.
B Driver 不限 私有 V X V V 少了 MacOS 對我就沒用了.
微軟 System Center 2012 不限 私有 V X X X 1. 安裝需要很久, 而且部適合個人用. [註 4]

[註 1] 八種「雲端檔案儲存服務」價格容量大車拼,看看誰比較便宜!(增加Hami個人雲) 

[註 2] 從虛擬化邁向企業私有雲

[註 3] http://www.tonido.com/forum/viewtopic.php?f=14&t=2580&start=10

[註 4] 下載 Microsoft 私用雲端評估軟體

QEX 小檔案

因為美國 QE3 (Quantitative Easing) 量化寬鬆政策來了, 所以我整理一下狀況, 心裡好有個底.

  時間 長度 總金額 (兆) 每月平均 (億) 投資標的
QE1 20089/1~2010/3 15 個月 1.7 1,100 1. 25萬億 – 抵押貸款支援證券
2. 3000億 – 美國國債
3. 1750億 – 公司債
QE2 2010/10~2011/6  約 7 個月 0.6 750, 一說 860 美國國債
QE3 2012/9~ 美國失業改善前  

400

450

不動產抵押債券

扭曲操作

 

人家說, QE1 效果不好, 所以才推 QE2; 同理, QE2 效果不好, 所以有 QE3. 而且它的規模愈來愈小, 效果可能一次比一次差, 像是吃特效藥, 打強心針一樣.

不過我整理完後, 想法和前面的印象完全不同.  QE1 的錢主要都在買 "(房屋) 抵押貸款支援證券" – (R)MBS – (Residential / Mortgage—backed Security). 由於這些貸款戶根本還不出房貸, 所以這筆呆帳等於由是美國政府吸收了. 剩下的錢, 才是和 QE2 一樣買債券.

在債券的部分, 美國政府實施扭曲操作 (Operation Twist) – 買進長債而賣出短債. 此舉並沒有真正的地把鈔票釋放到民間, 只不過是做了類似降低銀行存款準備率的事, 讓短期的資金較為活絡. 當然, 此舉對於經濟的刺激有限遠遠不比上 "爛攤子丟給下一代" 的 QE1 有效.

至於 QE3, 又回頭買 MBS 啦! 但這回並不是要買進呆帳, 看來是要力挺衍生性金融商品. 美國真是個自由的國家, MBS, CDO 這種害人的東西, 雖然可以刺激景氣, 但是卻帶來了 2008 年的金融風暴. 若是美國政府主動要買 MBS, 當然房地產公司都樂於把風險轉嫁給政府囉!

所以, 據我非常不專業的判斷, 美國希望能夠用 (虛假的) 榮景來刺激經濟. 房地產是經濟的火車頭, 若是大家再度勇於買房, 美國的失業率確實有可能會下降. 只不過套句俗話應該說是飲酖止渴.

對於美國房地產業來說, 這真是空前的好機會. 所以那些有房子沒賣或是前陣子買房子的美國朋友應該可以直接受惠. 接下來就是美國人有錢可以消費不動產以外的東西, 使得全球經濟好轉 (?) — 美國人威力這麼大, 主要是太愛花錢了吧!

為了抑制美國人長期投資的慾望, QE3 打算每個月比 MBS 多花 50 億去做扭曲操作 (OT). 所以就算是短期間景氣轉熱, 吹出景氣的泡沫, 通膨隱憂則是免不了了.