2012年11月29日 星期四

iPhone 5 64GB Black 入手


自從 iPhone 5 在香港推出以來,一直在等待入手機會;但又不想上台、又不想以炒價購買。花了八個星期,終於都從蘋果手上取得 iPhone 5。

Times Square 匯報《little diary》在 iPhone 5 上有大按鈕的情況發生。之前在模擬器上跑卻沒有問題。現在真機在手,便能進行除錯。原來是偵測型號的程序上出了問題。當中以 iPhone5,1 當成 iPhone 5;實際上 iPhone5,2 才是 iPhone 5。至少我那台是這樣。修改過後一切正常,並提交到 App Store 進行審批。

2012年11月28日 星期三

Google Cloud Messaging on PHP

為客人開發的 Android 應用《BagBoard》需要用到 Google Cloud Message。官方的服務器端程序是 Java 版本。我亦在服務器安裝好 Tomcat,以便開發 Java Servlets 項目。同事找到了 GCM 的 PHP 版本,代碼十分簡單:
$yourKey = 'PUT_YOUR_KEY_HERE';
function sendMessageToPhone($deviceToken, $collapseKey, $messageText, $yourKey)  
{  
    $headers = array('Authorization:key=' . $yourKey);  
    $data = array(  
        'registration_id' => $deviceToken,  
        'collapse_key' => $collapseKey,  
        'data.message' => $messageText);
  
    $ch = curl_init();  
  
    curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send");  
    if ($headers)  
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
  
    $response = curl_exec($ch);  
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
    if (curl_errno($ch)) {  
        //request failed  
        return false;//probably you want to return false  
    }  
    if ($httpCode != 200) {  
        //request failed  
        return false;//probably you want to return false  
    }  
    curl_close($ch);  
    return $response;  
}

這是節錄自:http://www.sherif.mobi/2012/07/gcm-php-push-server.html

2012年11月23日 星期五

Facebook HTTP 405


今日接了熟客一個 Facebook App 項目。對方是使用 Windows Server,而且沒有測試服務器提供。為了方便開發,只好自行設定。也為了能讓客戶直接在我方的服務器上測試,於是把它接上了 Facebook。可是,在瀏覽器直接打上地址是沒有問題;當 Facebook 包著來跑時則出現 HTTP 405 錯誤。

之前在客戶的 IT 部門也發現過相同的錯誤,那是由於目錄預設檔案的次序問題而產生。今次用相同的解決方法也無法把問題處理。搜索一輪之後,發現要在 IIS 內加入 .html 的配對才可。又上了一課!

2012年11月21日 星期三

在 CentOS 安裝 Tomcat

