2009年12月30日 星期三

未來五年內開發者所需的技能

剛看到這篇有趣的文章,其中提到:
1: One of the “Big Three” (.NET, Java, PHP) - 學會三大巨頭之一(.NET, Java, PHP)
2: Rich Internet Applications (RIAs) - RIA技能(Flash, Flex, JavaFX, Sliverlight)
3: Web development - 網站開發
4: Web services - 網路服務開發
5: Soft skills - 請放眼IT產業未來的觀點,並觀察公司外的走向
6: One dynamic and/or functional programming language - 雖然Ruby, Python目前還不是主流語言,但它們觀念是,所以有朝一日爬升上來時,你會的話就很吃香

2009年11月25日 星期三

免費的雲端防毒軟體 - Panda Cloud Antivirus

免費的雲端防毒軟體
http://www.cloudantivirus.com/en/
以「第一個沒有更新選項的防毒軟體」聞名全球的Panda Cloud Antivirus,能以最快最即時的雲端防護機制來對抗最新最危險的病毒威脅。別說不可能,藉由集體人工智慧的幫助,Panda先進的伺服器群組能在雲端收集來自世界各地用戶的惡意程式資訊,並且自動進行病毒碼辨識,進而將新的惡意程式病毒株在短短幾分鐘內歸檔完畢。集體人工智慧結合了本機電腦偵測技術與即時的雲端掃描機制,能在提供最強大防護的同時,帶給電腦最低程度的資源耗損(僅需消耗20MB的記憶體容量)。

2009年11月11日 星期三

Google發表新的程式語言「Go」

轉載自http://www.ithome.com.tw/itadm/article.php?c=58033:

Google周一(11/10)發表了新的系統程式語言「Go」,以加速程式開發。Go結合了像是Python動態語言的開發速度,以及擁有C及C++語言等編譯語言的效能及安全性,同時也是一個開放源碼計畫。

Google表示,近十多年來運算環境變化很大,但卻沒有新興的系統語言,導致軟體開發跟不上電腦發展速度。例如有愈來愈多的開發人員不喜歡Java及 C++的笨重型態,因而轉向動態的Python與JavaScript語言,而現在受歡迎的系統語言亦未妥善支援基本的垃圾蒐集或平行運算概念。

這也使得Google認為現在值得嘗試新的語言。Go是一個並行的,具垃圾蒐集功能的語言,並可快速編譯。它在單一電腦上可於幾秒內編譯一個大型的Go程式;而且提供一個軟體架構模型以讓相依分析更容易,並避免有過多的檔案及程式庫;Go的型態系統沒有階層,因此不用消耗時間定義各種型態的關係;Go可支援垃圾蒐集、同時執行及通訊;而且Go的主要設計之一就是用來撰寫多核機器上的系統軟體。

Go目前仍在實驗中,Google並鼓勵具冒險精神的開發人員可以試用該語言。雖然Google也希望可以採用Go來撰寫內部使用的伺服器軟體或其他軟體,但由於其功能尚未成熟到可供大規模部署,因此現階段僅進行小幅測試,例如golang.org後端的伺服器就是以Go所撰寫。

Go也是Google員工20%計畫的產物,Google允許員工可花費20%的時間於自己有興趣的專案上,Gmail實驗室亦是源自於該計畫。

------------------------------------------------------------------

GO 官方網站: http://golang.org/

Google IO大會上Guido van Rossum對於GAE的演講

由於python創始人Guido van Rossum被Google收錄進去...所以python可說是google開發的主力,而GAE也是基於python + django的環境改寫而成, 我們來聽聽去年Google IO大會上Guido van Rossum對於GAE的演講

然後也有介紹python的特性與其他相關部分

2009年10月17日 星期六

Flash Loader 載入外部 swf 時 stage=null 的問題

剛剛寫as的時候發生一個問題,由於被載入的swf裡頭有運用stage作場景控制,故被主頁載入時出現 TypeError: Error #1009: Cannot access a property or method of a null object reference.

