2009年11月15日 星期日

OpenProj 專案管理工具軟體

OpenProj 專案管理工具軟體



原始發表日期: 2008/08/10 13:22
又是一個專案管理工具軟體

介紹它 , 有幾個特色:
首先它是 Open Source  , 免費
接著據說它是用 Java 撰寫的
然後它可以直接開啟 MS Project 的專案檔( .mpp) ,這個是先前介紹過的其他專案管理工具所沒有的
既然它是使用 Java 撰寫的 , 當然就可以跨平台 , 所以它也支援 Windows , Mac , Linux

它的官方網站 : http://openproj.org/

請點選畫面右方的 OpenProj 下方的 Download 連結去下載 ,
使用 UBuntu 可以選擇   openproj_1.3-1.deb 的版本下載 ,
使用 Windows 可以選擇 openproj-1.3.msi 來下載
下載完成後直接點兩下就可以安裝

在UBuntu 安裝完成之後 , 啟動軟體的連結
應用程式->辦公->OpenProj 這樣就可以啟動軟體

可以直接開啟 MS Prjoect 的專案檔(.mpp)



以下這個範例是來自於MS Project Template 的網站
匯入後 , 看起來該有的都有




可以另存成 MS Prjoect 的 XML 匯出檔


又是一個可以讓我們在 UBuntu上脫離MS 工具掌控的好幫手....

2009年9月27日 星期日

ExtJS -實戰經驗談001- 處理 TextArea 多行資料問題

ExtJS -實戰經驗談001- 處理 TextArea 多行資料問題

(書上沒說的 , 自己有碰到的 , 並且解掉的問題 , 就順便記下來)
(太基本的 , 請自己去看書)

最近在使用 ExtJS 開發某個 Web ,
其中我使用了 TextArea , TextArea 可以輸入多行資料並且允許你按 Enter 鍵換行...

背端使用 ASP 接收 ExtJS的 Form 傳送過來的TextArea的資料 , 也成功的存入資料庫

但是要從資料庫讀取 TextArea 的資料並且轉成 JSON的資料格式傳回前端給 ExtJS處理時 ,
發現一直出現錯誤...  <怎麼知道找出錯誤的? 待續 - ExtJS -實戰經驗談002- 除錯工具 >
原因是  : 前端的 ExtJS 在處理 傳回的 JSON資料時 , 不能接受跟處理 資料內容中有包含換行符號的資料 ;


那怎麼辦?
(1)
在被端要傳回資料的 ASP 在要把資料轉成 JSON格式傳回前 ,
將資料中的換行符號( \r\n) 給取代掉 代換成


(2)
在前端接受的ExtJS 中 , 把街收到的 JSON 格式資料 ,
重新把 收到的資料中有
的重新換成 (\r\n) , 然後處理過的資料 , 重新塞值到 ExtJS 的 Form 中的
TextArea 中 , 就可以完成由資料庫中還原的動作


注意A:
(1) 只有在還原到前端的的 ExtJS 的 Form 的 Text Area 時需要代換 (
為 (\r\n))
(2) 如果是要放在 ExtJS 的Grid 中的 , 就不需要特別還原
為(\r\n)

注意B:
換行字元大不同....

如果你是使用 IE , 同樣是網頁中的 Form 的 TextArea , 如果是有多行內容的 ,
傳到背端(Server 端) , 收到的換行字元會是 \r\n

但是你是使用 FireFox , 同樣是網頁中的 Form 的 TextArea , 如果是有多行內容的 ,
傳到背端(Server 端) , 收到的換行字元會是 \r (少掉一個 \n)
所以在動作(1)作還原處理的代換動作時 , 要注意是代換 \r\n 還是代換 \r 為

軟體介紹-7-Zip-免費壓縮工具

可以取代 WinZip & WinRAR 的免費軟體
7-ZIP
下載路徑: http://sourceforge.net/projects/sevenzip/
支援以下壓縮格式:
7z, ZIP, CAB, RAR, ARJ, LZH, CHM, GZIP, BZIP2, Z, TAR, CPIO, RPM ,DEB
可以取代 WinZIP , WinRAR 等工具
有 Windows 介面可以使用 , 支援壓縮檔加密(可以設定密碼)等操作 , 也有命令模式
它本身的壓縮格式 7z 更是號稱比 zip 的壓縮率更高 , 也就是壓縮出來的檔案會更小 , 不過如果你選擇 7z 格式的話 , 別人也需要使]用 7-zip 才能解壓縮

