2012年1月31日 星期二

做 App 不是求質素?

最近為一單報價而苦惱。這位是翻單的客人。我曾為她構思一個節日宣傳 App 的點子,但她嫌開發費用貴。把點子愉取了並找另一家公司進行開發。所以今次提供點子時有點芥啼。坦白說,看到她們那個 App,價錢是平,但質素只有 Final Year Project 的級數,而且效能也不好,感覺有點反宣傳的味道。

經過這次事件,我在構思報價時便矛盾起來。要是想做成這單生意,價錢不能高;但價錢不高,做出來的功能要多,質素又要保持的話,那就一定是蝕本生意。問題是蝕本生意對上一次已經做了,今次還來一次?好像有點問題吧。就算我願意,相信為我打工的同事也會有點想法。把他們辛苦賺回來的錢去補貼一單蝕本生意,對他們也不公平。始終年尾花紅是以營利來計算,豈不是大餅被吃了一截?要是把質素降低的話,我又過不了自己的關口。目前唯一能做的,似乎是如實報價,要是客人嫌貴,那就另請高明!

2012年1月26日 星期四

Camera Overlay with Status Bar


最近想出了一個新 App,在構思介面時想到用 AR 形式的效果會更好,今天突地進行實驗。而在 AR 畫面中,我發現狀態列會消失了。但在整個設計中,我希望狀態列能顯示出來。於是向 Google 老師請教,得到了解決方法。原來只需要在 Overlay View 顯示後,報行 [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone] 即可。

2012年1月25日 星期三

Siri on iPhone 4


今天嘗試在 iPhone 4 上安裝 Siri。過程十分順利,只是等得久了一點而介面沒有反應。安裝完之後需要輸入 Proxy 代理服務器地址。我沒有自建一個,所以選擇使用黑客提供的地址。可是當我嘗試使用時,Siri 說暫時無法進行解讀。不知道是代理服務器的問題,還是黑客的 Siri 帳號已經被蘋果所河蟹了...。

2012年1月24日 星期二

恭喜 B.Duck Camera 打進 Top Grossing #1

新年好開始!《B.Duck Camera》分別成功打入香港 App Store 相片組別免費類的第一位及增長類的第一位。在總排行榜的免費類亦取得第三名的成績。總算對客戶有所交代。多謝各位支持《B.Duck Camera》的朋友!

2012年1月22日 星期日

B.Duck Camera 現已上架

BeyondZ 最新的作品「B.Duck Camera」選擇在年廿九上架,主要是因為數據統計過星期日上架的 Apps 能打進排行榜較前位置;而且適逢期會春節假期,很多人在拜年時可以藉此跟親朋好友拍照留念,實在最好不過。一星期後看看如此策略是否見效。

2012年1月20日 星期五

PCM 965

得到友人在 Facebook 的貼圖,得悉原本下星期二發行的 PCM 電腦廣場雜誌因為春節而提早上市。當中有兩頁是上星期四接受訪問時的報導。於是我第一時間購買兩本支持一下;一本是給 BeyondZ;另一本是給自己收藏紀念。過往的所有訪問,我都會盡力把整份報章、雜誌或視頻保留起來。日後給我的子孫看看自己曾做過的事情。

2012年1月19日 星期四

iOS 也有安全模式?

Safe Mode in iOS?
我的大女有一台 iPod touch 4G。她最愛用它來看 YouTube。今早借 iPod 來一看時,發現狀態欄時間位置變成了「Exit Safe Mode」。在上面點一下後彈出如圖般的提示。點 Restart 後系統看似回復正常,但 YouTube 總是黑屏。唯有重啟整台 iPod 才能徹底解決問題。如果沒有試過今次事件,真不知道原來 iOS 也有安全模式。

2012年1月18日 星期三

自訂 iPhone 狀態列

