2012年9月29日 星期六

WhatsApp 的神奇照片

Interesting Image in WhatsApp

昨天收到朋友一個 WhatsApp,是一張美女圖。按下去後,彈出的竟然是猩猩照片!真的給嚇了一下。我不是被猩猩嚇倒,而是給作者的創意嚇倒了。之後忍不住想知道如何製作。在網上找不到有關方法,唯有著手嘗試。

利用 iExplorer 進入 iPhone 4S 的 WhatsApp 目錄,找到了這張猩猩照及美女縮圖。原來照片跟縮圖是分別兩個檔案,所以能造出這種驚喜。看到其他的縮圖,其像素高度都是 150,於是我照辦煮碗地準備好兩張圖片,並以相同的名稱命名,覆蓋了原有的圖片。成功發送給朋友。

不過,這次實驗有點問題。縮圖確是換了,但相片仍然是猩猩照(應該要 Steve Jobs)。發現轉寄的相片是由 WhatsApp 服務器直接傳送。我只好把 Steve Jobs 相片先發給自己(只要把自己的號碼加到聯絡人),再用 iExplorer 把縮圖替換。這次實驗成功了!由於中秋節快到了,我把這個概念製成中秋節的祝福,送給了我的朋友,大家都十分驚喜!

2012年9月28日 星期五

說謊的應徵者

公司最近再度擴張,需要新增編程及美工兩個職位,所以面見的機會多了。昨天面見了一位編程人員,他剛從一家遊戲公司離職。而那家遊戲公司的老闆正是我的朋友。

每次遇到離職後才找工的人,我都會關心一下原因。原來朋友公司發生地震,他是被遺棄的一群。遇著士氣大跌、人手不足才斷言離開。打算換個環境繼續發展。說來沒甚麼不妥。他進行的編程能力測試中規中矩。經過協商後,已被編為考慮之列。

面見完畢後,當然向朋友查詢這位應徵者的態度及能力。得出不好的評價之外,更發現原來他早在二月時已經被革職;而不是剛剛在九月離職。被公司炒魷不是一個問題,倒是說謊卻是十分嚴重。而在面見時已得知我認識前雇主,但仍要說謊的,則更不能原諒。香港遊戲界行頭很窄,一位同事能在別家公司再次合作的機會多的是。在我身上已經發生過五次。這位仁兄遇著我,當然會被列入黑名單!

B.Duck Camera Android 版的廣告曝光



今日香港的五大免費報章頭版刊登了 Samsung Galaxy Note 2 的廣告,當中推介《B.Duck Camera》。除此之外,《新 Monday》及《Samsung Apps》應用商店也有相關的報導及廣告,是我公司有史以來媒體曝光率最大的一個應用程式。

2012年9月24日 星期一

在 Finder 中跳到指定目錄


由 Windows 轉為 Mac OS X 環境遇到最常見的問題是無法直接跳到某個目錄。原來在 Finder 按 ⌘-⇧-G 會彈出輸入欄。輸入路徑後拍一下 return 便可。

2012年9月21日 星期五

B.Duck Camera Android


Samsung 將於月尾推出 Galaxy Note 2,今次有幸跟 Samsung 合作,推出《B.Duck Camera》Android 版本。上傳 APK 到 Samsung Apps 的步驟比 Apple App Store 煩複,但審批的進度確是很有效率。比起現在 Apple 要上傳後等十天才開始審批,再等十天才有結果相比,是超快的速度。Apple 要加把勁了!

2012年9月20日 星期四

2012年9月19日 星期三

AMIGO Tank 1.0


AMIGO Tank 1.0 已經完成。它是由 iPod touch + iPhone + Arduino 組成的機械車。利用手上 iPhone 的加速檢測器控制 AMIGO Tank。數據會由 iPhone 透過藍牙傳送到 iPod touch,指令經過解碼後會經由音響線輸出到 Arduino。Arduino 了解指令後會向馬達或 LED 燈發出訊號。

