2012年7月31日 星期二

Newsletter 2012.AUG


這是 BeyondZ 八月份的新聞稿。入面那個利用打火機進行遊戲的玩法不是原創,但卻是在 BeyondZ 第一次應用。效果不錯!

2012年7月30日 星期一

智能手機 Apps 開放日

今天參加了由香港無線科技商會主辦,香港生產力促進局執行,並由香港特別行政區政府工業貿易署「中小企業發展支援基金」撥款資助的《智能手機 Apps 開放日》。BeyondZ 也是展覽商之一。展出了過往的一些作品。比較受到矚目的是 iPad 3D Console。它是我們在 2011 年替客人開發的產品。透過鏡子把影像顯影成三個層次,達到立體效果。這台 iPad 3D Console 也會於 8 月 11 日在香港理工大學舉行的 Hong Kong Mini Maker Faire 中展出。

說回《智能手機 Apps 開放日》,當天除了認識到一些業內人仕之外,亦更了解他們的產品及方位,有助大家的合作及發展。最令我印象深刻的是 pincast 的定點技術。這個技術是由一班充滿活力與創意的年青人開發出來。透過聲波來檢查出用戶是否在特定的地點附近。雖然在宣傳上稱為「定位」技術,但實際上「定點」較為合適。它只能對應一點,不是在 A 點就是在 B 點,不能定出在兩點之間哪個位置。不過,在室內一般情況下都已能滿足需求。他們透過簡單的方法及裝置,便能做出定點,真的很有頭腦!

2012年7月29日 星期日

Final Year Project 呀?

最近有一句說話經常掛在口邊「Final Year Project 呀?」。往往之後得到的回答是「Final Year Project 有這樣的質素會拿到 Credit 呢!」。甚麼是「Final Year Project」的質素呢?大學生或 IVE 生在最後一年的最後時間要完成「Final Year Project」,時間通常都不夠,而且只要做到基本的功能便拿到好成績,因而大部份人都不會對介面、對圖象、對效率做出最好的優化,亦不會專業。

新來的兩位 IVE 畢業生,他們正分別開發兩款 Mobile Apps,當中遇到很多不同程度的難題。人是有墮性的,他們亦不例外。希望用簡單的演算法去達到目標。我鼓勵簡單處理,但質素效果必須保持。當然目前仍未能達到,所以便以「Final Year Project 呀?」來提醒他們, 我們要的是「專業」的質素,而不是「Final Year Project」的要求。幸而,他們也會繼續改良,使產品達到更佳的效果。

2012年7月28日 星期六

山獅下的 SVN 問題

SVN Fix on Mac OS X Mountain Lion

山獅開賣了,貪新鮮地升級了。發現原本使用的 svnX 找不到 SVN 檔案,無法正常執行。原來在 /usr/local/bin 內的 svn 檔不見了。只好手動建立連接,方法如下:

2012年7月23日 星期一

自製 Canon 450D 快門線


8 月份將會參加一個宿營,地點在大嶼山。很期待這次活動,希望能在遠離城市的地方拍下滿星的夜空。我的 Canon 450D 自帶的快門只有 15 秒,未必能滿足拍攝的需求,加上 Maker 癮起,在八號風球的晚上,花了點時間自製了一條,效果十分滿意!

2012年7月21日 星期六

Make Magazine 中文版


一年一度的書展又到了。得到兩張入場贈卷,於是進場逛逛。正常的情況下,我喜歡的書籍不是已經擁有,就是太新或太舊(一年前),書展內是不會買到。往年能令我解囊的都是台灣來的書商,特別是「時報出版」。今天也不例外。在「時報出版」遇到了 Make Magazine 中文版,以 HK$89 一本的價錢出售,忍不住買了 01 至 04。

2012年7月20日 星期五

HTML5 Sprite Editor

一直忙著開發客戶的流動應用,一直都沒時間想開發一套 Sprite Editor。現在有點時間,決定研究一下。為了隨時隨地都能使用,我打算以 HTML5 技術來製作。花了點時間製作了播放程序來試試效能,在 Mac 的 Safari, Chrome, Firefox 都能順暢播放;而在 iPad 上也沒有問題。雖然在開發上會花得比較多時間,但勝在能雲端操作,值得一試!

2012年7月16日 星期一

用熱敏筆改裝的遊戲