Custom iPhone Status Bar
幾天前妹夫打來找我,希望開發一個類似 Discuss 的 App。於是我把它下載來了解工作內容。才打開那個 App 便感到有點不對勁,發現原來 iPhone 的 Status Bar 右上角沒有了電量及位置圖示,改為 Discuss 的圖案。這個小小的改動吸引了我,希望把它做出來。經過一輪搜索及嘗試,已經把它實現了。有興趣的朋友可參考 http://www.cocoabyss.com/uikit/custom-status-bar-ios/

2012年1月17日 星期二

沒有 JailBreak 的另類破解

今日嘗試了另一種破解。同樣是在沒有 JailBreak 的 iPhone 4S 上進行,加上 iExplorer 的輔助。我拿了日本 AppStore 免費下載的 Steve Jobs 日文版書 App 來實驗。Steve Jobs 傳的日文版共分為兩冊。這個免費 App 提供了預覽版本,而完整的第一冊及第二冊則需要 In-App-Purchase 購買。首先我在 iPhone 4 購買了兩冊書,然後利用 iExplorer 把 Steve Jobs/Documents/ 下的所有檔案拷到桌面。這個目錄儲存了書的內容。在 iPhone 4S 執行一次 Steve Jobs App,確保生成設定檔。之後在 iExplorer 把剛才拷到桌面的檔案抄到 Steve Jobs/Documents/ 下。重新啟動 Steve Jobs App 便會發現第一及第二冊出現了。

這個方法看來有點奇怪,反正都付費購買了內容,又何需如此大費周章。其實只要有人提供 Documents 下的檔案,這樣就不需要 JailBreak 也能達到破解目的呢。

2012年1月16日 星期一

不需 JailBreak 破解運程 App

每逢新年,很多人都喜歡參閱運程書,我亦不例外。在 AppStore 看到一個免費的運程 App,當然第一時間下載。雖然那 App 劣評如潮,達 113 顆一星;但免費的話一試無妨。那個 App 雖然是免費,但實際有用的東西是需要在 In-App-Purchase 以 US$6.99 購買。價錢等同那個作者的實體書一樣。在好奇之下,我嘗試在 iPhone 4S 上進行破解。

1. 首先在 Lion 利用 iExplorer 找出 App 內的 plist 存檔
2. 把它儲存到桌面
3. 用 Xcode 把它打開,找到了 isFullContentsPurchased 一欄,改為 YES
4. 儲存後把 plist 經 iExplorer 放回原位
5. 重新啟動那個 App 便能成功破解

2012年1月13日 星期五

PCM 訪問

昨天,我跟另一位董事接受了香港 PCM 雜誌的訪問。這是我人生中的第四次訪問。第一次是《一本便利》;第二次是《南華早報》;第三次是《Post Magazine》。在訪問之前收到記者發過來的問題,我們得以有所準備。使得整個訪問、攝影、拍片過程只花了一小時完成,過程十分順利與開心。其中一個關於甚麼誘因而促使合作的問題,讓我有機會回顧及了解一下自己。內容不說,看農曆新年那期 PCM 的報導。

在過去九個月的創業過程裡,我越來越確定自己很喜歡做決定、不喜歡解釋。由於公司有幾位董事,往往有一個想法之後,需要跟其他董事商量、討論、解釋,甚至爭議。我不喜歡這種方式。感覺不好。就好像有樣事情想做,需要問父母批准一樣。我喜歡作決定,喜歡主宰自己的命運,喜歡為自己的決定負責!BeyondZ 不是我想要的模式,當她上了軌道之後,我便會淡出,再去成立一家真正屬於自己的公司。

2012年1月12日 星期四

行政危機

新年伊始,公司便遇到了一次「行政危機」。同事們的十二月份工資及 2011 年的花紅到今天才能順利發放。本來設定好的自動轉帳指令在指定時段沒有生效,經歷過兩次失誤後才發現原來因為連花紅在內的轉帳數目超出預設限額,需要第二位董事作出審批。不知道是銀行系統的缺陷還是我們不懂得使用,董事們在沒有通知的情況下,當然不會得悉此事,導致自動轉帳沒有進行。