現時版本 1.0 的電線十分凌亂,而且母板的排列也不夠美觀,稍後會製作 2.0 版本。而軟件方面,目前只有前進、後退、左行、右行、左轉、右轉、停止。下一階段希望能加入車頭燈開關、彩色訊號燈、影像傳輸等功能。

2012年9月18日 星期二

2012年9月17日 星期一

Smart App Banner

iOS 6 推出了名為「Smart App Banner」的功能,旨在吸引 WEB 的流量流進 Apps 方面。只要在網頁加入<META name="apple-itunes-app" content="app-id=399706539" /> 便能支援。當用戶利用 iOS 裝置瀏覽網頁時,便會彈出「Smart App Banner」。

2012年9月15日 星期六

Arduino IDE 的 Library 設定

Library Settings on Arduino IDE

在網上找到了由 cpp 寫成的 Arduino Library,不知如何設定。看到一大篇的設定文章,因為沉悶而跳過。可是,答案就在當中。還是要乖乖地把它看完。原來所有第三方 Library 檔案都要放在 Sketchbook 目錄下的 library 目錄內,並以目錄形式出現。準備好後重開 Arduino IDE 便會載入相關 Library。編譯也得到成功!

2012年9月14日 星期五

MCU 連接器

iPhone to MCU Connector

一直都想用 iPhone 的耳機輸出來跟 MCU 通訊。線路圖有了、零件也買了、測試用的程式也準備了。剛巧公司新聘了主修電子科的同事,拜托他代為焊接。這就是完成品!不錯吧!

2012年9月13日 星期四

又是M$ 惹的禍(五)


替客人開發的雜誌應用推出了 2.00 版本。客人開始上傳 PDF 雜誌。可是有部份雜誌上傳成功後卻在轉換成 JPG 時失敗,在網頁端傳回 Internal Server Error 500。他們使用 Windows Server + PHP + MySQL 的組合。我不熟悉 Windows Server 下的設定 PHP 沒有錯誤訊息 Error log。檢查過 PHP.ini 設定正常。在這個情況下只好不斷嘗試、不斷修改。

嘗試過直接在服務器端的終端機把 PDF 轉換 JPG,以確認問題是發生在外部的轉換程式,還是 PHP。發現外部程式無法順利輸出 JPG 檔案,也沒有任何錯誤訊息。於是把數值改動一下,看看效果。找到使用較低解像度才能順利輸出。convert -colorspace RGB -resize 1152 -density 112 -quality 80 xxx.pdf xxx_%03d.jpg。解決了輸出問題後,Internal Server Error 的問題仍然存在。於是在 PHP 內尋找疑似問題的地方。在 PDF 轉換 JPG 的指令中會分別有 stdin, stdout 及 stderr 三個設定。它們本來都是 r 或 w 值。原來把 stderr 值設定為 2 => array("file", "error_log.txt", "a") 便能把錯誤輸出到檔案內。

經過多番嘗試,問題還沒解決。最後不斷在網上尋找線索,找到了原來是外部應用程式 FastCGI 的工作時間超過了預設值。只要如圖設定好 C:\WINDOWS\System32\inetsrv\fcgiext.ini,重新開機便可。

2012年9月12日 星期三

PL2303 on Mountain Lion


完成了一部份 Raspberry Pi 的研究之後,焦點落到 Arduino UNO 身上。自從升級到 Buggy Mountain Lion 之後,都沒有用它來接駁 Arduino UNO。今日一試發現本來使用的 Serial 驅動不見了。網遊一會找到了給 Lion 用的 PL2303 驅動安裝程式,比之前找到的方法更好更方便。在 Mountain Lion 能成功安裝及使用。下載地址是: http://getfile3.posterous.com/getfile/files.posterous.com/changux/MiNKdVYtnY3Ypl8IpkqAJRZvpjJTkVpoabno238DlwYtss78VZn6hQiZQEk2/PL2303_Serial-USB_on_OSX_Lion.pkg

2012年9月11日 星期二

在 Raspberry 上跑 SSH

SSH on Raspberry Pi