可以試用看看

Java - LDAPBROWSER (待撰寫)

Java - LDAPBROWSER (待撰寫)

Lean Six Sigma -談MIS部門的浪費模式

Lean Six Sigma -談MIS部門的浪費模式

眾所周知的 Lean 談的是精實 , 把不必要的浪費給去除
一般來說都是以流程的精實為第一要務
但是在企業內部還有很多是屬於商務流程以外的浪費
其中以MIS部門的浪費為最 ,
特別是當企業越大時 , MIS部門的浪費可能也是最大的
以下要談的跟Lean Six Sigma 無關 , 純粹只是就 Lean 這件事來談
所以你如果是要看Lean Six Sigma 的很抱歉 , 可以離開了
但是如果你是要看 , 避免不必要的浪費的 , 可以繼續往下看

浪費模式一: 搖擺不定的軟體平台或是產品選擇
這種浪費模式 , 很常見 , 常見於一些基本但是必要的軟體產品
例如像 MS Exchange vs Domino Notes
這兩套產品是拿來做 Mail Server的基本功能 ,
但是你會發現有些公司會一下用這個 , 一下用那個...
<不相信 , 你去看看微軟或是IBM的軟體產品的使用公司的簡介中就會發現
  當然 , 因為是競爭關係 ,
所以你看的不是 Exchange 取代 Domino
就是 Domino取代 Exchange
賣產品總是這樣老王賣瓜自賣自誇 , 就軟體供應商來說這樣的行為很常見 ,
但是當你(們的公司)就是消費者是付錢的公司時 , 你就要想想 ,
當初你買 Exchange 要付一次購買費用 , 然後轉換到 Domino 又要付一次購買費用
然後不同產品之間要轉換 , 就必須還要付出轉換的成本
這些行為根本就是浪費...
>
浪費模式二: 使用了多套同質性產品於公司內部
有可能看到的是例如: Database / Flow / web / 開發工具 相關軟體
例如使用了 MS SQL , 又買了IBM DB2 , 又買了 Oracle , 或是又買了 Sybase等等
買了多種都是要拿來做資料庫的軟體 , 感覺有點像是
你買了3台不同廠商的電視機 (都是要拿來看電視的 ,
 不同廠牌的電視可能小功能會有所不同 , 但是拿來看電視這個功能是一定不會變得)
事實上就軟體的購買而言 , 軟體除了初次的購買建置費用還有每年要付出去的維護費用
(一般來說是購買費用的15%吧)
所以當你公司有了多套同性質的軟體時, 每年要付出去的維護費用就是一筆錢 ,
再說 , 一套產品買進來後 ,
你還必須要有對該產品精通或是熟悉的人進行管理或者是微調維護等等作業
意思就是如果如上述的資料庫的例子來說 , 你們必須要有熟悉MS SQL/IBM DB2/Oracle/Sybase 等等的人員
也就是說必須要有這些熟悉的人員 ,
如果沒有 , 要麼就是再聘人 , 要麼再外訓 , 要麼請顧問
這些都是額外的費用 , 要同時搞多種不同的資料庫
在談到Lean時 , 請好好想想有沒有必要讓這麼多種不同的資料庫產品同時存在於公司內部

以下談的可能會跟上述的模式一與模式二有重疊
浪費模式三: 因為公司內部沒有人會用那個產品所以換產品
這個在大型企業中的MIS部門也是常見的事 , 當會的人走掉之後 ,
如果後續的接手者不會 , 則有可能那個軟體產品在公司內部會因為沒有人使用導致形同作廢
當然最後則只好買個新的產品進來公司用
<為什麼不訓練人? 別問我>
浪費模式四: 因為公司要求廠商客製化產品 , 所以廠商有新版本產品時 , 公司無法跟著昇級
台灣有很多公司都是要求產品要客製化 ,
但是當軟體廠商特別為你們公司從Source Code 源頭開了一個特殊版本的客製化版時
也就代表著你們買的那套軟體可能無法享受的原廠軟體有新的 fix 更新 , 或是出了新版本時,
你們公司都無法使用
除非你們公司要再花一次錢請原廠針對新版本幫你們重新客製化一套新版本
我的建議是:一般來說 , 對於原廠軟體盡量不要直接對原始的Source Code 去動手
                     而是要去尋求 plug-in 或是 extension 或者是 interface 去連接
                     建置客製化功能