發放工資是另一位董事負責的事情,由於我不想侵犯他人的工作範疇,所以一直沒有介入。直至第二次失誤發生後,我發現問題在於「超出限額」而作出處理,可是仍然發生第三次失誤,當時感到十分抱歉。原本負責的董事打算再設定第四次自動轉帳,但我認為已經拖欠同事的工資太久、準時出糧的責任、以及考慮到同事的生活情況,是需要立即進行處理,因此找來另一位董事商量,最終把事件解決。

雖然在今次的事件中,我在第一次失誤後便發現此事,並能及時向同事們說明情況與跟進,覺得危機處理得不錯。但總共經歷十一天才能解決事件,對我來說卻是嚴重的缺失!事後回想,我應該在第一次失誤時便立即介入,找出導致問題的原因,並立即作出安排解決問題,以減少危機所帶來的影響。特別是在資金充足的情況下發生這樣的事情,實在不值。

2012年1月11日 星期三

Amigo Hexapod 新設計


數年前買了十多隻 Futaba S3003 伺服馬達,在製作完成 Amigo 之後一直都是閒置著。為了不想浪費資源,我想把它組裝成六足機體。二足的話力量不夠支持機體的重量,當初 Amigo 需要解體就是這個原因。在 Inventor 內做了初步的設計,已經是十二時半,得上床休息了。

2012年1月10日 星期二

IAP Cracker

兩個月前,在 Cydia 上出現了一套名為 IAP Cracker 的軟體。它上架不久便被刪除了。幾天之後又被另一個團體上架。顧名思義,這是一套針對 In-App-Purchase 進行破解的軟體。能讓用戶逃過付費的步驟,直接取得內容的工具。我試過能破解九成的 IAP 收費。

既然客戶找 BeyondZ 開發軟體,我當然要被免客戶因 IAP Cracker 而導致損失。因此我們開發出相應的機制去防止 IAP Cracker 竊取收費內容。

2012年1月9日 星期一

Invalid Product Indentifier