既然 WiFi 手指運作正常,最好不過的開發環起是無線登入 Raspberry Pi 進行組譯及執行。要達到這樣的目標,非要 SSH 不可。在最新 8 月 16 日版本的 Wheezy 中包含了打開 SSH 的選項。只要在開機後輸入 sudo rasp-config 便能找到。之後就算重啟都會自動執行 SSH 服務器。

本來簡單的工作,最終竟花了兩個小時才能達成。在 MacBook Air 的 Terminal 上執行 ssh pi@192.168.1.100 得到 Connection refused 的答案。醒覺到 Raspberry 及 Air 雖連接上 Apple Airport Extreme,但一個是 Guest Network、另一個是正常 Network。把 Air 也改用 Guest Network 後,滿以為快要成功。卻出現 Request timeout 錯誤。以前 Airport 有一個選項,決定 Guest Network 中的裝置能否互相通訊。可是較新的 Firmware 卻再也找不到這個選項。當然預設值是不能溝通。花了一輪功夫仍然徒勞無功。家中的正常 Network SSID 是隱藏的,以避免不必要的麻煩。可是根據前幾天的測試,Raspberry 是接不上隱藏 SSID。為了測試,只能把它浮上水面。結果一切正常。無線登入十分好用。問題是我還是希望 Network SSID 是以隱藏方式出現...。

2012年9月10日 星期一

SQLite Manager


現在很多流動應用項目都會用上 Sqlite,但是要修改表格內容時都得輸入 SQL 指令,效率實在很低。幸而,找到了一個能在《Firefox》使用,名為《SQLite Manager》的插件。它能即是修改內容,也能輸出整個表格,甚至是輸入 SQL 指令。十分好用,有興趣不妨安裝。

2012年9月9日 星期日

Raspberry WiFi


網友 Brian 知道我買了 Raspberry Pi 後,說設定不了 WiFi。我十分希望能挑戰成功。翻查過網上資料,到深水埗購買了 D-Link DWA-131,盛惠 HK$135。資料說「Works out of the box on Raspbian “wheezy”」。回家後一試,發現上當了!不是 Plug & Play 的。經過一輪測試,終於成功連線!

1) 啟動 Raspberry Pi 到 Window 介面
2) 選 Accessories - Root Terminal
3) 輸入 modprobe r8712u
4) 輸入 lsmod | grep r8712u
5) 如看到有內容輸出便代表成功
6) 輸入 cd /etc/network
7) 輸入 leafpad interfaces
8) 把整個文件的內容改為:
auto lo wlan0
iface lo inet loopback
iface eth0 inet dhcp
iface wlan0 inet dhcp
wpa-ssid "Pacess"
wpa-psk "Password"
9) 把以上 Pacess 改為你的 Wifi 名稱
10) 把以上 Password 改為你的 Wifi 密碼
11) 要留意 Wifi 名稱不可以是隱藏的名稱,否則會連不上
12) 儲存及離開
13) 回到 Root Terminal
14) 輸入 /etc/init.d/networking restart
15) 成功的話會看到「done.」,否則是「No DHCPOFFERS received.」

2012年9月8日 星期六

iPhone 5?


總覺得 iPhone 5 這個命名有點怪。跟據 Apple 的潛規則,新一代 iPhone 最可能會叫 The new iPhone 或 iPhone 4G。至於 iPhone 5,5 是指第五代。問題是 iPhone 4S 已經是第五代。如果要以代數來分,就會是 iPhone 6 了。至於大會邀請卡的 5 字,我想是有 5 個系列(iPad, iPhone, iPod, Mac mini, iMac)的產品更新或 5 個新功能,甚至是代表 iPod touch 5G 吧。期待星期四的發佈。

2012年9月7日 星期五

Raspberry Pi 無限開機

Boot Loop of Raspberry Pi

Class 2 SD 卡準備好了。OS 也安裝好了。可以進行首次起動,卻遇到了很多問題。

首先在接駁上遇到難題﹣「電源」。一真以為電源插頭是 mini USB,家裡的線有很多。當插進去 Raspberry Pi 時無論怎樣都插不入,才發現是 micro USB 接口。找遍全屋,終於找到了一條。那是數月前買 e-Zone 送的手提充電器內的接線。家中有隻 5V 250mA 火牛,USB 接口的,整個電力部份完整了。借了 Apple TV 的 HDMI 線一用,加上藍牙無線鍵盤及滑鼠,能夠起動了。

