2011年9月30日 星期五

透明 UIWebView

Transparency UIWebView

UIWebView 是一個很好用的物件。在《帝國 Online》的對話中,很多時一段對白做要用上數種顏色,就是用 UIWebView 來達成。不過 UIWebView 本身是沒有透明色,就算用上 [webView setBackgroundColor:[UIColor clearColor]] 也無法令它有穿透的效果。有時實在很不方便。原來用以下方法能夠把 UIWebView 設定為透明。首先把 UIWebView 按以下設定:

[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];

然後在 HTML 內把 Body 設定為透明:

body {
background-color: transparent;
}

設定後會遇到一個問題,就是 UIWebView 變成了透明,但它的影子卻沒有。要把影子也變成透明,我們可以:

NSArray *array = [webView subviews];
UIView *shadowView = [array objectAtIndex:0];
array = [shadowView subviews];
for (UIView *uiview in array) {
if ([uiview isKindOfClass:[UIImageView class]]) {
[uiview setHidden:YES];
}
}

2011年9月29日 星期四

8 號風球

早上起來,一直不看新聞的我,因為天色不妥而打開電視,發現已掛上 8 號風球。在香港,天文台在 8 號風球懸掛之下,要求市民留在安全的地方;亦意味著大家有一個假日。不過,在現今網絡時代,像 BeyondZ 這些軟件科技公司,很多工作都可以在家處理,亦可以透過互聯網存取公司檔案。所以即使人不在辦公室,仍然可以工作。

作為員工,難得遇到 8 號風球,當然不想工作。作為老闆的,當然希望工作進度不受影響。既然公司是行「責任制」,只要員工依時完成工作,即使打風沒所謂,遲到早退也沒有問題。如果同事的在家工作,我是十分感激。但我認為公事私事是要找個平衡點,偏向任何一方都不健康。所以,無論我是打工一族還是老闆一族,我都會落力地工作及準時放工,真是有需要時才在家中工作。

2011年9月27日 星期二

滿意的作品

自從 YSL 的項目完成後,便立即全力以赴製作友人公司的 iPhone App。這個作品花了很多心血製作,是繼 YSL 之後的精緻作品,到目前為此我都十分滿意。從畫面的構圖到色調的運用,從日曆的編程到圖表的繪畫,都花了不少功夫及技巧。當中亦嘗試了新的技術,比起時代廣場的 little diary 有長足的進步。十分多謝時代廣場找我寫 App,給我帶來很多機遇及經驗。

話說回來,今次這個 App 客戶端部份的開發進度已經完成大半了,相信一個多星期後便能完工;不過還有伺服器端的部份。希望能在十月中完成,十一月中上架吧!

2011年9月26日 星期一

BeyondZ 徵才啟示

BeyondZ Recruitment

BeyondZ 現正接受第二階段人才招聘。今次招聘的職位是「Mobile Apps Developer」編程方面的人才。如果你是人才、如果你看好手機軟件業發展的前景、如果你想一起成長、如果你想發揮專長、如果你懷才不遇、如果你沒有經驗,都歡迎加入 BeyondZ 的小家庭。把你的履歷及聯絡資料,甚至是過往作品,發信到 job@beyondz.com.hk。合適者會約見面試。不要錯過進入這個產業的最後黃金期!

2011年9月24日 星期六

為數字加入逗點符號

Number Seperator

在製作 YSL VIP Catalogue 時,我們希望把服裝的售價數字弄大一點而又不想包含 $, NT$ 之類的單位符號。編寫了一段長代碼後,發現 $ 符號沒有了。但若改為台灣地區後,NT$ 仍然會出現,實在摸不著頭腦。最後找到一個簡單有效的方案:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setGroupingSize:3];
[formatter setGroupingSeparator:@","];
[formatter setUsesGroupingSeparator:YES];
NSNumber *number = [formatter numberFromString:string];
NSString *commaString = [formatter stringFromNumber:number];
return commaString;

2011年9月23日 星期五

PNGShrink

進入了 Lion 時代之後,其中一個常用的軟件 PNGCrusher 因不支援而無法使用。經過一輪搜索之後,找到了一個代替方案 PNGShrink。它的用法跟 PNGCrusher 一樣,只是效能更加優勝。有興趣的朋友可以到 http://www.kainjow.com/pngshrink.htm 下載。

2011年9月21日 星期三

開發部例會

每個星期一的早上都是 BeyondZ 開發部舉行例會的時間;一個源自於在 U1 管理企劃部時的習慣。選在星期一的原因有幾個:一是希望在第一個工作天去明瞭該周的工作內容及目標,讓同事有充份的日子作出時間上的安排。二來是提供一個緩衝時間,萬一工作延遲,也能讓同事在星期六及星期日追回進度而不致影響表現。三來希望同事準時返工,萬一遲到便會被大家捉過正著。四來是減低「Monday Morning」效應的影響。在還沒回魂之際,用聽多過用腦就最好了。

至於開會的內容,主要是檢討上周的進度、提出工作上遇到的情況及處理方法、本周的安排,以及一些事項的公佈。前者進度是讓部門同事了解各個項目的進度,甚至增加相互之間的競爭。提出情況及處理方法則讓同事分享經驗,改善大家的設計及流程,也能讓經驗傳承,這一點對一個企業來說十分重要。本周安排能使同事清楚該周的工作。而最後的事項公佈則令員工明白部門及公司的情況,增加歸屬感。