客人的一個拍照 App 快要提交到 App Store,可是這個 App 的 In-App-Purchase 部份還沒完成。說得清楚一點,是 App Store 傳回來的貨品編號都是「錯誤」。今次不是第一次處理 In-App-Purchase,在《帝國》、《AlexPanda》、《Babi Point Center》都做過。它們都很順利,說是這個足足找了一天也無法更正。以下是遇我到這個錯誤時試過的方法:

  • 檢查 App ID 是否跟 iTunesConnect 上的 IAP 一樣
  • 檢查 Product ID 是否跟 iTunesConnect 上的 IAP 一樣
  • 檢查 Xcode 專案內的 Provisioning Profile 是否正確
  • 檢查 iTunesConnect 內的 App 內容是否已加入相關 IAP 編號
  • 在代碼內把原本 IAP 編號 com.pacess.item01 改為 item01

    試過以上方法都無助修正遇到的問題。最後發現是 iTunesConnect 內的銀行資料還沒有設定好,才導致問題的發生。其實一開始時都認為是這個原因。只是資料是要客戶輸入,在時間緊迫的情況下,我沒可能等到資料輸入好才繼續嘗試。萬一到時是另有原一的話,就沒有時間挽回。而且開發用的是 Sandbox,不會做真正的收費處理,銀行資料不需要也說不定。以往沒有遇到這個問題,都是因為客戶的帳號都是由我處理,而我第一時間會輸入好相關資料。有了今次的經驗,相信下次不會再被 In-App-Purchase 給欄倒了。
  • 2012年1月8日 星期日

    膝頭部件


    得到 Peter 的幫助,我可以放心設計機體的造型,不怕手工問題。星期日有點時間便著手設計。由於 Amigo Mini 做用的 EMAX ES08A 沒有畫過 Inventor 模型,我得先把它畫出來後,再畫金屬部件。目前還沒有甚麼頭緒,暫且畫了一個膝頭部件出來後再作改良。

    2012年1月7日 星期六

    學習 CNC 的使用方法

    最近認識了一位網友 Peter。他是機械人發燒友之一。得悉他在淘寶網購買了一台 CNC,而且造出來的成品十分之好,所以向他查詢了相關網址。得到他熱情的邀請,今天到他家裡參觀下 CNC 製作部件的過程與心得,實在吸收了不少箇中智慧。

    在了解到細節之後,我決定打消購買的念頭。一來家中地方有限;二來有小孩在家易生意外;三來 Peter 能仗義幫忙製作部件。到有一個工作間之後,我才會考慮添置一台。現在要靠 Peter 幫忙了。但首先還是要決定製作二足還是六足,之後畫好部件圖,給 Peter 生產。由於家中的電腦已經轉為 Mac 系,只有一台 Fujitsu 是跑 Windows,要先整理一下電貓的軟件才能開工。

    2012年1月6日 星期五

    GoPro HD

    吃完晚飯跟大女兒到商場散步時,發現電腦店有 GoPro HD 出售。究竟這款鏡頭有甚麼特別?只因近半年來日本機械人界其中一位大師在他的最新飛行作品中使用了這款鏡頭。它能錄製 1080P 的視訊,而且畫質十分之好。當然價錢也成正比。

    2012年1月5日 星期四

    安裝正式服務器(一)

    Production Server Installation Part 1

    為了開發 ING 的《好爸媽好幫手》,公司購買了一台 PC 電腦作為臨時服務器。現在那個 App 已經上架一段日子,而且接上 ING 的正式服務器,是時候把臨時服務器當作第二個用途。由於 BeyondZ 目前只有一個開發用的服務器,對於一些已在運作的客服 API 要作出升級,隨時會影響到已上架的 App;更甚是導致服務器癱瘓。於是我決定把它改為正式服務器,原本那台則為測試服務器。

    得到專家們的指教,我決定使用 CentOS 6 作業系統,配以 Apache, PHP, VNC, MySQL 及 phpMyAdmin。安裝 CentOS 沒有難度,只要按畫面指示一步一步去做就行。唯一要留意的是第一次重啟時要拿走光碟。啟動後進入 GNOME 介面,按以下步驟安裝 PHP, MySQL 及 phpMyAdmin:

    1) 點選畫面左上方的 Applications > System Tools > Konsole
    2) su - 並輸入 root 的密碼
    3) yum -y update
    4) yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql
    5) service mysqld start 啟動 MySQL
    6) /usr/bin/mysqladmin -u root password '12345678' 設定 root 的密碼
    7) service httpd start 啟動網頁服務
    8) ntsysv 打開 httpd, mysqld, sshd 讓重啟後能自動載入這些服務

    2012年1月4日 星期三

    設定 SmartMAD AdView 的座標

    按客戶要求,為他們的 App 加入 SmartMAD 廣告欄。根據 SDK 的指引加入廣告後,發現廣告只在頂端出現,就算調用 setFrame 或者是 setCenter 都無法改變位置。原來解決方法是要建立一個 UIView 作為容器,然後把 SmartMAD AdView 加到容器內,再設定容器的座標才能改變廣告位置...。

    2012年1月3日 星期二

    使用 BlueTooth 連線的硬件

    上星期四收到一件大包裹,收件人是我,寄件人是不認識的人。打開後原來是一件裝有 BlueTooth 的硬件。搜查一輪後,發現是跟一位新客人的案件有關。他們需要開發一個 App 去讀取硬件的數據。對於這樣新鮮的事情,我很感興趣。初步把硬件跟 iMac 連線後,再利用 ZTerm 進行數據傳輸,但由於未能發出指定的溝通內容,測試只能到這一步為止。

    由於案件最終會在 iOS 裝置上進行,所以搜尋了關於 Terminal, UART, BlueTooth 等方面的資料。可是只能找到 JailBreak 方面的方法。至於正確的方法則一條也找不到,相信要申請 MFi 之後才能得到真正的方法...。