浪費模式五: 在自行開發與外包開發中搖擺不定
這個在大型企業中也很常見 ,
想要自行開發就要養人 , 必須在內部培訓或是引入有能力的人員
不然就是要導求外包廠商來進行開發
這兩種都可以 , 但是最糟糕的狀況會是搖擺不定
好像離題了 , 剛剛談的不是 公司裡面的軟體產品的問題嗎 ?
怎麼會有自行開發或是外包的問題?
舉 ERP 的例子來說好了
如果你的公司導入了某套ERP ,
當公司內部有新功能要建置時 , 一種是自行開發 , 一種是找外包廠商來開發
這個又會牽扯到上述的 浪費模式一/二/三/四的狀況
因為政策搖擺不定 , 所以可能應該要培訓的人員沒有培訓 ,
然後外包廠商又吃定你沒有人可以用, 所以獅子大開口,
然後這時可能才想要自行養人來開發 , 可是可能等到訓練完到能夠上手精通 , 可能黃花菜都涼了
最後可能就會發生模式三 , 沒人會用所以要換新產品...
<好像這樣 問題就解決了 , 問題就這樣不斷的出現不斷的循環>
有些銀行就很乾脆 , 就是外包 , 擬定嚴格跟好的政策去處理, 而不是搖擺不定的政策

浪費模式六:因為人員對軟體產品的不熟悉或是沒有善用,而購買新的產品達到既有產品所提供的功能
這樣的浪費模式跟浪費模式二很相近但是原因不同
這種情形是人員在不熟悉或是精通產品的情況下,最容易發生。
舉例來說:有的公司會特別去購買 LDAP 產品 , 但是以微軟家族中 至少有兩個部分提供LDAP功能
而且是很多企業會用到 , 那麼為何還要去購買?  同樣的狀況也會出現在 Portal Server 或是 Content Manager Server (不是幫微軟打廣告 , 而是他們的某些產品提供了不少功能 , 但是常常有很多人沒有去挖出來去 , 導致要用A功能時 , 大家就要另外去買 另一套產品 , 要用B功能時 , 又去買另一套產品)

上述這些是在物價不斷上漲 , 全球企業都在尋求減少浪費的觀念下 ,
在MIS部分所可能會發生的浪費與內耗
如果你的公司出現了這種狀況 , 就表示有浪費出現了
檢查點1: 你的公司是否存在同一性質但是的多套不同產品軟體
               Database: MS SQL , IBM DB2 , Oracle, Sybase
               APServer: WebLogic , Jboss , WebSphere
               WebServer: IIS , Apache
               Mail Server: MS Exchange / Domino Notes
               Process/Flow: ...
<注意是你的公司是大企業而不是軟體公司產品展示會 , 相同性質的產品買那麼多套做甚麼 , 浪費...>
 
檢查點2: 你的公司使用的產品是否有要求要特別客製化而導致未來無法跟著原廠進行fix或是升級
檢查點3: 你的公司是否有在近幾年內 ,同一性質但是多套不同產品之間進行轉換
                <而且未來還有可能會再轉換>
                <這年頭沒人要你從一而終 , 但是不斷的轉換軟體 , 只是會讓你的投資浪費掉>
檢查點4: 你的公司是否曾有因為內部沒有人員會使用某軟體而直接購買新產品去取代的
                <這一點 , 可能檯面上沒有人會承認 , 但是一定曾經在某些公司發生過>
如果你的公司出現過這幾點 , 你或許應該好好評估一下,
因為這些行為直接或是間接導致的浪費有多少
最後一點 , 上述內容絕對都有真實案例 ,
<像模式一 , 軟體轉換 , 印象中是科學園區的某廠商 , 在微軟或是 IBM 的網站上都有>
<模式四 , 跟模式五 , 導入ERP 的公司可能會碰到>

但是請千萬不要替你們公司自己對號入座 , 或是想說是公司內部的某某某寫的
因為我提到的都是在網路上可以看得到的通例