初期例會中沒有最後的部份,經過 U1 同事的要求要加入。由於 U1 老闆的決策經常朝令夕改,使得員工們都無所適從,而且多數只有高層得知最新情況,其他同事均一無所知。一個團隊如沒有清𥇦一致的目標是做不出好作品;而且說明多一點,也能令員工明白多一點。雖然有時會因為了解而分開,但未嘗不是一件好事。就例如向員工清楚說明本年度凍薪,可能會造成同事辭職,但總好過支吾以對、吞吞吐吐。同事是知道的。所以我一直坦誠待人。要是同事有好的發展而離開,只好怪公司沒能力挽留。

2011年9月20日 星期二

公司願景

這幾天在看「放膽去闖」,書中作者大前研一先生及柳井正先生都提出經營一家公司需要有一個願景。那麼 BeyondZ 的願景是甚麼?坦白說我們從來沒有想過。恰巧今天收到 SmarTone 跟 Vodafone 分拆的電郵,內文提到了 SmarTone 的願景:

「數碼通會貫徹一向的策略,透過與別不同的服務及產品定位,以創造及提供無可比擬及更物超所值的客戶體驗。其超卓的網絡表現、獨家服務及貼心的客戶服務於客戶及市場中已備受廣泛認同。」

作為老闆,我希望公司能「提供客戶優質的服務,創造全新的體驗」。這個只是本人的意願,並不代表 BeyondZ 其他董事的想法。看來需要開個會討論一下。

2011年9月19日 星期一

2011年9月18日 星期日

很忙的一星期

Busy Week
今個星期特別忙。一天的中秋節假期,原有的項目開發,加上為「YSL VIP 之夜」的工作,時間實在不夠用,也因此沒有更新 Blog 的內容。今次 YSL 使用了 BeyondZ 兩件作品,其中一件使用了最先進的 WebSocket 技術,能把數十台支援 HTML5 機器的數據同步。為了提供最優質的作品及確保過程一切順利,花了很多時間檢查、測試、除錯、支援及危機處理。由於是晚出席的嘉賓都是上流名人,萬一出錯便會影響到客戶的形象;使得我感到壓力,不容有失。多謝各方同事的配合,當晚的程序運作十分順利。能讓客戶滿意,實在很高興。我也可以放下心頭大石,休息一下之後,又要趕製另一客戶 ING 的兩件作品!

2011年9月12日 星期一

自製 iPhone 充電電池(二)

DIY iPhone Charger Part 2
應朋友的要求去測試自製充電的耐久力,發電差了 5% 時,iPhone 4 出現無法充電的訊息。我把電池接到 iPhone 及 iPod Nano,它們均能充電。一直充,一直充。最後連 iPod Nano 也無法充了。不是因為沒有電力,而是電壓下降。iPhone 4 的要求比教嚴緊,所以最快出現無法充電的情況...。

2011年9月11日 星期日

自製 iPhone 充電電池

DIY iPhone Charger

最近 iPhone 4 的電消秏得較快,相信是 WhatsApp 及 Facebook 的用量多了的緣故。有朋友向我推介 Eneloop 差電,它是以 USB 為接口,所以不限定 iPhone 使用,可換性高。我親身試過其效能不錯,可是價格由朋友買的 $499 升至現時 $599,實在有點貴。我決定嘗試自製一個。在網上找到了 iPhone 的接口說明;發現只需要數款電阻便能成事。按著網頁的指示製作,結果成功能進行充電。

部件一覽:
AA x4 電池盒連開關 = HK$5
電阻 33K x2, 22K x2, 25K x1 = HK$2.5
USB 延長線 = HK$10
2700MAh 充電池 x4 = HK$78

2011年9月8日 星期四

設定 NSLocalizedString 所使用的語言

Force NSLocalizeString to Use a Specific Language

平常我們要按 iPhone 的語言設定來讀取相應文字會使用 NSLocalizedString(@"textKey", nil)。要是在英文語言環境下當成正體中文又如何做呢?原來十分簡單,只要以下設定就可以:

NSString *path = [[NSBundle mainBundle] pathForResources:@"zh-Hant" ofType:@"lproj"];
mainBundle = [NSBundle bundleWithPath:path];

之後不用 NSLocalizedString 改用 [mainBundle localizedStringForKey:@"textKey" value:nil table:nil]。所讀取的文字都當系統是中文環境,從而讀進中文字串。不過這個方法要在程式最開頭使用。

2011年9月7日 星期三

Windows Server 2003 SP2

今天找來一位高手表演安裝 Windows Server 2003 SP2。我一直在旁偷師。這次的安裝,緣於一個大公司客戶找 BeyondZ 開發 Facebook App,而她們的伺服器全是 Windows Server 2003 SP2。所以 Facebook App 也順理成章地用 ASP 來撰寫...。當中還用到了 MSSQL 及 SSL。看過高手的示範之後,我在 VirtualBox 內嘗試安裝一次,中間遇到了問題,但最後還是解決了!雖然繳付了高昂的費用,但確確實實上了一課,吸收到了新知識,還能認識多一位朋友,算是不錯!