原因在於被載入的swf在主頁尚未將它加入至場景上時就呼叫了建構子,因此,我們可以運用以下的方法解決:

public function Page05DocumentClass()
{
    if (stage){
        initApp();
    } else {
        addEventListener(Event.ADDED_TO_STAGE, initApp);
    }
}
        
private function initApp(evt:Event=null):void
{
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
}

先判斷stage是否存在,如不存在則以stage.ADDED_TO_STAGE作為啟動的依據。
但...這感覺是bug...

2009年9月10日 星期四

創造「耐心練習周期」(轉)

的確我是一個極度沒有耐心的人,所以要從現在開始訓練...

耐心是心的一種性質,可以藉由蓄意的練習而大幅提升。我發現可以磨練耐心的一個有效方法,就是創造真正的練習周期,也就是在心中設定練習耐心藝術的時間周期。生活本身變成了一間教室,課程叫做「耐心」。

你可以從短短的五分鐘開始,然後逐漸延長你的耐心的容忍度。剛開始的時候,不妨告訴自己:「好,接下來這五分鐘,我不要對任何事情生氣,我要保持耐心。」你將會有驚人的發現。保持耐心的企圖,尤其是你知道只要忍耐一下子,就會立刻加强耐心的容忍度。耐心是那種食髓知味的特質,你將會發現,你確實有能力保持耐心,即使時間長一點也可以。日子久了以後,你甚至會變成一個很有耐心的人。

當我們保持鎮定時,不讓自己生氣或懊惱時,就可以冷靜而堅定地控制行為,這比發怒生氣有效多了。這個讓心靈朝耐心努力的過程簡單易學,重要就是把持自己想發脾氣的情緒,不再鑽牛角尖。

有耐心讓自己得以維持心靈的平衡。没有耐心的話,一件小事就會化為緊急大事,以嘶吼、挫折、傷感情、和高血壓收場。這樣真是不值得,不論你是需要跟孩子、上司、或一個不可理喻的人打交道,如果你不想「為小事抓狂」,改進你的耐心功力,成就高度的EQ,這是最佳有效的調合劑,就從現在開始吧!

2009年7月27日 星期一

前瞻與創意思考

創新事實上是指創意加變革,單單只有創意但未付諸行動,就還不是創新。例如 明基科技董事長 李焜耀 說過“創新是一種行為的習慣,習慣獨特的方法、理念與結果,勇於做自己”,不隨波逐流,不盲從,正是創新的根源。

但是,創新並不是突然靈光乍現就足夠,必須還得包括詳細的分析與系統化的流程一步步實現,然而時代在變,人也在變,整個外在環境都在劇烈變動,組織的管理與運作也必須改變,不過需要改變什麼?什麼需要改變?可以奇異的領導力四個“E”為其重點:

(一) Energy : 高度的幹勁
(二) Energize : 激勵他人的能力
(三) Edge : 制定艱難決策的精準度
(四) Execute : 貫徹執行達成目標的能力

由此可見創新是能夠被管理的,但如何能有效領導創新呢?身為一個創新領導的角色,該員必須要有幹勁,並能影響其他人使他們同樣有幹勁,另外必須要精準不莽撞(瞎忙),並要真正做的到。換句話說,改變與變革必須從領導者本身做起,先革自己的命,在帶領整個企業完成變革大業,整個關鍵在主管思維的改變。邱教授認為可在日常生活中實際做出五種改變:

(一) 閱讀(而非瀏覽)
(二) 溝通(而非命令)
(三) 欣賞(而非排斥)
(四) 寬容(而非封閉)
(五) 思考(而非情緒)

創新立基於四項要素:資源、組織文化、組織氛圍、程序,四種要素都等同重要,必須善加整合才能有機會成功創新。而當條件均完備後,則必須揪出阻礙創新的幾項因子,諸如:策略模糊不清、欠缺事務輕重緩急概念、領導風格過於集權與放任、高階團隊缺乏效率、中階主管協調與溝通能力不足,部門間沒有生氣與缺乏互信等...,排除上述條件後,最後仍需要有效的前瞻性思維,如此才能將成功的機率提高。

