如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2012年8月29日

AutoIT程式如何處理跳出式對話窗(popup dialog)

作者: Fred Wang (FW知識瑣記) 日期: 2012/8/29
AutoIT模擬Windows操作常發生跳出式對話窗(popup dialog)的處理,我整理了一個處理模式的範例,供大家參考

Local $strTitle = "==title=="           ; 要偵測的跳出對話窗的window title  
If WinWait($strTitle,"",3) <> 0  Then   ; 等待該對話窗出現(最多三秒)
   WinActivate($strTitle)    ; 將該對話窗變成最上層的active window
   WinWaitActive($strTitle,"",3)  ; 等待它變成active(最多三秒),才往下執行
   SendKeepActive($strTitle)  ; 在模擬鍵盤動作Send()過程,保持此對話窗為active,避免干擾
   If WinActive($strTitle) Then 
      Send("{ENTER}")     ; 送出鍵盤動作(依每個對話窗按鈕,有所不同)
      ...                 ; 或對話窗特有的動作
   EndIf
   WinWaitClose($strTitle,"",3) ; 等待該對話窗關閉(最多三秒),,才往下執行
EndIf

2012年8月28日

AutoIT程式怎樣讀取MS Word檔案中的表格內容

作者: Fred Wang (FW知識瑣記) 日期: 2012/8/28

在AutoIT論壇中找到一篇非常好的範例, 將word中的表格讀入array中
http://www.autoitscript.com/forum/topic/94390-wordau3-how-to-read-a-table-into-a-variable/
其中網友big_daddy(Bob Anthony)寫的

稍加改寫前面幾行, 測試OK! 如下