最近的一個 Android 項目需要用到 GCM (Google Cloud Messaging),是類似 iOS 的 Push Notification。官網有服務器端有 Java 版的代碼提供。公司用的服務器都是行 CentOS,需要安裝 Tomcat 才能跑 Java。安裝方法如下:
  • 到 Tomcat 網下載最新版 gz 檔
  • cd ~
  • tar zxvf /var/www/html/apache-tomcat-7.0.33.tar.gz
  • mv apache-tomcat-7.0.33 /usr/local/tomcat7
  • cd /usr/local/tomcat7/bin/
  • ./startup.sh
  • 2012年11月20日 星期二

    在 CentOS 安裝 JRE

    公司的服務器一直都是跑 PHP。即時由 PHP 組譯成為 Machine Code 始終慢一點,所以希望嘗試使用 Java。那必先要安裝 JRE。步驟如下:
  • 到 Java 網頁下載最新 JRE 的 .gz 檔
  • cd /usr/
  • mkdir java
  • cd java
  • tar zxvf /home/share/jre-7u9-linux-i586.tar.gz
  • cd jre1.7.0_09/bin
  • alternatives --install /usr/bin/java java /usr/java/jre1.7.0_09/bin/java 300
  • alternatives --config java 看看現時使用哪個 Java Runtime,按 Enter 不改變設定並離開
  • java -version 看看版本號碼
  • alternatives --config java 轉用新的 Java Runtime
  • java -version 看看版本號碼是否轉了
  • alternatives --config java 確認轉了新 JRE,按 Enter 不改變設定並離開
  • 2012年11月19日 星期一

    八達通無聊器

    何家大細小姐最近經常「嘟嘟聲」,喜歡周圍「嘟」。心想要是開發一個 iOS 應用,配合鏡頭技術,想必很吸引。構思衝動而出的剎那間,很想立即實行。但還是到 AppStore 查看一下。如果有人已經製作過,就無謂浪費時間。以「八達通」搜尋到的只有官方應用。本以為今次想到絕世好橋。不過,轉眼在 Google 已經找到,原來一年半前已經有人開發了相同概念 App,名叫「八達窿」。那個 App 做得不錯。可惜現在已從 AppStore 下架,無法下載。相信是由於有人把它作非法用途吧。這個絕世好橋比別人遲了年半,希望下次能快人一步吧!

    2012年11月17日 星期六

    香港 Startup 如何面向世界


    在過去的一星期,在王維基先生的專欄已經多次提到 6waves 的周邦亮先生(Arthur)。今日出席了數碼港的《香港 Startup 如何面向世界》認識了 Arthur,學到很多創業的心得。

    2012年11月16日 星期五

    關掉 Unity 下的貼圖光影效果


    客人找我開發一套推銀遊戲,那就必須要使用 3D 才夠真實。了解過市面的 3D 引擎,選用了 Unity。早在年初 Unity 曾免費下載 iOS 及 Android 輸出插件,當時不執輸地申請了一個,今次可用得上場了。

    遊戲已經接近完成階段,當初的模型測試能渲染 20 萬個多邊形,不料現在只有十分一也開始覺得慢起來。為了提升運行速度,首先是刪除光影方面的運算。方法是選取模型,在右方的選單找 Shader,設定為 Unlit - Texture。如選擇 Transparent 也可,感覺上 Texture 快一點。

    2012年11月15日 星期四

    免 Jailbreak 修改 Hello Kitty Cafe

    細女喜歡 Hello Kitty,也愛玩 Hello Kitty Cafe。雖然這個遊戲的設計很差,但為了細女能暢快地進行遊戲,於是修改了一下。


    利用 iExplore 把遊戲內的 DCProfileCoreData.sqlite 給拉出來。遊戲的數據都是儲存在這個檔案之內。


    用 Firefox 內的 SQLite Manager 插件讀取檔案內的 ZDCPROFILE 表格。遊戲數值就存放在 ZDATA 欄。內容其實是 plist binary。把 ZDATA 內容輸出成檔案,以 Blob.plist 命名。


    用 Xcode 把 Blob.plist 打開。擴展 stage 下的內容。把 addStaffs 下的各個 Item 都打開,並把 Level 設定大於零時,便能使用該角色。

    2012年11月14日 星期三

    Windows 8 RTM


    朋友太太的公司想找人開發流動應用及網上平台,找我來談談。了解過相關要求,很多功能都做過,亦能汲取以往的經驗去加以改善。原來考慮以 iOS 或 Android 作為平台,但由於 Windows 8 更能支援公司慣用的 Microsoft Office 檔案,所以列為考慮之列。自從第一代 iPhone 出世後,已被它簡單易用的操作界面吸引,繼而投入 Mac OS X 的懷抱。Windows 已被成為拋棄的對象。今次工作上的需要,再一次嘗試最新版 Windows 8 RTM。

    公司內沒有多餘的 Mac,更沒有多餘的 PC。於是拿 VirtualBox 來安裝 Windows 8 RTM。一個似曾相識的感覺又再出現,錯誤畫面。只是今次由藍色換為黑色。錯誤畫面真是 Microsoft 最愛出現的畫面。查過原因,說是 CPU 不相容。可是,CPU 是兩個星期前買的 Intel i5,不可能跑不到 Windows 8 吧!估計是 VirtualBox 或 Linux 的問題。情況有待解決!

    2012年11月13日 星期二

    CentOS 下跑 VirtualBox 4.2 的方法


    昨天經歷過失敗之後,今天終於得到解決。試過不同的方法,最後原來要以 yum install kernel-headers kernel-devel gcc 安裝好 Kernel 的源碼及 gcc 編譯器,再以 KERN_DIR=/usr/src/kernels/2.6.32-279.14.1.el6.i686 及 export KERN_DIR 設定好路徑。這樣就能以 /etc/init.d/vboxdrv setup 進行安裝。之後才能順利運行 Virtual Machine。

    2012年11月12日 星期一

    CentOS 下跑 VirtualBox 4.2


    越接觸多客戶,就發現越大的公司越喜歡使用 Windows Server。替他們開發手機應用也好、Facebook 應用也好、甚至是 WEB 應用也好,都需要連上服務器。我公司是使用 CentOS Linux 系統的。由於不是所有客戶都能提供測試服務器,為了方便開發,還是要安裝 Windows Server。但是,要拿一台電腦來安裝 Windows Server 又實在浪費,於是打算在 CentOS 內安裝 VirtualBox + Windows Server。不過,問題來了。原本這個組合在 Mac 機上沒有問題,可是來到 CentOS 則跑不起來...。就算按照畫面所示,在 Terminal 以 root 登入,再輸入 /etc/init.d/vboxdrv setup 還是不行...。

    2012年11月9日 星期五

    iPad mini 真的開而不賣

    iPad mini 自開賣以來,一直長開長有。而我亦在第一時間在網上訂購一台刻名的 16GB iPad mini。苦等了兩個星期的生日禮物,原本明天出貨;竟然在今天收到 Cut 單通知!早在一個星期前已有朋友被 Cut 單。問題是,我在開賣首五分鐘內完成交易,理應優先處理。就算沒有貨也不用等了兩星期才發出通知吧!今次實在是極差的購物體驗!加上 iPhone 5 的開而不賣、Mountain Lion 的 Bug 到病、隨波逐流的產品,蘋果已經不折不扣地由 Steve Jobs 領導的一家偉大公司,變成由 Tim Cook 領導的大公司。實在非常失望!

    2012年11月8日 星期四

    在 CentOS 6 建立分享硬碟

    原本在 CentOS 下已經設定好分享硬碟,可是無法寫入。花了幾天時間,終於搞定了。以下是設定的步驟:

    1. 以 root 登入
    2. yum -y install samba
    3. mkdir /home/share/projects
    4. chmod 777 /home/share/projects
    5. vi /etc/samba/smb.conf
    6. 在 [global] 下輸入 unix charset = UTF-8
    7. 及 dos charset = CP932
    8. 把 security = share 改為 security = user
    9. 在檔案最尾加入

    [Projects]
    path = /home/share/projects
    writable = yes
    guest ok = no
    guest only = no
    create mode = 0777
    directory mode = 0777
    share modes = yes

    10. 儲存及離開
    11. /etc/rc.d/init.d/smb start
    12. /etc/rc.d/init.d/nmb start
    13. chkconfig smb on
    14. chkconfig nmb on
    15. 以 su - pacess 登入(假設已有 pacess 帳號)
    16. smbpasswd 並設定密碼

    2012年11月5日 星期一

    Rhino 3D


    最近有客人找我們開發一個 iPad 應用,他們提供了一個 .3dm 格式的檔案給我。找了很久,試到用 Windows 版本的 Autodesk AutoCAD 2013 能把它打開。可是會出現走樣的情況。搜尋了很久,終於找到了 Mac 版 Rhino 3D 能完整地打開 .3dm,而且是免費使用。真的十分幸運!有興趣可以到 http://mac.rhino3d.com/ 下載。

    2012年11月2日 星期五

    No Drive Found (Solved)

    公司同事一下子增加了,原先使用的 QNAP TS-210 已經滿足不了為多人服務。於是今天到黃金商場購買一台新服務器。裝嵌完畢後安裝 CentOS 6,顯示「No Drive Found」訊息後便休眠了。找了一會,原來是 BIOS 的 SATA 設定要由 IDE 改為 AHCI 模式才能解決。