2013年5月20日月曜日

Apple AirPort Express (AirMac Express) 功能研究

最近 Apple 比較受關注的還是在 iPhone, iPad 這類的觸控玩具上。消費者對於其他東西的關注就比較少了些。這次要來研究的就是一個有點冷門的產品-AirPort Express。它是一個 WiFi 基地台。買 WiFi 基地台,誰會想到要買 Apple 的,這也難怪它會冷門了。不過價錢也是不便宜就是了。

包裝與外觀

兩側有蘋果標誌

頂部有它的外觀

背面有功能介紹

外盒推開主角就在頂部

主角登場

背面

AirPort Express 大小和外觀基本上根本就是跟 Apple TV 一模一樣,只是顏色不同罷了。外盒上的圖看起來很像銀色,但是實際上是白色的。頂端是霧面加亮面蘋果,側面是亮面的。這個產品在日本叫做 AirMac Express。後方的 I/O 介面分別是電源、WAN、LAN、USB 和 3.5mm 音源輸出。

功能規格

  • 支援 WiFi 802.11a/b/g/n
  • 2.4GHz 802.11b/g/n、5GHz 802.11a/n 雙頻同時運作 (應該是 150+300 Mbps)
  • WAN and LAN 10/100 BASE-T Ethernet 
  • 支援 USB 2.0 列表機
  • 支援 AirPlay 音響
規格上,雙頻是一個亮點。但是 LAN Port 居然只有 100 BASE-T,這就有點怪了。另外有 AirPlay 支援,這應該是蘋果愛用者會需要的東西。

安裝使用

安裝方式大概就是跟一般的 WiFi 基地台類似。插上電源線和網路線就可以使用,不過這台可以再插上一組喇叭,馬上變成無線音響。

裡面只有附一條電源線,與一般基地台不同,變壓器並不在外面

蘋果的東西跟自己的 iPhone、iPad 整合程度,絕對不是一般廠商辦得到的。因為蘋果從系統就不讓其他廠商辦到...

插上電後,直接打開 iPad 或 iPhone,到設定頁面的 WiFi,就可以看到"設定 AirPort 基地台"這個平常不會有的選項。


點進去後,就會開始起始設定。基本上就是叫你取名字跟設定密碼。輸入完後按下一步就完成了。


如果你的 WAN 網路是接已經有網際網路與 DHCP 的環境下時,基本上到這邊就已經可以使用了,它會自動走橋接模式。在連上 AirPort 後,點進 WiFi 選項中,又會發現多出一個選項-管理此網路。


點下去之後,會開啟 AirPort 管理工具,如果你沒裝的話也會提示你去 App Store 安裝。當然是不用錢的。


裝完執行起來就會看到一個簡單的畫面,示意網路連線狀況。因為剛好有新的韌體可以更新,所以圖示上多了一個 (1)。


點選 AirPort 圖示就可以看到一些選項。


點選版本就可以看到下載並安裝的選項,開始更新。


更新完,重新連上後,若點選編輯,就可以看到基地台的設定介面。


如果需要變更連線方式,例如使用 PPPoE 等,只要在這邊就可以更改。詳細就不再贅述。如果是 Windows 或 Mac 的話,就需要下載 AirPort 管理工具。不同於一般的基地台,Apple 並不是使用網頁來設定,也不會有 UPnP 的支援。要設定只能透過官方提供的工具,這大概只有 Apple 才敢這樣做吧,其他廠商應該就會被罵死。只要是 Apple ,怎麼搞都可以。

AirPlay

網路搞定後,再來就是AirPlay了,當然,它只有支援音樂的部分。使用上基本上跟連上有A2DP的藍芽耳機或喇叭是一樣的。聽音樂可以,看影片一樣可以,影音同步也不會有問題。基本上就是無線喇叭。與藍芽不同的是,它的音效並不會像 A2DP 會有失真問題。音質基本上根直接接耳機孔是一模一樣的。


當然,使用 Windows iTunes 聽音樂時也能夠使用。

總結

蘋果的東西果然還是只喜歡跟蘋果的東西當好朋友。用 Android 的話,基本上就沒有辦法使用 AirPlay 了(雖然有 ROOT 過的話,是可以改出來的)。設定方式也非常容易,甚至在需要設定它時,使用者並不需要連上它就可以開始管理它。這點倒是其他基地台所做不到的。訊號方面,雖然說 5GHz 比較少干擾,但是可能因為它沒有大天線的關係,穿透力並不是很好。




2013年5月18日土曜日

使用 Link2SD 解救 Sony Ericsson Xperia Play 容量不足問題

Xperia Play 是我非常喜歡的一隻手機,如果 Sony 能夠再出一款後續機種,我應該會馬上購買吧。可惜的是,看不出 Sony 有這樣的構想。這隻手機 (或者應該說 2011 年出品的 Xperia) 最大的缺點,就是容量都很小,能拿來自己裝 App 的空間更是小得可憐。原廠裝了一些遊戲也非常占容量,原本我認為不需要裝太多的軟體,這個問題應該還好。但是到後來,主要常用軟體相繼肥大,像 地圖,YouTube,Gmail,Facebook,等軟體都肥到塞不下了,所以先前我只好把它 ROOT 了,然後移除一些原廠的軟體,或一些軟體的出廠版本,釋放了一些容量,終於能夠舒服一點。
這次要被拯救的主角