2009年6月25日 星期四

適當地運用研發與創新

"研發"囊括了"研究"與"發展",並可細分為三個部分:

1. 基礎研究 - 主要為了增加科學知識,或許沒有後續的商業應用。
2. 應用研究 - 增加特定應用或需求的知識。
3. 發展 - 應用知識產生有用的實體產品。

Sam感覺大部分在台灣的中小企業都是先產生3的想法再回過頭去研究2...至於1基本上是無產值所以不太被重視。因為總是要在最短時間內得到成效,如果不好才能評估改進或淘汰,或許因應各國的風情不同會產生差異性的結果,但從過去歷史的經驗上,很多大賣的產品都不是專門為了商業利益所開發,可能是機緣巧合,也可能只是對該項事物有極大化的熱情,而促使個人與團隊不惜成本去研究,最後出乎意料的受到好評。

日前感謝"大Sam"的關照,有榮幸去參加Google Marissa Mayer的座談會,她也敘述了Google為外人津津樂道的80/20理論。Sam認為,20%的時間拿來計畫員工真正想做的事的確是有其必要,當然公司或許會有很好的idea產生,另一方面也是舒緩了員工的一週內的長期工作壓力,人就如同橡皮筋,久了之後會彈性疲乏,效率越來越低,如果在此能得到一些成就感之類的激勵,將會快速且有效的恢復"彈性",也為公司帶來好績效。

當員工自行利用空閒時間進行基礎研究時,應該要感到相當高興,因為他可能是真正熱愛這份工作,千萬不要認為不能為公司帶來財富就去遏止,機會是隨處可見的,遇到對的人、對的時間,就有很大的機率能夠成功。

2009年6月6日 星期六

Objective-C 初級讀本翻譯

由於目前 Sam 開始寫 iPhone 程式,但又完全不熟悉 Objective-C,所以只能依照 Apple dev center 內的教學流程走,當然也要從 Objective-C 的一些觀念下手,Sam 花了兩天時間將 Learning Objective-C: A Primer 這篇文章翻譯成中文,畢竟有關資源實在太少,也只能希望未來更多人能夠幫忙翻譯裡頭一些好文章,讓大家一起加入 iPhone 開發的行列。

如果翻的不好還請多多見諒。

文章下載

2009年5月29日 星期五

Mircosoft Azure 的野心

有在注意產業相關新聞的人應該都知道微軟已經和Zend(PHP)合作了。很多人可能覺得很奇怪,也有些人認為這樣很好,讓PHP能夠更容易在Windows伺服器上使用...

哪有那麼簡單!!!

Sam 覺得微軟是為了他們的雲端平台Azure,畢竟一開始就落後了Google, Amazon, IBM,想要及時迎頭趕上是蠻麻煩的,於是乎只好搬出這招,打著PHP的光環吸引更多PHP開發者(為數驚人的高市占率),而且其他家平台都是 Java、Python 之類的語言,較為小眾市場或不是那麼容易入門,相對的以商業角度來看,微軟下對了一步險棋。

但就Sam開發的經驗來看,PHP似乎在系統動態套件擴充部份有一點糟糕,有玩過PHP設定的人都知道要把套件 1.重新編譯(Unix-like) 2.套件檔放到lib下然後修改設定檔(Windows) ,不過雲端平台表示碰不到系統,自然就無法安裝這些東西,這是Sam目前比較大的疑問,當然,微軟也有可能做出一套虛擬設定環境,到時候可能會改觀。

相較於其他廠商,以 Google 使用 Python 來看,雖然 3rd Party Library 以往要採 setup.py 安裝,但其實它們都有附上源碼檔案,也就是說你只要把該檔案放到應用程式裡一樣可以叫用 import XXX ,和目前微軟比起來哪個比較方便就見仁見智了。

不過身為使用者的我們還是樂見許多大廠爭相開發平台,畢竟有利無弊,多了許多選擇