提出上述例子 , 只是要說明當全球潮流講求 Lean 不浪費時 ,
也請檢視一下你們公司的MIS部門是否也是造成浪費的始作俑者
這些浪費如果被好好檢視跟處理之後 , 又可以省下一筆錢
------------------------------------------------------------------------------------------------------------------------------
當然還是要來推銷一下 Open Source , 有很多公司想省錢 ,
明明已有夠品質的open 軟體可以使用
但是卻又一定要花錢買一些open source 就有的功能軟體
最常見的大概是 Office 系列吧 ,  不一定要用 MS Office 用OpenOffice 也很棒
壓縮軟體有 7-zip 可以取代 WinZip , WinRAR
字典軟體有 StarDict(星際譯王)可以取代Dr.Eye ,
大企業特別要小心的是因為員工使用非法軟體而被抓到的問題 , 一旦上新聞 , 可就對企業的形象有損 ,
(經過一定的評估程序)導入Open Source 軟體可以大幅的降低這類問題
(而且根本不用擔心 , 因為購買的軟體授權不足而被抓 , 員工即便在家中的電腦也可以使用Open Source 的軟體 )
這些通通不用錢 , 你們公司還在花錢買類似的軟體嗎?

未完 , 內容待續-PDF 檔案壓縮

未完 , 內容待續-PDF 檔案壓縮

關於java 程式編譯與執行的一些基本常識

網路上很多人常常會有甚麼出現錯誤訊息要別人幫忙解決的

在這裡先說一個基本觀念 對的方式 可能只有一種到兩種 但是錯誤的方式卻會有百百種

甚麼意思呢 譬如常見的問題是:
"我使用了 XXXDatabase 的 JDBC , 但是執行的時候出現 class not found , 我有設定 CLASSPATH "

觀念一: 請把外部套件放在正確的位置
(假設如果你不是在 IDE 環境下執行)
如果你有使用 JDBC Driver (xxx.jar) 那麼請把 xxx.jar 放在你的 JDK\jre\lib\ext 目錄之下
根本不需要去設定 CLASSPATH

如果是在 IDE環境(Eclipse , JBuilder , ....) 那麼設定方式又不同

觀念二: 請分清楚 編譯時期跟執行時期的錯誤訊息
編譯時期 , 指的就是你寫好原始碼 (xxx.java)
然後要下 javac xxx.java 將原始碼編譯成 class 的過程稱為編譯時期

執行時期 , 指的是你已經成功的編譯產出了 xxx.class 檔
然後要下 java xxx 去執行的時候

常常有人會攪混掉 , 明明編譯的時候就已經出錯了 , 他還會告訴你 我打 java xxx 也會出錯
大哥 , 編譯的時候出錯表示根本不會產出 xxx.class 那麼你打 java xxx 當然會出錯


在這邊常常碰到的一個問題之一是: 我的編譯會過 , 但是執行時會出現找不到 class (EX: JDBC Driver)
這裡要注意的是:
剛剛提到兩個名詞一個是 編譯 ---> 請找 jdk\lib 這個目錄去放你的外部 jar 檔
一個是 執行 ---> 請找 jdk\jre\lib\ext 這個目錄去放你的外部 jar 檔

何謂 外部套件或是外部 jar 檔 , 只要是你引用別人的 不是你自己的程式碼的都算
當然上面的設定是 以相關的 library 是以 jar 檔的形式存在

另外還有不少人會犯的毛病是 , 在文件中會有 "假設" , "如果" 出現的話 表示這些是有條件的
例如 我上面提到 (假設如果你不是在 IDE 環境下執行)
就表示如果你是在IDE環境下的話 相關說明需要另外找


java 的設定很簡單
當你安裝完 JDK

你只需要設定以下幾個內容
JAVA_HOME 環境變數 設定為 JDK 安裝目錄(EX: C:\jdk_1.6.0 )
PATH 環境變數 在最前面加上 JDK 安裝目錄(下的bin (EX: C:\jdk_1.6.0\bin;<後面是原來的PATH內容> )
CLASSPATH 環境變數 在一開始只需要設定 .; 這樣就夠了 ,
然後你的 jar 檔要放在上面所提
剛剛提到兩個名詞一個是 編譯 ---> 請找 jdk\lib 這個目錄去放你的外部 jar 檔
一個是 執行 ---> 請找 jdk\jre\lib\ext 這個目錄去放你的外部 jar 檔
這兩個地方就夠了

如果你做到這些基本設定之後基本上 80%那些阿貓阿狗的問題都不會有

錯誤的方式百百種 對的方式只有一兩種

當然上面說得是java 程式的基本開發設定
如果你是使用AP Server 那麼設定又不太一樣 需要是各家廠商產品而定