2011年2月18日 星期五

電信業者還能做什麼

這篇寫的真好 (原文)

一年一度的Mobile World Congress 在巴塞隆納展開了。今年會是歷年來最熱的一年,因為智慧型手機及平板電腦的大舉入侵改寫了行動應用生態,Mobile 真正從「無線」走向「無限」扉頁即將正式展開。Twitter CEO Dick Costlo在MWC 上發表演說,也正式宣告網路服務無所不在的王者地位。

在眾多載具中,被視為如革命般重要的行動設備,因著iPhone 所創造的ecosystem 打敗了純粹規格取向的手機大廠,也狠狠的打了所有電信業者一巴掌:在這個生態圈裡,擁有「最後一哩」(last mile)的電信業者,不過就是個隨時可以被更換的頻寬提供者,成為行動業的陪襯角色。

電信業者在這波市場洗牌中玩完了嗎?
Telecom TV 訪問了世界排名第三的Telefonica人員以及市場分析師Emma Mohr McClune 、開發者社群WAC 的VP,從手機Application 的角度切入,探討電信業者在這個新領域何去何從。從AppStore 在2007的混沌未明開始,沒有任何人能預料到今天Apple 及 Android 兩大陣營得以發展的如此蓬勃。電信公司在這場誰與爭鋒的競賽裡,並未扮演任何重要角色。Android Market、Apple AppStore 全都可以繞過電信業者,自行運作apps 的營運買賣,Emma 提到,Apps 是行動數據( Mobile data)前所未見最快速成長的類別。

看完這段訪談才發現,原來電信業者的財大氣粗現象,不是只有台灣才有(苦笑)。來自電信公司的先進們可能非常不習慣被挑戰,不順從的聲音本來就不悅耳,卻是能指出機器壞在哪裡的顯著線索。總結該段談話,整理出幾個給Operators的建議:

1. 改變與 developer 的關係:

Telefonica 的Jose 自己提到,電信業者跟developers 從來就沒關係「和諧」過,Jose 知道developer 普遍認為電信業者「傲慢、無趣、官僚、動作慢,甚至貪婪、刻薄。」(原文:Arrogant, boring, slow, bureaucratic, mean and greedy. 不過我接觸過的窗口多半都很認真負責,也相當友善。(汗)) 這是Telefonica 積極想改變的,這改變可以先從把developer 視為生意對象,視為接觸客戶的新管道開始。以前都是developer 跟電信業者提案,其實電信業者也可以主動跟開發者提案,Jose 提到Chainr 就是一例。Emma 也提到,Orange 電信也積極嘗試跟developer 重新建立關係的路子。拓展開發者是電信業者在這場遊戲中的重要課題。

2. 開放與協助:

Jose說道,早先使用電信業者的API是需要付費的(台灣沒有聽說,但是手續重重就是了)。現在Telefonica不但會免費開放API,甚至有可能付費給開發者來接自己的API,例如從app發送SMS。(這就對了,revenue sharing 可以提供developer動力,而且誰開的條件好當然就接誰的。)

此外,電信業者也會提供開發者協助。Developer通常資源跟資金都有限,如果可以提供數據跟參考資料,幫助開發者選擇適合自己的作業系統跟apps類別,間接也提供電信業者多接觸優秀開發者的機會,並掌握市場的脈動。

3. 飛上雲端:

以Evernote作為例子,他提供了很棒的跨平台使用者經驗,無論你使用web、使用iPad、用iPhone或用Android,都能得到很好的使用經驗,這是之前完全沒有過的。Jose 提到跟某開發者的合作經驗,剛開始對方接了SMS API,後來更因為將服務拓展到不同devices便更進一步介接語音及MMS。因為用戶的朋友們可能使用完全不同作業系統的手機,在social network如此重要的今日只服務一種device的用戶是很難拓展服務的。電信業者可以扮演NaaS(Network as a Service)的角色、提供雲端服務,協助這些developer 創造更佳跨平台使用經驗,並得以從有限的用戶身上獲取合理利潤。

4. 重新發明規則、創造市場

Emma認為,電信業者要打破現況的最大挑戰,就是重新發明遊戲。趨勢已無法回頭,完全不能跟前些年同日而語。電信業者必須創造新的生態系統、找到新夥伴、導入創新的思考及規則。事實上,電信業者可以利用提供API在開放市場中提供自己專有的服務,例如行動付費、廣告,或是創造在iOS及Android之外、只有電信業者作的到的ecosystem。

除了訪談裡提到的建議之外,個人認為台灣的電信業者如果也希望在apps的遊戲中突破現況,還需要熱情(Passion)。這不是什麼大話。試想,就拓展開發者、引進創新這兩個課題而言,既有的組織結構跟人員是否足以應付?「熱情」會讓人尋找願景、勇於突破,而在長期穩定台灣電信市場裡這樣的組織或人員可能反而是個麻煩。相信各家電信公司裡都有這樣的人,也請諸位高層們少些報告、多些交流,跟這些人聊聊,也許一杯咖啡換一個「Wow」的點子,絕對值得。

2011年2月15日 星期二

SQL Server Performance Tuning Tips

避免遇到以下的 SQL Server Performance 殺手
  •     Poor Indexing
  •     Inaccurate Statistics
  •     Excessive Blocking and Deadlocks
  •     Non-Set-Based Operations
  •     Poor Query Design
  •     Poor Database Design
  •     Excessive Fragmentation
  •     Nonreusable Execution Plans
  •     Poor Execution Plans
  •     Frequent Recompilation of Execution Plans
  •     Improper Use of Cursors
  •     Improper Configuration of the Database Log
  •     Excessive Use or Improper Configuration of tempdb

2011年2月11日 星期五

SQL Server Installation Notes

Check lists will vary for everyone but there are a few configurations that will be
common to all lists. For example:
• Data and Log File Standard Location
• Data: E:\DataFiles
• Logs: F:\TLogs
• Service Account: (Created service account and grant local privileges)
• TempDB Location
• T:\TempDB
• Special Permissions (memory – AWE)
• Lock Pages in Memory
• Boot.ini
• Configure for /PAE switch if 32 bit Windows 2003 and SQL
Server Standard or Enterprise
• Additional vendor-supplied (Non SQL) applications
• Defragmentation
• SQL Backup Compression

利用 VS 2008 建立 SQL Server 2008 Stored function

首先在資料庫端需要先設定相容屬性,否則在 VS 2008 Deploy 時會出現相容的問題
EXEC SP_DBCMPTLEVEL '您的資料庫', '100';

接著設定 SQL Server 能執行 CLR 功能

EXEC sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO

這兩關設定後,應用程式就可以直接 Deploy 到您的 SQL Server 了


2011年2月8日 星期二

Java For Debug Remote

1. Use a text editor to open the StartWebLogic.cmd script for your development domain.

set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n

2. In the last line of the file, add the %DEBUG_OPTS% variable in the place indicated below:
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %DEBUG_OPTS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server


3. To attach the debugger from within Eclipse select the Run > Open debug dialog
4. Create a new "Remote Java Application"
5. Enter the host and port corresponding to the DEBUG_OPTS.