公司的項目中,有部份需要新元素新創意。今次的項目雖不算是原創(迪士尼反斗車王已有成品),但對我來說卻是新鮮。這個項目是利用一部特製的硬件放在 iPad 上進行的遊戲。靠著硬件來控制飛船擷取能源及避開隕石的攻擊。只要改變硬件的角度便能改變飛船的角度。

2012年7月14日 星期六

Interview


今日跟幾位機械人網友到《數碼生活頻道》接受訪問。主要是為 8 月 11 日於理工大學舉行的《Hong Kong Mini Maker Faire》進行推廣,吸引廣大市民進場支持。完全免費。

2012年7月13日 星期五

Rate My Pics! 3.0


一年前推出了《Rate My Pics!》這套免費應用,想不到效果十分理想。原本的服務器已經負荷不來,需要移到效能更好的服務器。加上用戶的意見,我決定重新編寫 3.0 版本。

剛好有兩位畢業生加入公司,便以這個項目作為培訓的題材,並以 Pair Programming 方式進行。歷時一個月,他們終於製成了人生第一個 iOS App。今次的經驗,不論是他們還是我,都有很多學習的地方。原本三個星期的開發,要到四個星期才能完成,比預期多出 25% 時間;Pair Programming 也沒有達到目標;至於他們的編程能力,進步也不如預期。究竟問題出在哪裡?是因為太過執手而教?為了尋找答案,他們將分別開發不同項目。考驗他們的時候來了,能不能留低就要看今次的表現!

2012年7月12日 星期四

有感而發

自從 App Store 推出以來,我便參與 App 的開發工作,大大話話都有四年;軟件開發也有十九年。寫過玩過的 App 不少。當客人跟我說:「這樣的版面設計不好」、「那個不夠 User-friendly」時,心裡不禁反問:「難道你認為我不夠你玩得多嗎?」。客人就是客人,就算把 App 做得很爛,我也會按意思開發。雖然心不是味兒,但正所謂受人錢財替人消災,我一定會照著做。不用班門弄斧吧!

2012年7月11日 星期三

AMIGO mini 足部試作


AMIGO mini 的板金需要使用柱體來連接;最合適的莫過於是 2mm 銅柱。但在香港真的找不到,多謝網友 Keith 熱心的贊助。今日嘗試連接。由於銅柱本身的長度不足,兩條銅柱又過長,所以把銅柱放在中間,左右各用 8mm M2 螺絲鎖上,加以每邊三顆螺帽作為固定之用,以防走位。雖然有點鬆散不夠堅固,效果算是滿意。

2012年7月9日 星期一

把 DMG 轉換成 ISO 格式

DMG to ISO


女兒同學的家長向我索取 K2 時表演的 DVD 光碟影像檔,正好在家中服務器內。可是那是 DMG 格式,而家長用的是 Windows,希望是 ISO 格式。原本以為能用 Disk Utility 來做轉換,可惜沒有這個功能。在網上找了一下,發現能用 OS X 跟機的 hdiutil 來做轉換,立即一試。在 Terminal 下輸入 hdiutil convert disc.dmg -format UDTO -o disc.iso 便可。家長下載後證實 ISO 沒有問題!

2012年7月8日 星期日

Facebook 載入時間

Facebook Loading Time


最近替客人開發了一個 Facebook 應用接二連三地遇到問題,實在很「黑仔」。其中一個問題是客戶投訴頁面載入得慢。收到投訴後我立即跟進處理。用不同機器載入網頁有 50 次之多,只有其中 1 次是載入得慢。查看 Firefox 的連線數據,發現是 Facebook 那邊的 connect.php 很耗時。不是我們的服務器或連線速度問題。而這正正是束手無策的地方。但在客人方面,已認定是我們的問題。因為她也有在載入慢的情況下載入 Facebook 的主頁,結果載入很快。那是理所當然,因為 Facebeook 主頁是訪問次數最多的頁面,一定載入得快,更何況不用載入 connect.php 這個禍根。所以,我感到實在很委屈...。

2012年7月7日 星期六

McDxHELLO KITTY


女兒提議到麥當勞吃早餐,看到醜小鴨 Hello Kitty,當然嚷著要。於是買了一個回家。打開盒子,發現一張 QR 碼遊戲卡。那個 QR 碼比較細小,一般 QR 閱讀器無法解讀。好奇的我把它放大後,解讀出一串由數字及字母組成的咒語。由於對咒語的組合沒興趣,所以沒有拿來黑一番。