可是好景不常,這些軟體肥大的速度實在太快,到後來,我甚至連 Facebook 都整個移除掉,改用網頁版本。就在 2013 Google I/O 結束後,終於塞爆了,光 Google 本來的東西就已經塞滿整隻手機,什麼都不能再裝,甚至更新也非常困難。所以只好使用 Link2SD 這個大絕招了。我本來不使用這個方法,是因為我想保持SD卡可隨時移除的這個特性,但是老實說,實在沒什麼必要。加上原廠已經不打算繼續更新軟體,好吧,就 Link2SD 吧。

悲慘的剩餘空間

準備工具


  • 已經 ROOT 過的手機
  • 一張夠大的 microSD 卡
  • 一台能夠修改 SD 卡 Partition 的電腦

動工

備份

關掉手機,拿出手機的SD卡,直接將裡面所有檔案複製到電腦中。

改動 SD 檔案系統

SD卡本來應該是只有一個 FAT32 的 Partition,因為 Link2SD 是要將原本內部裝 App 的區域,改到 SD 卡中獨立的區域,需要額外的一個 Primary Partition,所以需要修改原本 SD 卡中的分割。因為我是使用 Windows 7,我使用的分割工具是 EaseUS Partition Master,當然使用 Linux 也可以直接使用 gparted 來做。修改時,可以直接把原本分割區調小,就可以保持原本的檔案。當然也可以選擇砍掉重建,第二個 Partition 必須也是 Primary,檔案系統我是選擇 EXT3,不過 Link2SD 其實可以支援 EXT2, EXT3, EXT4 和 FAT32/16。不過我想,使用 EXT 系列應該還是比較接近原本的系統。

改好的 SD 卡,會是兩個 Primary Partition,第一個是 FAT32,第二個是 EXT3。在 Windows 中 SD 卡是看不到第二個 Partition 的。

安裝 Link2SD


手機裝回 SD 卡後開機,安裝 Link2SD。安裝後開啟 Link2SD,應該就會提示要 ROOT 權限,取得 ROOT 後,就會發現第二 Partition 然後要你選擇檔案系統格式,我的狀況是 EXT3,選擇後會被要求要重新開機。重新開機後,就應該可以大致完成了。

搬移

開機後,再次開啟 Link2SD 就可以開始搬移動作。這邊選擇 Google Map。可以看到下面的畫面。選擇下面的建立連結。

MAP的資訊

接下來會讓使用者選擇要搬移的項目。有 APK,編譯過的 DEX,會被使用的函式庫可以選。確定後就會開始搬移。

選擇搬移項目

搬移後,容量確實也被釋放出來了,軟體也能正常執行。

仍然可以正常運行

搬移後,去檢視應用程式容量時,應用程式容量並沒有改變,但是事實上,容量已經被釋放出來了,可以再安裝軟體了。

小幅搬移後的應用程式空間

並不是所有應用程式都能夠被搬移到 SD 卡中,系統軟體還是無法被搬移的。對於搬移後的 App,效能上並不會比較差 (可能 SD 卡好壞有差,甚至可能搬了比較快)。又可以把需要的 App 裝回來了。手機又可以再活一大段時間了。希望軟體開發者們不要太早忘記 Android 2.3...。


2013年5月15日水曜日

軟體開發的管理盲點

應該很多人都會同意,最難處理的事就是跟人有關的事。主要是因為人會考慮的因素非常複雜,難以掌握。而這次我想探討的是盲點問題,特別是關於軟體開發過程的盲點。

盲點之所以為盲點,就是指看不到的地方。而軟體工程中的盲點,卻往往不是真的看不到,而是選擇不去看到,或是主觀的接受一種特定的思考而刻意排斥其他方法。如何能跳脫既有的主觀見解,從其他角度來看同樣的事件,便成為一個很重要的能力。

很久以前有人出了一個有趣的題目給我,剛好符合這個主題。有九個點,排成如下圖的樣子,相鄰距離都相等,每個點是正田字的交點。而題目是要求受試者以一筆畫出四條連續的直線,貫穿這九個點。也就是一筆可以有三次轉彎的機會,但只能是直線。
應該有不少人在被問到這樣的問題時,會花上一段時間,才能找到答案。因為這個題目中,有個看不到的陷阱,侷限了受試者的思考邏輯。當然,並不是所有人都會被這個陷阱影響到,因為這跟每個人過去的經驗以及思考方法有關。

跳脫原有思考模式其實是非常困難的,但是如果能透過第三者的提醒就不一樣了。正所謂忠言逆耳,別人的提醒,若與自己的想法相左時,往往就不容易被採納。適度的在接收到某些負面資訊時,能夠多花一些時間,在拒絕之前,多深入了解,就可以排除很多自己原先看不到的缺點。每個人觀察一件事情的角度不同,會發現的或感到不妥的地方也不同。他人會提出不同的質疑或見解時,如果以找到這個不同意見發生的原因為出發點,就能更清楚判斷這個資訊是否有用。接下來我就列舉一些自己經驗裡看到的問題。希望對其他人能有一些幫助。