#include <word.au3>
#include <array.au3>
#AutoIt3Wrapper_Au3Check_Parameters = -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
Global $oWordApp, $oDoc, $oTable, $aTable
Global $fileName = FileOpenDialog("Please select a file.", @ScriptDir & "\", "Images (*.doc;*.docx)", 1 + 4)
If @error Then
    MsgBox(4096, "", "No File(s) chosen")
Else
    $fileName = StringReplace($fileName, "|", @CRLF)
EndIf
ConsoleWrite($fileName & @LF)
Global $nthOfTable = InputBox("Pasring Word Doc","Which table will you get(1,2,3...)")
if FileExists($fileName) Then
 _WordErrorHandlerRegister()
 $oWordApp = _WordCreate($fileName, 1, 0)
 $oDoc = _WordDocGetCollection($oWordApp, 0)
 $oTable = $oDoc.Tables($nthOfTable)
 $aTable = _WordDocTableWriteToArray($oTable, True)
 _ArrayDisplay($aTable)
 _WordDocClose($oDoc)
 _WordQuit($oWordApp)
Else
 MsgBox( 1 ,"Message", $fileName & " Not Found!" )
Endif

; #FUNCTION# ;===============================================================================
;
; Name...........: _WordDocTableWriteToArray()
; Description ...: Reads the contents of a Table into an array
; Syntax.........: _WordDocTableWriteToArray(ByRef $o_object, $f_transpose = False)
; Parameters ....: $o_object - Object variable of a Word.Application, Table object
;                  $f_transpose - Boolean value.  If True, swap rows and columns in output array
; Return values .: Success - Returns a 2-dimensional array containing the contents of the Table
;                  Failure - Returns 0 and sets @ERROR
;                  |0 ($_WordStatus_Success) = No Error
;                  |3 ($_WordStatus_InvalidDataType) = Invalid Data Type
;                  |4 ($_WordStatus_InvalidObjectType) = Invalid Object Type
;                  @Extended  - Contains invalid parameter number
; Author ........: Bob Anthony (big_daddy)
; Modified.......:
; Remarks .......:
;
; ;==========================================================================================
Func _WordDocTableWriteToArray(ByRef $o_object, $f_transpose = False)
    If Not IsObj($o_object) Then
        __WordErrorNotify("Error", "_WordDocTableWriteToArray", "$_WordStatus_InvalidDataType")
        SetError($_WordStatus_InvalidDataType, 1)
        Return 0
    EndIf
    ;
;~  If Not __WordIsObjType($o_object, "table") Then
;~      __WordErrorNotify("Error", "_WordDocTableWriteToArray", "$_WordStatus_InvalidObjectType")
;~      SetError($_WordStatus_InvalidObjectType, 1)
;~      Return 0
;~  EndIf
    ;
    Local $i_cols, $trs, $tr, $tds, $i_rows, $col, $row
    $tds = $o_object.columns
    $trs = $o_object.rows
    $i_cols = $tds.count
    $i_rows = $trs.count
    Local $a_TableCells[$i_cols][$i_rows]
    $row = 0
    For $tr In $trs
        $tds = $tr.cells
        $col = 0
        For $td In $tds
            $a_TableCells[$col][$row] = StringReplace(StringStripCR($td.Range.Text), Chr(7), "")
            $col += 1
        Next
        $row += 1
    Next
    If $f_transpose Then
        Local $i_d1 = UBound($a_TableCells, 1), $i_d2 = UBound($a_TableCells, 2), $aTmp[$i_d2][$i_d1]
        For $i = 0 To $i_d2 - 1
            For $j = 0 To $i_d1 - 1
                $aTmp[$i][$j] = $a_TableCells[$j][$i]
            Next
        Next
        $a_TableCells = $aTmp
    EndIf
    SetError($_WordStatus_Success)
    Return $a_TableCells
EndFunc   ;==>_WordDocTableWriteToArray

AutoIT程式怎樣讀取MS Word檔案的內容

作者: Fred Wang (FW知識瑣記) 日期: 2012/8/28

今天又開始寫AutoIT程式, 想要自動讀取,解析出MS Word檔案的內容, 網路上找的sample program is not work!  因此自己改寫, 測試成功, 可以提供網友參考!
採用AutoIT UDF word.au3


#cs ----------------------------------------------------------------------------
 AutoIt Version: 3.3.8.1
 Author:         Fred Wang (FW知識瑣記 http://fredwang.blogspot.tw ) 
 Script Function: Read MS Word's content using AutoIT UDF
 Date : 2012/8/28  
#ce ----------------------------------------------------------------------------
#include <word.au3>
Global $fileName = FileOpenDialog("Please select a file.", @ScriptDir & "\", "Images (*.doc;*.docx)", 1 + 4)
If @error Then
    MsgBox(4096, "", "No File(s) chosen")
Else
    $fileName = StringReplace($fileName, "|", @CRLF)
EndIf

if FileExists($fileName) Then
 $textOfWord = readWordDoc($fileName) ; Show the text from the document
 MsgBox( 1 ," The Content is : ", $textOfWord )
Else
 MsgBox( 1 ,"Message", $fileName & " Not Found!" )
Endif

Func readWordDoc($fileName)
 Local $oWordApp = _WordCreate($fileName,1,0)
 Local $oWordDocument = _WordDocGetCollection($oWordApp, 0)
 Local $oWordContent = $oWorddocument.Content ; Ask to Receive the Contents Object of the Object Document
 Local $TextDoc = $oWordContent.Text ; Ask to Extract the Text of the Contents Object in an AutoIt Variant
 _WordDocClose($oWordDocument)
 _WordQuit($oWordApp, -1)
 return $TextDoc
EndFunc

2012年5月23日

怎樣用AutoIT播放影音檔

作者: Fred Wang (FW知識瑣記) 日期: 2012/5/23

透過播放器如Windows Media Player, VLC, iTunes等自動播放影音,可以利用AutoIT的兩個Process Management指令ShellExecute與Run就可以達成

程式案例
$exeFile = "C:\Program Files\Windows Media Player\wmplayer.exe" ;播放器執行檔的路徑
$wavFile = "B:\BILD0982.WAV" ;影音檔的路徑
; 方法一 用ShellExecute
ShellExecute($exeFile,$wavFile)

; 方法二 用Run
$cmd = $exeFile & " " & $wavFile
Run($cmd) 

2012年4月20日

如何簡化SAP的使用介面與開發工作,提升生產力


作者: Fred Wang (FW知識瑣記) 日期: 2012/4/20
簡化使用者操作1.使用SAP GuiXT簡化SAP標準畫面
2.使用者常用的Transaction可以單獨產生一個icon,減少操作;例如某個使用者主要工作是訂單
輸入,則可以幫他為訂單輸入的Transaction產生一個icon,不用再經過選單動作
3.提供BI的環境,讓使用者快速產生自己需要的報表或匯出自己所需要的資料
4.開發客製化系統來包裝標準功能是最後的方法,可以簡化畫面的操作。客製化的系統可以在
SAP內用ABAP開發或SAP外用Java,VB或Adobe Flex開發

簡化IT人員開發工作,提高生產力
1.善用ABAP Query的報表程式產生功能
2.善用SAP ALV技術-比傳統報表開發快速許多
3.善用Adobe PDF技術取代Smart Forms, SAP Script forms提高生產力
4.盡量SAP使用標準功能,進行Configuration or Enhancement
5.鼓勵並善用SAP庫存的Function Modules
6.除儘量使用SAP標準Function Modules外,鼓勵建立Function Modules並妥善管理與運用,鼓
勵共用Function Modules以提高生產力(IT同仁養成建立並使用共用程式的習慣,建立重構refactoring的能力)
7.建立程式設計樣板,包含報表與Dialog Program的標準樣板,統一UI elements的設計樣式,
減少人員系統設計的時間,並讓使用者有一致的操作體驗
8.(Optional)自行開發建立好用與強大的報表程式產生器,網路上也可以找到一些範例
9.提供BI的環境與訓練,讓使用者快速產生自己需要的報表或匯出自己所需要的資料,減少分析
報表開發的時間
10.強化IT人員SAP開發工具的使用,包含Debugging tool, unit test tool, performance test
tool, stress test tool..etc.
作者: Fred Wang (FW知識瑣記)

2012年4月15日

SAP ABAP 使用者介面設計(二) UI元素 Icon與Pushbutton

作者: Fred Wang (FW知識瑣記) 日期: 2012/4/15

1.Icon

icon作為一個物件或功能的圖示影像。SAP在TYPE-POOL ICON提供將近1200個預定的icons。如果要顯示所有可用的ICON,可以呼叫transaction “ICON”或執行ABAP程式"SHOWICON"。

可以用icons提供重要畫面內容的視覺強化,如下圖

image

使用Icons要注意什麼?

  • 使用icon前先讀它的描述確定是用正確使用。並建立有意義的tooltip。
  • 如果採用icon來指名特定狀態的資訊,請在tooltip解釋這個狀態,例如:紅燈icon的tooltip可能是"傳輸失敗",綠燈可能是"傳輸成功".
  • 相同物件或功能要用相同的icons.
  • 畫面或對話窗不要使用太多的icons. 建議一個畫面或對話窗不要使用超過15個icons

當你呼叫function ICON_CREATE來建立icon(如下), 填入INFO參數,來自定icon的tooltip。否則設定參數INFO = ‘ ‘ and ADD_STDINF = 'X' 使用SAP提供預設的tooltip。

image

 

2.Pushbutton (按鈕)

Pushbutton用來執行某個功能,可以包含文在與圖示(icon).

使用Icons要注意什麼?

  • 使用動詞來標示按鈕的文字,例如Display或Print
  • 如果文字標示無法讓使用者立即明瞭,則該按鈕應該加上tooltip,如圖  image
  • 如果按鈕只有圖示(icon),沒有文字,則也應該加上tooltip
  • 如果按鈕有圖示也有文字,而圖示包含額外的資訊,例如狀態資訊,則應該將此資訊提供在tooltip中。
  • 如果按鈕要包含鍵盤指令(Hot-key),例如SAVE按鈕用[Ctrl]+[s],建議將此Hot-key資訊放在tooltip中
  • 如果有預設按鈕,也就是即使沒有點該按鈕,按下[Enter]鍵就會執行該按鈕的動作,則此按鈕的tooltip應該也要加上[Enter]這個Hot-key資訊,來表示它是預設按鈕。
  • 重要的按鈕最好除了文字外也加上圖示, 而且按鈕要夠大以方便滑鼠點選。
  • 依按鈕的重要性,由左而又排列,最左邊的按鈕最重要。

 

相關內容 :

2012年4月2日

2012年3月最流行的電腦程式語言排名與趨勢

作者: Fred Wang (FW知識瑣記) 日期: 2012/4/2

Javascript 2012/3月上升為第八名,由於網站越來越依賴javascipt,因此在可見的未來,Javascript將持續的爬升。另外一個有趣的觀察,就是軟體相關的大公司如Oracle, Microsoft與Apple都有一個他們的程式語言在排行前十名(Java,Visual Basic,Objective-C)。而Google似乎沒辦法達到跟這些大廠同等的地位。本月Google的Go語言已經掉到50名之外,另外一個Google程式語言"Dart"也尚未成功,目前排名78。

相關數據請參考TIOBE Programming Community Index 每月公布的數據

2012年4月1日

軟體開發文選 2012年3月31日~4月1日

作者: Fred Wang (FW知識瑣記) 日期: 2012/4/1

軟體開發
1.給開發維護大型專案開發者的建議(cnblogs) : 本文為開始一個新專案的Java 開發者提供了一些建議。整篇文章集中在對專案進行必要瞭解的前提下進行快速交付。你可以在不降低程式品質的前提下這麼做。
2.開發人員牴觸程式碼審查的4個原因(cnblogs) : 程式碼審查工作有助於提高軟體開發品質,然而許多開發者卻不願意在他們的團隊中實施程式碼審查工作,本文主要分析了開發者為什麼會抵制程式碼審查工作的原因以及為什麼他們會有此想法,目的是為了引導開發者加入程式碼審查工作。
3.開源(open source)設計工具:最好的方案,最少的錢(cnblogs) : 在過去的 20 年中,商業的解決方案主導了圖形和網頁設計領域。但開源的設計工具從它們誕生以來已經有了長足的進步。雖然那些最高水平的設計可能還是需要商業的軟件來完成,免費的軟件和活躍的社區對於絕大部分中小型業務,獨立設計師來說應該是最佳的選擇。

程式設計
1.程式設計師需要謹記的九大安全程式設計規則(cnblogs) : 軟體設計的缺陷一直是導致其漏洞被利用的最主要的罪魁禍首。安全專家發現,多數漏洞源自常見軟體中相對有限的一些漏洞。軟體開發者和設計者應當嚴格檢查程式中的各種錯誤,儘量在軟體部署之前就減少或清除其中的漏洞。本文列舉的一些方法有助於開發人員提高編碼的安全性。
2.程式設計師都應該瞭解哪些安全知識(cnblogs) : 本文整理自 StackOverflow 上的一個問答貼中一些網友建議的安全知識重點與相關的書籍。
3.PHP對程式設計師的要求更高(cnblogs) : PHP 也是一種編譯型腳本語言, 和其他的預編譯型語言不同, 它不是編譯成中間代碼, 然後發布而是每次執行都需要編譯,它的編譯速度非常快, 它的編譯不做任何優化,因此PHP的程式設計師,需要認真的想好, 你的程式碼會怎麼被執行, 你怎麼寫程式碼, 最終的執行效率才最高. 而不像其他的語言, 程式設計師可以把一部分優化工作交給編譯器.

網頁設計
1.ZK Web框架6.0發佈:新型數據綁定系統(cnblogs) : Potix,這家提供 ZK 框架的公司最近發佈了該基於 Java 的 Ajax Web 應用框架的6. 0 版。ZK 是一款開源 Java 框架,使得開發者能夠基於 Ajax(無需編寫任何 JavaScript)來開發豐富的互聯網應用。除了提供樣例演示外,公司官方網站還羅列了幾個現實生活中使用 ZK 的應用。
2.行動網頁設計中的一些錯誤理念(cnblogs) : 越來越多的網站和應用開始向移動設備上遷移。但是,由於設備和操作方式的不同,移動 Web 設計和傳統的 Web 設計之間有很多不同點,這就導致了一些錯誤的設計理念出現。本文說明在設計過程中我們應該注意哪些問題。

2012年3月30日

軟體開發文選 2012年3月19-30日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/30

程式設計1.最少編碼原則(cnblogs) : 「最少編碼原則」並不是說寫的代碼少到令意思表達不清楚。其實在很多情況下,可以只寫幾行代碼就能執行相同的邏輯,最少編碼不只是寫最少量的代碼,還意味著優雅的代碼。


網頁設計1.10個便利的CSS代碼線上產生器(cnblogs) : 本文給大家帶來幾個不錯的工具,可以產生線上 CSS 代碼。節省您的時間,並自動獲得一個專業的 CSS 代碼。
2.CSS 佈局:40個教程、技巧、例子和最佳實踐(cnblogs) : 佈局(layout)是 WEB 開發一個重要的課題,進入 XHTML/CSS 後,使用 TABLE 佈局的方式逐漸淡出,CSS 佈局以眾多優點成為主流,本文將介紹 40 個基於 CSS 的 web 佈局的資源和教程。
3.關於 HTML5 的七個事實與誤解(cnblogs) : HTML5 簡單的說就是一組新的標準,語法和規則用來創建網頁,可以利用一些新的瀏覽器的「本地」功能,例如離線存儲,多媒體播放和其他的交互等等。我們所看到的很多很酷的 HTML5 網站實際上跟 HTML5 無關,而是由 CSS3 和 jQuery 生成的。
4.無需編程知識,Wix讓你零基礎打造HTML5頁面(cnblogs) : 讓沒有 Flash 知識的人也可以製作支持 Flash 的頁面,Wix 正是以此而出名。如今該平台推出新服務,將同樣思想應用到 HTML5 技術,讓你零基礎打造 HTML5 應用。這對 HTML5 技術的推動來說非常重要,因為它讓大量的人可以通過它打造跨 PC 和手機瀏覽器的應用。
5.適應未來發展 Web如何設計才更友好?(cnblogs) : 設計出對未來友好的 Web,這一思想包含很多內容:Web 標準、內容策略、漸進增強、響應式設計等等。這比任何一個方法、技術更強大。它可以幫助我們跳出現有項目的範圍思考問題,幫助我們為充滿創新、持續改變的未來做好準備。


程式語言
1. Rust 0.2 發佈,Mozilla 的編程語言(cnblogs) : Mozilla 開發一個新的程式語言,名為「Rust」目的是為瞭解決一個很頑疾的問題:軟體的演進速度大大低於硬體的演進,軟體在語言級別上無法真正利用多核計算帶來的性能提升。

2012年3月26日

FW管理隨筆之三 : 馬屁文化的形成

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/26

人人都喜歡聽好聽悅耳的話,負面言論,衝突與批評的話語沒人愛聽,特別是喜好權威的主管,更討厭下屬對自己判斷與決策的挑戰。

如果企業主管沒有接受負面問題與批評的雅量,沒有反省思考的能力,可能有幾種結果 :

1.人人粉飾太平,不敢將真正的問題與不好的狀況提出,好事誇大,壞事忽衍帶過,久而久之企業競爭力將越來越弱,甚至招致重大的危機。

2.造成馬屁文化,喜歡矯飾言詞,掩蓋問題,迎合上司者,被視為有較能力,獲得獎勵或升官;如此在組織造成示範效果,人人以為這種方式才是正途,而形成關係至上,不強調貢獻的馬屁文化。

3.劣幣驅逐良幣,有能力的人不願意待在這樣不重專業與才能的組織,虛偽小人漸漸得勢。而小人將引進更多的小人,如此就慢慢便成了侏儒企業。

強調和諧與良性互動的組織,可以讓大家快樂的工作,但是並不表示就不存在任何的問題與衝突,因此,協同解決問題取代掩飾,主管正面與公正的衝突處理,開放建設性的批評,可以讓每個同仁成為企業重要的智囊,與企業不斷改善不斷進步與提升的推力。
 
上一篇 : FW管理隨筆之二 : 您有Roadmap嗎?

2012年3月21日

工作流為主的流程監控系統(Workflow-based Process Monitoring System)簡介與參考模型。

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/21

目的 : 提供Workflow System統一與即時的統計分析與監控系統。


效益說明
1.提供流程改善的依據 : 藉由流程監控了解流程中的瓶頸,提供流程改善的參考。
2.提供跨流程共同的監控規格 : 透過統一的log規格,將Workflow System主要狀態的變更,蒐集、過濾與彙總到資料庫,統一進行監控。
3.減少人工匯整統計的工作 : 各Workflow系統需要進行流程狀態統計時,會依其職權下載所需的資訊到個人電腦再進行統計。如周報中需求最新狀態紀錄,先由個人製作到周報中再由部門主管再進行匯整監控部門需求處理的狀態。缺乏自動化的輔助系統。
4.管理更為即時 : 許多事件發生到主管收到分析資訊往往需要一段時間,透過監控即時狀態變更紀錄,可以讓主管即時得到資訊並快速做出決定。

參考模型 : WfMC 參考模型,WfMC 參考模型共包含五個界面
界面一 訂定工作流程作業,定義規格及其描述語言規格
界面二 定義前端應用如何呼叫Workflow Engine的服務以控制流程,活動或工作項目的進行
界面三 定義Workflow Engine叫用其他應用系統的API標準介面
界面四 定義Workflow間互動的模式與標準
界面五 定義系統監控與管理標準

其中界面五就是用來發展"工作流為主的流程監控系統"的標準,目的在於使任一廠商所發展的管理、監控程式可以與其它符合標準的WfMS作連接。讓許多不同廠商所發展的WfMS可以共用同一個管理程式所提供的功能。



如何建立高效率應用系統開發團隊

下面是筆者以個人經驗,提出建立高效率應用系統開發團隊的重點,如下

第一 專業團隊的養成,建立Library(知識庫,程式庫..)
a.尋找適合團隊中各種角色的人才, 並持續進行培訓
b.蒐集相關知識,建立與累積程式庫
c.建立高效率的工作流程並且持續改善工作流程
d.訂定績效考核標準,建立標準TAT

第二 專業分工
可將開發區分為兩大團隊 : 一個是專精商業領域知識,善於溝通的需求分析團隊與專精開發技術與架構設計的系統開發團隊。

2.1 業務需求分析團隊的任務
a.蒐集需求,過濾哪些需求適合系統化 : 成員包含熟悉各業務領域(銷售、財務、人事…)等的人員,收集並過濾需求。
b.編寫規格 : 確定需求後, 使用UML等工具編寫規格。
c.專案溝通會議 : 完成系統規格後,與系統開發團隊連繫與溝通, 應做快速而有效的溝通。

2.2系統開發團隊的任務
a.雛形製作團隊共同參與設計會議
b.繪製DFD,ERD等; 建立功能模組
c.細部設計開發與整合
e.單元測試與整合測試
f.品管(QA)
角色再區分 : 使用者介面設計人員,程式設計師, 測試與QA人員
重點 :
a.需訂定各階段標準TAT
b.持續建立公用程式庫,商業功能模組,與樣版(template)
c.持續改善流程 (生產線化)

MS Word中文文字比對問題與解決方法

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/21

MS Word比較並合併文件功能在中文處理上會有問題,例如某行文句(中文)直接進行句內文字修改,然後進行比較,可以正確的顯示差異,但是文句上加一個空白列,再修改文字,然後進行比較,產生的比較文件,會顯示刪除原文句,再新增一個文句的比對結果;但是英文文句的處理不會有這種錯誤的現象。


為正確須進行含中文字的Word文件之比較與合併,需評估其他產品。如DiffDog與Beyond Compare均可產生正確的比對結果,但是無法直接產生如Word比較文件的呈現方式。可以將此類產品做為比對參考工具,輔助文件之比對。

程式設計造成Memory Leak的原因與預防的方法

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/21

程式設計造成Memory Leak的原因

1.沒有自動記憶體管理的程式語言 : C與C++
- 程式中沒有撰寫垃圾回收的機制。

2.在自動記憶體管理環境下執行的程式語言 : Java,C#,VB.NET,Javascript等
-記憶體管理器可以回復不能存取的記憶體,但它不可以釋放仍有可能需要使用的記憶體。
-部分系統記憶體管理有瑕疵,例如 : IE
-要防止此類記憶體泄漏,開發者必須自行增加物件回收處理機制

解決方法
1.使用Garbage Collection機制
-採用具備Garbage Collection平台或工具。
-將此機制設計於自製的系統中。

2.應用程式開發過程中,應隨時注意釋放不再使用的物件
-即使有Garbage Collection機制的平台,仍無法100%避免Memory Leaks,請參考 : Java, ABAP, VB memory leak preventation 相關文章
-確定C程式中每個malloc()有相對的free()
-Coding過程寫下您Create的物件,在紙上或Text file,例如: display.newImage() … ,程式或模組結束前,關閉此物件。

3.使用工具檢查程式中是否存在memory leaks的可能
- At compile-time的檢查如static analysis工具
- 例如 : Oracle(WebLogic) JRockit Tools

4.使用工具測試程式執行是否造成memory leaks的情況
- At run-time的檢查如dynamic analysis工具

5.使用工具檢查與監控系統memory leaks的情況
-隨時監控。
-結合發送eMail機制(系統內含或3rd Party Tool)自動傳送警訊給管理人員。
-例如 : Windows Performance Monitor(perfmon)

6.注意系統版本的更新(patch)

2012年3月20日

FW管理隨筆之二 : 您有Roadmap嗎?

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/20

主管猶如團隊的舵手,引導團隊朝正確的方向走,並且應該訂定遠景與長期的計畫,然後領導團隊完成目標。

訂定Roadmap將未來的方向明確化,以具體的時程,給予團隊同仁各階段執行的目標。依此目標一步步完成企業給予的使命。

雖然實際上會有許多的變化,影響既定的工作,但是,優秀的主管,善於控制變化,對為長遠而言,重要的工作,仍能堅持執行,或有資源或時程些微修正,但是,仍不影響已定的方向。

相反地,若因忙於應付短期變化或緊急需求,而放下長遠該做的事,或因立即的績效表現,腐蝕重要工作的執行目標;最後,需長期執行的重要工作,因拖延,有一天將反過來,對組織造成重大的災難。例如,因為省錢而拖延系統平台的升級,造成平台效能不彰,問題無法處理,或對未來升級產生更大的成本等更大的問題。

明智的主管,更能預見長遠的問題或趨勢,及早進行評估與準備,訂定發展計畫/Roadmap,並能預留長期工作與短期工作的資源與預算,讓組織能從容地完成各項任務。

上一篇 : FW管理隨筆之一 : 會吵的小孩有糖吃?
下一篇 : FW管理隨筆之三 : 馬屁文化的形成


2012年3月19日

FW管理隨筆之一 : 會吵的小孩有糖吃?

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/19

"有時在路上或賣場裡,會見到一種小孩死皮賴著的吵著父母要東西,要不到就一直吵鬧",有些父母就會花很多的時間或精力來安撫這個小孩。

企業組織中也不乏這樣的人,或為了自己或自己所屬單位的利益,或為了讓自己的表現博得主管的注意,因此,會以高調(大分貝)的方式,爭取權益,表達意見或爭取認同。

這時候有些主管就會多花時間或精力來安撫或關注這樣的人。不管目的為何,往往在資源有限的情況下,這個"會吵的小孩"就得到了"糖"。衝突的情況發生時,有時"會吵的小孩"就得到認同,而默不吭聲的另一方就吃虧了。

在企業裡,這種"會吵的小孩有糖吃"的現象,對組織將造成下面三點傷害 :
1.形成本位主義 : 組織內人與人或單位與單位間,自私自利,遇到問題推諉卸責,更遑論分享與合作了。
2.組織內耗 : 遇到問題,組織花最多的時間是在釐清責任,並非在協同合作,一起找到問題,解決問題。
3.士氣的打擊 : 對於默默做事的人,發現"糖"的分配,並不是根據真正對企業的貢獻,對自己的努力將無法得到相對的認同,勢必影響做事的熱誠。

在教育上,造成"會吵的小孩有糖吃"的成因,就在於父母的態度,若父母無法控制這樣的行為,教育孩子,以理性的態度表達意見,並鼓勵分享,團隊合作與互助,將造成這種吵鬧的狀況一再的發生。而孩子將來也無法與其他小朋友和平共處。

對於企業組織而言,為避免上面提到的三點傷害,一個有智慧的主管應該抑制這種破壞團隊精神與造成組織內耗的行為,公平地面對爭議事件,獎勵分享,合作與互助,讓團隊發揮一加一大於二的效果。

後記 : 如果您的老闆,不善於面對或處理這種"要糖吃的小孩",可以把這篇文章傳給他!

下一篇 : FW管理隨筆之二 : 您有Roadmap嗎?




軟體開發文選 2012年3月13-18日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/18

軟體開發
1.書摘:偉大的設計出自偉大的設計師,而非好的設計程序 (iThome) : 開發流程改良的程度不可能把某個領域的實務水準提升到最高點,偉大的設計並非出於偉大的流程,而是得自於有天份的人勤奮的努力
2.版本控制工具歷史的10個里程碑(cnblogs) : 版本控制產品經歷了幾十年的不斷創新。在這個領域裡最聰明的人的努力下,程式碼管理變得非常簡單而且有效。本文快速回顧了這幾十年的進展。
3.調查:你測試你的程式碼了麼?(cnblogs) :  本文列出Hacker News 與14日發起了一個投票主題:"Do you test your code? / 你測試你的程式碼了麼?" 300多的回應統計的結果。僅有13.8%會做完整的測試。半數以上不怎麼測試或測試不足。

程式設計
1.循序漸進學程式設計(cnblogs) : 技術在不斷地革新,新語言、新平臺的如雨後春筍般出現、更好的解決方案的冒出,因此我們需要跟得上節奏,我們沒有選擇,唯有努力提高自己。本文提供八點建議,讓您成為一個優秀的程式開發人員。
2.如何成為一名優秀的C程式設計師(cnblogs) : 本文作者以自己編寫遊戲程式的經驗,列出一些有關C語言的最佳讀物,提供學習C程式設計語言的參考。

2012年3月15日

Xcelsius Add-on資源

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/15

列出六個Xcelsius免費或付費的Add-ons來源 :
1.BO Information OnDemand (free/charge) : 包含Any Map, FLV Player, Sales Funnel, Timeline Char, XC Column Chart
2.XComponents (free) : 包含 XTree, XTreeGrid, XScorecard, XProgressImage, XGlobe, XBulletChart, XSparkLine, XYahooMap, XHarvelBalls
3.BDISYS : 包含BreadCrumbs, CalendarComponent, Crosstab Modeler, ExportToExcel, MultiLevel Drill PieChart
4.Centigon : 包含Background Builder, Dynamic Sort, Filtered Summary, Input Manager, CSV Connector, Gmaps Plugin
5.Reportex
6.Inovista

2012年3月14日

技術債務

作者: Fred Wang (FW知識瑣記) 日期:


最近看到這個名詞,深有所感,從網路整理一些重點,做為備忘。

何謂技術債務 : 由Ward Cunningham首次提出,指開發團隊在設計或架構選擇時從短期效果的角度選擇一個易於實現的方案,但從長遠來看,這種方案會帶來不良的影響,這就是開發團隊所欠的債務。

"重構"一書作者Martin Fowler定義 : 技術債務類似於金融債務,它也會產生利息,這裡的利息其實就是指由於魯莽的設計決策導致需要在未來的開發中付出更多努力的後果。

Martin Fowler認為您可以選擇繼續支付利息,也可以透過重構過去前鲁莽的設計將本金一次付清。雖然一次性付清本金需要代價,却可以降低未來的利息。

"Code Complete"一書作者Steve McConnell將技術債務分成兩類
1.缺乏經驗造成,例如技術能力不足或經驗不足而產生品質不佳的設計。
2.為了短期的利益,選擇快速或方便的方案,對長期而言會造成不良影響。

造成的原因可能是
1.開發人員沒有經驗
2.時程的壓力
3.分工缺乏整體考量
4.過度的複雜的設計,沒有考慮使用情境等
5.短視,無法為長期經營考量設計(缺乏可讀性,可維護性,再用性等)
6.來自客戶或上司的壓力,不合理的需求,造成不合理的設計

這篇文章"用雞講解技術債務形成的過程"用有趣的例子舉出上面第6點原因。

根據CAST分析報告顯示,平均一家公司要解決技術債務的花費是每行程式碼3.61美元。

下面這篇文章提出一些解決方案 :http://www.infoq.com/articles/technical-debt-levison

身為經理人不可坐視這些技術債務不管,否則將造成很大的債務危機。需要對您的系統持續改善,減少過去專案殘留的問題,同時也可藉此提高團隊整體的開發設計能力。

2012年3月12日

軟體開發文選 2012年3月9-12日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/9

軟體開發
1.那些永無止盡的產品改善(數位時代) : 以網路/軟體產業來看,我們永遠不以現在的產品為滿足,不斷的追求效能、功能以及服務使用者為導向前進,是完全不可避免的走向,如何快速且及時的推出「夠好」產品取悅使用者,總是我們面對的兩難。記得,即時推出、面對消費者、不斷改善、取得團隊的共識與合作,絕對是缺一不可。
2.這個服務員在電腦螢幕上幹什麼?(cnblogs) : 本文作者以他看到的在一家餐館領班使用預定系統的方式,提出一些省思,讓所有系統設計開發人員省思。

行動應用開發
1.推薦給 iOS 設計師的工具和資源(cnblogs) : 如果你是一位設計師或開發人員,準備步入 iOS 開發,這裡收集了你需要的工具。本文並不涵蓋 iOS 教程,只偏重線框圖工具和視圖資源。
2.Android 4.0使用者介面設計和元素-ICS簡介(cnblogs) : 最新的 Android 霜淇淋三明治(Ice Cream Sandwich, ICS)作業系統,不僅僅是使用者介面(UI)的簡單改變,它幾乎是對整個 Android 系統介面的重新定義。為了讓你更好地為 ICS 系統設計和開發應用,這裡是一個簡單的介紹和指南。
3.觸控手機點擊區域的小秘密(cnblogs) : 做觸屏手機產品設計,要注意所有的可點擊元素都有足夠的點擊區域,但是這並不是說你要把所有的按鈕圖示連結都設計的足夠大,手機上的視覺焦點和操作焦點是不一樣的,操作焦點是可被放大或移動的點擊區域。本文分享幾個點擊區域的小秘密,幫你解決操作準確率的問題。


網頁設計
1.矽谷稱之為「常識」的網站設計過程原則(cnblogs) : 本文介紹網站設計過程中的必要的四個基本原則。

程式設計
1.Java 程式設計師應該瞭解的 10 個物件導向設計原則(cnblogs) : 本文介紹,沒有接觸過這些物件導向設計原則, 讓在學習階段的 Java 程式設計師能夠瞭解這 10 個物件導向的設計原則。

其他
1.優秀開發者必備的四種特質(cnblogs) : 本文說明怎樣才是一名優秀的開發者,應具備哪些優秀的品質?好的開發者和差的開發者區別在哪裡?

2012年3月9日

軟體開發文選 2012年3月8日

作者: Fred Wang (FW知識瑣記) 日期:2012/3/8

軟體開發
1.軟體開發的軟實力─溝通(iThome) : 本文說明軟體開發的過程中,有一些較為「軟性」的能力,會影響到軟體開發的過程甚至結果。而像「溝通」也是軟體開發中十分重要的「軟性」能力 

程式設計
1.程式語言的進化過程(cnblogs) : 計算機程式語言在過去幾十年發現了許多變化。最先出現的語言是用於科學計算的 Fortan 和邏輯推演的 LISP 語言,而現在用於網路程式的語言包括C#、Ruby on Rails、Note.JS。本文由 Services Angle 製作的資訊圖展示了過去數十年來程式語言的演化過程。
2.解讀 Visual Studio 11 九大新特性(cnblogs) : 2月 29 日微軟發佈了 Visual Studio 11 beta。CSDN 軟體研發頻道編譯了 Microsoft Visual Studio 全球最有價值專家 Mark Michaelis 眼中的 Visual Studio 11 九大新功能。

網頁設計
1.Adobe發表行動網頁設計工具Shadow(iThome) : Adobe昨日(3/7)推出新的網頁設計工具Shadow,該工具可以協助網頁設計師在多個行動設備中檢視網頁,並進行調整。
2.Cookie安全漫談(cnblogs) : 在 Web 應用中,Cookie 很容易成為安全問題的一部分。從以往的經驗來看,對 Cookie 在開發過程中的使用,很多開發團隊並沒有形成共識或者一定的規範,這也使得很多應用中的 Cookie 成為潛在的易受攻擊點。本文探討Cookie的安全性問題與技術讓大家加以重視。
3.如何選擇優秀的Web開發工具/IDE?(cnblogs) : Web 開發成功的關鍵之一在於找到一款優秀的開發工具/IDE,可以為你提供最多的選擇和最少的限制。雖然大部分時候,開發工具的選擇取決於公司的需求,但是本文的 7 個建議,可以幫助你快速鑑別開發環境的優劣,提高你的開發效率。

其他
1.程式設計員學英語三部曲(cnblogs) : 作者在 IT 業從業多年,翻譯過多本技術圖書,對英語的學習方法也有頗多積累。在本文中,他更是敞開心扉,分享了自己壓箱底的三大絕技。

2012年3月8日

世界最具影響力的系統開發人員或程式設計師


1.Kenneth Lane Thompson,Dennis Ritchie,Brian Kernighan : UNIX創造者與早期的開發者
2.Dennis Ritchie : C程式語言之父也是UNIX的核心開發人。
3.Tim Berners-Lee : World Wide Web的發明人,也是HTML之父,建立URI,HTTP,HTML規格,寫出第一個Web Client-Server系統。
4.James Gosling : Java程式語言的創造者
5.John McCarthy : Lisp程式語言的創造者,人工智慧之父
6.Linus Torvalds : Linux之父,為PC創造了類似UNIX的作業系統,為軟體帶來創造性的革命-Open Source
7.Edgar F. Codd : 關聯式資料庫理論基礎的發明人
8.Bjarne Stroustrup : C++語言之父
9.Thomas Eugene Kurtz, John G. Kemeny : BASIC程式語言的創造者。
10.Rasmus Lerdorf, Andi Gutmans & Zeev Suraski : PHP之父,全球34%的網頁用PHP開發。
11.Raymond F. Boyce, Donald D. Chamberlin : SQL語言的創造者。
12.Alan Kay : 物件導向程式設計的先驅者,Smalltalk的核心創造者,也是視窗GUI設計的先驅者。
13.Tim Paterson : MS-DOS(磁碟作業系統)的原始創造者。
14.Jef Raskin : Mac OS的創造者。

其他深具影響力的系統創造者 :
  • .Brendan Eich : Javascript程式語言的創造者。
  • .John Backus等 : FORTRAN程式語言的創造者
  • .Niklaus Wirth : Pascal程式語言的創造者
  • .Grace Hopper : COBOL程式語言主要的開發者
  • .Guido van Rossum : Python程式語言的創造者。
  • .Larry Wall : Perl程式語言的創造者。
  • .Larry Ellison,Bob Miner,Ed Oates : Oracle Database的創造者。
  • .Matt MullenWeg : Open Source BLogging平台WordPress的創造者。
  • .Larry Page, Sergey Brin : Google的創立者
  • .Bram Cohen : BitTorrent技術之父,P2P網路協議的創造者。
  • .Douglas Andrew Bell : 1987年開發知名的Dungeon Master為RPG遊戲帶入新的時代。
  • .Richard Bartle,Roy Trubshaw : 第一個MUD(多用戶介面)人機網路遊戲也就是多人線上遊戲的創始者。
  • . Yukihiro「Matz」Matsumoto :  Ruby程式語言的創造者。

軟體開發文選 2012年3月7日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/7

系統開發
1.敏捷配對程式設計實踐(cnblogs) : 本文主要從提升專案品質、促進知識傳遞及減少專案風險等角度出發,講述作者所在團隊在配對程式設計(Pair Programming)實踐中的一些經歷,以及如何避免或減少其所帶來的負面影響。

程式設計
1.為什麼 Objective-C 很難(cnblogs) : 本文解釋為什麼很多程式設計師比較學習 Ruby 或者 Java 很容易,但在決定開發 iOS 或者 OS X 應用時會那麼猶豫。雖然Apple 公司已經儘可能的減小了 Objective-C語言的大小以及複雜度,但是還是比其他語言難接觸與學習,之所以現在變得越來越流行唯一的原因就是它是做 iOS app 的唯一途徑了。
2.理解Javascript的閉包(cnblogs) : 本文舉例介紹 Javascript閉包(Closure)的語言特性,並結合一點 ECMAScript語言規範來使讀者可以更深入的理解閉包。

職涯
1.企業如何招聘到高品質的程式設計師?(cnblogs) : 本文翻譯自Stack Overflow 創始人 Jeff Atwood 發了一篇文章"How to Hire a Programmer",分享其招聘的經驗。

其他
1.解決技術負債的花費:每行程式碼3.61美金(cnblogs):CAST 定義了五大程式品質特徵 - 穩定性、性能、安全、可移交性以及可修改性)技術負債就是因品質問題需付出修正程式的代價。CAST公司發佈的有關技術債務的調查報告。CAST 以及其他一些技術負債方面的專家都認為組織應該將技術債務納入它們的主體預算中。

2012年3月7日

最賺錢的好地盤與放下

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/7

當蕭邦已經是非常知名的演奏家時,他遇到十年前一起在街頭演奏的夥伴,發現他仍在他們當年一起占到的那塊最賺錢的地方演奏。夥伴遇到蕭邦非常高興,問他現在在哪里演奏,蕭邦回答了一個很有名的音樂廳,夥伴驚訝的說:“怎麼?那裏門口也很好賺錢嗎?”

“最賺錢的好地盤”同樣是一個“風平浪靜的小港灣”,那位夥伴停留在那裏,甚至有些沾沾自喜,卻沒有意識到自己的才華,潛力,前程全都被這塊“最賺錢的好地盤”葬送了。
 
這是摘自心靈雞湯的一個故事,當您安於穩定的現狀時,看看上面的故事,這就是您“最賺錢的好地盤”嗎?  這故事可以用印度電影"三個傻瓜"中的一句話"追求卓越,成功就追隨你"相印證。您追求財富還是追求卓越?

另外一個故事 "在南美洲有一種奇特的動物——蜘蛛猴,要捕捉它們非常容易,你只要在一個玻璃瓶裏放一顆花生,然後放在那裏。蜘蛛猴剛好可以把手伸進瓶子去拿那粒花生,一旦它們握住花生,手就抽不出來。但它們就是不肯放手..."

當您被工作現狀困住,無法解脫,痛苦不堪時,通常的情況就只要放下/放手,但是,多數人對到手的名利,就是無法放下。聖嚴法師說過一句話"有能力時就提起,執著時就放下",可以作為大家的暮鼓晨鐘。

Chrome 9,IE 9,Firefox 9 三大瀏覽器安全性比較

1.黑名單服務 : 定期更新防止網路釣魚和惡意軟體的黑名單,並在使用者試圖瀏覽可能造成電腦損害的網站時予以警告。(Chrome9,IE9,FF9)

2.沙箱: 防止惡意軟體在您的電腦上安裝複本,或防止惡意軟體利用某個瀏覽器分頁的作業,影響其他分頁的運作。沙箱技術可對企圖在您電腦上留下程式、監控您的網路活動,或從您的硬碟竊取私人資訊的惡意網頁加以監控並防範。(Chrome9,IE9,FF9)
3.多進程 能容許多個程序同時執行而互不影響,每個網頁標簽為獨立執行程序,當資源過高或崩潰時,不會因為一個停頓而整個程序當掉。(Chrome9,IE9)
4. 自動更新 : 自動定期檢查更新可確保用戶使用最新版的安全性功能與修正程式。(Chrome9,IE9,FF9)
5.重定向限制 : 避免用戶在訪問非法網站時會被劫持到包含惡意程式碼的其他網站中。(IE9)
6.外掛程式(Plugins)管理 : 為了降低被攻擊的風險,外掛程式在沙箱中獨立運行,而不影響到瀏覽器的運作。例如Adobe Flash與PDF reader外掛程式獨立運行,瀏覽器不因Adobe Flash或PDF的漏洞受到感染。(Chrome9,IE9,FF9)
7.外掛程式註冊機制: 根據一定的機制,告訴用戶區別外掛程式的好壞,以便使用者更安全地使用外掛程式(IE9)
8.外掛程式自動安全測試與人工審查 : 第一種方式是當外掛作者上傳新版本時,附加元件網站會自動進行安全性測試。如果外掛程式夾帶了有害的程式碼、或者因作者疏忽導致程式有一些不安全的問題,就會被阻擋下來。第二種方式是透過官方人工審查才能成為正式的外掛套件。"(FF9)
9.外掛程式更新建議 : 外掛程式需定時更新修補安全漏洞,若用戶使用的版本過舊,瀏覽器會顯示出來,建議下載更新。(FF9)
10. 反追蹤機制 : 防止網路瀏覽行為被追蹤。(Chrome9提供外掛,IE9,FF9)
註:()內表示具備該功能的瀏覽器。

Java重構工具(Refactoring Tools)整理

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/7, revised 2012/4/5

網路上許多重構工具版本都相當老舊,也沒有新板產生。早期一些重構工具的網站也已經關閉了。下面是一些現存Java重構工具的整理 :

1. Eclipse提供的20多個重構功能
image
2.RefactorIT : 自動化重構, 原始碼衡量, 稽核與修正。可以單獨安裝或作為Eclipse與NetBeans開發環境的插件(Plug-in) ,Open Source :
http://sourceforge.net/projects/refactorit/

3.JFactory : 提供15種重構能力的工具,可以單獨執行,直接下命令列或作為JBuilder, NetBeans與Elixir IDE的插件。 Open Source : http://jrefactory.sourceforge.net/

4.Transmogrify : Java程式碼分析與重構工具
. Open Source :
http://transmogrify.sourceforge.net/

5.DPT(Design Pattern Transformer) : 研究用途的工具,提供prototype工具,以利對Java程式碼重構的設計與了解。 Free : http://dpt.kupin.de/

6.JavaRefactor : 小型的Java程式碼重構工具,為JEdit的插件。(http://plugins.jedit.org/plugins/?JavaRefactor)

企業贏家與輸家的差別

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/7

本文摘自天下雜誌第321期對哈佛大學Rosabeth Moss Kanter教授的專訪。
(Kanter曾調查1243家企業在網路經濟破滅後,2001一到2003年的表現,1511位球隊教練和運動員進行訪問、面談,分析出贏家、輸家的分水嶺是在「信心」。) 下面是一些摘要

"化妝品公司雅詩蘭黛副總裁珍妮特,早在一九九○年就預測凱瑪百貨(Kmart)、塔吉克百貨(Target)輸家贏家面貌。她說,走 進塔吉克百貨,辦公室乾淨明亮,色彩鮮豔,工作人員驕傲地介紹自己執掌的範圍,對工作充滿熱情。但走進凱瑪百貨,卻儼若堡壘,會議室黯然無光,公司代表更 是面無表情,咖啡和水都不請客人喝,公司成敗跟他們完全無關。"

"員工行為不是一個命令、一個動作,而是態度、感情、慾望、願望綜合而成,領導人必須創造一個文化,讓員工可以高效率工作,而且成果斐然。"

"今天是知識經濟時代,專業人員的來源靠創造力,他們需要鼓勵。通常策略成功與否,不是策略本身好壞,而在是否有效執行策略,策略尤其必須靠一個有信心的團隊執行。"

"沒有企業或團隊可以每戰必贏,但是贏家會從失敗中學習。贏家和輸家的分野在是否能處理挫折,解決問題。".."每個公司都應該有一個機制來解決問題。公司整體能面對問題,不是掩蓋,從各部門徵調人才,一起討論,解決問題,以免滑入輸家軌道。"

"問:贏家有些什麼特徵?
答:他們充滿鬥志,生氣盎然,速度快,專注解決問題,而不是抱怨問題。員工間彼此尊重,同事間會稱讚彼此的成就..."

"問:輸家有什麼特徵?
答:看他的員工及外界關係人就可知道。員工總是怒氣沖沖、爭論、諉過,各部門本位主義。員工被動,不願提創新方案...領導人總是強調節流、削減支出,而不是開源、增加收入。總在替換經理人,而不想組織或結構上有什麼問題。"

您所在的企業是符合上面的贏家還是輸家呢?








軟體開發文選 2012年3月6日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/6

系統開發
1.原始程式控制管理的十條戒律(cnblogs): 本文列出十條原始程式控制管理的基本觀念:及時,儘早的提交程式,充分瞭解你提交的東西,並確認它們確實需要被提交到程式庫,解釋你的提交,自己提交自己的程式,不要忘記資料庫版本控制,不要忘記依賴項。並請你忘記 VSS。 


程式設計
1.程式設計改革(cnblogs) : 本文作者說明當前程式設計面臨的問題,並發表自己對程式設計改革的想法。
2.白天工作型程式師 vs 夜晚工作型程式師(cnblogs) : 本文比較兩種類型的程式設計師,一種是為工作而寫程式的人,而另一種是對程式設計有高度興趣的人。兩者不同的是對程式設計的熱忱。
3. 6 個提高 Java 開發者效率的工具(cnblogs): Productivity tools for java developers一文作者列出
JRebel, tmux, zsh, sublime, vi(m), bash/awk/sed/cut 等腳本語言以提高Java開發者效率。

網頁設計
1.如何設計網站,才能打動用戶的心?(cnblogs): 本文翻譯Jeremy Girard 在 Smashing Magazine 上發表的"A Fun Approach To Creating More Successful Websites"一文,列舉了一系列成功網站,它們巧妙利用趣味性元素,取得了很大的成功——打動了用戶的心,並給用戶留下了深刻的印象。


職涯
1.IT自由職業者的狀況(cnblogs) : 本文以圖表呈現自由職業雖然看上去更靈活、更獨立、更自主,但它確實不容易。選擇自由職業這條道路雖然在經濟復蘇時可以幫上你的忙,但背後所潛在的風險卻不容忽視。

其他
1.論 NoSQL 資料模型(cnblogs): 本文內容是對"NoSQL Data Modeling Techniques"一文的簡單概述,原文對 NoSQL 的幾種資料模型進行了詳細深入的討論,是瞭解 NoSQL 資料模型不可錯過的全面資料。

2012年3月5日

軟體開發文選 2012年3月5日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/5

軟體開發
1.軟體發展如同木匠做桌子(cnblogs) : 本文以一個專業的桌子訂製過程比擬軟體開發的過程,需要瞭解使用者業務需求,誰要用,如何使用,用在什麼地方,資料量如何,要與什麼整合等等,然後搭建架構,確保系統可以承受使用的負載,確保效能等品質,最後交付給客戶符合需求,完整且可信賴的產品。
2.引入新程式設計語言的經驗教訓(cnblogs) : 作者以自身的經驗說明,在團隊中引進新的程式設計語言會發生的狀況,以及如何讓夥伴減少對新語言的恐懼,並得到團隊的支援。


行動應用
1.25款Web設計師的實用Android應用推薦(cnblogs) : 本文介紹了 25 款實用的 Android 應用。這些 Android 應用具有不同的功能,希望它們不僅對開發者的設計過程有所幫助,在文件管理和在線交流應用等方面也能夠給予開發者一些啟發。
2.使Android開發方便快捷的8個好工具(cnblogs) :  本文介紹8 個最好的 Android 工具以許多不同的方式 説明開發人員 ,例如 – SDK 和 AVD 管理器,android ADT,android DDMS 等等,每個工具表現其獨特和不同的品質,使它非常有用於開發。

職涯
1.如何在面試時寫出高品值的程式碼(cnblogs) : 本文作者總結自己多年面試他人以及被他人面試的經驗,發現應聘者可以從程式碼的規範性、完整性和穩固性(robustness)三個方面提高程式碼的品質。


其他
1.網友失耐心,贏過競爭對手的網路魔幻數字「0.25秒」(數位時代) : 調查機構Forrester在2009年研究發現,網路購物者希望在兩秒內能順利開啟網頁,否則就會放棄該網頁。微軟運算科學速度專家Harry Shum提出,現今網路的魔幻數字是0.25秒,是否能夠贏過對手就取決於0.25秒之間。

Ruby on Rails 開發網頁應用系統有多快?

作者: Fred Wang (FW知識瑣記) 日期:

Ruby 是近年使用率成長相當快的語言,在2004年TIOBE排名27名到2012年2月排名提升到第12名,2008年排名曾經到達第8名。

RoR與PHP, Java相比
1.可擴展性(Scaling) : PHP > Java > RoR
2.開發速度 : RoR > PHP > Java
3.開發工具 : Java > RoR = PHP
4.可維護性 : RoR > Java > PHP

Java(Spring/Hibernate)與 Ruly on Rails開發網頁應用系統的比較 (Juston Gehtland發表的數據)
1.時間 : Java花4個月(每週20小時), RoR花4天(每天5小時)
2.程式碼 : Java 3292行, RoR 1164行
3.設定檔 : Java 1161行, RoR 113行
4.Class/method數 : Java 62/549, RoR 55/126

程式碼行數比
Justin Gehtland估計Java : Rails = 3.5 : 1
JavaEye 站長估計Java : Rails = 10 : 1
Proc.net估計 PHP : Rails = 10 : 1
Thegiive實驗的結果 PHP : Rails = 8 : 1

或許不像懂C或Java語言的人那麼多,技術團隊需要學習新的技術等因素,讓您對此技術的投入抱持猶豫的態度。

不過時間就是金錢,如果使用此技術可以讓您或您的團隊,增加三倍以上的接案量,一年的業績提升三倍以上,那麼其他差異都不是那麼重要了!

2012年3月1日

Javascript Frameworks資源整理 - Yahoo YUI

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/1

Web Sites
1.YUI Documentation : developer.yahoo.com/yui

2.Yahoo User Interface Blog : yuiblog.com
3.Dav's Blog , code samples


文章
1.Nate Koechley, "Yahoo! vs. Yahoo!: Case Studies"

2.Nate Koechley,"YUI's CSS Foundation"

3.Yahoo, "Know Me, Touch Me, Love Me - YUI"(中文)**

4.Vani Raja,"Making the hard stuff fun & easy with YUI CSS"

5.張克軍,"打造高品質前端-YUI應用"

6.Doug Geoffray & Todd Kloots,"Designing RIA Accessibility:A Yahoo UI (YUI) Menu Case Study"

7.Satyen Desai,"YUI()"

8.Nicholas C. Zakas,"Test Driven Development with YUI Test"

2012年2月29日

軟體開發文選 2012年3月1日

作者: Fred Wang (FW知識瑣記) 日期: 2012/3/1

軟體開發
1.HTML5雜談(cnBeta) : 本文談談HTML5尤其是HTML5遊戲的現在和將來。
2.開發人員首選跨平臺工具之最新調查(cnBeta) : VisionMobile發佈了一份新報告,報告中統計了開發人員當前使用的跨平臺工具、未來計畫要使用的跨平臺工具以及打算棄用的跨平臺工具。

程式設計
1.程式設計語言新寵兒 - Julia誕生記(cnBeta) :Julia是一個新的高性能動態高級程式設計語言。語法和其他程式設計語言類似,易於其他語言使用者學習。文中探討了Julia語言的開發緣由以及它的新特性。
網頁設計
1.13個JavaScript圖表圖形繪製外掛程式(cnblogs) : 本文收集了13 個 JavaScript 圖表和圖形繪製外掛程式。少數是獨立的框架,大多數支援條圖、線圖、圓形圖等基本圖形,很多甚至支援更加複雜的圖形,比如:卞氏圖表、熱圖、進化樹、二維散點圖、二維散點氣泡圖、三維散點圖等。

個人成長
1.技術工程師的能力與目標(cnBeta) : 許多工程師有這樣的困惑,自己覺得工作已經做得不錯,但是上司好像察覺不到,甚至還對自己的工作吹毛求疵。如果有個合適參照標準,工程師或許就可以更好的對自己工作進行自評。本文列出好的工程師必備的四點能力讓工作更容易達成目標並且更容易受到肯定。

職涯
1.2012年網路業最熱門職缺(數位時代) : 美國新創業家協會列出八種今年最熱門的職缺以及專業能力,其中對內及對外的“溝通”能力也是網路界最為強調的主要能力。

iPhone手機安全指引

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/29

       講到安全,首先要有的觀念是,"安全"如同保險,需要付出一些成本的,在衡量您需要多高安全層次的保護,再決定要付出多少成本。而您需要多高的安全層次,可以看看如果出問題您要付出多大的代價來決定。

        另外,在網路的世界,沒有百分之百的安全,除非您與網路隔絕,電腦如此,手機也是如此。

一 個人使用安全
 
1.1 手機基本安全
1.自動上鎖(AutoLock) : 如同Screen Saver,可設定多久沒使用會自動上鎖。
2.密碼保護(Passcode Lock): 啟用Passcode Lock,設定Password。 操作順序: Setting > General > Passcode Lock,輸入Passcode。然後在畫面中”Require Passcode”(如圖一)設定過多久沒有使用需要輸入Passcode。例如: AutoLock設五分鐘,Passcode Lock可以設為十五分鐘。
clip_image002(圖一)
3.定期更新作業系統 : 過去版本的iOS持續傳出漏洞,提供駭客越獄與入侵的管道,例如可以跳過Passcode檢查而使用iPhone的漏洞,Apple公司也持續更新作業系統以修補漏洞。iOS可以透過iTune免費更新到iPhone。至少每個月檢查一次iOS的更新。[1]
4.避免將銀行帳號,信用卡號碼,網站密碼等重要資訊儲存在iPhone中。

1.2 Wifi使用安全
2010-2011年Black Hat駭客大賽都有駭客展示可以輕易地透過公用的Wifi網路入侵iPhone。
1. 盡量避免使用公共未加密的Wifi網路。透過軟體虛擬Wifi功能,已經可以輕易的建立偽裝的公共Wifi站點,例如偽裝命名為實際的旅館或咖啡館的Wifi站點,誘騙使用者連上,再藉以竊取網路帳號,密碼或其他個人資料。

2. 私人Wifi區域網路應該設定密碼與加密(WEP,WPA,WPA2,其中WPA2安全性最高)。
3. Wifi預設為關閉,使用完畢應關閉Wifi功能。(注意,在沒有連線的情況下僅僅是開啟Wifi功能就有可能被入侵。)
4.在Wifi環境使用Skype進行通訊,由於安全性高,可以減少被竊聽或資訊攔截的風險。使用VPN或Citrix的連線由於全程加密,也較為安全。

1.3 遺失或遭竊時之損害預防
   如果擔心手機遺失或遭竊時重要資料被盜取,可以進行下面的設定
1. 設定長密碼 : 預設四碼數字的密碼最多一萬次的嘗試就可以被猜到,因此建議取消預設的簡單密碼,改為可以輸入五個字元以上文字較長的密碼。設定方法 : 在Passcode Lock功能畫面將Simple Passcode設為OFF(如圖一),再變更密碼。(注意:若設定長密碼因為擔心忘記而寫在記事本上,可能在行李遺失或遭竊時,被發現)。
2. 啟用錯誤自動清除資料功能(預設是關閉的) : 如果盜用者輸入十次錯誤的密碼iPhone將自動啟動清除資料。設定方法 : 在Passcode Lock功能畫面將Erase Data設為ON(如圖一)。
3. Apple公司提供遺失協尋與遠端資料消除服務。(需付費)

1.3 網頁瀏覽安全性
1. 打開跳出視窗阻擋功能 : 如圖二將Safari設定中”Block Pop-ups”設為ON,以防止惡意程式感染與阻擋垃圾訊息。
2. 關閉Cookies : Cookies可以將您某網站登入資訊記錄下來,下次進入該網站就可以不用再登入。雖然方便,但也有危險性,例如駭客可以透過瀏覽器的漏洞竊取你Cookies的資訊。如果不關閉Cookies,在造訪敏感性高的網站(例如輸入過重要的資訊)後,將Cookies清除,如圖二”Clear Cookies”。
3. 開啟詐欺網站警告(預設是開啟的) : 如圖二”Fraud Warning”設為ON。
clip_image004(圖二)

1.4 AppStore下載軟體安全
:  雖然iPhone軟體須經過蘋果公司審核才能上架,但是仍被發現有惡意軟體。
1.軟體下載前注意軟體功能是否有安全疑慮,例如會偵測或記錄你的地理位置等。
2.不要越獄(Jailbreak) : 想要使用一些免費或功能豐富的軟體(這些軟體未經Apple的檢核),可能會將iPhone進行越獄,以取得並安裝這些軟體。如此將讓自己的iPhone暴露在病毒與惡意程式攻擊的危險。

 二 企業使用安全
2.1 身分認證 
可以設定密碼政策如密碼最小長度,密碼到期天數等,企業可以透過IT工具(IBM Lotus Notes Traveler或Microsoft Exchange等)佈署密碼政策至派發給同仁的iPhone。

2.2 遺失或遭竊時之損害控制
a.可以透過Lotus Notes或Exchange由工具遠端清除iPhone中的資料。
b.可以為iPhone資料提供AES* 256-bit之內建硬體加密, 若無密碼無法解讀資料內容。


2.3 企業網路存取安全
無論是同步公司的郵件信箱或是以VPN或Citrix Client連線存取公司系統,網路連線過程均全程加密,以防有心人士攔截資料。

2.4. 限制軟體的使用
可關閉Screen Capture、限制使用App Store 、 Safari或YouTube等軟體,企業可制定政策決定是否開放

參考資料
1.”iPhone Security Guide”,2010/11/3
2.”iPhone Security: 10 Tips and Settings”,2011/3/24


































軟體開發文選 2012年2月29日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/29

軟體開發
1.行動開發者擁抱HTML 5(DigiTimes) : FierceDeveloper網站報導,儘管HTML 5行動程式仍在發展初期,目前也尚未達到理想的普及程度,不過HTML 5不論在技術面或商業面,都有很好的遠景。
2.HTML 5可能加入版權保護機制(DigiTimes) : Google、微軟和Netflix已共同向HTML 5的管理單位「全球資訊網聯盟」(World Wide Web Consortium;W3C)提出一份草案,要求在其標準規格中,增加功能類似版權管理的加密機制。
3.Adobe CS 6年中出爐,主推HTML 5開發(iThome) : Adobe預定在今年第2季推出新一代的數位內容設計工具CS 6,CS 6提供更多HTML 5編輯或格式轉換工具,例如Flash CS 6可直接輸出HTML 5格式。

程式設計
1.用不同語言實現臉部辨識(cnblogs) : 臉部辨識是通過圖像演算法來判斷人臉位置和大小的電腦技術。本文介紹用不同的外掛程式和程式庫來實現這個功能。

職涯
1.對話設計師專家:我們是如何招聘UX設計師的(cnblogs) : 內容上涵蓋了招聘的各方面,彙集了專家們多年的核心經驗。本文雖然是針對如何招聘優秀 UX 設計師,但其中有很多適用於其他領域的通用招聘法則。





雲端儲存服務Symform提供200GB免費的儲存空間

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/29

這是一個值得注意的雲端儲存服務平台,相當具有競爭性。便宜, 可靠, 安全。


http://www.symform.com/

Symform提供200GB免費的儲存空間,相較Dropbox只提供2GB免費多了100倍。

而付費的部份,100美元可以在Dropbox購買一年50GB的儲存量。但是相同的100美金在Symform則提供一年無上限的儲存空間,這已經不只是一百倍的差距了。而Dropbox最高等級的服務則是每年200美金提供100GB。

而它的技術則採用網格雲,這是下一代最有效率的雲端產品。

趨勢科技的專家預測"5年之內,大多數的消費者資料都將會以這種方式儲存,因為它比集中式雲端儲存還要便宜得多,而且它也明顯地更有辦法解決資料缺失的問題。因為它的資料冗餘技術,這種解決方案的可用性至少會比Dropbox或Box.net再多上兩個9的可靠性。"

安全上除了網路傳輸加密外,"他們加上一層自己的加密。或是在資料進入雲端時,讓每個客戶都使用個別的金鑰,而這金鑰是完全由客戶所掌控的。"

2012年2月28日

比google map更厲害的地址搜尋

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/28

一個新發現的網站 :http://showmystreet.com/

1.可以打任何國家的地址(中文也能通)
2.邊輸入地址就邊尋找
3.可以看到一個地址週遭圖或切換到鳥瞰

真的連我家門口都照出來了!

2012年2月27日

如何擺脫企業IT苦力的宿命

作者: Fred Wang (FW知識瑣記) 日期:

從這兩篇文章摘錄整理一些解決企業IT常面臨吃力不討好的苦力的宿命。
1.IT部門的工作績效量化
2.如何量化IT服務管理(CIO時代)


對公司各部門使用者來說,他們享受著不斷線的網路,快速回應的系統,卻把這些視
為理所當然,無法感受背後資訊部門必須付出多少努力,才能維持這樣順暢的營運;反之,在使用者心中,浮現的只是IT部門不准他們下載軟體、限制他們使用MSN,甚至電腦壞了,沒有「立刻」來修理,每年又花公司大把鈔票。難道企業IT人員只能接受這種擔任苦力的宿命嗎?

資誠企管顧問公司(PwC)全球聯盟合夥人,同時也是「Managing IT as a Bussiness: A Survival Guide for CEOs」一書的作者Mark Lutchen也說:「老闆無從得知IT部門的價值,部分原因也出在IT主管。因為很多IT主管提不出任何數據,來向老闆證明自己的貢獻。」

第一 將工作量化
a.人力資源量化 : 當老闆質疑IT部門冗員太多,好像沒做事時,如果IT主管需要提出
具體的數據,告訴老闆,IT一共接獲了多少任務,負責多少業務,這些任務與業務需要多少人力,用數據來溝通,甚至提供業界參考數據佐證,老闆自然比較能理解這個部門是不是人盡其用。

b.將IT服務價值量化 : 在年初就跟老闆及各部門約定好,今年的工作目標,與SLA,例如:保證系統達到97%的不停機率,電腦故障4小時內完修等等,定期提供這些工作目標達成率的報表給老闆,對內不但IT人員工作目標明確,也提供老闆做為考核IT部門績效的依據。

c.引進「使用者付費」概念 : 服務導向的IT部門必須佐以使用者付費的概念,才能讓
溝通不至變成漫天喊價式的討價還價。因此,許多公司在SLA之外,還會有一套IT服務計價的制度當作配套。 讓使用單位明白,IT工具、IT服務不是理所當然,當一個業務部門需要多買10部筆記型電腦,業務部門也必須知道這個成本是該部門必須負擔的,而不是由IT部門來吸收這個預算支出。IBM有一套十分成熟的IT計價制度,可以說,IBM的IT部門就像一個IT服務公司,其它各部門所使用的網路、電子郵件服務,軟硬體設備等所有的服務的項目,都有一套費用及分攤的方法,各部門平日使用這些IT服務,所產生的花費,最後都會有一張帳單寄到該部門。

第二 化被動為主動,積極創造價值,協助企業獲利
a.積極引進新興的IT技術與應用,幫公司創造新的營收來源,甚至擴充新的事業體。

2012年2月26日

軟體開發文選 2012年2月26日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/26

軟體開發
1.你不需要討好每一個人(cnblogs) : 身為網路創業者,在網路上您需要討好的,只是80%的人而已,其他20%可能需要花五倍的力氣去滿雜。因此專注80% 使用者需要的 20% 東西,你可以更專注在核心的功能之上,也可以更快的確定到底有沒有幫使用者解決很痛的問題。

行動應用開發
1.為觸控螢幕移動設備而設計(cnblogs) : 作者 Josh Clark 將向我們介紹一些觸控螢幕移動設備用戶界面設計當中需要注意的問題,並對 iPhone、iPad 和 Android 相關設備在觸控交互體驗方面的友好性進行了對比和分析。

程式設計
1.Code Hero:從遊戲中學程式設計(cnblogs) : Code Hero 是一款 FPS 遊戲,玩家射擊的是會與環境發生互動的代碼,通過遊戲過程學習 JavaScript 和 UnityScript 程式設計。Primer Labs 的 Alex Peake 說,他們相信知識是可以從遊戲中學習,他們希望創造一個程式設計遊戲世界。

網頁設計
1.Google Web應用開發指南第二章:互動設計(cnblogs) : 本文列出Web應用在使用者互動設計上的一些要點,讓您的應用更好使用,效能更佳。
2.為 Web 開發者準備的 20 個有用的 HTML5 教程(cnblogs) : 如內文
3.商業週刊:HTML5前景廣闊(商業周刊):美國商業週刊稱,隨著HTML5的興起,軟體開發者的負擔將大為減輕,只需開發一組代碼,即可兼容多數設備。但這項技術也有可能在一定程度上阻礙技術創新。
4.HTML 5是不是解決跨平台問題的終極密鑰?(cnblogs) : 不同平台的生態圈、技術障礙等壁壘阻礙了開發者快速發展,而HTML5雖被寄予厚望,但目前還缺乏有說服力的產品,HTML5的潛能仍需在探索中被繼續挖掘。

軟體產業
1.誰說開源不能賺錢?(cnblogs) : 有一些來自投資者或商業人士的觀點認為:「開源雖然偉大,但是開源不能賺錢。」。但是,實際情況卻並非如此,很多證據都顯示了這種觀點是不可信的,也是荒謬的。 

職涯
1.工作與夢想中的工作-給電腦科系學生的建議(cnblogs) : 作者建議電腦科系學生如何讓自己在就業招聘會上脫穎而出。
2.線上程式設計挑戰平台Interview Street幫程式設計人員通過程式設計競賽進入名企業(cnblogs) : Interview Street 是幫助知名科技企業招聘程式設計人員的線上程式挑戰平台。企業能在 Interviewstreet Codesprint 平台上發佈限時程式設計挑戰(測試),程式設計人員可選擇自己感興趣的企業或內容參與。

2012年2月24日

2012年精選免費軟體,Open Source(開源)工具與平台

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/25

下面整理一些Open Source工具與平台,作為商用產品替代, 本文不含系統開發相關的Open Source工具與平台, 也不含電腦系統管理, 網路管理, Server與中介軟體,將另文整理介紹

個人桌面工具
  • 瀏覽器(取代MS-IE) : Firefox (推薦安裝同文堂plug-in 網頁簡繁翻譯快速方便), Chrome
  • Office Suites(取代MS-Office) : OpenOffice, LibreOffice(Intel擴大支持LibreOffice), Symphony(Free*)
  • 流程圖工具 :yEd Graph Editor(Free* 推薦使用,可取代微軟Visio)
  • 專案管理工具(取代MS-Project) : OpenProject(Open Source), GanttProject(Free*)  
  • 離線讀信工具(取代MS-Outlook) : Mozilla Thunderbird, DreamMail(Free*), Koomail
  • RSS收集工具 : Feed Reader, RSSOwl
  • 通訊錄 : Corvalis, Rubrica
  • 行事曆 : Rainlendar (Free*) 
  • 筆記軟體(取代MS-OneNote) :EverNote(Free* 推薦,"Evernote使用術")
  • 中文輸入 :Yahoo輸入法(Free* 推薦使用,可取代微軟輸入
  • 即時訊息(IM)(取代MSN) : Pidgin, aMSN
  • P2P工具 : Azureus, BitTorrent, Cabos, Gnucleus
  • FTP工具: FileZilla
  • 遠端桌面 : UltraVNC, TightVNC
  • Blog Writer : Windows Live Writer(Free)
  • PDF產生工具:PDF Creater
  • 解壓縮軟體 : 7Zip
  • Windows桌面管理 : Fence(Free)
  • 檔案管理 :FreeCommandar(Free)
  • 防毒軟體 : AVG(小紅傘)
  • 光學文字辨識(OCR)軟體 : Free OCR (下載, Free)
多媒體工具
  • 圖片/相片編輯工具 : Pant.Net, GIMP, Inkscape, Blender(2011年得獎)
  • 多媒體工具 : VLC Media Player(比MS Windows Media Player可讀更多類型的影音檔案), Miro
  • Video Converter : Miro Video Converter
  • Download helper : SkipScreen
  • 錄音工具 : Audacity
  • 心智圖工具 : FreeMind(Open Source), XMind(Free*), Cayra(Free*) 
  • 擷圖軟體 :Greenshot(Open Source) 
  • 讀圖軟體 :IrfanView(Free)

平台(提供企業,團隊內部或對外使用)
  • Bulletin Board : phpBB
  • Databases : Firebird, PostgreSQL
  • Blogging :  WordPress(2011,2010,2009得獎)
  • 網頁內容管理 : Joomla, Drupal(2011,2010,2009得獎),  Plone, Xoops, openCMS
  • 企業內容管理 : Alfresco(2010,2008得獎)
  • 文件管理系統 : LogicalDoc(2010得獎)
  • Wikis : MediaWiki, Tiki Wiki(2010年得獎), Piwik(2009得獎)
  • 電子商務平台 : PrestaShop, nopCommerce, Magento(2009,2008得獎)
  • 專案管理平台 :DotProject (2008得獎)
  • ERP : Openbravo ERP(2011,2010,2009得獎), Compiere(2009,2008得獎)
  • CRM : SugarCRM(2011,2010,2009,2008得獎)
  • BI Suite(includes ETL, OLAP,...) : Pentaho(2011,2010,2009,2008得獎), JasperSoft BI Suites(2009得獎)
  • Video Conferencing : Dimdim(2009得獎)
  • BPM(Business Process Management) : Intalio(2009,2008得獎),Bonita Open Solution(2011得獎)
  • 搜尋引擎 : Apache Lucene and Solr(2011,2010得獎)
  • Application Monitor : Hyperic HQ (2008得獎)
  • Enterprise Portal : Liferay Portal(2008得獎)
  • Reporting Engine : JasperReports (2008得獎)

參考文章
1. Best Open Source Software,
2. Open Source Windows
3. 2011 Open Source Awards
4. Bossie Awards 2010: The best open source applications, InfoWorld.com
5. KPMC,提供好用的免費專案管理軟體下載資訊

註 :
1.(Free*)為免費軟體,非Open Source
2.得獎指InfoWorld Bossie Awards的最佳Open Source獎

2012年2月23日

軟體架構師相關資源整理

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/23

比爾蓋茲除了是微軟董事長,更是微軟首席架構師,更一手主導微軟產品。架構師是一種技術職,要求很高的專案、技術能力,也是系統開發工程師中的最高位階。

軟體架構師受到軟體業者重視的原因在於,軟體開發事先若能有好的架構,不論是事後維護或未來功能延伸,都能達到成本節省與開發效率提升的效益。

目前架構師可分成4大類,分別是
1. 基礎建設,包含網路、伺服器等產品部署的基礎建設架構師;
2. 應用程式架構師,包含甲骨文、SAP等應用程式
3. 資訊架構師
4. 管理架構師。

教育訓練資源
1.資策會,軟體架構師精修班

書籍
1.一線架構師實踐指南,碁峰,2010
2.軟體架構師應該知道的97件事(簡體中文),電子工業出版社,2010
3.架構之美(簡體中文),機械工業出版社,2010
4.軟體架構學, 新文京,2006
5.J2EE架構師認證指南(簡體中文),機械工業出版社,2004
6.軟體架構師入門必讀(簡體中文),機械工業出版社,2003

相關文章
. iThome, 為SOA做準備,臺灣軟體架構師漸受重視
.邁向架構師的暖身運動(1):介面導向設計
.邁向架構師的暖身運動(2):抽象化的能力
.邁向架構師的暖身運動(3):培養技術的決策力,而不是一昧的只會追新技術
. 從軟體架構師(Architect)的觀點來看軟體開發流程
. 程序員成長為架構師必備的十項技能
. 軟體架構師的成功秘訣
. 開發人員如何成為架構師
. 企業IT架構師炙手可熱

組織
1.企業架構師協會

領導與管理智慧文選-2012年2月22日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/22

領導智慧
1.領導,不要管理(cnblogs) : 關於「管理」一個成熟的商業模式,我們已經有太多書、太多理論、太多工具。但關於如何「領導」一個正在優化商業模式中的團隊,和如何在過程中説明成員們成長,説明他們成功,你大概很難從書上學習,必須要親身經歷過,並且非常有意識的去扮演好這個角色。本文作者提出領導的四個心得。

管理智慧
1.不要逼員工威脅辭職(cnblogs) : 在很多公司裡,想要獲得漲工資的辦法就是威脅辭職。企業老闆應該有一個清晰的堅持的薪資計畫,有規律的對那些貢獻超出回報的員工提升工資水準。

個人成長
1.正面思考2訣竅,啟動大腦的幹勁荷爾蒙(經理人月刊) : 日本美國運通連續兩年業績突破20億日圓的超級業務員佐藤由紀在"我這樣說,業績突破20億"中,分享自己「正向能量說話方式」的自我激勵術包含兩點 : 想起快樂的回憶,心情會突然明亮起來, 想像目標達成時,幹勁會源源不絕地湧現。
2.用邏輯力,把話說清楚,把報告寫明白(經理人月刊) : 任何有效的主題內容,在陳述時,都應該具備下列3個要素:結論(說明主題核心)、根據(為何達此結論),以及資料(導出根據的事實與資料),唯有三者環環相扣、彼此貫連,當根據能導出結論、結論能由資料證實,才是有邏輯的立論,聽者也才會真的被打動。

2012年2月22日

軟體開發文選 2012年2月22日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/21

軟體開發
1.CPU負擔過重 Intel督促軟體發展商關注節能(cnblogs) : Intel公司的Clay Breshears日前在官方博客上發文批評軟體發展商懶于優化代碼以提高CPU效能。開發商可以通過更優秀的演算法、多執行緒以及優化過的編譯器來實現更好的節能效果,為此Intel還成立了節能開發社群,詳情可以訪問該社群。
2.關於測試和測試人員(cnblogs) : 作者對測試工作、測試人員,以及整個軟體品質管制體系提出一些不同的觀點。例如多數團隊不需要獨立的測試角色,開發人員應該測試自己的程式,不要從不能勝任的開發人員中選擇測試人員,不要一眛地追求測試的覆蓋率,只要是與用戶操作有關一定要用人眼測試,不能僅依賴自動測試工具。
3.Google Web應用開發指南第一章(cnblogs) :什麼是Web應用?(cnblogs) : Chrome 小組推出了一個很酷的 Web App 電子書,講述了 Chrome 開發人員對 Web Apps 的思考和最佳實踐,推薦每個關注 Web Apps 的開發者閱讀。

程式設計
1.Node.js不是銀彈,但它仍然是顆子彈(cnblogs) : Node.js,單從我的理解上講,它的設計目標是更好的通過網路快速、即時的傳輸少量位元組資訊。適用於伺服器端事件處理,即時消息應用,即時遊戲,以及協作工具,它的非同步事件處理為基礎的架構使得接收、處理、發送即時事件消息變得簡單,容易,而且非常有速度。

資料處理
1.Hadoop——你不得不了解的大資料工具(cnblogs) : 現今企業資料倉儲和關連式資料庫擅長處理結構化資料,並且可以儲存大量的資料。但成本上有些昂貴。不但限制了可處理的資料種類,同時還影響到資料倉儲在面對海量異質資料時敏捷的探索。Hadoop 解決上面的問題並提供廉價的大資料處理能力。

職涯
1.2012年幾大傳統程式設計語言就業趨勢分析(cnblogs) : 本文從幾個程式語言趨勢分析顯示,iOS 開發及所有移動開發當前十分熱門。iOS帶動Objective-C的成長,Android帶動Java的發展,另外Perl 語言在未來幾年裡可能會有明顯的下降趨勢。C#將會替代C++,作為 Windows Phone 開發語言,而繼續保持快速增長。最後,Visual Basic 在未來幾年後很可能會最終消失。

其他
1.寫程式碼如坐禪:你是哪一類程式設計師(cnBeta) : 本文建議程式設計師在等待電腦編譯的短暫時間,該做什麼,不該做什麼,可以保持專注力,並可以得到短暫的休息。

測速照相系統的SQL注入攻擊(SQL Injection)

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/22

看到一篇cnblogs的文章,很有趣,這個駭客車主超有創意的。

警方測試照相系統資料庫的來源,就是經過當你駕車通過某些路口時,被攝影鏡捕捉到車牌,通過 OCR 變成文字內容,然後插入資料庫,於是,下面連結文章中的偽造車牌就成了 SQL 注入(SQL injection)。
http://news.cnblogs.com/n/132034/   (標題是"千萬別惹程式設計師")

2012年2月20日

軟體開發文選 2012年2月20日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/20

系統開發
1.由一把手槍的設計引發的思考(cnblogs) : 領域專家通常會給你指引正確的方向,但除非有人真的使用了你的程式,你不會知道是否真的把事情做正確了。本文闡述使用者往往要看到雛形會才能引發更實際的想法與需求,因此快速的雛型設計將有利於順利地完成您的開發工作。
2.3天讓Web應用承載拓展1000倍(CSDN.net) : 作者William Hertling任職於HP在其Blog中談到了如何在三天內讓一個Web應用程式承載拓展1,000x的即時併發訪問量。對此他分享了自己的經驗,包括怎麼做到、從中學到了什麼,以及從中吸取的經驗。
3.Fred George談程式師的無政府主義(cnblogs) : 在 Agile India 大會的第一天,Fred George談到自己對目前超越敏捷運動的思考,他將這種狀態稱為“程式師的無政府主義”。他分享了自己在Forward Technology公司的一些個人經歷,並指出這種方式可以形成非常高效的環境,解決複雜問題,同時帶來重要業務成果。

程式設計
1.Java堆(heap)記憶體的10個要點(cnBlogs) : 對於程式師來說,知道堆空間(heap space),設置堆空間,處理堆空間的 outOfMemoryError 錯誤,分析 heap dump 是非常重要的。本文作者將heap相關的知識寫下來提供程式設計師們參考。

程式語言
1.Dart程式語言 未來將與Chrome瀏覽器整合(UDN) : 去年正式公佈旗下第二組全新程式語言內容「Dart (飛鏢)」後,Google也預計針對以開放原始碼為主的Chrome瀏覽器釋出對應整合Dart VM into Chrome的技術預覽版本,可讓Mac或Linux平台於Chrome瀏覽器中以跨平台形式執行藉由Dart所開發的應用程式。

行動應用設計
1.iPad應用10大設計準則:簡化功能 有首頁視圖(騰訊網) : 與眾多優秀的產品相同,iPad應用的成功也取決於產品核心價值以及使用者體驗模式等諸多方面的因素,本文提供一些在設計工作中需要認真考慮與貫徹的指導準則。讓實際的iPad應用專案中制定更加合理與正確的產品設計決策。



職涯
1.請重新認識你作為程式師的價值(cnblogs) : 本文作者建議程式設計師應該為自己的智慧財產權投資時間以增加自己的價值。

雛型化設計對新系統開發的重要性

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/20

Why You Need Domain Knowledge : 這篇文章由一把空氣手槍的設計,闡述軟體開發常發的困境,傳統瀑布式的開發方法往往在開發團隊花很多的時間與精力開發測試完成後,到使用者驗收測試,甚至上線使用,才引發使用者對系統大幅修改的需求,甚至根本不合End User的需要,然後,再耗費更大的精力重新設計,並大改系統,這對開發團隊的士氣是很大的打擊。


雛型化設計是開發一個新系統非常好也非常重要的方式,特別是使用者無法將需求描述清楚的情況,或者有可能如參考文章的情境,使用者往往要看到雛形會才能引發更實際的想法與需求。

2012年2月17日

推薦文章:提升程式設計師生產力最好的工具是什麼?

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/17

看到這篇文章"提升程式設計師生產力最好的工具是什麼?",一般直覺會想到,好的開發工具,UML工具,除錯工具,單元測試工具,文件製作輔助工具,版本管理工具,程式檢測工具等。這篇文章調查一些專業人士的看法列出許多不同的見解,個人覺得蠻實在的可以提供有心提高團隊生產力的老闆們的參考。

票選的項目前幾條有 :
1.電腦用SSD
2.電腦有大量的記憶體 : SSD跟大量的記憶體,電腦會跑得飛快
3.好的耳機 : 阻絕外界干擾思緒的雜音
4.會議都要事先約好 : 良好的會議管理,減少突如其來的會議
5.好用的問題單(需求)管理系統 : 減少許多會中斷工作的問題,方便問題/需求處理的排程。
6.提供兩台螢幕(或者一個大螢幕): 工作起來會舒服,畫面上能安排的視窗變多,長期下來可以減少很多切換畫面所花的時間。
7.分散式程式碼管理系統 : 避免無法理解問題成因的程式碼片段

其次
1.舒服的椅子,咖啡機等(最好有像Google一樣的辦公環境) : 做久了也不會有職業傷害,提供任何提振精神有利長期工作的東西,最好讓大家都不會想下班。(當然也有另外的績效與進度追蹤機制,避免打混)
2.善用Google等查詢 : 可以快速搜尋,為問題找到解答。
3.需要設定一段無法連接internet的時間,以避免分心。
4.彈性上下班時間 : 讓每個人可以調整在自己最佳狀況下工作 。

做老闆的如果上面的工具或方法多數都提供了,工作效率還不提升,可能就會是素質問題,開除員工可以是重要的選項。

商業智慧(BI)分析師的工作與所需的能力

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/17

商業智慧分析師主要工作就是藉由資料分析工具的協助,查詢、整理、分析公司過去的各項作業及交易記錄,並將最終的分析結果製成相關報表。更積極的一面主動蒐集, 發掘與提供有用的分析資訊,提供輔助決策,協助企業進行策略調整提高企業競爭力。

商業智慧分析師所需要的能力可以區分
參考文件中 :
第一篇文章提到下面幾點能力 :
1.熟悉資料分析工具,具備統計分析能力,資料倉儲,資料挖掘等知識。
2.了解業務資料的意義,來源與相關商業法則(business rules)
3.瞭解資料間的因果關聯性
4.設計與規劃業務所需的報表,協助企業經理人依需要快速客製出不同的分析報表
5.熟悉企業流程與了解市場趨勢與業務需要,能夠主動發掘有用的資訊,讓內外部的資料成為企業經營的利器。
6.由歷史資料預測市場趨勢,調整策略,提升競爭力。
7.了解企業目標,KPI與決策輔助資訊,主動提供與決策相關的資訊。
8.擅長溝通與邏輯思考,能與決策主管,各業務主管進行良好的互動,以發掘出各主管的想法與輔助決策的需要。

第二篇文章提到下面幾點能力 (比較多從技術面來看)
1.與商業智慧及資料倉儲小組合作,運用多項ELT(Extract, transform及 load)技術,定義、設計、執行與規劃跨全公司的BI解決方案。

2.透過公司的整合資料倉儲、報表製作工具及其他書面資料文件,以協助公司進行戰術或戰略性的決策。
3.為BI的發展及相關解決方案提供技術層面的支援,並維護資料倉儲的持續性發展。
4.透過技術層面,改善資訊交付、資訊截取與企業運作流程。
5.與瞭解企業流程的使用者合作,收集並記錄其需求,再將轉化為BI報告及應用系統的各項功能/非功能規格。
6.將資料與企業知識轉變成多維度的報表與數位儀表板。
7.排除BI問題,讓商業智慧作業流程的運作更加運暢。
參考文件 :
1.Juan Carlos Prez,BI商業智慧分析師, CIO雜誌
2.國內少見的全球熱門IT職務 - 商業智慧分析師 , RunPC

軟體開發文選 2012年2月17日

作者: Fred Wang (FW知識瑣記) 日期: 20120217

程式設計
1. 程式師不要做沙和尚(cnblogs) : 做電腦軟體發展的人員大多都有沙和尚的影子,只知道埋頭做事,做完了主管也不知道你在忙碌,因為主管沒有看見你忙,甚至沒有聽說到你忙,自然你還是忙你自己的。及時彙報也是向領導表示尊重的一種方式,並且以工作方式多接觸領導,久而久之會拉近雙方的關係,使你不再懼怕,自然不會掛起來。
2.軟體開發人員的“七重苦”(cnblogs) : 軟體開發這行業有其快樂也有其痛苦,本文提到軟體開發人員的七項痛苦之處。
3.程式設計師水準分級 你屬於哪一類?(cnblogs) : 本文內將水準參差不齊的程式設計師按照技術水準分為從“唯讀”到“上帝”,共十一個階段,以説明廣大程式師找到自身定位並從中發現自己發展方向
4.是什麼成就了卓越的程式師?(cnblogs) : 工具並不能使你變成一個程式師。那什麼可以呢?本文作者認為,成為一個優秀的程式師在很多方面取決於:你做什麼工作,你和什麼人一起工作,五點特點是作者認為一個真正優秀的程式師所應該具備的。
5.饑餓的程式設計師(cnblogs) : 寫健康的程式碼跟你保持健康飲食一樣,需要:認識和承諾。從吃垃圾食品到健康食品需要你認識到有些事情需要改進。改進你的程式設計習慣需要同樣的事情:認識到有些地方需要改進,並承諾做出行動。
6.提升程式設計師生產力最好的工具是什麼?(數位時代) : 程式設計師的工作效率與生產力如果低了,一個專案不是只會多拖一兩個月,而有可能多拖一兩倍的預估時程。而延後上市的影響更是龐大。其中一項與生產力重要相關的因素,除了本身特質與技能外,就是他使用的工具了。本文列出一些工具以提升程式設計師生產力。
7.開發工程師的職場人生路(cnBeta) : 本文總結了許多開發朋友在30歲以後的生活之路,讓我們一起看看開發人員“路在何方?”那麼開發人員在30歲以後都幹些什麼呢?

網頁設計
1.拒絕平庸——淺談WEB登錄頁面設計(cnblogs) : 本文不談趨勢,不講交互大道理,不涉及技術,就侃侃使用者登錄頁面的一些設計表現形式。希望這些設計表現手法能給大家帶來一些啟發和靈感。


軟體開發文選 2012年2月16日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/17

程式設計
1.有關 Web 回應式設計的 7 點啟發(cnblogs) : 開發者視角中的優秀並不意味著使用者也有同樣的感受。國外知名電子商務網站Lot18的高級前端開發人員 Vince Allen,特別撰文講述了採用回應式設計開發 Lot18 的背後故事和 7 條經驗。
2. 9 個指導開發者快速編碼/學習的網站推薦(cnblogs) : 快速掌握一門語言或一項技術,對於你的 Web 開發工作將是百利無一害的。本文為你帶來了 9 個實用的線上教程,一些是互動形式的,還有一些則以全面的指南和視覺化形式説明你快速掌握一門語言。
3.用户是最大的漏洞(cnblogs) : 從安全方面來說,使用者是系統中最薄弱的環節。不過「聰明的」使用者總是會找出各種理由把責任推卸給「技術」。甚至研究者有時也會落入這種陷阱。

網頁設計
1.引發網頁佈局災難的7個大錯誤(cnblogs) : 設計一個非常好的佈局是一件非常不容易的事情,而且判斷的方式也非常的主觀。任何一個設計可能會取悅你,也可能讓其它人厭惡。儘管這樣,這裡仍舊有些大家都承認的設計誤區。本文列出了一些設計的小技巧提供大家來避免這些錯誤和誤區。
2.精選5個優秀的免費配色網站,讓你的網站更出色(cnblogs) : 對任何設計來說,顏色都是最重要的元素之一,對觀眾有著巨大的影響,因而對顏色的挑選和研究有著重要的意義。本文列的 5 個配色網站將有助你挑選最佳的調色板。

會議中使用個人電子設備的規定

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/17

過去開會時會因手機鈴聲干擾打斷會議,影響與會者的思路;現在則可能因為智慧型手機或平板電腦的使用,造成與會者分心,影響會議中應有的專注與投入。


因此,企業如果因IT消費者化或無紙化准許同仁使用個人智慧型手機或平板電腦,應訂定會議使用電子設備的規定。

如限定僅可使用於製作會議紀錄,攜帶並參考會議所需的相關materials,做筆記,透過投影機顯示個人準備的material,以利會議的討論。

與會者不得在開會時看個人郵件與簡訊,不得撰寫與傳送個人郵件與簡訊,不得上網進行會議無關的瀏覽,至於所有會議相關的資料應該在會前就準備好,也不應在會議中再行搜尋。

甚至企業也可以設置會議室的無線通訊遮罩設備,切斷手機通訊與上網能力,減少會議的干擾。

2012年2月16日

雲端服務對企業IT人員的影響

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/16

企業應用系統逐漸雲端化,特別是公有雲,造成未來企業IT人員有哪些影響? 整理如下 :

1.降低IT人員對Server與網路的掌握度 : 必須依賴服務商處理問題


2.需增加Internet頻寬的需求 : 透過Internet使用雲端服務,將增加對Internet頻寬的需求

3.需面臨新的資訊安全與風險管理問題 : 必須建立新的資訊安全管制與風險管理方法

4.需學習新平台技術與限制 :
a.需學習雲端與本地系統整合,移轉與備份的技術
b.需學習新平台的開發環境,程式語言與API,了解客製化與開發的限制

5.需面臨使用者使用習慣的改變造成IT服務模式的變更

Portal產品評選的條件

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/16

* () 內為重要性


Robust : 架構是否嚴謹,穩固(高)

Scalability : 允許跨區域,組織與分公司之使用(高)

Integration : 1.與大廠產品整合的能力,例如: SAP, IBM Domino,BO等, 2.LDAP, SSO等, 3.eMail Integration (高)

Openness : 允許客製化的程度(高)

Flexibility : 支援不同Client環境與個人化能力等(高)

Management : 集中管理,安裝與監控,是否容易管理與快速安裝(中)

Price : 產品購買與未來維護的成本(高)

Time : 建置時間長短(中)

Vendor : 廠商的能力,信譽,Customer-based大小等(高)

SOA-style integration : SOA-style 整合標準,能力與管理(中)

Standards : 能持續支援業界標準,如JSR-168/286, WSRP等(中)

WCMS : 具備Web Content Management系統(中)

Web 2.0 : 是否具備Web 2.0功能,支援程度如何(中)

Mashup : 是否具備Mashup功能,支援程度如何(中)

Search : 搜尋與進階搜尋功能(中)

Templates and demo : 是否有Templates與Demo data(中)

Cross Platform : 是否限定Windows或Linux等平台使用(中)

Liferay與Websphere Portal的比較

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/16

Liferay

 
優點
  • 無需採購軟體,快速建置具備核心功能的Portal
  • 持續致力於提供Social Networking功能與Portal的整合
  • 提供非Portal應用存取Portal Service

缺點
  • 缺乏Rule Engine,因此個人化功能無法與商用系統一樣強大
  • 缺乏大型及交易型入口的應用案例
  • 較少內建的商業應用系統,內容管理系統與協同工具相關的Portlets
  • 缺乏廣大的夥伴網路(3rd party)

Websphere Portal

 
優點
  • 許多大型的客戶成功應用案例,應用於廣泛與複雜的情境
  • 具備許多搭配的技術,如內容管理,Mashup, Social Network等
  • 具備許多預設的樣板,Workflow與部屬設定,減少部署的時間

缺點
  • 在複雜的Portal專案中, 仍需較長的部署時間,是較難部署的Portal之一
  • 需要大量的投資在相關的技術與技能

 

 

 

Skype的風險與控管策略

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/16

Skype在企業使用上可節省大量的通話費用,但是相對於其他VoIP具有較高的資安風險。Skype的風險如下:

1.缺乏版本與更新控管,產生安全性風險 : 使用者自行下載Skype Client,企業內將存在許多不同版本的client, 許多未更新的版本將造成安全性風險

2.通話加密,產生資安的風險 : a. 傳統網路安全機制無法分析進入的流量以防制惡意軟體 b.無法分析並紀錄傳出的流量,造成敏感性資訊洩漏的危險。

3.Skype採用P2P分享機制,影響網路頻寬

4.特有的傳訊標準,無法以標準的防火牆進行管制 : 會自行尋找未鎖住的port進行傳輸,且不具固定的伺服器,容易產生後門,增加木馬與病毒程式攻擊的風險(TROJ_SPAYKE.C為專門監聽並側錄 Skype 所撥打的電話的木馬程式。)

5.Skype未獲得外部安全認證,可能隱藏未知的安全性弱點 : 一般IP電話供應商會取得FIPS 140-2認證與CC認證

Gartner建議企業根據風險的容忍度,採用不同的Skype安全控管策略

中度安全性 : 使用Skype企業版本進行集中設定與Skype client版本的控管
a.禁止自行下載使用Skype的消費者版本,一律採用統一更新的企業版本
b.申請使用Skype,一律需透過企業正式的簽核程序,簽核過後由IT安裝並進行控管,並將檔案傳遞功能關閉。
c.使用者電腦安裝端點安全軟體

高度安全性 : 使用中度安全性建議並透過proxy管控Skype流量
a.Skype流量透過HTTP/HTTPS代理伺服器集中控管,發生安全性威脅時可立即關閉該點的存取服務。
b.透過SSL/SOCKS5代理伺服器對將存取Skype服務的使用者進行身分認證,關閉P2P分享。

低度安全性 : 允許使用Skype消費者版本,但建議使用者進行安全性強化的設定

近年來有許多Skype管理的軟硬體技術,可以提供多種控管的解決方案。Skype的六種管理技術請參考iTHome,"如何管理員工的Skype使用行為"一文



Gartner提供Skype資安控管策略,越高的安全性控管策略所需花費的成本越高。因此企業在採用Skype策略與管理解決方案前應進行TCO分析。





2012年2月15日

Code Review的方法與工具

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/15

Code Review的目的 : 越早發現問題,解決問題的成本越低

Code Review的層次 :
  • 規範層次 : 避免資安漏洞與造成效能問題等,沒有遵循會造成嚴重的後果
  • 推薦層次 : 避免造成未來可能的問題, 必要性較高的作法,例如異常值的處理等
  • 建議層次 : 較好的寫法與習慣, 經過團隊同意列入參考的撰寫風格

Java Code Review Tools
  • CheckStyle : 靜態程式碼分析,顯示程式哪些地方違反訂定的程式標準(免費)
  • PMD : 基於靜態規則設定的Java原始程式分析器能夠指出程式中潛在的問題(免費)
  • Jalopy : 可以簡易地設定程式標準格式並偵測與修正程式中的錯誤(免費)
  • Hammurapi : 強大的原始程式檢查工具(免費)
  • Squale : 一種管理軟體品質的平台(免費)
  • Teamstudio Analyzer for Java : 以192條預定的規則檢查Java程式,並產生違反規則的報告。此工具也可以根據預設的樣式自動修正程式。(付費軟體)

Lotus Notes Code Review Tools
  • Teamstudio Script Browser : 協助檢視Lotus Script程式碼與程式碼間的關係(免費)
  • LotusScript Manager : Lotus Notes developers用來進行程式碼稽核的小工具(免費)

SAP ABAP Code Review Tool
  • Extended Program Check (SLIN) : 分析找到的錯誤,警示與訊息,指出可能造成執行期錯誤與其他嚴重問題的來源.(內建)
  • Code Inspector(SCI) : 根據效能, 安全性, 語法與命名規則檢查Repository的物件(內建)
  • Runtime Analysis : 衡量程式的執行效能(內建)

參考資料
  1. Wikipedia, “List of tools for static code analysis”
  2. Harshad Oak,”Three tools that make Java code review painless and
  3. effective”,TechRepublic
  4. Teamstudio Free Utilities: A Resource for Developers and Administrators
  5. Erik Sodtke,“An Integrated Approach to Troubleshooting Your ABAP Programs”

自毀式電子郵件(Self-Destructing eMail)整理

作者: Fred Wang (FW知識瑣記) 日期:

何謂自毀電子郵件?
自毀電子郵件是電子郵件經過一段時間或發送者提出請求後消失或變成不可讀。

三類自毀電子郵件系統介紹

1.TigerText

功能 :
a.設定定時刪除
b.Delete on Read”: 讀後刪除60秒刪除
c.送件者可對Server提出刪除要求
d.收件人無法儲存、複製或轉發TigerText訊息

限制
a.限iPhone
b.雙方都須下載TigerText軟體(Free)
c.費用 : 月付1.49美元發250通簡訊 ,月付2.49美元無限量發送

2.Self-Destructing-eMail.com

功能 :
a.讀後刪除60秒, 且限讀一次
b.可到self-destructing-emai.com登入, 撤銷該郵件
c.收件人無法儲存、列印(會變成全黑)

限制
a.需在網站登錄為會員(提供試用)
b.無法處理附件

缺點
a.送到self-destructing-emai.com前, 仍經過ISP等Mail Server, 未加密郵件, 仍有被儲存, 盜取的可能

3.Vanish

功能
a.設定Key分割的數量,分割越多安全性越高,但效能越差
b.設定VDO Time-out的時間,需為八的倍數

限制
a.雙方必須安裝Vanish System
b.雙方必須安裝Vanish Plug-in

其他自毀電子郵件系統
a.KickNotes.com http://www.kicknotes.com/
b.Zmail Basic https://zsentry.com/zmail/emailsecurity.html
c.Stealthmessage.com http://www.stealthmessage.com/
d.SDMessage.com http://www.sdmessage.com/
e.DestructingMessage.com http://www.destructingmessage.com/



Dashboard的三種類型

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/15

Real-Time Dashboards (Operational)
  • 包含短時間範圍或原始交易資料簡單的彙整 (單一資料來源)
  • 資料通常直接來自交易系統或ODS (Operational Data Store),例如監控工廠生產線的狀態
  • 可以透過.xml訊息或queried data set傳遞資料

 
Short-Range Dashboards (Tactical)
  • 顯示每日或每週的進度資訊,通常包含多種圖表,並結合多種的資料來源,並需要具備Drill-to-detail的能力。
  • 進行特定流程或專案的追蹤,通常為部級或處級層次的彙整資訊,例如定期預算與實際的比較
  • 通常需要以Data mart預先結合或彙整資訊以提升Dashboard效能

 
Long-Range Dashboards (Strategic)
  • 包含較長時間範圍的資料,高層次的計算,例如KPIs
  • 監控企業的策略目標
  • 需建置多維度的OLAP資料庫以提升效能

 

企業內部社交媒體控管的類型與技術

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/15

控管的類型
1.全面開放
2.開放但禁用遊戲 : 避免影響生產力,降低對頻寬的耗用
3.禁止在特定時間內使用 : 避開核心業務的時段,以不影響核心業務所需要的頻寬,或下班時間開放
4.僅限特定部門或人員申請使用 : 例如開放行銷部門使用,非業務單位禁止使用
5.全面禁止使用

控管的技術

一 設定DNS轉向
優點 : 利用現成的DNS設備將社交媒體的網址指向其他IP,不需要額外的花費,也可以將特定遊戲網址轉向禁止訊息網頁。
缺點 :
1.無法依據使用者身分別來提供不同的權限
2.IT部門還須自行蒐集與維護需要管制的網址清單

二 以防火牆管制IP
優點 : 透過路由器上的ACL用一條組合規則就可以封鎖一個網段的IP,也有路由器的ACL可提供時間設定,設定不同時段所套用的ACL規則。
缺點 : 社交媒體網站的伺服器數量很多,而且還會有改變,IT得自行蒐集這份IP管制清單,並且定期更新

三 以防火牆管制網址
優點 : 利用防火牆網址過濾機制來管制社交媒體網址,也能和排程整合,做到時間管制的效果
缺點 : 無法依據使用者身分別來提供不同的權限

四 專用網址過濾設備
優點
1.能與帳號認證機制整合,針對不同身分設定不同的過濾政策。
2.具有Proxy機制,能夠記錄員工所有的瀏覽行為

五 頻寬管制設備
優點 : 專門的QoS設備有完整的機制管制特定網址的頻寬
缺點 : 成本較高

知足

作者: Fred Wang (FW知識瑣記) 原作日期: 2012/2/15

    林家,陳家,張家過去是我十多年的鄰居,三個家庭有著不同的故事。雖然平凡,卻也值得省思。

       林先生是一家創投公司的老闆,在竹科早期與友人辛苦創業,中年有成退休,轉而從事創投,由繁忙的工作轉為輕鬆;全家也搬到郊區的大房子,過著優閒與富足的生活。 陳先生在一個研究機構上班,過著規律的上下班生活,下班可以陪太太散散步,假日也時常帶全家出遊。年輕的張先生就職於一家小型的科技公司,辛苦忙碌,加班更是家常便飯,連假日也不得閒。

       張太太常常抱怨先生無法陪陪家人,抱怨沒有人分擔家事,與管教孩子的責任。羨慕陳太太,先生能時常陪在身邊,因此,只要自己先生在家,就要求他做家事,假日要求要帶全家出遊。近年張先生因為工作表現好,升上主管,加上分得的股票,買車買屋,生活大幅改善。儘管如此,張太太還是希望先生有更多的時間陪她。

        陳太太婆家大姑小姑都嫁給有錢人,家庭環境一比之下,相形見絀。因此很羨慕林太太,先生事業有成,可以住大房子,自己先生則只能領死薪水。最近陳先生離開原來的研究機構與同事一起獨立創業,常常需要忙到晚上11,12點才能回家,陳太太開始懷念起過去的先生陪她散步的時光。

       而人人稱羨的林太太呢? 林太太因先生早年忙於事業,因此辭去工作全心照顧兩個孩子。孩子先天體質不佳,因此照顧上格外吃力,加上先生工作壓力大,時常需忍受先生的脾氣,先生與孩子間的關係也處不好。最近,孩子們長大獨立了,先生工作也較為清閒,在卸下重擔之際,林太太卻罹患了癌症。

       故事還在進行,相似的故事也在您我週遭持續上演,大家都羨慕比自己過的好的人,而不是多看看自己擁有多少。我相信唯有"知足才能快樂",把握當下,珍惜自己擁有的,活出自己幸福的人生,才不會遺憾。

(這是我在2012年初離開服務十多年的公司前寫的一篇文章,故事改編自真人實事,分享給好朋友)

作者: Fred Wang (FW知識瑣記) 原作日期: 2012/2/15

2012年2月14日

企業的社交媒體政策或指引

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/14

由於社交媒體發展快速,許多企業會發布社交媒體政策或指引,以規範企業員工在社交媒體上的發言。


  
例如下面企業的社交媒體政策或指引 :

  • Cisco : Internet Postings Policy
  • Coca-Cola : Online Social Media Principles
  • Dell : Online Policy
  • FedEx : Blog Policy
  • Gartner : Public Web Participation Guidelines
  • HP : Code of Conduct
  • IBM : Social Computing Guidelines
  • Intel : Social Media Guidelines
  • Microsoft : Tweeting Guidelines and Blogging Guidelines
  • SAP : Social Media Participation Guidelines 2009
  • Wal-Mart : Twitter External Discussion Guidelines

 內容大致分為八類

  • 遵守公司行為守則
  • 堅持專業與獨特的觀點
  • 尊重他人,避免負面與爭議性的言論
  • 保護與提昇公司品牌形象
  • 尊重隱私與版權等
  • 避免爭辯
  • 發表前先思考並對發表的言論負責
  • 申明以個人身分發言

Lotus Notes 應用程式壓力測試工具

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/14

目前找到下面三個工具可以作為Lotus Notes 應用程式壓力測試使用

1. Server.Load Utility

說明 : 這是Domino Server Administrator client安裝的一個選項,可以設定Client端Script類型,模擬大量用戶使用,進行Notes Server的負載測試
廠商 : IBM
優點 : 1.Domino Administrator Client內建,無額外成本 2.每一台測試Client可以模擬250~1000個用戶
缺點 : 1.須學習撰寫Server.Load Script 2.可能無法完全模擬特定應用系統的操作。

2.Rational Performance Tester
說明 : “Rational Performance Tester Extension for Citrix Presentation Server”,可以透過畫面的互動模擬(包含滑鼠與鍵盤動作)進行Deploy到Citrix Server的任何的應用系統進行效能測試。(需在Citrix Server中建立許多虛擬用戶)
廠商 : IBM Rational
優點 : 1.有錄製功能,Script製作方便 2.可以完全模擬用戶的操作。
缺點 : 1.每一台測試Client可以模擬的用戶數較少(200以內) 2.有Citrix License限制 3.透過Citrix與透過Notes Client的操作有效能上的差異。

3. GroupSizr/NoteSizr
說明 : 協助開發者設計高效能與高擴充性(scalable)的Notes應用系統 ,其中Workload Generator模組用來在單一台PC建立超過100k的users模擬使用者操作。
廠商 : Technovations
優點 : 每一台測試Client可以模擬最多100,000個用戶
缺點 : 1.須學習撰寫GroupSizr Script 2.可能無法完全模擬特定應用系統的操作。 3.軟體老舊

Lotus Notes應用系統效能提升文章整理

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/14

1.Lotus Notes Performance Tips(nsftools) : 本網頁包含各種Lotus Notes和Domino相關的效能技巧,與其他相關資訊的連接。特別是“必讀”(Required Reading)的連接。這些網頁和文件有超越這裡提到的效能技巧。

2. Lotus Notes應用程式效能最佳化與效能測試(pdf, IBM) 2011

3.50 Ways to Make Your Domino Apps Faster(pdf, MartinScott Consulting) 2010

4.針對 IBM Lotus Notes 開發人員的性能基礎知識(IBM developerWorks) 2009/6 : 這份白皮書闡述對 IBM Lotus Notes 和 Domino 應用程式的性能造成巨大影響的最重要因素。主要目的是説明 Notes 用戶端應用程式開發人員識別問題,然後針對問題提供解決方案,從而實現最佳的性能。

5.Lotus Domino Performance Tunning(pdf, vladd.lv) 2009

6.Performance basics for IBM Lotus Notes developers(IBM developerWorks) 2008/12: 本白皮書指出IBM Lotus Notes和Domino應用程試效能最重要和最嚴重的影響因素。本文幫助開發者在Notes Client應用的開發上,藉由了解問題領域和提供解決方案,幫助他們最大限度地提高性能。

7. (Redbook) Domino 7 Performance Tuning : Best Practices to Get the Most Out of Your Domino Infrastructure (pdf, IBM) 2006/9

8.Lotus Notes/Domino 7 application performance Part1, Part2(IBM developerWorks) 2006/1 : 沒有Lotus Notes/ Domino開發人員希望聽到下面的評語:“漂亮的應用系統,但糟糕的是,這麼慢”在這兩個部分的系列文章,說明如何透過Notes / Domino應用程式效能的優化以避免這樣的尷尬。

9.Notes應用程式的效能調校(Domino.Club.tw) 2003/4: 基於多年來對客制化的Notes應用程式相關效能評估經驗,收集了大部分會影響應用程式效能的屬性。本文談到會影響應用程式效能的資料庫、視界,以及套表屬性。 我們會提供您多種不同的改善方法,也就是告訴您何時該使用或不該使用某些特定且合適的屬性以達到最佳效能。

10.(Redbook) Performance Considerations for Domino Applications(pdf, IBM) 2000/3




2012年2月13日

如何使用UML來規劃您的網站(簡述)

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/13

規畫階段

1.了解有哪些不同型態的使用者 : 使用Actor/Role Hierarchy Diagram,將用戶分群與分階層,例如: 區分註冊與非註冊使用者,註冊使用者又分管理者與外部使用者,外部使用者又分行動用戶與一般用戶。

2.定義需求 : 使用Use Case Diagram,描述各個使用案例間的關係,誰用這個案例,如何開始,如何結束等。

3.規劃顯示畫面 : 使用class package diagram 畫出不同區域的網頁畫面,網頁間的資訊傳遞關係。

4.規劃技術架構圖 : 使用Architecture Diagram,描述網站Server,資料庫等架構元件間的關係。



設計階段

1.使用Class Diagram : 建立程式元件(Class)的關聯圖

2.使用Collaboration Diagram與Sequence Diagram : 描述程式元件間呼叫/互動的關係與順序


發布(Deployment)規劃 : 使用Component Diagram描述各程式元件發布在哪些架構元件(如Server)上。


摘自原文 : Steve Franklin, "Planning Web Site With UML"

資料洩漏防護DLP(Data Loss Preventation)相關資訊整理

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/13

定義 : 維基百科Data loss prevention software


相關文章
1.個資法上路 資安廠商大搶DLP商機(DigiTimes 2010/6/11) : 資安業者賽門鐵克(Symantec)指出,由於修正後的個資法刑責與最高賠償額度均加重,加上適用的企業範圍擴大,因此促成資料遺失防護(Data Loss Prevention;DLP)市場需求可望提高,包括電子商務(EC)、金融與電信等擁有龐大用戶資料的業者,對於DLP的需求將持續攀高。

2.已導入了DLP解決方案,但機密資料或個資還是外洩了該怎麼辦? (資安人) : DLP解決方案並非萬能,要做到完整的資料保護,DLP必須與加密、DRM等工具互相搭配。

3.企業對資料外洩防護(DLP)的需求與解決方案(中華軟協)

分析報告
1.2011年Gartner分析報告顯示, DLP領導廠商為Symantic, McAfee, Verdasys, Websense, RSA與CA。

產品介紹網頁
1.Symantec Data Loss Prevention
2.McAfee DLP Prevent
3.Verdasys Digital Guardian(數位資安代理)
4.Websense Data Security Suite(DLP解決方案)
5.RSA Prevent Loss of Sensitive Data
6.BlueCoat資料遺失防護(Data Loss Prevention, DLP)方案
7.Trend Micro 資料外洩防護解決方案

企業IT與顧問

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/13

借用一篇網文中看到的一句話,引用在企業IT與顧問的問題上。


 "我在殺豬的時候遇到了一些麻煩,因為我對豬的生理結構不清楚,或是這本來就是一頭畸形的豬,導致我殺的豬很難看,而偉大的顧問卻告訴我,要用一把更快更漂亮的刀。..."

企業IT人員往往需要面對複雜的企業內部問題,而顧問只能告訴您導入一些制式的方法論, 工具...,真正能解決企業問題嗎?   我想有些問題需要企業自己解決,諸如流程與政治因素牽扯的複雜關係,不是顧問可以全盤了解的。 -- Fred

2012年2月12日

影片 - 2014年未來科技

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/12

1. 未來買衣服的方式 (http://www.flixxy.com/future-shopping.htm)

2. 未來的汽車 - 隱藏式車門 (http://www.flixxy.com/high-tech-car-door.htm)

3. 未來的電腦螢幕 - 可延伸,透明,電子墨水顯示(http://www.flixxy.com/future-of-screen-technology.htm)



電腦使用三孔插頭的電源線輻射較少!

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/12

收錄這個內容,給自己一些警示

http://rumor.nownews.com/rumor/rumor.php?eid=4237

這是一位曾在工研院上班的人傳出來的,他學的是工業安全

證明電腦使用三孔插頭的電源線時電腦設備產生輻射較兩孔插頭少!值得大家注意。

領導與管理智慧文選-2012年2月12日

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/12

本月開始每月將整理一份領導與管理智慧文選,將採取逐文加入的方式,將該月好的管理文章選入。

領導智慧
1.對您來說是小事,對屬下卻是大事(gipi blog) : 主管否決一個調動是很簡單的一件事情,但這對member來說卻是大事,主管們應該仔細的思考與評估member的要求,把它當成一件大事來看待...
2.DHL/領導人就是公司「激勵長」!(管理雜誌) : 當企業與領導人傳達的是能引發員工共鳴的強力訊息時,就等於讓整個組織對準了同一信念、願景與價值觀,這將會激勵員工同心協力,讓他們齊心協力為公司效忠。這對企業來說將會產生難以估計的正面效益。

管理智慧
1.站著開會效率高!5分鐘、3件事高效開會法(天下):Facebook負責動態消息(News Feed)功能開發的小組成員,每天固定在中餐前開會15分鐘;微軟的某個產品開發小組,選擇在沒有冷暖氣的樓梯間開會,不舒服的環境,會讓所有人自動自發提高開會效率

職涯智慧
1. 人資真心話:做滿幾年才離職?年資背後的5大秘密(Cheers) : 企業界對於人選的「工作穩定度」常有一個迷思,會覺得若工作愈穩定,該人選的忠誠度、貢獻度與適應都會比較好。若一個人選的「工作穩定度」愈好、工作經歷太穩定,也不見得是一個健康的好現象。
2.資料分析人才,未來最搶手(天下) : 紐約時報指出,懂得將個人既有的專業領域結合數據分析能力的工作者,將是企業最需要的人才,特別是管理階層。麥肯錫預估,全美國需要14~19萬名具有分析專業能力的工作者,而具備數據解讀能力的經理人的人力缺口則有將近150萬。


個人成長
1.讓戴勝益成功的10件事:別怕 「仿冒」好人生!(Cheers) : 以同儕為師,是戴勝益認為最實在的學習,因為彼此沒有上下藩籬。他更表示,懂得學習同儕,才是成為領導者的前提。
2.五大原則 根治拖延藉口(天下) : 根據動機與拖延研究領域的專家,史提爾博士(Piers Steel)的研究指出,有九成五的人承認自己會拖延,其中更有四分之一的人,長期處在拖延狀態。把握五大原則,對付拖延,破除障礙工作的藉口。
3.一頁讀書報告:用15分鐘篩選法,找出核心概念(經理人月刊) : 、「一頁思考法」的提倡者高橋政史提出以一張簡單的表格,和15分鐘的時間,完成言之有物的讀書報告的方法。
4.林書豪教我們的九堂課(Inside, Forbes)

國際科學期刊研究顯示過度上網可能導致腦萎縮

Fred Wang (FW知識瑣記) 日期: 2012/2/11

轉摘一篇報導,可以讓警惕避免過度上網,造成腦部的萎縮,此外,無意義的上網行為將造成工作生產力的降低,生活失序,影響人際關係的活動,家人的互動,減少了戶外活動與運動的時間影響健康。重要還是時間管理與自我控制能力的提升。

原文 : http://www.cnbeta.com/articles/172328.htm
內容摘錄


  "一篇論文發表在20117月份的《PLoS ONE》(它是公共科學圖書館的系列期刊之一,該期刊刊登的文章平均有2.8名專家覆核,多名諾貝爾得獎者也曾在該期刊刊登文章)上,稱用影像學的方法, 研究了18名每天上網813小時的大學生的腦部結構,最終發現在某些腦區(如背外側前額葉皮層DLPFC、輔助運動區SMA、眶額皮質OFC等),這些同學的灰質體積小於正常同齡人,即出現「腦萎縮」現象。論文中甚至提到,上網成癮時間越長,這種萎縮就越明顯。
  專家估計,中國約有2400萬名青少年上網成癮。有關研究亦以中國大學生為研究對象。來自北京大學、成都大學、四川大學、中國科學研究院和美國 佛羅里達州大學等的研究人員,以一份國際公認、由8條是非題組成的問卷,找出18名上網成癮的19歲大學生,他們平均每週上網6.3天、每天花813小 時(平均10.2小時)玩網上遊戲,全部都沒有濫藥習慣。又另外找出18名每天上網少於2小時、沒有上網成癮的同齡大學生作為對照組。
  研究人員為兩批學生分別進行腦部磁力共振掃瞄比較。結果發現,上網成癮者大腦的灰質均出現萎縮,而且上癮時間愈長,灰質萎縮得愈嚴重。此外,大 腦內部負責傳遞信息的白質亦出現改變。研究人員稱,這些腦部結構變異是由上網成癮所導致,會令青少年認知功能出現缺陷,更容易對互聯網產生依賴,甚至出現 長期功能障礙。
  英國牛津大學藥理學教授及腦部專家格林·菲爾德提出警告,兒童的專注力欠佳,可能與使用電腦及社交網站有關,並指出公眾對於使用電腦可改變年輕人腦部的證據關注不足。她認為,這次研究的結果惹人關注,顯示年輕人上網成癮的年期與其腦部變化有明顯關係,認為需要更多資源進行更多類似研究。"




2012年2月8日

Windows 8的未來? 成或敗?

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/8

甫推出試用的Windows 8就有人看衰它的未來

1.Windows 8恐重蹈Vista覆轍(DigiTimes)
2.Win8上市即死5大理由:無應用 無改進(cnblogs)

有人看衰Windows8,也有人看好。因為作業系統不同陣營有不同的支持者。

下面是幾個看好的論點 :

1.Windows 8在2012年成功的10大理由
2.Windows 8不得不說的13個特色功能
3.安謀(ARM)執行長:Windows 8贏在平板電腦競賽起跑點(DigiTimes) , ARM CEO:平板電腦市場Windows 8比Android有優勢(cnblogs)

對微軟而言如果Windows 8不成功,再推Windows 9就好了,就像Vista不成功就推Windows 7。我認為如何將更廣大的Windows桌機與筆電用戶使用族群,順利地移轉使用其平板系統環境,並提供相容性,這是微軟的重要課題。

2012年2月7日

推薦網站: 優雅的程式碼(Elegant Code)

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/7

這個網站教您如何撰寫優雅的程式碼,讓您的程式更易讀,易了解也容易維護。從頭養成良好的程式設計習慣將可以大量減少自己或團隊未來修改與維護的時間與精力。非常值得程式設計師與程式檢核者(code reviewer)研讀的網站。

網址 : http://zuskin.com/coding_habits.htm

內容包含
  • 命名的藝術
  • 程式碼撰寫風格
  • 管理功能(Function)/副程式
  • 邏輯的結構
  • 資料庫的海洋

程式碼檢測工具整理之一

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/7

參考文章
1.Java靜態檢測工具的簡單介紹
2.Open Source Code Review Tools(Ostatic)


三種工具整理
1.PMD
簡介 : 使用規則找出Java程式碼潛在的問題,例如可能的Bugs, 無法執行的程式碼,不良的程式碼,過於複雜的語法,重複的程式碼等。
類型 : 靜態程式碼檢查
組織 : InfoEther Inc.
License : Open Source - BSD
檢測語言 : Java
可自訂規則 : Yes
使用介面 : Command Line
可以整合的環境 : JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、CodeGuide、NetBeans、Sun JavaStudio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator, Emacs等
參考文章 :
a.[工具介紹] Java程式檢測工具 (一) - PMD
b.PMD(OpenFoundry)
c.用PMD自動執行Java程式碼分析(豆丁網)
d.用PMD剷除Bugs(IBM DeveloperWorks)
e.使用PMD檢查程式碼(cnblogs)
f.測試工具PMD的使用

2.FindBugs
簡介 : 不重視Style,format重於找到真正的Bugs,與性能問題,直接檢查Byte Code(*.class,*.jar),可檢測60幾種Bad patterns, 進行80多種修正,23種效能規則等。
類型 : 靜態程式碼檢查
組織 : Bill Pugh and Andrey Loskutov
License : Open Source - LGPL
檢測語言 : Java
可自訂規則 : ?
使用介面 : Command Line
可以整合的環境 : 支援Ant、Maven等建構工具。支援Eclipse和NetBeans IDE Plug-in
參考文章 :
a.[工具介紹] Java程式檢測工具 (二) - FindBugs
b.FindBugs-提高程式碼品質(IBM developerWorks)

3.CheckStyle
簡介 : 檢查程式是否符合程式碼編寫樣式規範,特別適用於團隊開發時彼此間的樣式規範和統一。
類型 : 靜態程式碼樣式檢查
組織 : GeekNet
License : Open Source - LGPL
檢測語言 : Java
可自訂規則 : V
使用介面 : Command Line
可以整合的環境 : Ant, Mavin, Sonar, Eclipse, IntelliJ IDEA, NetBeans, BlueJ, tIDE, Emacs JDE, jEdit, Vim Editor, QALab
參考文章 :
1.CheckStyle使用手册













IT消費化的七項事實

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/7

原文:http://www.cio.com.au/slideshow/414564/top_7_truths_about_consumerisation_it_/

要點標題:
1.這是無法阻止的趨勢


2.消費化實際上是管理的問題

3.設備管理是一個好的起步

4.資訊擁有權的法律問題還有爭議

5.社交網路的使用不能限制

6.應特別強化使用者經驗

7.你的競爭者已經知道這些

2012年2月6日

AutoIT應用-工作時間計算,整點休息提醒

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/6

下面小程式可以提供您工作時間計算與整點休息的提醒
include <date.au3>
HotKeySet("^!q", "Terminate")
HotKeySet("^!p", "Reset")
$begin = TimerInit()
Dim $nEnd = 0
Do
 $dif = TimerDiff($begin)
 $nSeconds = Round($dif / 1000, 0)   ;換成秒數
 $nMinutes = Floor($nSeconds / 60)   
 $nSecond = Mod($nSeconds , 60) 
 $nHours = Floor($nMinutes / 60)
 $nMinute = Mod($nMinutes , 60)  
 ToolTip("現在時間 : "&_NowTime()&@LF&"工作時間 : "&$nHours&"小時"&$nMinute&"分"&$nSecond&"秒",0,0,"Ctrl+Alt+q 結束,Ctrl+Alt+p 重新計時 (c)Fred Wang",1,4)  
 If  $nHours > 1 And $nMinute = 0 And $nSecond = 0 Then MsgBox(0,"Information","工作時間滿"&$nHours&"小時,休息一下吧!")  
 Sleep(1000)
Until $nEnd = 1

Func Terminate()
 $nEnd = 1
 ToolTip("") 
 Exit 0 
EndFunc

Func Reset()
 $begin = TimerInit()
EndFunc 

政府施政,稅賦公平與社會公義之我見

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/6

多數人都不喜歡繳稅,常會用捐款給公益組織等辦法節稅。我認為這與繳稅者是否享受相對的福利有關。如果努力求學,努力工作,所得到的所得,許多都被課走,而去照顧一些不努力或不工作的人,這些人不繳稅,仍能享受社會所有公共設施與服務,甚至福利。這並非社會公義。因此寧可捐給公益組織與弱勢團體。(所謂弱勢是非自主性的,可能是先天性或因不可抗力因素造成的,如天災或意外)

社會福利若能與稅賦制度結合,為繳越多稅的人提供越多的福利與保障,如此才能提供鼓勵人們納稅。弱勢者的基本生存保障仍應受到照顧的前提下,唯有努力者可以得到相對社會的保障。例如,失業救濟金與老人年金應該以其過去繳稅多寡,提供相對比例的救濟與照顧

除此之外,應對因社會發展不勞而獲的高所得者課以重稅例如: 土地增值,房屋增值,房租不合理調漲,這些都是沒有付出相對的努力或成本就可以取得超額報酬。因為社會發展的土地增值,房屋增值,房租調漲都不是土地與房屋擁有者的貢獻,而是整個社會的貢獻,因此這類所得產生的暴利應該回饋給整個社會。

企業經營者努力經營企業,正當的獲利應該是企業所賺得的利潤,而因為股票超過票面價值,印股票者因此賺取股票差價並非其努力經營基本應得的,因此獲得的暴利也是不勞而獲。應課以重稅。至於一般投資者的所得,因為要承擔較高的風險,因此對此種所得則不應課以重稅(因為賠錢時也不會給予救濟)。

不勞而獲的結果實際上都造成財富的移轉,高房價(不合理的房價)是將其他人努力所得移轉給房屋所有者。而印股票換鈔票是將投資人的努力所得移轉給企業的老闆。在意義上都同等於壓榨他人的勞力。

至於水費,電費與油價調漲這些觀念,筆者支持合理的調漲,否則政府因為補貼人民(實際用水用電用油的大戶許多都是大企業或有錢人,這些人得到補貼相對更多)造成的虧損,都還是用全民的稅收中支付,也就是全民買單。因此使用者付費才是社會公義,合理的調漲同時可以讓大家更珍惜資源,並刺激節能產業的發展。

期望新政府應以廣大人民的福祉與維持社會公義的考慮施政。

2012年2月最流行的電腦程式語言排名與趨勢

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/6

1月份的最流行的電腦程式語言排名與趨勢文章中提到"來勢洶洶的C#恐怕會讓C++第三名的地位不保",果然這個月出爐Tiobe的統計顯示C#已經由第六名攀升到第三名了,C++則退位到第四名。變化較大的還有Objective-C由第八名升到第五名。Java與C語言仍穩坐第一與第二的寶座。

攀升到前20名的有 : Transact-SQL由26名升到第14名, Visual Basic .NetTransact-SQL由22名升到第16名, PL/SQL由32名升到第17名, Logo語言由24名升到第18名, R語言由25名升到第20名。

在1987年排名前10到現在仍長青的語言有C語言(1-->2), C++(7-->4), (Visual) Basic(5-->7), Lisp(3-->13), Ada(2-->19), COBOL(10-->34)。

獲得2011年程式語言年度贏家獎的是Objective-C,它是2011年排名攀升最快的程式語言。

相關數據請參考TIOBE Programming Community Index 每月公布的數據


評選雲端基礎服務商(Iaas)的十二個要點

作者: Fred Wang (FW知識瑣記) 日期: 2012/2/6

下面是評選雲端基礎服務商(Iaas)十二個重要的評估要點 :


1.付費方式 : 以小時計算?, 月付? 折扣方式等

2.平均每月費用

3.服務等級協議(Service Level Agreement)

4.資料中心的數量 : 是否提供異地備援與近端存取的能力

5.安全認證 : 廠商是否通過一些資安的認證,確保資料的安全性

6.可擴充性 : 是否可以因為業務量, 可容易地擴充設備使用容量與數量

7.支援 : 應考慮廠商可提供的支援能力如何,是否有本國支援等

8.監控 : 是否提供對設備的監控工具,可監控的程度如何

9.APIs : 有什麼API技術的限制

10.免費試用 : 可否提供免費試用以利評估

11.案例數 : 是否可以複製與客製多個案例,建立多個環境,如開發,測試與執行環境

12.資料移轉的成本 : 資料轉入雲端與資料轉出雲端的能力與成本