開機後,電視已經偵測到是 Raspberry Pi。

起動時跟其他 Linux 一樣彈出啟動狀況。

可是這個畫面看了幾回,似乎進入了無限迴廊。難道是友人說 SD 卡必須是 Class 4 以上嗎?

好不容易才進入到選單畫面。不過,鍵盤及滑鼠全無反應。還好,家中有有線的 Apple 鍵盤及滑鼠。接上後仍然沒反應。難道是友人說官網直接下載的 Linux 影像檔有起動問題,要改用 BT 那個?

在網上找到了相關資料,指是電力輸出問題。於是找來 iPhone 4 的充電器,是 1A 輸出的。這次能順利起動了,也能操作選單。第一件事是把 Partition 由 2GB 擴展到 SD 卡容量。設定好 Locale 及時區後,正式重啟。進入了 Raspberry 的 X Window。

系統內預設了多個由 Python 寫成的遊戲。

瀏覽器介面簡單,能載入我的網誌。不過,無法顯示中文。應該是沒有設定中文 Locale 的問題。

2012年9月6日 星期四

Raspberry Pi 入手


星期一在 Element14 訂購了 Raspberry Pi Model B 底板,價錢 HK$289。昨天黃昏便已送抵家中。由於晚上的寬頻連線速度很慢,無法下載 Linux 到電腦內。今天,已經準備好 SD 卡及 Linux,晚一點便會進行第一次試飛。

2012年9月5日 星期三

把面書應用加到專頁內

Adding Facebeook App to Facebook Fan Page

BeyondZ 間中會接 Facebook App 的開發工作來做。以往的作品都是以 https://apps.facebook.com/xxxx 來開啟,但最近發現多了 App 包含在 Page 內。它們其中一個分別是後者的上方會多了一欄。以下是把 Facebook App 加到 Page 內的步驟:
1) 打開 https://developers.facebook.com/apps/
2) 建立 Facebook 應用
3) 輸入 "Display Name"

4) 開啟 "Page Tab"
5) 輸入 "Page Tab Name"
6) 輸入 "Page Tab URL"
7) 輸入 "Secure Page Tab URL"
8) 儲存

9) 打開 https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL
當中 "YOUR_APP_ID" 是你的 Facebook App ID。而 "YOUR_URL" 是跟 "Page Tab URL" 一樣

最後出來的樣子會大概是:
https://www.facebook.com/dialog/pagetab?app_id=188381107896576&next=https://www.pacess.com/webServices/facebookGame/

10) 在畫面點選想要加入 App 的專頁名稱
11) 點選 "Add to Page" 按鈕
12) 大功告成!

參考:
https://developers.facebook.com/docs/appsonfacebook/pagetabs/

2012年9月4日 星期二

NXT Segway Test-run #1


大女兒升上小一了,一大早便要乘坐校車。送完女兒上車後有一個小時時間,於是編寫一下 NXT Segway 程式。初步效果不好,有待改進。

2012年9月3日 星期一

LEGO MINDSTORMS NXT Unbrick


前晚把手上的 NXT 1.0 改裝為 NXC 開發環境,誰知靭體在更新到一半時,NXT 自動關機,屏幕再也沒有顯示。只聽到有節奏、輕輕的滴答聲。看來是變成一顆磚了。手上的 MINDSTORMS CD-ROM 只能在 Power PC 或 Windows 下執行,現在全屋都是 Mountain Lion,Intel CPU,無法進行靭體更新。在 LEGO 網找到了 NXT 2.0 軟件,花了點時間才能完成下載。幸好介面易用,能成功更新靭體,重回正常模式。

2012年9月1日 星期六

LEGO Segway


既然 Gyro Sensor 到手,當然急不及待砌隻 LEGO Segway 玩弄一下。花了點時間完成硬體部份,接著便是軟體。我將會使用 NXC 進行開發。