軟體工程

事情總是沒有絕對的對錯。市場上充斥著許多探討軟體工程流程的書籍以及研究,嚐試找到最好的軟體開發流程、軟體開發人員管理及訓練方法。然而,越多討論及研究的存在,往往表示一個問題非常有可能是沒有正確答案的。這些方法主要都是要解決軟體開發時的盲點以及可能發生的錯誤,而這與該團隊的人員素質及能力有關。極端一點,如果主導開發的人強到不會有設計盲點,初期設計的討論過程就是的沒有意義的。軟體開發人員,如果不會寫出 BUG ,就不會需要測試。如果人員的理解能力夠好,也不需要再規範什麼一致的coding style,程式整齊、拼字正確也就夠了。可是人員的能力素質往往很難正確的量化,以至於很難判斷對特定團隊,應該使用何種管理方式來達到最佳的效率。

驗證流程

然而一些人迷信於某些流程,而不能考慮自己參與的團隊與開發軟體的狀況,往往導致反效果。對於大部分小型軟體公司,如果在開始設計軟體時,就耗費過多的成本來在開發流程上,搞不好產品還沒生出來,公司就準備收起來了。小公司賭的是創意與工程師的才能,在現在這樣發展迅速的環境,產品比的是面市的速度,花過多的時間在測試,解問題,產品搞定時,類似功能的產品可能都已經搶了大部分的市占率了。很多時候反而應該是讓產品先出去,再提供修正。一來可以提早面市時間,二來可以試試消費者對於特定功能產品的接受度。也能夠由使用者的回饋來調整軟體開發的方向。

測試成本

另一個是成本問題,軟體開發時,開發者肯定是必須先做些初步的測試,以驗證自己是否完成。若公司設有測試人員,軟體開發者必須評估如何能夠利用測試人員的資源,來協助自己完成模組開發的驗證工作。若花上過多時間來保證自己開發的模組的正確性,反而是浪費成本的事情。自己驗證往往看不到真正的盲點,因為自己對問題的了解程度,引導自己開發出產品模組,若有問題,往往就是考慮不周全。而出現盲點時,很可能是對問題的了解程度不足,如此就更難自行測試出問題。研發人員的成本往往比測試人員高很多,若研發人員又不自知,花過多時間在證明自己沒有思考邏輯的漏洞,就是成本的浪費。

開發模組的相依性

軟體開發在切割後,很容易就會有相依性問題要解決。A模組可能依賴B模組,而開發A模組的人員往往可能等待B模組的開發人員提供成品來讓自己能夠驗證成果。而這個等待就很容易造成人力成本的浪費。當然,程式開發者應盡力避免這樣的等待,不應需要等待其他模組,提早進行下一步軟體的開發。但是,實務上,軟體開發者並不具備這樣的能力。就像很多軟體工程師在程式開發時,會有編寫邊編譯邊跑看看的習慣。因為他們沒有足夠的信心確定自己所寫的每段程式是否正確。主導設計溝通介面的人,最好能盡早發現這樣的相依性,請被依賴的一方能提早提供雛型,或僅有介面沒有實際功能的模組,以利依賴者進行開發。

專制才有效率

軟體開發有許多過程都有很多可有可無的設計,很多模稜兩可的邏輯。溝通與討論實際上可能只是浪費時間。A 說 X 方法好,B 說 Y 方法好,花了一堆時間討論與比較,從設計原理,到未來維護成本等。在很多時候這可能是浪費時間,因為這兩個方法的效益可能根本就差不多。主導開發者必須知道這樣的問題,提早決定某個方向,來避免過多不必要的時間浪費。開發的制度與流程也是如此,訂了就好,修改制度與流程必須評估其必要性與成本。軟體工程師對於制度與流程的改變是非常痛苦的。從員工的角度,若制度上你若有不滿,除非這樣的不滿是共識,否則你應該選擇接受,否則換個工作會比較快。

智慧是沒辦法訓練的

或許應該說訓練的成本過高,高到你不應該嘗試。邏輯是個說服的過程,有些人的邏輯,或行事風格很特別。這樣的人,你就別花時間嘗試改變他。而應該適應他的邏輯與行事風格,讓事情能夠平順的進行。笨是沒有藥醫的,個性好,但是笨,你也不需要花時間在改變他的愚蠢。工作是要成本的,你應該換掉這個人。如果你的老闆還願意糾正你,在你不爽之前,你應該想想這個老闆至少還願意花時間來訓練你。

以上分享是我看到的一些問題點,現在軟體開發產業變化非常迅速,台灣的軟體業也正在起飛。並非所有過往課程或書籍都能套在現在或台灣的環境。在看一個方法時,除了看他的優點,也應該看看他的缺點與適用的情境。人月神話是我還蠻建議的一本書。軟體開發仍然是商業,應回歸到成本管理上。