既然遊戲卡在手,於是到 App Store 下載遊戲來玩。透過 QR 碼能解開「醜小鴨」遊戲,尚餘數個遊戲、壁紙及神秘遊戲在封鎖狀態。這時興趣來了,決定要把它們解開。由於活動正在進行,破解方法容後再述。如果破解難度最高是 10 級的話,這個 App 的難度便是 3。它不是直接把 FALSE 變成 TRUE 的一級項目,是需要動一動腦根才能解開的。

2012年7月6日 星期五

LINE Stamps


自從《走奶風暴》之後,朋友們都刪除了 LINE 帳號,改回 WhatsApp 交流。為了增加趣味性,只要把貼紙圖片儲起來並在 WhatsApp 內使用,效果也不錯。

得知 LINE 有新的貼紙,當然一試。發現 LINE 已加入很多貼紙,有熟悉的 Hello Kitty, Snoopy,也有不熟悉的。大部份都得付費,很想在 WhatsApp 下使用。打開 iExplorer,發現 Library/Preferences/jp.naver.line.plist 內有 LineStickerPurchases 的數值,當中 Array 內的第二項是代表下載情況。把免費的 1,2,3,4,551 貼紙包號改成其他收費包號,也無法成功下載。於是改試其他方式,找到 Library/Application Support/Stickers.plist 內儲存了所有貼紙包號、其圖片的開始編號及數量。把收費包的數值拷到免費包內,滿以為快要成功,結果仍然失敗。很久沒遇過技術要求高一點的應用,當然要繼續努力。

再換換方式。把 Mac 機的 WiFi 分享出來給 iPhone,在 Mac 上打開 WireShark 監測住 WiFi 通訊,並在 iPhone 上下載最新免費的貼紙包,目的是取得貼紙的所在位置。反正目標是圖檔。以 @2x 搜索一下,便能發現貼紙包的路徑。配合 Stickers.plist 內的包號碼及授權號碼,便能下載到貼紙包。

把貼紙包解壓後,圖片是給加密了。只要在 Xcode 使用《iphone-png-decrypter》便能順利解開。這是一個相當不錯的學習體驗。

2012年7月5日 星期四

又是 M$ 惹的禍(四)

The M$ Problems Part 4

每次開發 Facebook App,出問題的一定在 Microsoft IE 身上。本來 Apps 已經在 Safari, Chrome, Firefox, IE 上試過沒有問題,於是正式發放上架。不久,客戶打來投訴有部份用戶無法正常使用 App。我立即再在四大瀏覽器上測試,結果一切正常。當下真的毫無頭緒。

然而古怪的事情發生了。公司其中一位使用 Windows IE 的同事遇到相同問題;可是當我利用他的 IE 時,一切又回到正常。反覆檢查之後,發現問題在於 Debug console。作為開發人員,很多時都會打開 Debug console 來觀看網頁運作情況。原來 IE 的設計上,在沒有打開 console 時是沒有 Console.log() 物件,所以程式執行到這裡便會停住。打開 Console 就是為了除錯,打開了就沒錯,沒開就出錯,真是多麼白痴的設計。

2012年7月4日 星期三

取消 Facebook Like 視窗


最近替客戶開發 Facebook 平台的投票應用。在用戶投票之前,需要先 Like 客戶的 Facebook Page。我使用 FBML 方或把 Like 按鈕加到適當位置,客戶試了想把 Like 後的視窗刪除。然而,這是 Facebook 沒有提供的功能。經過一翻研究之後,發現可以利用 CSS 來達成:
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr  {display: none !important;}

2012年7月3日 星期二

1 年零 28 日


公司的第一位員工在今天離職了。跟她相處了 1 年零 28 日,不算長的日子,但足夠讓彼此之間建立默契。看見這一年來她的成長,感到安慰之餘,亦有點可惜。希望她努力學習之餘,休養生息之後,能再次合作。

2012年7月2日 星期一

Google Drive + Build Count

我的 iOS 項目中習慣使用 Build Count 作為版本號碼的一部份。一直都使用得很好。最近把一個項目放到 Google Drive 的目錄後便出現問題。原因是 Google Drive 目錄中間有空白,導致程序解讀錯誤。解決方法是把 plist 的路徑以英文括號包裹,如:buildCount=$(/usr/libexec/PlistBuddy -c "Print BUILD_COUNT" "${PROJECT_DIR}/HelloWorld/HelloWorld-Info.plist")

關於 Build Count 的運作,可參考《自動 Build Count 作成》